【词向量表示】Item2Vec、DeepWalk、Node2vec、EGES词向量生成算法

前言:一般来说用户Embedding在推荐系统中可以通过物品的Embedding向量平均或者聚类实现,因此物品的Embedding算法的效果成为重中之重。这篇文章是笔者阅读《深度学习推荐系统》第四章Embedding技术在推荐系统中的应用的学习笔记。本篇文章主要介绍传统词向量的生成算法,在Word2Vec算法的基础上,词向量生成算法在推荐系统上的衍生。

传统词向量生成算法

Embedding

Word2Vec

传统的编码方式:one-hot编码,不同单词[1, 0, 0][0, 1, 0]之间的余弦相似度为0。因此,Word2Vec希望能够通过训练得到一个新的词向量表达方式,从而丰富向量的语义信息。主要目标如图所示,从一个稀疏的one-hot向量通过训练得到一个丰富稠密的新向量。

学习参考链接:【词向量表示】Word2Vec原理及实现-优快云博客

Item2Vec

狭义上:一种物品Embedding方法,是对Word2Vec算法的延申,Item2Vec方法是将物品视为“单词”,而一个行为,例如购买行为视为一个句子,在一个行为中,有物品先后购买顺序,而Item2Vec正是利用这种序列学习物品向量表示。

广义上:只要是物品→向量的方法都可以称为Item2Vec:双塔模型(百度、Facebook),以one-hot编码作为输入,经过复杂的多层神经网络输出Embedding向量。

与Word2Vec的区别

  • 数据不同:

Item2Vec利用“物品序列”等行为产生历史行为序列(包括购买、浏览等行为),而Word2Vec是利用“词序”。

  • 优化目标不同:

Item2Vec在优化目标的过程中认为任意两个物品之间都存在联系,而Word2Vec认为只有在一定窗口内才有联系。

局限性

只能使用序列型的行为数据实现向量生成

Graph Embedding

DeepWalk

本质还是Item2Vec算法,只不过是利用游走的方式在图上产生大量的物品序列

主要思想

​ 给定一张图结构,在图上进行随机游走,产生大量的物品序列,最后将序列放入Item2Vec中进行训练

image

算法实现

​ 与Item2Vec不同的是,在生成大量物品序列的过程中,需要确定当前结点的下一个结点,即随机游走的算法,假设物品关系图是有向有权图,则随机游走的形式化表达为:
P ( v j ∣ v i ) = M i j ∑ j ∈ N + ( v i ) M i j P(v_j|v_i) = \frac{M_{ij}}{\sum_{j \in N_+(v_i)}M_{ij}} P(vjvi)=jN+(vi)MijMij
其中$ N_+(v_i) 表示 表示 表示v_i 的所有出边集合, 的所有出边集合, 的所有出边集合,M_{ij}$表示两个结点之间的权重。这一过程即计算下一个结点被选择概率,边权重越大,被选择的概率越大。若是无权图,则将所有边权重默认为1,即每个结点被选择的概率相同。

Node2vec

在DeepWalk的基础上,调整了随机游走的权重,使得结果更能体现图网络的同质性和结构性

  • 同质性:相互连接的物品向量相近,在物品网络结构表示为同类、同属性商品;
  • 结构性:拓扑结构相似的物品向量相近,在物品网络结构表示为各品类的爆款、最佳凑单等等;
算法实现
  • 同质性:不仅需要找到相近的结点,还需要游走到远方的结点训练,BFS只能找到相近的结点,而DFS更适合表达网络”同质性“的游走过程
  • 结构性:需要找到物品相似的拓扑结构,需要对周围的结点网络结构进行遍历扫描,BFS更适合表达网络”结构性“游走过程

image

​ 综上所述,在选择下一结点时,需要权衡BFS和DFS的倾向性,Node2Vec通过节点间的跳转概率权衡两者的倾向性,从结点v跳转到结点x的概率为:
P ( x ∣ v ) = a p q ( d ) × ω v x P(x|v) = a_{pq}(d) \times \omega_{vx} P(xv)=apq(d)×ωvx
其中d表示结点v和x的距离, ω v x \omega_{vx} ωvx表示两个结点的权重, a p q a_{pq} apq表示概率权重参数,平衡BFS和DFS的倾向性
a p d ( d ) = { 1 p , d = 0 1 ,   d = 1 1 q , d = 2 a_{pd}(d)= \begin{cases} \frac{1}{p},d=0\\ 1, \ d=1\\ \frac{1}{q}, d=2\\ \end{cases} apd(d)= p1,d=01, d=1q1,d=2
其中p表示在附近游走的可能性,p越小,Node2vec更注重表达网络的结构性,q越小,则远离原始节点的概率越大,此时,Node2vec更注重表达网络的同质性

EGES

阿里巴巴的embedding方法,基本思想是在Deepwalk生成的Graph Embedding上引入补充信息,目的是为了解决长尾物品问题、冷启动物品交互信息少的问题。DeepWalk、Node2Vec只基于图结构生成节点嵌入向量,忽略了节点可能携带的其他辅助信息。EGES通过引入更多的补充信息来丰富向量特征。实现上并没有过多的理论创新,但在工业上是实用性很强的算法。

算法实现
  • 生成物品关系图:利用物品的相同特征生成基于内容的知识图谱,通过知识图谱生成的物品向量被称为补充向量

  • 对于不同特征的向量,模型通过加权求和的方式得到最后的Embedding输出,其中权重参数为 e a j e^{a_j} eaj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值