登录
原创

LightGCN:一种轻量级的图卷积推荐框架

发布于 2020-11-27 阅读 1465
  • 人工智能
原创

LightGCN是对NGCF模型的优化,是一种轻量级的图卷积的推荐框架,下面对其原理进行具体的介绍:
假定user的初始化Embedding为 <math><semantics><mrow><msubsup><mi>e</mi><mrow><mi>u</mi></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mrow><annotation encoding="application/x-tex">e_{u}^{(0)}</annotation></semantics></math>eu(0)而item的为<math><semantics><mrow><msubsup><mi>e</mi><mrow><mi>i</mi></mrow><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msubsup></mrow><annotation encoding="application/x-tex">e_{i}^{(0)}</annotation></semantics></math>ei(0):
image.png

  • 特征转换(feature transformation,也就是加W矩阵:Wx+b)对NGCF是没什么用的,甚至是有害的
  • 非线性转换:加<math><semantics><mrow><mi>σ</mi></mrow><annotation encoding="application/x-tex">\sigma</annotation></semantics></math>σ(relu等激活函数)效果甚微,如果和特征转换一起去掉之后,NGCF效果甚至更好
  • 结论就是特征转换和非线性转换去掉之后,NGCF的效果更好,而且更容易收敛

聚合函数: 利用邻接点的表示来生成目标节点表示

image.png

这里的AGG只用了一个求邻接点的标准和(normalized sum),去掉了NGCF中的Feature Transformation和非线性转换
image.png

NGCF和LightGCN的模型对比:主要就是一个对邻接点的AGG函数的不同,而且在LGC中不添加自身节点的向量加入更新

image.png

image.png

层组合和模型预测

对于得到的K阶(层)用户向量<math><semantics><mrow><msubsup><mi>e</mi><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msubsup></mrow><annotation encoding="application/x-tex">e_u^{(k)}</annotation></semantics></math>eu(k) (物品向量),通过下述的加权和的方式完成:
image.png

文章中使用下列方式来生成<math><semantics><mrow><msub><mi>a</mi><mi>k</mi></msub></mrow><annotation encoding="application/x-tex">a_k</annotation></semantics></math>ak:

<math><semantics><mrow><msub><mi>a</mi><mi>k</mi></msub><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mo>(</mo><mi>K</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">a_k = 1/(K+1) </annotation></semantics></math>ak=1/(K+1)

最终利用下列方式得到最终评分:
image.png

从第0层开始,假设初始的矩阵为(T为Embedding size):
image.png

每一层的迭代公式:
image.png

其中D为(M+N)*(M+N)的对角矩阵(只有对角线有元素的矩阵)(由A生成的度矩阵),<math><semantics><mrow><msub><mi>D</mi><mrow><mi>i</mi><mi>i</mi></mrow></msub></mrow><annotation encoding="application/x-tex">D_{ii}</annotation></semantics></math>Dii为A的第i行不为0的元素个数,就是第i个用户/物品有几个邻居(入度)

<math><semantics><mrow><msub><mi>D</mi><mrow><mi>i</mi><mi>i</mi></mrow></msub><mo>=</mo><mo>∑</mo><mo>(</mo><mrow><msub><mi>A</mi><mrow><mi>i</mi></mrow></msub><mo>!</mo><mo>=</mo><mn>0</mn></mrow><mo>)</mo></mrow><annotation encoding="application/x-tex">D_{ii} = \sum({A_{i}!=0}) </annotation></semantics></math>Dii=(Ai!=0)

最终矩阵迭代的公式:

image.png

其中A波浪为:
image.png

上述就是LightGCN模型的基本原理,有兴趣的童鞋可以去阅读何向南教授的文章,地址如下:
论文地址

评论区

哎嘿

0

0

0

举报