H好菇凉666用万字长文聊一聊 Embedding 技术( 三 )
损失函数为:
SVD++算法是在BiasSVD的基础上引入隐式反馈(如用户历史浏览、用户历史评分、电影历史浏览、电影历史评分等)作为新的参数 , 其预测结果为:
其优化如下:
虽然矩基于矩阵分解的方法原理简单 , 容易编程实现 , 具有较好的扩展性 , 在小规模数据上也有不错的表现 。 但对于如今互联网推荐场景的数据量级 , 矩阵分解方法很难与深度学习算法一战 。
对于基于内容的embedding方法 , 主要是针对文本类型数据(对图像、音视频等多媒体数据embedding方法 , 感兴趣的可以自行查阅相关技术) 。 下图是从word2vec到BERT的发展历史(最新已经发展到了GPT3了 , 模型更新太快 , 还没来得及用 , 就已经过时了) , 从图中可以看出自从2013年word2vec横空出世后 , 文本embedding方法不断被优化 。 从最开始的静态向量方法(如word2vec、GloVe和FastText)发展为能根据上下文语义实现动态向量化的方法如(ELMo、GPT和BERT) 。 下面主要从分静态向量和动态向量两个方面来介绍相应的方法 。
本文插图
1、静态向量 所谓静态向量指的是一旦训练完成后 , 对应的向量便不再发生改变 , 比如一个词经过向量化之后 , 在后续的场景中该词对应的向量不会发生改变 。 这些方法主要包括Word2Vec、GloVe和FastText 。
A) Word2vec Word2vec是2013年Google发布的无监督词向embedding模型 。 该模型采用CBOW或Skip-gram模型来训练词向量 , 将词从one-hot编码的向量映射成d维稠密向量:
本文插图
其中CBOW是采用词的上下文来预测该词 , 而Skip-gram则是采用词来预测其上下文 。 两者网络结构相似 , 通常所得到的词向量效果相差不大;但对于大型语料 , Skip-gram要优于CBOW 。
B) GloVe GloVe(Global Vectors for Word Representation)是2014年由斯坦福大学提出的无监督词向量表示学习方法 , 是一个基于全局词频统计(count-based & overall statistics)的词表征工具 。 由它得到的词向量捕捉到单词之间一些语义特性 , 比如相似性、类比性等 。 GloVe主要分为三步:
- 基于语料构建词的共现矩阵表示词和词在特定大小的窗口内共同出现的次数 。 如对于语料:I play cricket, I love cricket and I love football , 窗口为2的的共现矩阵可以表示为:
本文插图
构造词向量和贡献矩阵之间的关系:
本文插图
其中 , 和是要求解的词向量 , 和是两个词向量的偏差项 。
- 最终 GloVe 的 loss function 如下:
- 非递减函数 , 用于确保多次一起出现的单词的权重要大于很少在一起出现的单词的权重
- 权重不能过大 , 达一定程度之后应该不再增加
- , 确保没有一起出现过的单词不参与loss的计算
本文插图
CBOW和Skip-gram是local context window的方法 , 缺乏了整体的词和词的关系 , 负样本采样会缺失词的关系信息 。 此外 , 直接训练Skip-gram类型的算法 , 很容造成高曝光词汇得到过多的权重 。
推荐阅读
- 京东|京东天猫年货节薅羊毛!9999元/6666元红包速领
- 天猫|最高6666元 可当现金用!天猫超级红包7日20点开抢
- 蔚来ET7|对标宝马5系 蔚来ET7最新售价公布:43.666万起售
- 爱去酒吧是不是“好女孩”?厦大女学者万字长文分析引热议
- 小鹏汽车|Q3交付25666台 夺得造车新势力季度销量冠军!小鹏发2021年最新财报
- 手机号“1**66666666”,287万起拍!
- 六安一“6666”手机号拍出3.18万元!背后的故事让人拍手称快!
- 陈天桥|Intel公布12代酷睿兼容DDR5内存:16GB套装、最高6666MHz
- 嫌作者写的太烂!黑客盗号改小说大纲,还码了两万字新剧情……网友:手把手教学
- 论文|男子写3万字论文证明家乡是“华夏第一县” 被专家认可