敞开生长之旅!这是我参加「日新计划 2 月更文挑战」的第 19 天,点击检查活动详情
1. 概述
相比较于依据Collaborative Filter算法,依据根底Graph Embedding模型能够依据用户的行为序列学习出item的embedding,运用item对应的Embedding能够便利核算item与item之间的相似度,并在实践中被证明是行之有效的办法,在依据根底Graph Embedding模型,首要包含item2vec,node2vec,deepwalk等算法。
在运用根底Graph Embedding算法的条件是用户的行为序列,但是关于一些新的item或许用户很少有行为的item,即冷启动问题,根底的Graph Embedding算法很难学到对应item的embedding表明,为此,一些针对item冷启动的办法被提出,其间就包含GES和EGES算法。
GES和EGES是阿里在2018年提出的两个依据Graph Embedding的算法,其间GES全称为Graph Embedding with Side Information,EGES全称为Enhanced Graph Embedding with Side Information。为了解决冷启动的问题,GES和EGES在核算item embedding的过程中引入了side information。
2. 算法原理
2.1. side information
side information在推荐体系中有着重要的作用,不只仅能应用在召回中用于处理冷启动问题,同时在排序阶段中也有广泛的应用。side information首要指的是与item相关的一些先验信息,关于产品而言,先验信息包含:类别,商铺,价格等。
2.2. GES算法
GES算法全称为Graph Embedding with Side Information,假定W\mathbf{W}表明item或许side information的embedding矩阵,其间,Wv0\mathbf{W}_v^0表明item vv的embedding,Wvs\mathbf{W}_v^s表明第ss个side information,item vv共有nn个side information,则关于item vv共有n+1n+1个向量:
其间,dd为embedding的维度。
关于item vv,运用average-pooling将这n+1n+1个向量聚合起来,得到item vv的向量表明:
2.3. EGES算法
EGES算法全称为Enhanced Graph Embedding with Side Information,从其姓名来看便能够知道,EGES是GES的增强版。在GES中,每一个向量,包含一个item的向量以及nn个side information的向量,这些向量的权重是相同的。从实践的状况来看,不同种类的side information关于最终的embedding的贡献是不相同的。因而EGES对GES中的向量做了加权的操作。
假定关于item vv,权重矩阵为A∈R∣V∣(n+1)\mathbf{A}\in\mathbb{R}^{\left | V \right |\times \left ( n+1 \right )},其间,Aij\mathbf{A}_{ij}表明第ii个item的第jj个side information的权重,为简单,记aija_i^j为Aij\mathbf{A}_{ij},Ai0\mathbf{A}_{i0}表明的是item ii自身向量的权重,记为ai0a_i^0。
关于item vv,加权平均后的结果为:
其间,运用eavje^{a_v^j}而不是avja_v^j是为了保证权重大于0。
2.4. GES和EGES的模型结构
GES和EGES的模型结构如下图所示:

其间,Dense Embeddings表明的是item向量以及nn个side information的向量。Hidden Representation即为如上公式中的Hv\mathbf{H}_v。从上述过程来看,GES即为EGES模型的简化版别,即权重都为1n+1\frac{1}{n+1}。
2.5. EGES中item向量的求解
EGES算法的流程如下图所示:

从EGES算法的流程中,笔者发现,其与DeepWalk的流程根本一致,不同的首要是两点:1)学习的参数不同,在DeepWalk中首要是item的向量表明,在EGES中不只要学习item的向量W0\mathbf{W}^0,nn个side information的向量W1,⋯Wn\mathbf{W}^1,\cdots \mathbf{W}^n,还包含权重的矩阵A\mathbf{A};2)在DeepWalk中运用的是SkipGram,在EGES中运用的是WeightedSkipGram。
2.6. Weighted Skip-Gram
Weighted Skip-Gram算法的流程如下所示:

为了能够更好的理解上述的流程,我们需求先了解word2vec中Skip-Gram模型的具体流程,在词向量的求解过程中除了Skip-Gram还可所以CBOW模型,本文的重点是Skip-Gram模型,Skip-Gram模型的结构如下图所示:

为评论的便利,假定在Skip-Gram模型中,每个词的向量维度为dd,在词典VV中,中心词wcw_c的词向量为vc∈Rdv_c\in \mathbb{R}^d,布景词wow_o的词向量为uo∈Rdu_o\in \mathbb{R}^d。给定中心词生成布景词的条件概率能够经过对向量内积做softmax运算而得到:
此刻,关于整个文本能够得到如下的概率形式:
语言模型中的方针是要使得上述的概率最大,经过log似然,能够得到如下的损失函数:
关于log P(wo∣wc)log\; P\left ( w_o\mid w_c \right ),有:
为了能够对其间的参数求解,能够运用梯度下降法求解,此刻需求对损失函数求导,以∂log P(wo∣wc)∂vc\frac{\partial log\; P\left ( w_o\mid w_c \right )}{\partial v_c}为例:
从上述的公式发现,每次的求导数的过程中,都需求对整个词典中的词核算,假如词典较大,那么每次更新时的核算成本就比较大,为下降核算成本,近似的训练办法被提出,负采样(Negative Sampling)就是其间的一种近似核算办法。
关于上述给定的中心词wcw_c,给定一个布景窗口,假定布景词wow_o出现在wcw_c的布景窗口中的事件概率为:
关于给定的长度为TT的文本,假定时间步tt的词为w(t)w^{\left ( t \right )}且布景窗口大小为mm,此刻联合概率为:
此刻模型中仅考虑了正样本,经过采样KK个未出现在该布景窗口中的词,此刻的联合概率为:
其间,P(w(t+j)∣w(t))P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right )能够表明为:
能够验证,此刻核算不再与词典大小相关,而是与负采样的参数KK相关,以上就是Skip-Gram模型以及负采样的相关内容。
关于采样到的样本uu,其对应的向量为Zu\mathbf{Z}_u,由上述的理论能够得到:
能够得到如下的导数:
参考文献
- Wang J, Huang P, Zhao H, et al. Billion-scale commodity embedding for e-commerce recommendation in alibaba[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 839-848.
- [Graph Embedding]阿里超大规模产品Embedding策略EGES
- Graph Embedding在淘宝推荐体系中的应用
- NLP之—word2vec算法skip-gram原理详解
敞开生长之旅!这是我参加「日新计划 2 月更文挑战」的第 19 天,点击检查活动详情