LightGCN学习笔记

LightGCN

ABSTRACT

1.GCN推荐有效的原因不清楚

2.特征转换和线性激活对协同过滤性能的作用不大,更糟糕的是,包括他们增加了培训的难度,降低了推荐的效果。

作者简化了GCN的设计,lightGCN模型只包含GCN中的邻域聚合部分。具体来说,LightGCN通过在用户-物品交互图上线性传播来学习用户和物品嵌入,并使用在所有层上学习到的嵌入的加权和作为最终嵌入。这种简单、线性和整洁的模型更容易实现和训练,在完全相同的实验设置下,与最先进的基于gcn的推荐模型Neural Graph Collaborative Filtering (NGCF)相比,表现出了显著的改进(平均约16.0%的相对改进)。
LightGCN学习笔记_第1张图片

1 INTRODUCTION

为了缓解web上的信息过载,推荐系统被广泛应用,用于对信息进行个性化过滤。推荐系统的核心是预测用户是否会与某项商品进行交互,例如,点击、定价、购买等形式的交互。因此,协同过滤(CF)专注于利用过去的用户-条目交互来实现预测,仍然是实现有效个性化推荐的基本任务。

CF最常见的范例是学习潜在特征(又称嵌入)来表示一个用户和一个项目,并根据嵌入向量进行预测[6,19]。矩阵分解是早期的一个模型,它直接将用户的单个ID映射到嵌入的[26]中。随后的一些研究发现,用用户的交互历史作为输入来增强用户ID可以提高嵌入的质量。例如,SVD++[25]展示了用户交互历史在预测用户数值评级方面的好处,而NAIS[18]区分了交互历史中物品的重要性,并显示了在预测物品排名方面的改进。从用户-项交互图的角度来看,这些改进可以看作是使用用户的子图结构——更具体地说,她的单跳邻居——来提高嵌入学习。

为了深化具有高跳邻居的子图结构的使用,Wang等人最近提出了NGCF,并实现了CF的最先进性能。它从图卷积网络(Graph Convolution Network, GCN)中汲取灵感[14,23],遵循相同的传播规则来优化嵌入:特征转换、邻域聚合和非线性激活。虽然NGCF已经显示出了很好的结果,但我们认为它的设计相当沉重和繁重——许多操作都是直接从GCN继承而来的。因此,它们对CF任务并不一定有用。GCN最初用于属性图的节点分类,每个节点都有丰富的属性作为输入特征;而在CF的用户-项交互图中,每个节点(用户或项)仅由一个热门ID描述,它除了是标识符之外没有具体的语义。在这种情况下,将ID嵌入作为输入,进行多层非线性特征转换(这是现代神经网络[16]成功的关键)不会带来任何好处,反而会增加模型训练的难度。

上段理解:(作者觉得NGCF有很多的操作是继承GCN而来,对于推荐系统并不一定有用。原因在于GCN是用来做属性图的节点分类的,每个节点都会有属性,但是CF的用户项目交互图里边节点本身没有很多的属性,只有一个id。所以不仅灭有好处,还可能会增加训练难度)

作者做了大量消融实验,得出结论:从GCN继承的两个操作(特征转换和非线性激活)对NGCF的有效性没有贡献。更令人惊讶的是,删除它们可以显著提高准确性。这反映了图神经网络中添加对目标任务无用的操作的问题,不仅没有带来任何好处,而且降低了模型的有效性。作者据此提出了新模型LightGCN。包括GCN中最基本的部分邻域聚合。具体地说,在将每个用户(项)与嵌入的ID关联之后,将嵌入传播到用户-项交互图上,以改进它们。然后,将在不同传播层学到的嵌入与加权和相结合,以获得用于预测的最终嵌入。

本文的主要贡献总结如下:

  • 我们的实验表明,在GCN中,两种常见的设计,特征转换和非线性激活,对协同过滤的有效性没有积极的影响。
  • 我们推荐LightGCN,它通过只包含GCN中最重要的组件来极大地简化模型设计。
  • 我们遵循相同的设置,将LightGCN与NGCF进行了经验上的比较,并证明了显著的改进。从技术和实证两方面对LightGCN的合理性进行了深入的分析。

对论文中贡献的理解(1.写缺点 2.写改进 3.写证明)

2 PRELIMINARIES

首先介绍具有代表性的GCN模型NGCF[39]。然后我们对NGCF进行消融研究,以判断每次手术对NGCF的有效性。本节的新贡献是表明在GCNs中两种常见的设计,特征转换和非线性激活,对协同过滤没有积极的影响。

