LightGCN:简化并增强图卷积网络的推荐
原文发表在SIGIR 2020
摘要
图卷积网络(GCN)已经成为协同过滤的最新技术。然而,对于推荐的有效性的原因却没有很好地解释。现有的将GCN用于推荐的工作缺乏对GCN的深入消融分析,GCN最初是为图形分类任务而设计的,并配备了许多神经网络操作。然而,我们实证发现,两种最常见的设计-特征转换和非线性激活-对协同过滤的性能贡献很小。更糟糕的是,在模型中包含他们增加了训练的难度,降低了推荐的效果。
在本文工作中,我们的目标是简化GCN的设计,使其更简洁,更适合推荐。我们提出了一个新的模型LightGCN,它只包含GCN中最重要的组件——邻域聚合——用于协同过滤。具体来说,LightGCN通过在用户-项目交互图上线性传播用户和项目嵌入来学习它们,并使用在所有层上学习到的嵌入的加权和作为最终的嵌入。这种简单、线性、简洁的模型更容易实现和训练,在完全相同的实验设置下,比神经图协同过滤(NGCF)——一种最先进的基于GCN的推荐模型——有了显著的改进(平均大约16.0%的相对改进)。从分析和实证两方面进一步分析了简单LightGCN的合理性。我们的实现在TensorFlow和PyTorch中都可用。
1.引言
为了减轻网络上的信息超载,推荐系统被广泛部署来执行个性化的信息过滤[7,45,46]。推荐系统的核心是预测用户是否会与项目进行交互,例如点击、评分、购买等交互形式。因此,协同过滤(CF)侧重于利用过去的用户-项目交互来实现预测,这仍然是实现有效的个性化推荐的基本任务[10,19,28,39]。
CF最常见的范例是学习潜在的特性(又称嵌入)表示一个用户和一个项目,并根据嵌入向量进行预测[6,19]。矩阵分解是一种早期的模型,它直接将用户的单个ID投射到其嵌入[26]。后来,一些研究发现,增加用户ID与她的交互历史作为输入可以提高嵌入的质量。例如,SVD++[25]证实了用户交互历史记录在预测用户数值评分方面的好处,神经注意力项目相似度(NAIS) [18]区分了项目在交互历史中的重要性,并显示了预测项目排名的改进。从用户-项目交互图的角度来看,这些改进可以被看作是来自于使用用户的子图结构——更具体地说,是她的一跳邻居——来改进嵌入学习。
为了在高跳邻居中深化子图结构的使用,Wang等人最近提出了NGCF,并实现了CF的最先进性能。它的灵感来自于图卷积网络(GCN) [14,23],遵循同样的传播规则来细化嵌入:特征转换、邻域聚集和非线性激活。虽然NGCF已经显示出很好的效果,我们认为它的设计相当的笨重和繁重——许多操作是直接从GCN没有任何理由的继承而来的。因此,它们对于CF任务不一定有用。GCN最初被提出用于属性图上的节点分类,每个节点都有丰富的属性作为输入特征;而在CF的用户-项目交互图中,每个节点(用户或项目)只由一个除了作为标识符之外,没有具体的语义的one-hot表示的ID描述。在这种情况下,给定ID嵌入作为输入,执行多层非线性特征转换的过程——这是现代神经网络[16]成功的关键-不会带来任何好处,反而会增加模型训练的难度。
为了验证我们的想法,我们对NGCF进行了广泛的消融研究。通过严格的受控实验(基于相同的数据分割和评估方法),我们得出结论:继承自GCN的两个操作——特征变换和非线性激活——对NGCF的有效性没有贡献。更令人惊讶的是,删除它们可以显著提高准确度。这反映了在图神经网络中添加对目标任务无用的操作的问题,不仅没有带来好处,反而降低了模型的有效性。
在这些实证结果的推动下,我们提出了一个新的模型LightGCN,其中包括了最基本的组成部分-邻域聚合-用于协同过滤。具体地说,在将每个用户(项目)与ID嵌入关联之后,我们在用户-项目交互图上传播嵌入以改进它们。然后将不同传播层的嵌入信息与加权和相结合,得到最终的预测嵌入信息。整个模型简洁大方,不仅易于训练,而且比NGCF和像Mult-VAE[28]其他先进方法具有更好的性能。
综上所述,本工作的主要贡献如下:
-
我们实证地表明,在GCN中,特征变换和非线性激活这两种常见的设计对协同过滤的有效性并没有积极的影响。
-
我们提出LightGCN,它只包含了GCN推荐模型中最基本的组件,从而在很大程度上简化了模型设计。
-
我们根据同样的设置对LightGCN和NGCF进行了实证比较,并展示了显著的改进。从技术和经验的角度对LightGCN的合理性进行了深入的分析。
2. 准备工作
我们首先介绍NGCF[39],一个具有代表性和最先进的GCN推荐模型。然后对NGCF进行消融研究,判断NGCF各组件的实用性。本节的新颖之处在于,它证明了两种常见的GCNs设计——特征变换和非线性激活对协同过滤没有积极的影响。
2.1 NGCF概述
在初始步骤中,每个用户和项目都与一个ID嵌入相关联。设
e
u
(
0
)
\mathbf e_{u}^{(0)}
eu(0)表示用户
u
u
u的ID嵌入,
e
i
(
0
)
\mathbf e_{i}^{(0)}
ei(0)表示项目
i
i
i的ID嵌入,则NGCF利用用户-项目交互图传播嵌入:
u
~
1
(
t
)
=
tanh
(
w
1
x
i
+
σ
c
(
Σ
j
∈
C
(
i
)
u
~
j
(
t
−
1
)
)
+
σ
d
(
Σ
j
∈
D
(
i
)
u
~
j
(
t
−
1
)
)
)
\begin{array}{c} \tilde{\boldsymbol{u}}_{\mathbf{1}}^{(t)}=\tanh (w_{1} x_{i}+\sigma_{c}(\Sigma_{j \in C(i)} \tilde{\boldsymbol{u}}_{j}^{(t-1)})\\ +\sigma_{d}(\Sigma_{j \in D(i)} \tilde{\boldsymbol{u}}_{j}^{(t-1)}))\\ \end{array}
u~1(t)=tanh(w1xi+σc(Σj∈C(i)u~j(t−1))+σd(Σj∈D(i)u~j(t−1)))
e
u
(
k
+
1
)
=
σ
(
W
1
e
u
(
k
)
+
∑
i
∈
N
u
1
∣
N
u
∣
∣
N
i
∣
(
W
1
e
i
(
k
)
+
W
2
(
e
i
(
k
)
⊙
e
u
(
k
)
)
)
)
e
i
(
k
+
1
)
=
σ
(
W
1
e
i
(
k
)
+
∑
u
∈
N
i
1
∣
N
u
∣
∣
N
i
∣
(
W
1
e
u
(
k
)
+
W
2
(
e
u
(
k
)
⊙
e
i
(
k
)
)
)
)
\begin{array}{l} \mathbf{e}_{u}^{(k+1)}=\sigma\left(\mathbf{W}_{1} \mathbf{e}_{u}^{(k)}+\sum_{i \in \mathcal{N}_{u}} \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|\left|\mathcal{N}_{i}\right|}}\left(\mathbf{W}_{1} \mathbf{e}_{i}^{(k)}+\mathbf{W}_{2}\left(\mathbf{e}_{i}^{(k)} \odot \mathbf{e}_{u}^{(k)}\right)\right)\right) \\ \mathbf{e}_{i}^{(k+1)}=\sigma\left(\mathbf{W}_{1} \mathbf{e}_{i}^{(k)}+\sum_{u \in \mathcal{N}_{i}} \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|\left|\mathcal{N}_{i}\right|}}\left(\mathbf{W}_{1} \mathbf{e}_{u}^{(k)}+\mathbf{W}_{2}\left(\mathbf{e}_{u}^{(k)} \odot \mathbf{e}_{i}^{(k)}\right)\right)\right) \end{array}
eu(k+1)=σ(W1eu(k)+∑i∈Nu∣Nu∣∣Ni∣1(W1ei(k)+W2(ei(k)⊙eu(k))))ei(k+1)=σ(W1ei(k)+∑u∈Ni∣Nu∣∣Ni∣1(W1eu(k)+W2(eu(k)⊙ei(k))))
其中
e
u
(
k
)
\mathbf e_{u}^{(k)}
eu(k)和
e
i
(
k
)
\mathbf e_{i}^{(k)}
ei(k)分别表示在
k
k
k层传播后用户
u
u
u和项目
i
i
i的嵌入,
σ
\sigma
σ是非线性激活函数,
N
u
\mathcal N_{u}
Nu表示用户
u
u
u交互过的项目集,
N
i
\mathcal N_{i}
Ni表示交互过项目
i
i
i的用户集,
W
1
\mathbf W_{1}
W1和
W
2
\mathbf W_{2}
W2是可训练的权重矩阵在每一层执行特征转换。通过传播
L
L
L层,NGCF获得
L
+
1
L + 1
L+1个嵌入来描述一个用户
(
e
u
(
0
)
,
e
u
(
1
)
,
…
,
e
u
(
L
)
)
(\mathbf e_{u}^{(0)},\mathbf e_{u}^{(1)}, \ldots , \mathbf e_{u}^{(L)})
(eu(0),eu(1),…,eu(L))和一个项目
(
e
i
(
0
)
,
e
i
(
1
)
,
…
,
e
i
(
L
)
)
(\mathbf e_{i}^{(0)},\mathbf e_{i}^{(1)}, \ldots , \mathbf e_{i}^{(L)})
(ei(0),ei(1),…,ei(L))然后,它将这些
L
+
1
L + 1
L+1嵌入串联起来,以获得最终的用户嵌入和项目嵌入,并使用内积生成预测分数。
NGCF基本上遵循标准GCN[23],包括使用非线性激活函数 σ ( ⋅ ) \sigma(\cdot ) σ(⋅)和特征转换矩阵 W 1 \mathbf W_{1} W1和 W 2 \mathbf W_{2} W2。然而,我们认为这两种操作对于协同过滤并不那么有用。在半监督节点分类中,每个节点都有丰富的语义特征作为输入,如文章的标题和摘要等。因此,进行多层非线性变换有利于特征学习。然而,在协同过滤中,交互图的每个节点只有一个ID作为输入,没有具体的语义。在这种情况下,执行多个非线性转换将无助于更好地学习特征;更糟糕的是,这可能会增加训练的难度。在下一小节中,我们将对此论点提供经验证据。
2.2 NGCF的实证探索
我们对NGCF进行消融研究,探索非线性激活和特征变换的影响。我们使用NGCF作者发布的代码,在相同的数据分割和评估上运行实验,以使比较尽可能公平。由于GCN的核心是通过传播来细化嵌入,所以我们对相同嵌入尺寸下的嵌入质量更感兴趣。因此,我们改变了从拼接中获得最终嵌入的方式(即,
e
u
∗
=
e
u
(
0
)
∣
∣
⋯
∣
∣
e
u
(
L
)
\mathbf e_{u}^{*}=\mathbf e_{u}^{(0)}||\cdots||\mathbf e_{u}^{(L)}
eu∗=eu(0)∣∣⋯∣∣eu(L)),而使用求和(即,
e
u
∗
=
e
u
(
0
)
+
⋯
+
e
u
(
L
)
\mathbf e_{u}^{*}=\mathbf e_{u}^{(0)}+\cdots+\mathbf e_{u}^{(L)}
eu∗=eu(0)+⋯+eu(L))值得注意的是,这一变化对NGCF的性能影响不大,但却使后续消融研究更能说明GCN改进的嵌入质量。
我们实现了NGCF的三个简化版本:
-
NGCF-f,删除了 W 1 \mathbf W_{1} W1和 W 2 \mathbf W_{2} W2的特征转换。
-
NGCF-n,消除了非线性激活函数 σ \sigma σ。
-
NGCF-fn,该方法去掉了特征变换矩阵和非线性激活函数。
对于这三个变体,我们保持所有的超参数(如学习率、正则化系数、dropout率等)与NGCF的最优设置相同。我们在表1中报告了Gowalla和Amazon-Book数据集上的 2 2 2层设置的结果。可以看出,去掉特征变换(NGCF-f)对所有三个数据集进行了一致的改进。相比之下,去除非线性激活对准确度的影响并不大。但是,如果我们在去除特征变换的基础上去除非线性激活(即,NGCF-fn),性能有明显提高。从这些观察中,我们得出结论:
-
添加特征变换会对其产生负面影响NGCF,因为在NGCF和NGCF-n两种模型中都将其去除,可以显著提高性能;
-
加入非线性激活对包含特征变换的影响较小,但禁用特征变换的影响较大。
-
从整体上看,特征变换和非线性激活对NGCF的影响是相当负面的,因为NGCF-fn同时去除特征变换和非线性激活后,有了很大的改进(召回率相对提高9.57%)。
为了更深入地了解表1中的得分,并理解NGCF在这两种操作下为什么会恶化,我们在图1中绘制了训练损失和测试recall的模型状态曲线。可以看出,NGCF-fn在整个训练过程中比NGCF、NGCF-f、NGCF-n的训练损失要小得多。结合测试recall曲线,我们发现这种较低的训练损失成功地转化为更好的推荐准确度。NGCF和NGCF-f的比较也有类似的趋势,只是改进幅度较小。
根据这些证据,我们可以得出结论,NGCF的恶化是由于训练困难,而不是过度拟合。从理论上讲,NGCF比NGCF-f具有更高的表示能力,因为将权矩阵W1和W2设为单位矩阵I就可以完全恢复NGCF-f模型。然而,在实际应用中,NGCF的训练损耗和泛化性能比NGCF-f差。非线性激活的引入进一步加剧了表示能力与泛化性能之间的差异。为了完善这一节,我们主张在设计推荐模型时,进行严格的消融研究以明确每个操作的影响是很重要的。否则,包含较少有用的操作将使模型不必要地复杂化,增加训练难度,甚至降低模型的有效性。
3. 方法
前一节说明了NGCF是一个用于协同过滤的笨重GCN模型。在这些发现的驱动下,我们设定了一个目标,通过包含GCN的最基本的推荐组件提出了一个轻而有效的模型。简单的好处有几个方面-更具解释性,易于训练和维护,易于分析模型行为并将其修改为更有效的方向,等等。
在本节中,我们首先展示我们设计的LightGCN模型,如图2所示。然后,我们对LightGCN进行了深入分析,以展示其简单设计背后的合理性。最后,介绍了如何进行模型推荐训练。
3.1 LightGCN
GCN的基本思想是通过在图上平滑特征来学习节点的表示[23,40]。为了实现这一点,它迭代执行图的卷积,即,将邻居的特征聚合为目标节点的新表示。这种邻居聚集可以抽象为:
e
u
(
k
+
1
)
=
A
G
G
(
e
u
(
k
)
,
{
e
i
(
k
)
:
i
∈
N
u
}
)
\mathbf e_{u}^{(k+1)} = AGG(\mathbf e_{u}^{(k)}, \{\mathbf e_{i}^{(k)}: i \in \mathcal N_{u} \})
eu(k+1)=AGG(eu(k),{ei(k):i∈Nu})AGG是一个聚合函数,是图数据卷积的核心-考虑第k层对目标节点及其邻居节点的表示。很多工作已经指定了AGG,如GIN[42]中的加权和聚合器, GraphSAGE[14]中的LSTM聚合器,BGNN[47]中的双线性交互聚合器等。然而,大部分工作都将特征变换或非线性激活与AGG函数联系起来。尽管它们在具有语义输入特性的节点或图分类任务上表现良好,但对于协同过滤来说,它们可能是繁重的(参见2.2节中的初步结果)。
3.1.1 轻量图卷积(LGC)
在LightGCN中,我们采用了简单的加权和聚集器,放弃了特征变换和非线性激活。LightGCN中图形卷积运算(也就是,传播规则[39])为:
e
u
(
k
+
1
)
=
∑
i
∈
N
u
1
∣
N
u
∣
∣
N
i
∣
e
i
(
k
)
e
i
(
k
+
1
)
=
∑
u
∈
N
i
1
∣
N
i
∣
∣
N
u
∣
e
u
(
k
)
\begin{array}{l} \mathbf{e}_{u}^{(k+1)}=\sum_{i \in \mathcal{N}_{u}} \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|} \sqrt{\left|\mathcal{N}_{i}\right|}} \mathbf{e}_{i}^{(k)} \\ \mathbf{e}_{i}^{(k+1)}=\sum_{u \in \mathcal{N}_{i}} \frac{1}{\sqrt{\left|\mathcal{N}_{i}\right|} \sqrt{\left|\mathcal{N}_{u}\right|}} \mathbf{e}_{u}^{(k)} \end{array}
eu(k+1)=∑i∈Nu∣Nu∣∣Ni∣1ei(k)ei(k+1)=∑u∈Ni∣Ni∣∣Nu∣1eu(k) 其他的选择也可以应用在这里,如L1范数,而从经验上我们发现这种对称归一化具有很好的性能(实验结果见第4.4.2节)。
值得注意的是,在LGC中,我们只聚合已连接的邻居,而不集成目标节点本身(即,selfconnection)。 这不同于大多数现有的图数据卷积操作[14,23,36,39,47],这些操作通常会聚集扩展的邻域,并且需要专门处理自连接。我们在下一小节中介绍的层组合操作本质上捕获了与自连接相同的效果。因此,LGC中不需要包含自连接。
3.1.2 层组合和模型预测
在LightGCN中,唯一可训练的模型参数是
0
0
0层的嵌入,即
e
u
(
0
)
\mathbf e_{u}^{(0)}
eu(0)表示所有用户,
e
v
(
0
)
\mathbf e_{v}^{(0)}
ev(0)表示所有项目。当给定它们时,就可以通过公式(3)中定义的LGC计算更高层的嵌入。经过
K
K
K层LGC之后,我们进一步结合在每一层得到的嵌入,形成一个用户(一个项目)的最终表示:
e
u
=
∑
k
=
0
K
α
k
e
u
(
k
)
;
e
i
=
∑
k
=
0
K
α
k
e
i
(
k
)
\mathbf e_{u} = \sum_{k=0}^{K}\alpha_{k}\mathbf e_{u}^{(k)};\mathbf e_{i} = \sum_{k=0}^{K}\alpha_{k}\mathbf e_{i}^{(k)}
eu=k=0∑Kαkeu(k);ei=k=0∑Kαkei(k)其中
α
k
≥
0
\alpha_{k} \geq 0
αk≥0表示
k
k
k层嵌入构成最终嵌入的重要性。它可以作为一个超参数进行手动调整,也可以作为一个模型参数(例如,注意力网络[3]的输出)进行自动优化。在我们的实验中,我们发现设置
α
k
\alpha_{k}
αk统一为
1
/
(
K
+
1
)
1/(K+1)
1/(K+1)的性能较好。因此我们不设计特殊的组件优化
α
k
\alpha_{k}
αk,避免不必要的LightGCN复杂化并保持保持它的简单性。我们执行层组合以获得最终表示的原因有三方面。(1)随着层数的增加,嵌入式会出现过平滑的[27]。因此,简单地使用最后一层是有问题的。2)不同层的嵌入捕获不同的语义。例如,第一层对具有交互的用户和项目进行平滑处理,第二层对具有重叠交互项(用户)的用户(项)进行平滑处理,更高的层捕获更高阶近似[39]。因此,将它们结合起来将使表现更加全面。(3)将不同层的嵌入与加权和相结合,可以捕捉到图卷积与自连接的效果,这是GCNs中的一个重要技巧(证明参见3.2.1节)。
模型预测定义为用户和项目最终表示的内积:
y
^
u
i
=
e
u
T
e
i
\hat{y}_{ui} = \mathbf e_{u}^{T}\mathbf e_{i}
y^ui=euTei作为推荐生成的排名分数。
3.1.3 矩阵形式
我们提供LightGCN的矩阵形式,以促进与现有模型的实现和讨论。令用户-项目交互矩阵
R
∈
R
M
×
N
\mathbf R \in \mathbb R^{M\times N}
R∈RM×N,其中
M
M
M和
N
N
N分别表示用户数量和项目数量,如果
u
u
u与
i
i
i交互,则
R
u
i
R_{ui}
Rui为
1
1
1,否则为
0
0
0。然后得到用户-项图的邻接矩阵为:
A
=
(
0
R
R
T
0
)
\mathbf{A}=\left(\begin{array}{cc} \mathbf{0} & \mathbf{R} \\ \mathbf{R}^{T} & \mathbf{0} \end{array}\right)
A=(0RTR0)设第
0
0
0层嵌入矩阵
E
(
0
)
∈
R
(
M
+
N
)
×
T
\mathbf E^{(0)}\in \mathbb R^{(M+N)\times T}
E(0)∈R(M+N)×T,其中
T
T
T为嵌入大小。则可以得到LGC的矩阵等价形式为:
E
(
k
+
1
)
=
(
D
−
1
2
A
D
−
1
2
)
E
(
k
)
\mathbf E^{(k+1)} = (\mathbf D^{-\frac{1}{2}}\mathbf A\mathbf D^{-\frac{1}{2}})\mathbf E^{(k)}
E(k+1)=(D−21AD−21)E(k)其中
D
\mathbf D
D是一个
(
M
+
N
)
×
(
M
+
N
)
(M+N)\times(M+N)
(M+N)×(M+N)的对角矩阵,其中每个元素
D
i
i
D_{ii}
Dii表示邻接矩阵
A
\mathbf A
A的第
i
i
i行向量中非零项的个数(也称为度矩阵)。最后,我们得到最终用于模型预测的嵌入矩阵为:
E
=
α
0
E
(
0
)
+
α
1
E
(
1
)
+
α
2
E
(
2
)
+
…
+
α
K
E
(
K
)
=
α
0
E
(
0
)
+
α
1
A
~
E
(
0
)
+
α
2
A
~
2
E
(
0
)
+
…
+
α
K
A
~
K
E
(
0
)
\begin{aligned} \mathbf E&=\alpha_{0}\mathbf E^{(0)} + \alpha_{1}\mathbf E^{(1)}+\alpha_{2}\mathbf E^{(2)}+\ldots+\alpha_{K}\mathbf E^{(K)}\\ &=\alpha_{0}\mathbf E^{(0)} + \alpha_{1}\tilde{\mathbf A}\mathbf E^{(0)} + \alpha_{2}\tilde{\mathbf A}^{2}\mathbf E^{(0)} + \ldots + \alpha_{K}\tilde{\mathbf A}^{K}\mathbf E^{(0)}\\ \end{aligned}
E=α0E(0)+α1E(1)+α2E(2)+…+αKE(K)=α0E(0)+α1A~E(0)+α2A~2E(0)+…+αKA~KE(0)其中
A
~
=
D
−
1
2
A
D
−
1
2
\tilde{\mathbf A} = \mathbf D^{-\frac{1}{2}}\mathbf A\mathbf D^{-\frac{1}{2}}
A~=D−21AD−21为对称归一化矩阵。
3.2 模型分析
首先,我们讨论了与简化的GCN(SGCN)[40]的关联,这是一个最近的将自连接集成到图卷积的线性GCN模型;分析表明,LightGCN通过进行层组合,将自连接的效果包含进来,因此LightGCN不需要在邻接矩阵中添加自连接。然后,我们讨论了与神经预测的近似个性化传播(APPNP)[24]的关系,这是最近的GCN变种,受个性化PageRank[15]的启发解决了过平滑。分析表明,LightGCN和APPNP具有潜在的等价性,因此我们的LightGCN在远程传播方面具有可控制的过平滑。最后,我们分析了第二层的LGC,以展示它如何平滑用户与她的第二层邻居,从而对LightGCN的工作机制提供了更多的了解。
3.2.1 与SGCN的关系
在[40]中,作者讨论了GCN用于节点分类时的不必要复杂性,并提出了SGCN,它通过消除非线性和将权重矩阵压缩为一个权重矩阵来简化GCN。SGCN中的图形卷积定义为:
E
(
k
+
1
)
=
(
D
+
I
)
−
1
2
(
A
+
I
)
(
D
+
I
)
−
1
2
E
(
k
)
\mathbf E^{(k+1)}= (\mathbf D+\mathbf I)^{-\frac{1}{2}}(\mathbf A+\mathbf I)(\mathbf D+\mathbf I)^{-\frac{1}{2}}\mathbf E^{(k)}
E(k+1)=(D+I)−21(A+I)(D+I)−21E(k)其中
I
∈
R
(
M
+
N
)
×
(
M
+
N
)
\mathbf I \in \mathbb R^{(M+N)\times(M+N)}
I∈R(M+N)×(M+N)是一个单位矩阵,它向
A
\mathbf A
A上添加了自连接。在接下来的分析中,我们省略了
(
D
+
I
)
−
1
2
(\mathbf D+\mathbf I)^{-\frac{1}{2}}
(D+I)−21表示简单性,因为它们只是重新缩放嵌入。在SGCN中,最后一层得到的嵌入用于下游预测任务,可以表示为:
E
(
K
)
=
(
A
+
I
)
E
(
K
−
1
)
=
(
A
+
I
)
K
E
(
0
)
=
(
K
0
)
E
(
0
)
+
(
K
1
)
A
E
(
0
)
+
(
K
2
)
A
2
E
(
0
)
+
…
+
(
K
K
)
A
K
E
(
0
)
\begin{aligned} \mathbf E^{(K)}&=(\mathbf A+\mathbf I)\mathbf E^{(K-1)}=(\mathbf A+\mathbf I)^{K}\mathbf E^{(0)}\\ &=\left(\begin{array}{c}K\\0\end{array}\right)\mathbf E^{(0)}+\left(\begin{array}{c}K\\1\end{array}\right)\mathbf A\mathbf E^{(0)}+\left(\begin{array}{c}K\\2\end{array}\right)\mathbf A^{2}\mathbf E^{(0)}+\ldots+\left(\begin{array}{c}K\\K\end{array}\right)\mathbf A^{K}\mathbf E^{(0)} \end{aligned}
E(K)=(A+I)E(K−1)=(A+I)KE(0)=(K0)E(0)+(K1)AE(0)+(K2)A2E(0)+…+(KK)AKE(0)上面的推导表明,在
A
\mathbf A
A中插入自连接并在其上传播嵌入,本质上等于在每个LGC层上传播的嵌入的加权和。
3.2.2 与APPNP的关系
在最近的一篇文章[24]中,作者将GCN与个性化的PageRank[15]联系起来,并由此提出了一种名为APPNP的GCN变体,它可以长期传播,而不会有过平滑的风险。受个性化PageRank中转移设计的启发,APPNP用初始特征(即,第0层嵌入)补充每个传播层,这样能平衡局部性保护的需要(即,保持接近于根节点,以减轻过平滑),并利用来自大型社区的信息。APPNP中的传播层定义为:
E
(
k
+
1
)
=
β
E
(
0
)
+
(
1
−
β
)
A
~
E
(
k
)
\mathbf E^{(k+1)}=\beta\mathbf E^{(0)}+(1-\beta)\tilde{\mathbf A}\mathbf E^{(k)}
E(k+1)=βE(0)+(1−β)A~E(k)其中
β
\beta
β是控制传播过程中起始特征保留的转移概率,
A
~
\tilde{\mathbf A}
A~是归一化邻接矩阵表示。在APPNP中,最后一层用于最终预测,即
E
(
K
)
=
β
E
(
0
)
+
(
1
−
β
)
A
~
E
(
K
−
1
)
=
β
E
(
0
)
+
β
(
1
−
β
)
A
~
E
(
0
)
+
(
1
−
β
)
2
A
~
2
E
(
K
−
2
)
=
β
E
(
0
)
+
β
(
1
−
β
)
A
~
E
(
0
)
+
β
(
1
−
β
)
2
A
~
2
E
(
K
−
2
)
+
…
+
(
1
−
β
)
K
A
~
K
E
(
0
)
\begin{aligned} \mathbf E^{(K)}&=\beta\mathbf E^{(0)}+(1-\beta)\tilde{\mathbf A}\mathbf E^{(K-1)}\\ &=\beta\mathbf E^{(0)}+\beta(1-\beta)\tilde{\mathbf A}\mathbf E^{(0)}+(1-\beta)^{2}\tilde{\mathbf A}^{2}\mathbf E^{(K-2)}\\ &=\beta\mathbf E^{(0)}+\beta(1-\beta)\tilde{\mathbf A}\mathbf E^{(0)}+\beta(1-\beta)^{2}\tilde{\mathbf A}^{2}\mathbf E^{(K-2)}+\ldots+(1-\beta)^{K}\tilde{\mathbf A}^{K}\mathbf E^{(0)}\\ \end{aligned}
E(K)=βE(0)+(1−β)A~E(K−1)=βE(0)+β(1−β)A~E(0)+(1−β)2A~2E(K−2)=βE(0)+β(1−β)A~E(0)+β(1−β)2A~2E(K−2)+…+(1−β)KA~KE(0)我们可以通过设置
α
k
\alpha_{k}
αk调整公式(8)得到。因此,LightGCN可以完全恢复APPNP的预测嵌入。因此,因此,LightGCN与APPNP在对抗过平滑方面具有相同的优势——通过设置正确的
α
\alpha
α,我们就可以在可控的过平滑下使用较大的
K
K
K进行远距建模。
另一个小的区别是APPNP在邻接矩阵中加入了自连接。然而,正如我们之前所展示的,由于采用不同层的加权和,这是多余的。
3.2.3 二阶嵌入平滑
由于LightGCN的线性和简单性,我们可以更深入地了解它是如何平滑嵌入的。这里,我们分析一个两层的LightGCN来证明它的合理性。以用户端为例,直观地,第二层平滑了交互项目上有重叠的用户。更具体地说,我们有:
e
u
(
2
)
=
∑
i
∈
N
i
1
∣
N
u
∣
∣
N
i
∣
e
i
(
1
)
=
∑
i
∈
N
u
1
∣
N
i
∣
∑
v
∈
N
i
1
∣
N
u
∣
∣
N
v
∣
e
v
(
0
)
\mathbf e_{u}^{(2)}=\sum_{i\in \mathcal N_{i}}\frac{1}{\sqrt{|\mathcal N_{u}|}\sqrt{|\mathcal N_{i}|}}\mathbf e_{i}^{(1)}=\sum_{i\in \mathcal N_{u}}\frac{1}{|\mathcal N_{i}|}\sum_{v\in \mathcal N_{i}}\frac{1}{\sqrt{|\mathcal N_{u}|}\sqrt{|\mathcal N_{v}|}}\mathbf e_{v}^{(0)}
eu(2)=i∈Ni∑∣Nu∣∣Ni∣1ei(1)=i∈Nu∑∣Ni∣1v∈Ni∑∣Nu∣∣Nv∣1ev(0)可以看出,如果另一个用户
v
v
v与目标用户
u
u
u有共同交互关系,则
v
v
v对
u
u
u的平滑强度用系数表示(否则为0):
c
v
−
>
u
=
1
∣
N
u
∣
∣
N
v
∣
∑
i
∈
N
u
∩
N
v
1
N
i
c_{v->u}=\frac{1}{\sqrt{|\mathcal N_{u}|}\sqrt{|\mathcal N_{v}|}}\sum_{i\in \mathcal N_{u}\cap \mathcal N_{v}}\frac{1}{\sqrt{\mathcal N_{i}}}
cv−>u=∣Nu∣∣Nv∣1i∈Nu∩Nv∑Ni1这个系数是可以解释的:二阶邻居
v
v
v对
u
u
u的影响是由1)共交互项目数越多,影响越大;2)交互项目的受欢迎程度越低(即交互物品的受欢迎程度越低,更能体现用户个性化偏好)影响越大;3)
v
v
v的活跃度,活跃度越低,影响越大。这种可解释性很好地满足了CF在度量用户相似性时的假设[2,37],并证明了LightGCN的合理性。由于LightGCN的对称公式,我们可以在项目端得到类似的分析。
3.3 模型训练
LightGCN的可训练参数只是第
0
0
0层的嵌入,即,
Θ
=
{
E
(
0
)
}
\Theta=\{\mathbf E^{(0)}\}
Θ={E(0)};换句话说,模型的复杂性与标准矩阵分解(MF)相同。我们采用贝叶斯个性化排名(BPR)损失[32],这是一个成对的损失,鼓励预测一个观察到的项目要高于它的未观察到的项目:
L
B
P
R
=
−
∑
u
=
1
M
∑
i
∈
N
u
∑
j
∉
N
u
l
n
σ
(
y
^
u
i
−
y
^
u
j
)
+
λ
∣
∣
E
(
0
)
∣
∣
2
L_{BPR}=-\sum_{u=1}^{M}\sum_{i\in \mathcal N_{u}}\sum_{j\notin \mathcal N_{u}}ln\sigma(\hat{y}_{ui}-\hat{y}_{uj})+\lambda||\mathbf E^{(0)}||^{2}
LBPR=−u=1∑Mi∈Nu∑j∈/Nu∑lnσ(y^ui−y^uj)+λ∣∣E(0)∣∣2其中
λ
\lambda
λ控制L2正则化的权重。我们采用Adam[22]优化器,并以mini-batch的方式使用它。我们知道还有其他一些先进的负采样策略,比如硬负抽样[31]和对抗性抽样[9],它们可能会改善LightGCN培训。我们将这个扩展留在将来,因为它不是这个工作的重点。
值得注意的是,我们不引入在GCNs和NGCF中常用的dropout机制。原因是LightGCN中没有特征变换权重矩阵,因此在嵌入层上强制L2正则化就足以防止过拟合。这展示了LightGCN简单的优点——它比NGCF更容易训练和调优,NGCF还需要调优两个dropout比率(节点dropout和消息dropout),并将每个层的嵌入归一化到单位长度。
此外,学习层组合系数 { α k } k = 0 K \{\alpha_{k}\}_{k=0}^{K} {αk}k=0K,或者用一个注意力网络参数化在技术上是可行的,。然而,我们发现学习 α \alpha α训练数据不会获得改善。这可能是因为训练数据不包含足够的信号得到可以泛化到未知数据的好的 α \alpha α。受文献[5]在验证数据上学习超参数的启发,我们也尝试从验证数据中学习 α \alpha α。性能略有提高(不到1%)。我们将为不同的用户的 α \alpha α最佳设置(例如,个性化不同的用户和项目)的探索作为未来的工作。
4. 实验
我们首先描述实验设置,然后与本文LightGCN最相关但更复杂的NGCF[39]方法进行详细的比较(第4.2节)。接下来,我们将在第4.3节中与其他最先进的方法进行比较。为了验证LightGCN中的设计并揭示其有效性的原因,我们在第4.4节中进行消融研究和嵌入分析。超参数研究最终在4.5节中给出。
4.1 实验设置
为了减少实验工作量,保证比较的公平性,我们严格按照NGCF工作[39]的设置。我们向作者请求实验数据集(包括train/test split),其统计数据如表2所示。我们使用的Gowalla和Amazon-Book与NGCF论文完全相同,所以我们直接使用NGCF论文中的结果。唯一的例外是Yelp2018数据,它是一个修订版。据作者说,以前的版本没有过滤掉测试集中的冷启动项,他们只向我们分享了修改后的版本。因此,我们在Yelp2018数据上重新运行了NGCF。评估指标为recall@ 20 20 20和ndcg@ 20 20 20,所有不与用户交互的项目都是候选项目。
4.1.1 比较方法
与之竞争的主要方法是NGCF,它已经证明比其他几种方法表现更好,包括基于GCN的GC-MC[35]和PinSage[45]模型,基于神经网络的NeuMF[19]和CMN[10]模型,以及基于分解的MF[32]和HOP-Rec[43]。由于比较是在相同的数据集上,在相同的评估协议下进行的,我们不进一步与这些方法进行比较。在NGCF的基础上,我们进一步对比了两种相关且具有竞争力的CF方法:
-
Mult-VAE [28]。这是一个基于变分自动编码器(VAE)的项目CF方法。它假定数据是由一个多项式分布生成的,并使用变分推论进行参数估计。我们运行作者发布的代码、在 [ 0 , 0.2 , 0.5 ] [0,0.2,0.5] [0,0.2,0.5]调优dropout ratio, [ 0.2 , 0.4 , 0.6 , 0.8 ] [0.2,0.4,0.6,0.8] [0.2,0.4,0.6,0.8]调优 β \beta β,模型体系结构为文章中建议的: 600 → 200 → 600 600\rightarrow200\rightarrow600 600→200→600。
-
GRMF [30]。该方法通过加入图拉普拉斯正则化因子来平滑矩阵分解。为了公平比较项目推荐,我们将评级预测损失改为BPR损失。GRMF的目标函数为: L = − ∑ u = 1 M ∑ i ∈ N u ( ∑ j ∉ N u ln σ ( e u T e i − e u T e j ) + λ g ∥ e u − e i ∥ 2 ) + λ ∥ E ∥ 2 L=-\sum_{u=1}^{M} \sum_{i \in \mathcal{N}_{u}}\left(\sum_{j \notin \mathcal{N}_{u}} \ln \sigma\left(\mathbf{e}_{u}^{T} \mathbf{e}_{i}-\mathbf{e}_{u}^{T} \mathbf{e}_{j}\right)+\lambda_{g}\left\|\mathbf{e}_{u}-\mathbf{e}_{i}\right\|^{2}\right)+\lambda\|\mathbf{E}\|^{2} L=−u=1∑Mi∈Nu∑⎝⎛j∈/Nu∑lnσ(euTei−euTej)+λg∥eu−ei∥2⎠⎞+λ∥E∥2其中 λ g \lambda_{g} λg在 [ 1 e − 5 , 1 e − 4 , … , 1 e − 1 ] [1e^{-5},1e^{-4},\ldots,1e^{-1}] [1e−5,1e−4,…,1e−1]的范围内搜索。此外,我们也和添加了归一化的图拉普拉斯 λ g ∣ ∣ e u ∣ N u ∣ − e i ∣ N i ∣ ∣ ∣ 2 \lambda_{g}||\frac{\mathbf e_{u}}{\sqrt{|\mathcal N_{u}|}}-\frac{\mathbf e_{i}}{\sqrt{|\mathcal N_{i}|}}||^{2} λg∣∣∣Nu∣eu−∣Ni∣ei∣∣2的变体GRMF-norm进行了比较。其他超参数设置与LightGCN一致。这两种GRMF方法通过拉普拉斯正则化器对嵌入平滑的性能进行了测试,而LightGCN在预测模型中实现嵌入平滑。
4.1.2 超参数设置
与NGCF相同,所有模型的嵌入尺寸都固定为64,并使用Xavier方法[12]初始化嵌入参数。我们使用Adam[22]优化LightGCN,并使用默认学习率0.001和默认的batch-size1024(在Amazon-Book中,为了提高速度,我们将batch-size增加到2048)。L2正则化系数 λ \lambda λ在 { 1 e − 6 , 1 e − 5 , … , 1 e − 2 } \{1e^{-6},1e^{-5},\ldots,1e^{-2}\} {1e−6,1e−5,…,1e−2}中搜索,在大多数情况下,最优值是 1 e − 4 1e^{-4} 1e−4。层组合系数 α k \alpha_{k} αk统一设置为 1 1 + K \frac{1}{1+K} 1+K1,其中 K K K是层数。我们在 1 − 4 1-4 1−4范围内对 K K K进行测试,当 K K K等于 3 3 3时,可以得到满意的结果。早期停止和验证策略与NGCF相同。通常,1000个epoch就足够LightGCN收敛。我们的实现在TensorFlow和PyTorch中都可用。
4.2 和NGCF的性能比较
我们与NGCF进行了详细的比较,在表4中记录了不同层(1到4层)的性能,还显示了每个指标相对改进的百分比。在图3中,我们进一步绘制了训练损失和测试recall的训练曲线,以揭示LightGCN的优点,并明确了训练过程。主要观察如下:
-
在所有情况下,LightGCN的性能都比NGCF好得多。例如,在Gowalla上,NGCF论文中报告的最高召回率是 0.1570 0.1570 0.1570,而在 4 4 4层设置下,我们的LightGCN可以达到 0.1830 0.1830 0.1830,高 16.56 % 16.56\% 16.56%。平均来看,这三个数据集的召回率提高了 16.52 % 16.52\% 16.52%,ndcg的提高了 16.87 % 16.87\% 16.87%,这是相当显著的。
-
将表4与第2节中的表1对应,我们可以看到LightGCN的性能优于NGCF-fn,后者是消除特征转换和非线性激活的NGCF变体。由于NGCF-fn所包含的操作仍然比LightGCN多(如self-connection、图卷积中用户嵌入与项目嵌入的交互、dropout等),说明这些操作对于NGCF-fn可能也是无用的。
-
增加层的数量可以提高性能,但是收益会减少。一般的观察是增加层数从 0 0 0(即矩阵分解模型,结果见[39])到 1 1 1产生最大的性能增益,而使用层数 3 3 3在大多数情况下产生令人满意的性能。这个观察结果与NGCF的发现是一致的。
-
在整个训练过程中,LightGCN的训练损失始终较低,说明LightGCN比NGCF更适合训练数据。训练损失越低,测试精度越高,说明LightGCN具有较强的泛化能力。相比之下,NGCF的训练损失较大,测试精度较低,这反映了将如此沉重的模型训练好所面临的实际困难。注意,在图中我们展示了两种方法在最优超参数设置下的训练过程。虽然增加NGCF的学习率可以降低其训练损失(甚至低于LightGCN),但是不能提高测试的召回率,因为这样降低训练损失只能找到NGCF的平凡(trivial)解。
4.3 和最先进方法的性能比较
表4显示了与竞争方法的性能比较。我们给出了每种方法的最佳得分。可以看到,LightGCN在所有三个数据集上始终优于其他方法,通过简单而合理的设计证明了它的高效性。注意LightGCN可以通过调优 α k \alpha_{k} αk进一步提高(见图4),在这里我们只使用一个统一的设置为 1 1 + K \frac{1}{1+K} 1+K1,以避免过度调优。在基线中,Mult-VAE表现最为亮眼,优于GRMF和NGCF。GRMF的性能与NGCF相当,优于MF,这就使得使用拉普拉斯正则化器来增强嵌入平滑成为可能。通过在拉普拉斯正则化器中加入归一化,GRMFnorm优于Gowalla上的GRMF,但在Yelp2018和Amazon-Book没有带来任何好处。
4.4 消融和有效性分析
我们对LightGCN进行消融研究,展示了层组合和对称开根归一化如何影响LightGCN的性能。为了证明第3.2.3节分析的LightGCN的合理性,我们进一步研究了LightGCN有效性的关键因素——嵌入平滑的影响。
4.4.1 层组合的影响
图4显示了LightGCN和它的不使用层组合(即 E K \mathbf E_{K} EK用于最终预测的变体LightGCN-single。由于篇幅限制,我们省略了Yelp2018上的结果,这与Amazon-Book有相似的趋势。我们有三个主要的观察结果:
-
以LightGCN-single为例,我们发现当层数从1增加到4时,它的性能先提高后降低。在大多数情况下,峰值点在第二层,而在那之后,它会迅速下降到第4层最糟糕的点。这表明平滑一个节点与它的一阶和二阶邻居的嵌入对于CF是非常有用的,但是当使用高阶邻居时会遇到过平滑的问题。
-
以LightGCN为例,我们发现它的性能是随着层数的增加而逐渐提高的。即使使用4层,LightGCN的性能没有降低。这证明了层组合处理过平滑的有效性,正如我们在3.2.2节中技术分析的那样。
-
比较这两种方法,我们发现LightGCN在Gowalla上的表现始终优于LightGCN-single,但在Amazon-Book和Yelp2018上则不是这样(其中两层LightGCN-single表现最好)。关于这一现象,在给出结论时需要考虑两点:1)LightGCN-single是LightGCN将 α K \alpha_{K} αK设置为 1 1 1,其他 α k \alpha_{k} αk为 0 0 0的特殊情况;2)我们没有进行调优,并简单的将 α k \alpha_{k} αk设为 1 1 + K \frac{1}{1+K} 1+K1.因此,我们可以看到通过调优 α k \alpha_{k} αk进一步加强LightGCN性能的潜力。
4.4.2 对称开方归一化的影响
在LightGCN执行邻居聚合时,我们在每一个邻居嵌入中使用了对称开方归一化因子 1 ∣ N u ∣ ∣ N i ∣ \frac{1}{\sqrt{|\mathcal N_{u}|}\sqrt{|\mathcal N_{i}|}} ∣Nu∣∣Ni∣1。为了研究它的合理性,我们在这里探索了不同的选择。我们测试了分别只使用左侧(即,目标节点系数)和右侧(即,邻居节点系数)归一化。我们也测试了L1正则化,也就是移除了平方根。注意,如果去掉归一化,训练在数值上就会变得不稳定,并且会受到NAN问题的影响,因此我们没有展示这个设置。表5显示了三层LightGCN的结果。我们有以下观察:
-
般来说,最好的设置是在两边都使用sqrt标准化,也就是LightGCN的当前设置)。去掉任何一边都会大大降低性能。
-
第二好的设置是仅在左侧使用L1规范化(即LightGCN-L1-L)。这等价于将邻接矩阵按度归一化为一个随机矩阵。
-
两侧对称开方归一化很有用,但L1归一化会降低性能。
4.4.3 嵌入平滑分析
正如我们在3.2.3节中分析的,一个2层LightGCN根据用户交互项目上有重叠的用户对用户的嵌入进行平滑,其中
c
v
→
u
c_{v\rightarrow u}
cv→u度量两个用户之间的平滑强度。我们推测,这种平滑的嵌入是LightGCN的有效性的关键原因。为了验证这一点,我们首先定义用户嵌入的平滑度为:
S
U
=
∑
u
=
1
M
∑
v
=
1
M
c
v
→
u
(
e
u
∣
∣
e
u
∣
∣
2
−
e
v
∣
∣
e
v
∣
∣
2
)
2
S_{U} = \sum_{u=1}^{M}\sum_{v=1}^{M}c_{v\rightarrow u}(\frac{\mathbf e_{u}}{||\mathbf e_{u}||^{2}}-\frac{\mathbf e_{v}}{||\mathbf e_{v}||^{2}})^{2}
SU=u=1∑Mv=1∑Mcv→u(∣∣eu∣∣2eu−∣∣ev∣∣2ev)2其中使用嵌入的L2范数来消除嵌入规模的影响。同样,我们可以得到项目嵌入的定义。表6给出了两种模型的平滑度,即矩阵分解(即,使用E(0)进行模型预测,使用2层LightGCN-single(即,使用E(2)进行预测。注意,两层的LightGCN-single性能更好。MF在推荐准确度上有很大的优势。可以看出,LightGCN-single的平滑损失要比MF小得多。这说明通过对轻量图卷积,使得嵌入变得更平滑,更适合推荐。
4.5 超参数研究
LightGCN应用到一个新的数据集,除了标准超参数学习率,最重要超参数是L2正则化系数 λ \lambda λ。在这里,我们研究了LightGCN对于 λ \lambda λ的性能改变。
如图5所示,LightGCN对 λ \lambda λ相对不敏感——甚至当 λ \lambda λ设置为 0 0 0时,LightGCN比添加了为防止过拟合的用户dropout的NGCF好。这表明LightGCN不太容易过度拟合——因为LightGCN中惟一可训练的参数是0层的ID嵌入,所以整个模型很容易训练和正则化。Yelp2018、Amazon-Book和Gowalla的最佳值分别 1 e − 3 1e^{-3} 1e−3、$1e{-4}和$1e^{-4}。当$\lambda$大于$1e{-3}、性能迅速下降,这表明太强正则化将影响模型正常训练,而不是鼓励。
5 相关工作
5.1 协同过滤
协同过滤(Collaborative Filtering, CF)是现代推荐系统中普遍采用的一种技术[7,45]。CF模型的一个常见范例是将用户和项目作为嵌入参数化,并通过重构历史用户-项目交互来学习嵌入参数。例如,较早的CF模型,如矩阵分解(MF)[26,32],将用户(或项目)的ID投影到嵌入向量中。最近的神经推荐模型如NCF[19]和LRML[34]使用了相同的嵌入组件,同时增强了与神经网络的交互建模。
除了仅仅使用ID信息之外,另一种类型的CF方法将历史记录项目视为用户的预先存在的特性,从而实现更好的用户表示。例如FISM[21]和SVD++[25]使用历史项目的ID嵌入的加权平均值作为目标用户的嵌入。最近,研究人员发现,历史物品在塑造个人兴趣方面有不同的贡献。为此目的,引入了注意机制来捕捉不同的贡献,例如ACF[3]和NAIS[18],自动学习每个历史项目的重要性。当将历史交互作为用户-项目二部图重新访问时,性能的改进可以归因于本地邻域(一跳邻居)的编码,它改进了嵌入学习。
5.2 图神经网络为推荐
另一个相关的研究方向是利用用户-项目图结构进行推荐。之前的工作,如ItemRank[13],使用标签传播机制直接传播用户的偏好评分,即,鼓励连接的节点具有类似的标签。最近出现了图神经网络(GNNs)对建模图结构,特别是high-hop邻居进行了研究,以指导嵌入学习[14,23]。早期的研究在谱域上定义了图的卷积,例如Laplacian特征分解[1]和Chebyshev多项式[8],计算开销很大。之后,GraphSage[14]和GCN[23]在空间域重新定义了图的卷积,即,聚合邻居的嵌入,以细化目标节点的嵌入。由于其可解释性和高效性,它很快成为GNNs的一种普遍表述,并被广泛使用[11,29]。在图形卷积的强大推动下,NGCF[39]、GC-MC[35]和PinSage[45]等最近的研究成果应用GCN到用户-项目交互图中,捕获CF信号在high-hop邻居中进行推荐。
值得一提的是,最近的几项工作对GNNs提供了深刻的见解[24,27,40],这激励着我们的发展LightGCN。特别是,Wu等人[40]认为GCN不必要的复杂性,通过消除非线性和将多个权重矩阵分解为一个,提出了SGCN模型。一个主要的区别是LightGCN和SGCN是针对不同的任务开发的,因此模型简化的合理性是不同的。具体来说,SGCN用于节点分类,对模型的可解释性和效率进行简化。相比之下,LightGCN则是协同过滤(CF),其中每个节点只有一个ID特性。因此,我们做简化是为了一个更强的理由:非线性和权重矩阵对于CF是无用的,甚至伤害模型训练。在节点分类精度方面,SGCN与GCN相当(有时弱于GCN)。而对于CF的准确性,LightGCN比GCN有很大的优势(比NGCF提高了15%)。最后,另一个工作在同一时间进行[4]还发现,在NGCF非线性是不必要的并提出了线性GCN模型。相比之下,我们的LightGCN进一步,我们删除所有多余的参数,仅保留ID嵌入,使模型简单如MF。
6. 结论和未来工作
在本文工作中,我们讨论了不必要的复杂设计并进行了实证研究,以证明这一论点。提出了由轻量图卷积和层组合两部分组成的LightGCN。在轻量图卷积中,我们抛弃了GCNs中的特征变换和非线性激活这两个标准操作,他们不可避免地增加了训练的难度。在层组合中,我们将节点的最终嵌入作为节点在所有层上的嵌入的加权和来构造,证明该方法包含了自连接的影响,有助于控制过平滑。我们通过实验来证明LightGCN简单的优点:更容易被训练,更好的泛化能力,更有效。
我们相信LightGCN的见解对推荐模型的未来发展具有启发意义。随着关联图数据在实际应用中的普及,基于图的模型在推荐中变得越来越重要;通过显式地利用预测模型中实体之间的关系,它们比传统的监督学习方案(如分解机[17,33])更有利,后者隐式地对这些关系进行建模。例如,最近的一个趋势是利用辅助信息,如项目知识图谱[38],社交网络[41]和多媒体内容[44]进行推荐,其中GCNs已经建立了新的最先进水平。但是,这些模型也可能会遇到类似NGCF的问题,因为用户-项目交互图也是由相同的可能不必要的神经操作建模的。我们计划在这些模型中探索LightGCN的思想。另一个未来的方向是个性化权重 α k \alpha_{k} αk层组合,为不同的用户,以便自适应平滑(例如,稀疏的用户可能需要更多的信号从高阶的邻居而活跃用户需要更少)。最后,我们将进一步探索LightGCN的简单性的优点,研究对于非采样回归损失[20]是否存在快速解决方案,并将其用于在线工业场景。
参考文献
1.http://staff.ustc.edu.cn/~hexn/papers/sigir20-LightGCN.pdf
2.https://github.com/kuandeng/LightGCN
3.https://github.com/gusye1234/LightGCN-PyTorch