一、embedding 方向发展脉络
从传统的sequence embedding过渡到graph embedding的过程,基于word2vec的一系列embedding方法主要是基于序列进行embedding,在当前商品、行为、用户等实体之间的关系越来越复杂化、网络化的趋势下,原有sequence embedding方法的表达能力受限,因此Graph Embedding方法的研究和应用成为了当前的趋势。
1、word2vec
CBOW和Skip-gram两种word2vec的模型结构,产出词向量。
2、graph embedding
(1)deepwalk(word2vec)
deep walk是network embedding的开山之做,将NLP词向量的思想借鉴过来做网络的节点表示。
参考资料1:https://zhuanlan.zhihu.com/p/45167021
参考资料2: http://lipixun.me/2018/01/11/deepwalk
原文:http://www.perozzi.net/publications/14_kdd_deepwalk.pdf
(DeepWalk:Online Learning of Social Representations)
(2)LINE
LINE也是一种基于邻域相似假设的方法,只不过与DeepWalk使用DFS构造邻域不同的是,LINE可以看作是一种使用BFS构造邻域的算法。1阶直连,2阶邻域。
参考资料1:https://zhuanlan.zhihu.com/p/56478167
原文:https://arxiv.org/pdf/1503.03578.pdf
(LINE:Large-scale Information Network Embedding)
(3)SDNE
SDNE可以看作是基于LINE的扩展,同时也是第一个将深度学习应用于网络表示学习中的方法。SDNE使用一个自动编码器结构来同时优化1阶和2阶相似度(LINE是分别优化的),学习得到的向量表示能够保留局部和全局结构,并且对稀疏网络具有鲁棒性。
参考资料1: https://zhuanlan.zhihu.com/p/56637181
原文:https://www.kdd.org/kdd2016/papers/files/rfp0191-wangAemb.pdf
(StructuralDeep Network Embedding)
(4)node2vec
在graph中主要存在两种关系,用作者的原话叫homophily和structual equivalence。所谓homophily,即是在graph中紧密相连的邻域。具有这种关系的顶点之间,学习出来的向量应该接近或者相似。所谓structural equivalence,就是指在图中具有相似作用的顶点,他们之间未必相邻,甚至可能相隔较远,比如都是所在邻域的中心顶点。满足这种关系的顶点之间,特征向量也应该接近或者相似。通常在现实世界的graph中,会同时存在这两种关系。但是在不同的任务中需要关注的重点不同,可能有些任务需要关注网络 homophily,而有些任务比较关注网络的structual equivalence,可能还有些任务两者兼而有之。在第一阶段的表示向量学习过程中,如何学习出表示向量,会影响到下游任务的效果。在DeepWalk中,在采样时作者只是单纯地采用随机游走,无法灵活地捕捉这两种关系,在这两种关系中有所侧重。实际上,对于这两种关系的偏好,可以通过不同的序列采样方式来实现。有两种极端的方式,一种是Breadth-First Sampling(BFS),广度优先搜索,如图1中红色箭头所示,从u出发做随机游走,但是每次都只采样顶点u的直接邻域,这样生成的序列通过无监督训练之后,特征向量表现出来的是structual equivalence特性。另外一种是Depth-First Sampling(DFS),深度优先搜索,如图1中蓝色箭头所示,从u出发越走越远,学习得到的特征向量反应的是图中的homophily关系。
参考资料1: https://zhuanlan.zhihu.com/p/63631102
原文:https://www.kdd.org/kdd2016/papers/files/rfp0218-groverA.pdf
(node2vec:Scalable Feature Learning for Networks)
(5)eges
在商品推荐系统中,主要面临着三个技术挑战,分别是可扩展性(scalability)、稀疏性(sparsity)、冷启动问题(cold start)。阿里淘宝团队提出了基于Graph
Embedding的算法来解决以上三个问题。该文在DeepWalk的基础上,增加 item 的额外信息(例如category,
brand, price等)丰富item表征力度。文章中共涉及到三个模型:
Base Graph Embedding(BGE),基础deepwalk、wor2vec;
Graph Embedding with Side Information(GES),增加side information,embedding均值;
Enhanced Graph Embedding with Side Information(EGES),增加side information,组合表示item_embedding时,对 item 和 side information(例如category, brand, price等)的embedding施加不同的权重,该权重值通过模型训练得到。
参考资料1:https://zhuanlan.zhihu.com/p/69069878
原文:https://arxiv.org/pdf/1803.02349.pdf
(EnhancedGraph Embedding with Side Information)
二、在深度学习推荐系统中,Embedding主要的三个应用方向:
在深度学习网络中作为Embedding层,完成从高维稀疏特征向量到低维稠密特征向量的转换;
由于高维稀疏特征向量天然不适合多层复杂神经网络的训练,因此如果使用深度学习模型处理高维稀疏特征向量,几乎都会在输入层到全连接层之间加入Embedding层完成高维稀疏特征向量到低维稠密特征向量的转换。典型的例子是微软的Deep Crossing模型和Google的Wide&Deep模型的深度部分。
作为预训练的Embedding特征向量,与其他特征向量连接后一同输入深度学习网络进行训练;
通过上面对Embedding层的介绍,同学们肯定已经知道Embedding层的训练开销是巨大的。为了解决这个问题,Embedding的训练往往独立于深度学习网络进行。在得到稀疏特征的稠密表达之后,再与其他特征一起输入神经网络进行训练。典型的采用Embedding预训练方法的模型是FNN,FNN利用了FM训练得到的物品向量,作为Embedding层的初始化权重,从而加快了整个网络的收敛速度。在实际工程中,直接采用FM的物品向量作为Embedding特征向量输入到后续深度学习网络也是可行的办法。再延伸一点讲Embedding的本质是建立高维向量到低维向量的映射,而“映射”的方法并不局限于神经网络,实质上可以是任何异构模型,这也是Embedding预训练的另一大优势,就是可以采用任何传统降维方法,机器学习模型,深度学习网络完成embedding的生成。
通过计算用户和物品的Embedding相似度,Embedding可以直接作为推荐系统或计算广告系统的召回层或者召回方法之一。
随着Embedding技术的进步,Embedding自身的表达能力也逐步增强,利用Embedding向量的相似性,直接将Embedding作为推荐系统召回层的方案越来越多的被采用。其中Youtube推荐系统召回层的解决方案是典型的做法。Youtube利用深度学习网络生成Video Embedding和User Embedding的方法。利用最终的Softmax层的权重矩阵,每个Video对应的列向量就是其Item Embedding,而Softmax前一层的输出就是User Embedding。在模型部署过程中,没有必要部署整个深度学习网络来完成从原始特征向量到最终输出的预测过程,只需要将User Embedding和Item Embedding存储到线上内存数据库,通过内积运算再排序的方法就可以得到item的排名。这大大加快了召回层的召回效率。
参考资料:
1、https://zhuanlan.zhihu.com/p/58805184 Embedding从入门到专家必读的十篇论文
2、//www.greatytc.com/p/60ef42833d0c word2vec使用笔记
3、https://zhuanlan.zhihu.com/p/64200072 深度学习中不得不学的Graph Embedding方法
4、https://zhuanlan.zhihu.com/p/67218758 Embedding在深度推荐系统中的3大应用方向