2.1 NGCF Brief

在初始步骤中,每个用户和项目都与嵌入的ID相关联。设e(0)u表示用户u的ID嵌入,e(0)i表示item的ID嵌入。然后NGCF利用用户项交互图来传播嵌入:

LightGCN学习笔记_第2张图片

(NGCF参数介绍)

NGCF继承了很多的GCN的东西,包括非线性激活函数σ(·)以及特征变换矩阵w1和w2。然而,我们认为这两种操作对于协同过滤没有那么有用。在半监督节点分类中,每个节点作为输入具有丰富的语义特征,如论文的标题和摘要词。因此,进行多层非线性变换有利于特征学习。然而,在协同过滤中,每个用户项目交互图节点只有一个ID作为输入,没有具体的语义。在这种情况下,执行多个非线性变换将无助于学习更好的特征;更糟糕的是,它会增加训练的难度。(也就是说节点没有具体语义,特征转换学不到特征,反而整复杂了。)

2.2 Empirical Explorations on NGCF(实证探索)

作者对NGCF进行了消融研究,实验基本与NGCF做的实验一样,不一样的为将最终嵌入方式由拼接改成了求和,即

eu=e(0)u∥···∥e(L)u改成了eu=e(0)u+···+e(L)u 但是这一改动对NGCF性能影响不大,但却使后续消融研究更能说明GCN改进的嵌入质量。改变的原因在于 GCN的核心是通过传播来细化嵌入,所以我们对相同嵌入尺寸下的嵌入质量更感兴趣。

实现了NGCF的三个简化版本:

  • NGCF-f,它删除了特征转换矩阵W1和dW2。
  • NGCF-n,去掉了非线性激活函数σ。
  • NGCF-fn,它去掉了特征转换矩阵和非线性激活函数。

结论:去除特征转换矩阵改进较大,消除非线性激活函数对精度影响不大,但是在两者都去除时性能显著提高,说明去除非线性激活函数在除去特征转换矩阵时效果明显。

1)在NGCF模型和NGCF-n模型中,加入特征转换对NGCF有负面影响,去掉特征转换后,NGCF的性能显著提高;

(2)加入非线性激活对特征转换的影响较小,而不加入非线性激活对特征转换的影响较小。

(3)总的来说,特征转化和非线性激活对NGCF的影响比较负面,同时去除特征转化和非线性激活后,NGCF-fn比NGCF有较大的提高(召回相对提高9.57%)。

实验结果如下表1所示

LightGCN学习笔记_第3张图片

为了更深入地了解表1中得到的分数,并理解这两种操作导致NGCF恶化的原因,我们在图1中绘制了训练损失和testing recall的模型状态曲线。可以看出,在整个训练过程中,NGCF-fn比NGCF、NGCF-f、NGCF-n的训练损失要小得多。结合测试召回率曲线,我们发现这种较低的训练损失成功地转化为较好的推荐准确性。NGCF与NGCF-f的对比表现出相似的趋势,只是改善幅度较小。

LightGCN学习笔记_第4张图片

根据这些证据,我们可以得出结论,NGCF的恶化是由于训练困难,而不是过度拟合。从理论上讲,NGCF比NGCF-f具有更高的表示能力,因为将权矩阵W1W2设为单位矩阵I 就可以完全恢复NGCF-f模型。然而,在实际应用中,NGCF的训练损耗和泛化性能比NGCF-f差。非线性激活的引入进一步加剧了表示能力与泛化性能之间的差异。为了完善这一节,我们主张在设计推荐模型时,进行严格的消融研究以明确每个操作的影响是很重要的。否则,包含较少有用的操作将使模型不必要地复杂化,增加训练难度,甚至降低模型的有效性。

3.LightGCN

在本节中,我们首先展示我们设计的LightGCN模型,如图2所示。然后,我们对LightGCN进行了深入分析,以展示其简单设计背后的合理性。最后,介绍了如何进行模型推荐训练。

3.1 LightGCN

