推荐系统中的常用算法——基于Graph Embedding的GES和EGES

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} W表示item或者side information的embedding矩阵,其中, W v 0 \mathbf{W}_v^0 Wv0表示item v v v的embedding, W v s \mathbf{W}_v^s Wvs表示第 s s s个side information,item v v v共有 n n n个side information,则对于item v v v共有 n + 1 n+1 n+1个向量:

W v 0 , ⋯   , W v n ∈ R d \mathbf{W}_v^0,\cdots ,\mathbf{W}_v^n\in \mathbb{R}^d Wv0,WvnRd

其中, d d d为embedding的维度。

对于item v v v,使用average-pooling将这 n + 1 n+1 n+1个向量聚合起来,得到item v v v的向量表示:

H v = 1 n + 1 ∑ s = 0 n W v s \mathbf{H}_v=\frac{1}{n+1}\sum_{s=0}^{n}\mathbf{W}_v^s Hv=n+11s=0nWvs

2.3. EGES算法

EGES算法全称为Enhanced Graph Embedding with Side Information,从其名字来看便可以知道,EGES是GES的增强版。在GES中,每一个向量,包括一个item的向量以及 n n n个side information的向量,这些向量的权重是一样的。从实际的情况来看,不同种类的side information对于最终的embedding的贡献是不一样的。因此EGES对GES中的向量做了加权的操作。

假设对于item v v v,权重矩阵为 A ∈ R ∣ V ∣ × ( n + 1 ) \mathbf{A}\in\mathbb{R}^{\left | V \right |\times \left ( n+1 \right )} ARV×(n+1),其中, A i j \mathbf{A}_{ij} Aij表示第 i i i个item的第 j j j个side information的权重,为简单,记 a i j a_i^j aij A i j \mathbf{A}_{ij} Aij A i 0 \mathbf{A}_{i0} Ai0表示的是item i i i本身向量的权重,记为 a i 0 a_i^0 ai0

对于item v v v,加权平均后的结果为:

H v = ∑ j = 0 n e a v j W v j ∑ j = 0 n e a v j \mathbf{H}_v=\frac{\sum _{j=0}^ne^{a_v^j}\mathbf{W}_v^j}{\sum _{j=0}^ne^{a_v^j}} Hv=j=0neavjj=0neavjWvj

其中,使用 e a v j e^{a_v^j} eavj而不是 a v j a_v^j avj是为了保证权重大于0。

2.4. GES和EGES的模型结构

GES和EGES的模型结构如下图所示:

在这里插入图片描述
其中,Dense Embeddings表示的是item向量以及 n n n个side information的向量。Hidden Representation即为如上公式中的 H v \mathbf{H}_v Hv。从上述过程来看,GES即为EGES模型的简化版本,即权重都为 1 n + 1 \frac{1}{n+1} n+11

2.5. EGES中item向量的求解

EGES算法的流程如下图所示:

在这里插入图片描述
从EGES算法的流程中,笔者发现,其与DeepWalk的流程基本一致,不同的主要是两点:1)学习的参数不同,在DeepWalk中主要是item的向量表示,在EGES中不仅要学习item的向量 W 0 \mathbf{W}^0 W0 n n n个side information的向量 W 1 , ⋯ W n \mathbf{W}^1,\cdots \mathbf{W}^n W1,Wn,还包括权重的矩阵 A \mathbf{A} 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模型中,每个词的向量维度为 d d d,在词典 V V V中,中心词 w c w_c wc的词向量为 v c ∈ R d v_c\in \mathbb{R}^d vcRd,背景词 w o w_o wo的词向量为 u o ∈ R d u_o\in \mathbb{R}^d uoRd。给定中心词生成背景词的条件概率可以通过对向量内积做softmax运算而得到:

P ( w o ∣ w c ) = e x p ( u o T v c ) ∑ i ∈ V e x p ( u i T v c ) P\left ( w_o\mid w_c \right )=\frac{exp\left ( u_o^Tv_c \right )}{\sum _{i\in V}exp\left ( u_i^Tv_c \right )} P(wowc)=iVexp(uiTvc)exp(uoTvc)

此时,对于整个文本可以得到如下的概率形式:

∏ t = 1 T ∏ − m ⩽ j ⩽ m , j ≠ 0 P ( w ( t + j ) ∣ w ( t ) ) \prod_{t=1}^{T}\prod _{-m\leqslant j\leqslant m,j\neq 0}P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right ) t=1Tmjm,j=0P(w(t+j)w(t))

语言模型中的目标是要使得上述的概率最大,通过log似然,可以得到如下的损失函数:

− ∏ t = 1 T ∏ − m ⩽ j ⩽ m , j ≠ 0 l o g    P ( w ( t + j ) ∣ w ( t ) ) -\prod_{t=1}^{T}\prod _{-m\leqslant j\leqslant m,j\neq 0}log\; P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right ) t=1Tmjm,j=0logP(w(t+j)w(t))

