SIGIR20|LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
SIGIR20|LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
文章链接:https://dl.acm.org/doi/10.1145/3397271.3401063
代码链接:https://github.com/gusye1234/LightGCN-PyTorch
ABSTRACT
图卷积网络已经成为结合协同过滤算法的最新技术。但是,它推荐的有效性的原因还不是很明确。现有的使GCN适应推荐的工作缺乏对GCN的消融分析,GCN由于参考了卷积神经网络改造而来,所以包含许多神经网络操作。但是作者基于实验发现GCN最常见的两个设计-特征转换和非线性激活对协同过滤的性能几乎没有影响。反而增加了训练的难度,并降低性能。
作者提出一个简化GCN的模型LightGCN,只包含GCN最重要的组成部分,例如领域的聚合,多层传播。通过在用户-项目交互图上线性传播用户和项目的嵌入来学习它们,最后将所有层上学习到的用户和项目嵌入加权和算作最后的预测得分。项目NGCF性能虽然改进了很多,但是通过消融性分析,我们发现性能有所提升,最后我们进行实验对LightGCN合理性进行分析。
1 Instruction
为了减轻网络上的信息过载,推荐器系统已被广泛部署以执行个性化信息过滤。 推荐系统的核心是预测用户是否将与商品交互,例如点击,评分,购买以及其他形式的交互。 因此,专注于利用过去的用户项目交互来实现预测的协作过滤(CF)仍然是实现有效个性化推荐的一项基本方法。 CF的最常见范例是学习表示用户和商品的潜在特征(也称为嵌入),并基于嵌入矢量进行预测。 矩阵分解是一种早期的模型,它直接将用户的单个ID投影到她的嵌入中。 后来,一些研究发现,使用用户交互历史作为输入来增加用户ID可以提高嵌入质量。 例如,SVD ++ 演示了用户交互历史记录在预测用户数字评分方面的好处,而神经注意力项目相似度(NAIS)则在交互历史记录中区分了项目的重要性,并显示了预测项目排名方面的改进。 鉴于用户项交互图,这些改进可以看作来自使用用户的子图结构(更具体地说,是她的单跳邻居)来改进嵌入学习。 为了加深与高跳邻居的子图结构的使用,Wang等人。 最近提出了NGCF,并实现了CF的最新性能。 它从图卷积网络(GCN)[14,23]得到启发,传播的方法包括特征变换,邻域聚合和非线性激活。
我们基于实验提出的LightGCN表明特征变换和非线性激活对协同过滤的有效性没有积极影响。
•我们提出了LightGCN,通过仅在GCN中包含最重要的组件以供推荐,从而大大简化了模型设计。
•我们通过遵循相同的设置,以经验将LightGCN与NGCF进行比较,并展示出实质性的改进。 从技术和经验角度对LightGCN的合理性进行了深入分析。
2 Preliminaries
2.1 NGCF简介
我们在将用户和项目从ID嵌入成向量后,然后利用用户-项目二部图来进行传播,传播算法如下:
eu(k+1)=σ(W1eu(k)+∑i∈Nu1∣Nu∣∣Ni∣(W1ei(k)+W2(ei(k)⊙eu(k))))ei(k+1)=σ(W1ei(k)+∑i∈Ni1∣Nu∣∣Ni∣(W1eu(k)+W2(eu(k)⊙ei(k))))e^{(k+1)}_u = \sigma(W_1e_u^{(k)} + \sum_{i \in N_u}\frac{1}{\sqrt{|N_u||N_i|}}(W_1e_i^{(k)}+W_2(e_i^{(k)}⊙ e_u^{(k)})))\\ e^{(k+1)}_i = \sigma(W_1e_i^{(k)} + \sum_{i \in N_i}\frac{1}{\sqrt{|N_u||N_i|}}(W_1e_u^{(k)}+W_2(e_u^{(k)}⊙ e_i^{(k)}))) eu(k+1)=σ(W1eu(k)+i∈Nu∑∣Nu∣∣Ni∣1(W1ei(k)+W2(ei(k)⊙eu(k))))ei(k+1)=σ(W1ei(k)+i∈Ni∑∣Nu∣∣Ni∣1(W1eu(k)+W2(eu(k)⊙ei(k))))
其中eu(k)e^{(k)} _ueu(k) 和 ei(k)e^{(k)} _iei(k) 分别表示用户u的嵌入和项目i的嵌入,k表示传播的层数,σ\sigmaσ表示非线性激活函数,NiN_iNi 表示与用户u交互的邻居项目i,W1W_1W1和W2W_2W2 是训练的权重矩阵。
2.2 NGCF的实验探索
- NGCF-f,它删除了特征转换矩阵W1和W2。
- NGCF-n,它消除了非线性激活函数σ。
- NGCF-fn,它删除了两个特征转换矩阵和非线性激活函数。
可以看到NGCF-fn的召回率和loss都有明显改善。所以通过准备阶段的实验研究,我们发现特征转换矩阵和非线性激活函数对我们的结果影响不大,反而性能还有所下降,于是下面提出我们的模型LightGCN。
3 Method
本节中,我们首先介绍我们设计的轻图卷积网络(LightGCN)模型,如图2所示。然后,我们对LightGCN进行深入分析,以显示其简单设计背后的合理性。 最后,我们描述了如何进行模型训练以进行推荐。
3.1 LightGCN
GCN的基本思想是通过平滑图上的特征来学习节点的表示。 为了实现这一点,它迭代地执行图卷积,即,将邻居的特征聚合为目标节点的新表示。 这种邻域聚合可以抽象为:
eu(k+1)=AGG(eu(k),ei(k):i∈Nu)e^{(k+1)}_ u = AGG(e^{(k)}_ u , {e^{(k)}_ i : i ∈ N_u }) eu(k+1)=AGG(eu(k),ei(k):i∈Nu)
AGG是一个聚合函数(图形卷积的核心),它考虑了目标节点及其邻居节点的第k层表示形式。 例如GIN 中的加权和聚合器,GraphSAGE 中的LSTM聚合器和BGNN 中的双线性交互聚合器等。但是,大多数都具有转换或非线性激活的功能。 具有AGG功能。 尽管它们在具有语义输入功能的节点或图分类任务上表现良好,但是它们对于协作过滤可能很繁琐。
3.1.1 Light Graph Convolution
在LightGCN中,我们采用简单的加权和聚合器,而不使用特征变换和非线性激活。 LightGCN中的图卷积运算定义为:
eu(k+1)=∑i∈Nu1∣Nu∣∣Ni∣ei(k)ei(k+1)=∑u∈Ni1∣Nu∣∣Ni∣eu(k)e^{(k+1)}_u =\sum_{i \in N_u}\frac{1}{\sqrt{|N_u||N_i|}} e^{(k)}_i\\ e^{(k+1)}_i =\sum_{u \in N_i}\frac{1}{\sqrt{|N_u||N_i|}} e^{(k)}_u eu(k+1)=i∈Nu∑∣Nu∣∣Ni∣1ei(k)ei(k+1)=u∈Ni∑∣Nu∣∣Ni∣1eu(k)
3.1.2 层组合和模型预测
eu=∑k=0Kαkeu(k);ei=∑k=0Kαkei(k)e_u = \sum^K_{k=0} α_ke^{(k)}_u ; \\ ei = \sum^K_{k=0} α_ke^{(k)}_i eu=k=0∑Kαkeu(k);ei=k=0∑Kαkei(k)
其中,αk≥0表示第k层嵌入在构成最终嵌入中的重要性。 可以将其视为要手动调整的超参数,也可以将其视为要自动优化的模型参数。 在我们的实验中,我们发现将αk统一设置为1 /(K +1)通常可获得良好的性能。 因此,我们无需设计特殊组件来优化αk,从而避免不必要地使LightGCN复杂化并保持其简单性。 我们执行图层组合以获得最终表示的原因有三点。 (1)随着层数的增加,嵌入会变得更加平滑[27]。 因此,仅使用最后一层是有问题的。 (2)不同层的嵌入具有不同的语义。 例如,第一层对具有交互作用的用户和项目强制执行平滑操作,第二层对在交互的项(用户)上重叠的用户(项目)进行平滑操作,更高的层则捕获较高级别的邻近度。 因此,将它们结合起来将使表示更加全面。 (3)将不同层的嵌入与加权和结合起来,可以捕获图卷积和自连接的效果,。
模型预测被定义为用户和项目最终表示的得分:
y^ui=euTei,\hat{y}_{ui} = e^T _u e_i , y^ui=euTei,
3.1.3 矩阵形式
将用户与项目i交互矩阵R,其中RuiR_{ui}Rui 为1表示u与i交互,反之为0。我们将领接矩阵表示为:
A=(0RRT0)A=\begin{pmatrix} 0 & R\\ R^T & 0 \end{pmatrix} A=(0RTR0)
E=α0E(0)+α1E(1)+α2E(2)+...+αKE(K)=α0E(0)+α1˜AE(0)+α2˜A2E(0)+...+αK˜AE(0)E = α_0E(0) + α_1E(1) + α_2E(2) + ... + α_KE(K)\\ = α_0E(0) + α_1 ˜AE(0) + α_2 ˜A 2 E(0) + ... + α_K ˜A E(0) E=α0E(0)+α1E(1)+α2E(2)+...+αKE(K)=α0E(0)+α1˜AE(0)+α2˜A2E(0)+...+αK˜AE(0)
其中A~=D−12AD−12\widetilde{A}= D^{-\frac{1} {2}} AD^{-\frac{1} {2}}A=D−21AD−21是对称归一化矩阵,α\alphaα 是学习层组合系数。
3.2 模型训练
我们采用BPR作为损失函数训练模型:
LBPR=−∑u=1M∑i∈Nu∑j∉Nulnσ(y^ui−y^uj)+λ∣∣E(0)∣∣2L_{BPR} = − \sum^M_{u=1}\sum_{i\in N_u}\sum_{j \notin N_u} lnσ( \hat{y}_{ui} − \hat{y}_{uj} ) + λ||E(0) ||2 LBPR=−u=1∑Mi∈Nu∑j∈/Nu∑lnσ(y^ui−y^uj)+λ∣∣E(0)∣∣2
其中λ控制L2正则化强度。我们用Adam优化并且小批量方法。
4 实验
SIGIR20|LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation相关推荐
- 论文阅读:LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
论文阅读:LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation paper:https:// ...
- LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation【论文阅读笔记】
文章目录 1.文章为了解决什么问题? 2.文章提出了什么方法? 3.模型架构以及原理? 4.模型有效性分析 5.改进的效果如何以及比较的对象 6.future work 这篇论文提出了LightGCN ...
- LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation 论文笔记
目录 1.简介 1.1 背景介绍 1.2 摘要 1.3 主要贡献 2. 准备工作 2.1 NGCF 2.2 对NGCF的实证探索 3. LightGCN模型 3.1 Light Graph Convo ...
- 【推荐算法论文阅读】LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
这篇文章是基于NGCF提出的改进,NGCF相关的工作参考[推荐算法论文阅读]Neural Graph Collaborative Filtering 一.背景 通过严格的对照实验(在相同的数据集和评估 ...
- 卷积-CNN-GCN-LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation论文笔记
参考博客:https://www.zhihu.com/question/54504471/answer/332657604 1. 卷积 连续: ( f ∗ g ) ( n ) = ∫ − ∞ + ∞ ...
- 2020-SIGIR- Lightgcn: Simplifying and powering graph convolution network for recommendation
LightGCN 当前RS中的GCN工作没有进行彻底的消融实验,本文实验发现GCN的两项设计**[特征转化]和[非线性激活函数]**不适用于协调过滤.提出了LightGCN,只使用了GCN的邻居聚合, ...
- 行人轨迹论文阅读SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction
SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction SSAGCN: ...
- 论文翻译 SGCN:Sparse Graph Convolution Network for Pedestrian Trajectory Prediction 用于行人轨迹预测的稀疏图卷积网络
SGCN:Sparse Graph Convolution Network for Pedestrian Trajectory Prediction 用于行人轨迹预测的稀疏图卷积网络 行人轨迹预测是自 ...
- Graph convolution network with similarity awareness and adaptive calibration...MIA,2020.
Song X, Zhou F, Frangi A F, et al. Graph convolution network with similarity awareness and adaptive ...
最新文章
- 【OpenCV 4开发详解】图像连通域分析
- 深度学习核心技术精讲100篇(二十三)-深度学习系列计算广告与推荐系统有哪些区别?使用的主流模型有哪些?
- HTML 5 视频,音频
- 春风十里不如春城一聚:华平解决方案巡展走进昆明
- 杭电考研计算机专业课_杭州电子科技大学计算机考研专业课平均分76.03,国家线复试是这个原因!...
- python中mean算函数吗_Python numpy.mean函数方法的使用
- 如何设置cout的输出格式(转)
- 【渝粤教育】广东开放大学 商务交际听说 形成性考核 (31)
- socket怎么同时监听两个端口_三十岁了,我同时爱上两个男人,我现在不知道怎么办...
- mysql几搜索引擎_详细介绍基于MySQL的搜索引擎MySQL-Fullltext
- 系统架构设计-计算机组成与体系结构
- chrome最新版本下载
- Onenote实现OCR识别图片
- OAuth2.0公钥私钥授权技术
- 新的服务器装系统前怎么分区吗,新硬盘使用之前要如何分区?硬盘分区常用方法详解...
- java 微信分享朋友圈 链接显示图片_【微信开发】-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)...
- 自己实现Lock(独享锁)
- Ardunio下实现STM32的串口通信及其与Stduino的区别
- Python Diary - Day 4 运算符
- 百问网物联网实战-STM32中断