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类型的算法 , 很容造成高曝光词汇得到过多的权重 。
- 服务|【IPO解码】恒大物业(06666-HK)拟12月2日敲钟上市,五大竞争优势助力恒久质远
- 每经19点丨股票代码6666!恒大物业即将上市
- 钛媒体微信上线“裂开”“666”等6个表情包,“让我看看”灵感来自《还珠》五阿哥?
- 沉默不语666小米外海创子品牌POCO,新机与红米Note9多项参数重合
- 扬眼|他写下10万字“相亲指南”爆红,成爱情导师,相亲失败80多次后
- 趣味社会学|却用10年写出80万字专著,打脸他人,他送外卖不上进被嘲笑
- 王者荣耀|孤影再露丑恶嘴脸,solo赛三分钟被杀穿投降,影响心情666给你下一把
- 美剧去哪看|北大最强“扫地僧”上线!网友:666+牛牛牛
- 深夜重磅!遭自媒体“空袭”,千亿巨头近万字公告反击
- 沉默不语666 中端机型,荣耀还有新机!水滴屏+天玑800U