对于 l o g    P ( w o ∣ w c ) log\; P\left ( w_o\mid w_c \right ) logP(wowc),有:

l o g    P ( w o ∣ w c ) = u o T v c − l o g ( ∑ i ∈ V e x p ( u i T v c ) ) log\; P\left ( w_o\mid w_c \right )=u_o^Tv_c-log\left ( \sum _{i\in V}exp\left ( u_i^Tv_c \right ) \right ) logP(wowc)=uoTvclog(iVexp(uiTvc))

为了能够对其中的参数求解,可以使用梯度下降法求解,此时需要对损失函数求导,以 ∂ l o g    P ( w o ∣ w c ) ∂ v c \frac{\partial log\; P\left ( w_o\mid w_c \right )}{\partial v_c} vclogP(wowc)为例:

∂ l o g    P ( w o ∣ w c ) ∂ v c = u o − ∑ j ∈ V P ( w j ∣ w c ) ⋅ u j \frac{\partial log\; P\left ( w_o\mid w_c \right )}{\partial v_c}=u_o-\sum _{j\in V}P\left ( w_j\mid w_c \right )\cdot u_j vclogP(wowc)=uojVP(wjwc)uj

从上述的公式发现,每次的求导数的过程中,都需要对整个词典中的词计算,如果词典较大,那么每次更新时的计算成本就比较大,为降低计算成本,近似的训练方法被提出,负采样(Negative Sampling)便是其中的一种近似计算方法。

对于上述给定的中心词 w c w_c wc,给定一个背景窗口,假设背景词 w o w_o wo出现在 w c w_c wc的背景窗口中的事件概率为:

P ( D = 1 ∣ w c , w o ) = σ ( u o T v c ) P\left ( D=1\mid w_c,w_o \right )=\sigma \left ( u_o^Tv_c \right ) P(D=1wc,wo)=σ(uoTvc)

对于给定的长度为 T T T的文本,假设时间步 t t t的词为 w ( t ) w^{\left ( t \right )} w(t)且背景窗口大小为 m m m,此时联合概率为:

∏ t = 1 T ∏ − m ⩽ j ⩽ m , j ≠ 0 P ( D = 1 ∣ w ( t ) , w ( t + j ) ) \prod_{t=1}^{T}\prod _{-m\leqslant j\leqslant m,j\neq 0}P\left ( D=1\mid w^{\left ( t \right )},w^{\left ( t+j \right )} \right ) t=1Tmjm,j=0P(D=1w(t),w(t+j))

此时模型中仅考虑了正样本,通过采样 K K K个未出现在该背景窗口中的词,此时的联合概率为:

∏ t = 1 T ∏ − m ⩽ j ⩽ m , j ≠ 0 P ( w ( t + j ) ∣ w ( t ) ) \prod_{t=1}^{T}\prod _{-m\leqslant j\leqslant m,j\neq 0}P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right ) t=1Tmjm,j=0P(w(t+j)w(t))

其中, P ( w ( t + j ) ∣ w ( t ) ) P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right ) P(w(t+j)w(t))可以表示为:

P ( w ( t + j ) ∣ w ( t ) ) = P ( D = 1 ∣ w ( t ) , w ( t + j ) ) ⋅ ∏ k = 1 K P ( D = 0 ∣ w ( t ) , w k ) P\left ( w^{\left ( t+j \right )}\mid w^{\left ( t \right )} \right )=P\left ( D=1\mid w^{\left ( t \right )},w^{\left ( t+j \right )} \right )\cdot \prod_{k=1}^{K}P\left ( D=0\mid w^{\left ( t \right )},w_k \right ) P(w(t+j)w(t))=P(D=1w(t),w(t+j))k=1KP(D=0w(t),wk)

可以验证,此时计算不再与词典大小相关,而是与负采样的参数 K K K相关,以上便是Skip-Gram模型以及负采样的相关内容。

对于采样到的样本 u u u,其对应的向量为 Z u \mathbf{Z}_u Zu,由上述的理论可以得到:

L ( v , u , y ) = − [ y l o g ( σ ( H v T Z u ) ) + ( 1 − y ) l o g ( 1 − σ ( H v T Z u ) ) ] \mathfrak{L}\left ( v,u,y \right )=-\left [ ylog\left ( \sigma \left ( \mathbf{H}_v^T\mathbf{Z}_u \right ) \right )+\left ( 1-y \right )log\left ( 1-\sigma \left ( \mathbf{H}_v^T\mathbf{Z}_u \right ) \right ) \right ] L(v,u,y)=[ylog(σ(HvTZu))+(1y)log(1σ(HvTZu))]

可以得到如下的导数:

∂ L ∂ Z u = ( σ ( H v T Z u ) − y ) H v \frac{\partial \mathfrak{L}}{\partial \mathbf{Z}_u}=\left ( \sigma \left ( \mathbf{H}_v^T\mathbf{Z}_u \right )-y \right )\mathbf{H}_v ZuL=(σ(HvTZu)y)Hv

∂ L ∂ a v s = ( σ ( H v T Z u ) − y ) Z u ( ∑ j = 0 n e a v j ) e a v s W v s − e a v s ∑ j = 0 n e a v j W v j ( ∑ j = 0 n e a v j ) 2 \frac{\partial \mathfrak{L}}{\partial a_v^s}=\left ( \sigma \left ( \mathbf{H}_v^T\mathbf{Z}_u \right )-y \right )\mathbf{Z}_u\frac{\left ( \sum_{j=0}^{n}e^{a_v^j} \right )e^{a_v^s}\mathbf{W}_v^s-e^{a_v^s}\sum_{j=0}^{n}e^{a_v^j}\mathbf{W}_v^j}{\left ( \sum_{j=0}^{n}e^{a_v^j} \right )^2} avsL=(σ(HvTZu)y)Zu(j=0neavj)2(j=0neavj)eavsWvseavsj=0neavjWvj

∂ L ∂ W v s = e a v s ∑ j = 0 n e a v j ( σ ( H v T Z u ) − y ) Z u \frac{\partial \mathfrak{L}}{\partial \mathbf{W}_v^s}=\frac{e^{a_v^s}}{\sum_{j=0}^{n}e^{a_v^j}}\left ( \sigma \left ( \mathbf{H}_v^T\mathbf{Z}_u \right )-y \right )\mathbf{Z}_u WvsL=j=0neavjeavs(σ(HvTZu)y)Zu

参考文献

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电子科大《图嵌入推荐系统技术》综述论文,64页pdf422篇文献阐述图嵌入推荐技术进展 推荐系统是一种缓解信息超载问题的关键工具,旨在通过分析观察到的用户-商品关系,从数百万的候选商品预测出用户喜欢的商品。针对推荐系统存在的稀疏性和冷启动问题,利用侧信息和知识来挖掘隐藏的(间接的)用户-物品关系来丰富推荐的观测信息,近年来被证明是有前景的;而推荐模型在面对高度复杂和大规模的侧信息和知识时的可扩展性在很大程度上决定了推荐模型的性能。为了有效地利用复杂和大规模的数据,图嵌入技术的研究是一个重要的课题。将图嵌入技术用到推荐系统,可以大大优于传统的直接基于图拓扑分析的推荐实现,近年来得到了广泛的研究。本文从二部图、一般图和知识图谱的嵌入技术出发,系统地回顾了基于图嵌入的推荐方法,提出了基于图嵌入的推荐方法的总体设计思路。此外,将几种有代表性的基于图嵌入的推荐模型与最常用的传统推荐模型进行了仿真比较,结果表明,传统推荐模型在预测隐式用户-物品交互方面总体上优于基于图嵌入的推荐模型。揭示了基于图嵌入的推荐在这些任务的相对弱点。为了促进未来的研究,本文提出了基于图嵌入的推荐与传统推荐在不同任务的权衡,以及一些有待解决的问题。
Graph Embedding(图嵌入)和Graph Neural Network(图神经网络)是两种不同的方法用于处理图数据。 Graph Embedding是指将图数据的节点和边转化为低维向量表示的过程。它的目的是通过学习节点和边的向量表示,将图数据转化为高效且可用于机器学习算法的数值特征。Graph Embedding可以通过多种方式来实现,如DeepWalk、Node2Vec、Line等。它们通常是基于节点之间的邻近关系来学习节点的向量表示,即节点的向量表示尽可能地保留与其邻居节点的相似性。Graph Embedding可以用于图数据的聚类、相似度计算、可视化等任务。 Graph Neural Network是一种基于神经网络的模型,专门用于处理图结构化数据。GNN模型可以通过学习节点的向量表示,并利用节点之间的关系进行信息传递和更新。GNN通过定义节点的邻居节点和自身的聚合函数,将节点信息进行传递和更新。GNN的核心思想是通过多次迭代聚合节点的邻居信息,最终获取节点的全局信息。GNN可以进行节点分类、图分类、链接预测等任务。 因此,Graph EmbeddingGraph Neural Network有一些区别。Graph Embedding是一种将图数据转化为低维向量的过程,而GNN是一种通过学习图结构信息进行节点特征传递和更新的模型。Graph Embedding在表示学习上更加注重将节点和边的信息转化为向量形式,而GNN在聚合和传递信息时更加注重节点之间的相互影响。两者可以结合使用,将Graph Embedding的低维向量作为GNN的输入,进一步提高图数据的表示和处理能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值