GCN的基本思想是通过平滑图上的特征来学习节点的表示[23,40]。为了实现这一点,它迭代地执行图卷积,即将邻居的特征聚合为目标节点的新表示。这样的邻居聚合可以抽象为:
e u ( k + 1 ) = A G G ( e ( k ) u , { e i ( K ) : i ∈ N u } ) ( 2 ) e^{(k+1)}_u=AGG(e{(k)}_u,\{e^{(K)}_i:i∈Nu\})\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(2) eu(k+1)=AGG(e(k)u,{ei(K):iNu})(2)
AGG是一个聚合函数(图卷积层的核心),他考虑第k层对目标节点及其邻居节点的表示。很多工作已经指定了AGG,如GIN[42]中的加权和聚合器, GraphSAGE[14]中的LSTM聚合器,BGNN[47]中的双线性交互聚合器等。然而,大部分工作都将特征变换或非线性激活与AGG函数联系起来。尽管它们在具有语义输入特性的节点或图分类任务上表现良好,但对于协同过滤来说,它们可能是繁重的.

3.1.1Light Graph Convolution (LGC).

在LightGCN中,我们采用简单的加权和聚合器,放弃了特征变换和非线性激活的使用。LightGCN中的图卷积操作(又称传播规则[39])定义为:
e u ( k + 1 ) = ∑ i ∈ N u 1 ∣ N u ∣ ∣ N i ∣ e i ( k ) ( 3 ) e^{(k+1)}_u=\sum_{i∈N_u}{\frac{1}{\sqrt{|N_u|}\sqrt{|N_i|}}e_i^{(k)}}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(3) eu(k+1)=iNuNu Ni 1ei(k)(3)

e i ( k + 1 ) = ∑ i ∈ N i 1 ∣ N i ∣ ∣ N u ∣ e u ( k ) ( 3 ) e^{(k+1)}_i=\sum_{i∈N_i}{\frac{1}{\sqrt{|N_i|}\sqrt{|N_u|}}e_u^{(k)}}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(3) ei(k+1)=iNiNi Nu 1eu(k)(3)

对称归一项 1 ∣ N u ∣ ∣ N i ∣ \frac{1}{\sqrt{|N_u|}\sqrt{|N_i|}} Nu Ni 1遵循标准GCN[23]的设计,可以避免嵌入规模随着图卷积运算的增加而增加;这里也可以应用其他选择,如L1范数,而经验上我们发现这种对称归一化的性能较好。

值得注意的是,在LGC中,我们只聚合已连接的邻居,而不集成目标节点本身(即,self-connection)。 这不同于大多数现有的图数据卷积操作,这些操作通常会聚集扩展的邻域,并且需要专门处理自连接。我们在下一小节中介绍的层组合操作本质上捕获了与自连接相同的效果。因此,LGC中不需要包含自连接。
(LGC去除了单独处理自连接的操作,作者认为层组合操作中包含了捕获与自连接相同的效果)

3.1.2Layer Combination and Model Prediction.(层组合及模型预测)

在LightGCN中,唯一可训练的模型参数是在第0层的嵌入,即所有用户的 e u ( 0 ) e^{(0)}_u eu(0)和所有项目的 e i ( 0 ) e^{(0)}_i ei(0)。当给出后,可以通过公式(3)(3.1.1中的两个公式)中定义的LGC计算更高层次的嵌入。在K层LGC之后,我们进一步合并每一层获得的嵌入,形成一个用户(一项)的最终表示。
e u = ∑ k = 0 K a k e u ( k ) ; e i = ∑ k = 0 K a k e i ( k ) ; ( 4 ) e_u=\sum_{k=0}^{K}a_ke_u^{(k)};e_i=\sum_{k=0}^{K}a_ke_i^{(k)};\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(4) eu=k=0Kakeu(k);ei=k=0Kakei(k);(4)
其中 a k ≥ 0 a_k\geq0 ak0表示第k层嵌入构成最终嵌入的重要性。它可以被当作一个超参数来手动调整,或者作为一个模型参数(例如,注意网络[3]的输出)来自动优化。在我们的实验中,我们发现将 a k a_k ak均匀地设为 1 k + 1 \frac{1}{k+1} k+11可以得到良好的性能。因此,我们没有设计特殊的组件来优化 a k a_k ak,以避免不必要的复杂化,并保持其简单性。我们执行层组合以获得最终表示的原因有三。

  1. 随着层数的增加,嵌入会被过度平滑[27]。因此,仅仅使用最后一层是有问题的。
  2. 不同层次的嵌入捕获不同的语义。例如,第一层强制平滑具有交互作用的用户和物品,第二层平滑与交互物品(用户)重叠的用户(物品),而更高的层捕获更高阶的接近度[39]。因此,将它们结合起来,将使表现更加全面。
  3. 将不同层的嵌入与加权和相结合,捕捉到带有自连接的图卷积的效果,这是GCNs中的一个重要技巧(证明见第3.2.1节)。

模型预测定义为用户与项目最终表示的内积作为推荐生成的排名分数:
y ^ u i = e u T e i ( 5 ) \hat{y}_{ui}=e^T_ue_i \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(5) y^ui=euTei(5)

3.1.3 Matrix Form 矩阵形式

我们提供了LightGCN的矩阵形式,以方便与现有模型的实现和讨论。设用户-物品交互矩阵 R ∈ R M ✖ N R∈R^{M✖N} RRMN,其中M和N分别表示用户和物品的数量,如果u与物品i交互,则每个条目 R u i R_{ui} Rui为1,否则为0。然后得到用户-项目图的邻接矩阵为:
A = ( 0 R R T 0 ) ( 6 ) A=\begin{pmatrix} 0 & R\\ R^T & 0 \end{pmatrix}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(6) A=(0RTR0)(6)
设第0层嵌入矩阵E(0)∈R(M+N)×T E ( 0 ) ∈ R ( M + N ) × ( M + N ) E^{(0)}∈R^{(M+N)×(M+N)} E(0)R(M+N)×(M+N),其中T为嵌入大小。则可得到LGC的矩阵等价形式为:
E ( k + 1 ) = ( D − 1 2 A D − 1 2 ) E ( k ) ( 7 ) E^{(k+1)}=(D^{-\frac{1}{2}}AD^{-\frac{1}{2}})E^{(k)}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(7) E(k+1)=(D21AD21)E(k)(7)
其中D是一个( M + N ) × ( M + N )的对角矩阵,其中每个元素 D i i D_{ii} Dii表示邻接矩阵A 的第i行向量中非零项的个数(也称为度矩阵)。最后,我们得到最终用于模型预测的嵌入矩阵为:
在这里插入图片描述

其中 A ~ = ( D − 1 2 A D − 1 2 ) \tilde{A}=(D^{-\frac{1}{2}}AD^{-\frac{1}{2}}) A~=(D21AD21)

3.2Model Analysis(模型分析)

我们通过模型分析来论证LightGCN简单设计背后的合理性。首先我们讨论了与简化GCN (SGCN)[40]的连接,这是一种将自连接集成到图卷积的线性GCN模型;这一分析表明,通过进行层组合,LightGCN将自连接的影响纳入其中,因此不需要在邻接矩阵中添加自连接。然后我们讨论了与近似个性化传播神经预测(APPNP)[24]的关系,这是最近的GCN变种,解决了过度光滑的灵感来自个性化PageRank [15];该分析显示了LightGCN和APPNP之间的潜在等价性,因此我们的LightGCN在远程传播和可控超平滑方面具有相同的优势。最后,我们分析了第二层LGC,展示了它如何平滑用户与其二级邻居,提供了对LightGCN工作机制的更多了解。

3.2.1与SGCN的关系

作者论证了GCN用于节点分类的不必要的复杂性,并提出了SGCN,它通过去除非线性和将权矩阵压缩为一个权矩阵来简化GCN。SGCN中的图卷积定义为:
E ( k + 1 ) = ( D + I ) − 1 2 ( A + I ) ( D + I ) − 1 2 E ( k ) ( 9 ) E^{(k+1)}=(D+I)^{-\frac{1}{2}}(A+I)(D+I)^{-\frac{1}{2}}E^{(k)}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(9) E(k+1)=(D+I)21(A+I)(D+I)21E(k)(9)
其中, I I I是一个单位矩阵,他向A上添加了自连接。在下面的分析中,为了简单起见,我们省略 ( D + I ) − 1 2 (D+I)^{-\frac{1}{2}} (D+I)21项,因为它们只是重新缩放嵌入。在SGCN中,将最后一层得到的embeddings用于下游预测任务,可以表示为:

在这里插入图片描述

上面的推导表明,A中插入自连接并在其上传播嵌入,本质上相当于在每个LGC层上传播嵌入的加权和。

3.2.2 Relation with APPNP.(与APPNP的关系)

在最近的一篇文章[24]中,作者将GCN与个性化的PageRank[15]联系起来,并由此提出了一种名为APPNP的GCN变体,它可以长期传播,而不会有过平滑的风险。受个性化PageRank中转移设计的启发,APPNP用初始特征(即,第0层嵌入)补充每个传播层,这样能平衡局部性保护的需要(即,保持接近于根节点,以减轻过平滑),并利用来自大型社区的信息。APPNP中的传播层定义为:
E ( k + 1 ) = β E ( 0 ) + ( 1 − β ) A ~ E ( 0 ) ( 11 ) E^{(k+1)}=\beta E^{(0)}+(1-\beta) \tilde AE^{(0)}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(11) E(k+1)=βE(0)+(1β)A~E(0)(11)
其中 β \beta β是控制传播过程中起始特征保留的转移概率, A ~ \tilde A A~是归一化邻接矩阵表示,在APPNP中最后一层用于最终预测,即:

LightGCN学习笔记_第5张图片

由式(8)可知,通过相应设置 a k a_k ak, LightGCN可以完全恢复APPNP使用的预测嵌入。因此,LightGCN利用了APPNP在对抗过度平滑方面的优势——通过正确设置α,们就可以在可控的过平滑下使用较大的K KK进行远距建模。

APPNP在邻接矩阵中加入了自连接,在之前已经提到:采用不同层的加权和可以代替这个操作。

3.2.3 Second-Order Embedding Smoothness.(二阶嵌入平滑)

由于LightGCN的线性和简单性,我们可以更深入地了解它是如何平滑嵌入的。这里我们通过分析一个2层的LightGCN来论证它的合理性。以用户端为例,直观地说,第二层平滑了在交互项目上有重叠的用户。更具体地说,我们有:
在这里插入图片描述

我们可以看到,如果另一个用户v与目标用户u共同交互,则v对u的平滑强度用系数来衡量(否则为0):

在这里插入图片描述

这个系数是可以解释的:二阶邻居v对u的影响如下:
1)共交互项目数越多,影响越大;
2)交互项目的受欢迎程度越低(即交互物品的受欢迎程度越低,更能体现用户个性化偏好)影响越大;
3)v的活跃度,活跃度越低,影响越大。
这种可解释性很好地满足了CF在度量用户相似性时的假设,并证明了LightGCN的合理性。由于LightGCN的对称公式,我们可以在项目端得到类似的分析。

3.3 Model Training(模型训练)

LightGCN的可训练参数只是第0层的嵌入,即, Θ = { E ( 0 ) } \varTheta = \{E^{(0)}\} Θ={E(0)}换句话说,模型的复杂性与标准矩阵分解(MF)相同。我们采用贝叶斯个性化排名(BPR)损失[32],这是一个成对的损失,鼓励预测一个观察到的项目要高于它的未观察到的项目:
L B P R = − ∑ u = 1 M ∑ i ∈ N u ∑ j ∉ N u ln ⁡ δ ( y ~ u i − y ~ h j ) + λ ∣ ∣ E ( 0 ) ∣ ∣ 2 L_{BPR}=-\sum_{u=1}^{M}\sum_{i \in N_u} \sum_{j \notin N_u }\ln\delta(\tilde y_{ui}-\tilde y_{hj})+\lambda||E^{(0)}||^2 LBPR=u=1MiNuj/Nulnδ(y~uiy~hj)+λE(0)2

其中λ控制L2正则化的权重。我们采用Adam优化器,并以mini-batch的方式使用它。我们知道还有其他一些先进的负采样策略,比如硬负抽样和对抗性抽样,它们可能会改善LightGCN的训练效果。

以为LightGCN没有权重矩阵W1和W2,所以在嵌入层上强制L2正则化就足以防止过拟合。所以并没有引用dropout机制。也正因为如此,LightGCN更容易训练和调优。

4 总结

LightGCN与NGCF的不同点:

LightGCN没有使用特征转换矩阵和激活函数。原因是作者认为推荐系统中的用户项目交互图的节点没有丰富的语义,加入二者只会让问题变得更加复杂。 特征转换是用来更好学习特征的,但是加入后不仅没有帮助,反而让训练更加复杂

去掉了自连接。原因是作者认为将不同层的嵌入与加权和相结合,捕捉到带有自连接的图卷积的效果

没有引用dropout机制。原因是作者认为在嵌入层上强制L2正则化就足以防止过拟合.

数。原因是作者认为推荐系统中的用户项目交互图的节点没有丰富的语义,加入二者只会让问题变得更加复杂。 特征转换是用来更好学习特征的,但是加入后不仅没有帮助,反而让训练更加复杂

去掉了自连接。原因是作者认为将不同层的嵌入与加权和相结合,捕捉到带有自连接的图卷积的效果

没有引用dropout机制。原因是作者认为在嵌入层上强制L2正则化就足以防止过拟合.

你可能感兴趣的:(深度学习,机器学习,人工智能)