LightGCN:用于推荐任务的简化并增强的图卷积网络 SIGIR 2020

在这里插入图片描述
论文链接:https://arxiv.org/abs/2002.02126
代码链接:https://github.com/gusye1234/LightGCN-PyTorch
论文来源:SIGIR 2020

摘要

图卷积网络(GCN)已经成为协同过滤的最新技术。然而,对于推荐的有效性的原因却没有很好地解释。现有的将GCN用于推荐的工作缺乏对GCN的深入消融分析,GCN最初是为图分类任务而设计的,并配备了许多神经网络操作。然而,我们实证发现,两种最常见的设计-特征转换和非线性激活-对协同过滤的性能贡献很小。更糟糕的是,在模型中包含他们增加了训练的难度,降低了推荐的效果。

在本文工作中,我们的目标是简化GCN的设计,使其更简洁,更适合推荐系统。我们提出了一个新的模型LightGCN,它只包含GCN中最重要的组件——邻域聚合——用于协同过滤。具体来说,LightGCN通过在用户-项目交互图上线性传播用户和项目嵌入来学习它们,并使用在所有层上学习到的嵌入的加权和作为最终的嵌入。这种简单、线性、简洁的模型更容易实现和训练,在完全相同的实验设置下,比神经图协同过滤(NGCF)——一种最先进的基于GCN的推荐模型——有了显著的改进(平均大约16.0%的相对改进)。从分析和实证两方面进一步分析了简单LightGCN的合理性。

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各组件的实用性。本节的新颖之处在于,它证明了两种常见的GCN设计——特征变换和非线性激活对协同过滤没有积极的影响。

2.1、NGCF概述

在初始步骤中,每个用户和项目都与一个ID嵌入相关联。设 e u ( 0 ) \textbf{e}_u^{(0)} eu(0)表示用户 u u u的ID嵌入, e i ( 0 ) \textbf{e}_i^{(0)} ei(0)表示项目 i i i的ID嵌入,则NGCF利用用户-项目交互图传播嵌入:
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 ) ) ) ) \textbf{e}_u^{(k+1)}=σ\left(\textbf{W}_1\textbf{e}_u^{(k)}+\sum_{i\in\mathcal{N}_u}\frac{1}{\sqrt{∣\mathcal{N}_u∣∣\mathcal{N}i∣}}\left(\textbf{W}_1\textbf{e}_i^{(k)}+\textbf{W}_2\left(\textbf{e}_i^{(k)}⊙\textbf{e}_u^{(k)}\right)\right)\right) eu(k+1)=σ(W1eu(k)+iNuNuNi 1(W1ei(k)+W2(ei(k)eu(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 ) ) ) ) \textbf{e}_i^{(k+1)}=σ\left(\textbf{W}_1\textbf{e}_i^{(k)}+\sum_{u\in\mathcal{N}_i}\frac{1}{\sqrt{∣\mathcal{N}_u∣∣\mathcal{N}i∣}}\left(\textbf{W}_1\textbf{e}_u^{(k)}+\textbf{W}_2\left(\textbf{e}_u^{(k)}⊙\textbf{e}_i^{(k)}\right)\right)\right) ei(k+1)=σ(W1ei(k)+uNiNuNi 1(W1eu(k)+W2(eu(k)ei(k))))其中 e u ( k ) \textbf{e}_u^{(k)} eu(k) e i ( k ) \textbf{e}_i^{(k)} ei(k)分别表示在 k k k层传播后用户 u u u和项目 i i i的嵌入, σ σ σ是非线性激活函数, N u \mathcal{N}_u Nu表示用户 u u u交互过的项目集, N i \mathcal{N}_i Ni表示交互过项目 i i i的用户集, W 1 \textbf{W}_1 W1 W 2 \textbf{W}_2 W2是可训练的权重矩阵在每一层执行特征转换。通过传播 L L L层,NGCF获得 L + 1 L+1 L+1个嵌入来描述一个用户 ( e u ( 0 ) , e u ( 1 ) , … , e u ( L ) ) (\textbf{e}_u^{(0)},\textbf{e}_u^{(1)},…,\textbf{e}_u^{(L)}) (eu(0),eu(1),,eu(L))和一个项目 ( e i ( 0 ) , e i ( 1 ) , … , e i ( L ) ) (\textbf{e}_i^{(0)},\textbf{e}_i^{(1)},…,\textbf{e}_i^{(L)}) (ei(0),ei(1),,ei(L))。然后,它将这些 L + 1 L+1 L+1个嵌入串联起来,以获得最终的用户嵌入和项目嵌入,并使用内积生成预测分数。

NGCF基本上遵循标准GCN[23],包括使用非线性激活函数 σ ( ⋅ ) σ(⋅) σ()和特征转换矩阵 W 1 \textbf{W}_1 W1 W 2 \textbf{W}_2 W2。然而,我们认为这两种操作对于协同过滤并不那么有用。在半监督节点分类中,每个节点都有丰富的语义特征作为输入,如文章的标题和摘要等。因此,进行多层非线性变换有利于特征学习。然而,在协同过滤中,交互图的每个节点只有一个ID作为输入,没有具体的语义。在这种情况下,执行多个非线性转换将无助于更好地学习特征;更糟糕的是,这可能会增加训练的难度。在下一小节中,我们将对此论点提供经验证据。

2.2、NGCF的实证探索

我们对NGCF进行消融研究,探索非线性激活和特征变换的影响。我们使用NGCF作者发布的代码,在相同的数据分割和评估上运行实验,以使比较尽可能公平。由于GCN的核心是通过传播来细化嵌入,所以我们对相同嵌入尺寸下的嵌入质量更感兴趣。因此,我们改变了从拼接中获得最终嵌入的方式(即, e u ∗ = e u ( 0 ) ∣ ∣ ⋯ ∣ ∣ e u ( L ) \textbf{e}_u^*=\textbf{e}_u^{(0)}∣∣⋯∣∣\textbf{e}_u^{(L)} eu=eu(0)eu(L)),而使用求和(即, e u ∗ = e u ( 0 ) + ⋯ + e u ( L ) \textbf{e}_u^*=\textbf{e}_u^{(0)}+⋯+\textbf{e}_u^{(L)} eu=eu(0)++eu(L))值得注意的是,这一变化对NGCF的性能影响不大,但却使后续消融研究更能说明GCN改进的嵌入质量。
我们实现了NGCF的三个简化版本:

  • NGCF-f,删除了 W 1 \textbf{W}_1 W1 W 2 \textbf{W}_2 W2的特征转换。

  • NGCF-n,消除了非线性激活函数 σ σ σ

  • NGCF-fn,该方法去掉了特征变换矩阵和非线性激活函数。

对于这三个变体,我们保持所有的超参数(如学习率、正则化系数、dropout率等)与NGCF的最优设置相同。我们在表1中报告了Gowalla和Amazon-Book数据集上的2层设置的结果。可以看出,去掉特征变换(NGCF-f)对所有三个数据集进行了一致的改进。相比之下,去除非线性激活对准确度的影响并不大。但是,如果我们在去除特征变换的基础上去除非线性激活(即,NGCF-fn),性能有明显提高。从这些观察中,我们得出结论:

  1. 添加特征变换会对其产生负面影响NGCF,因为在NGCF和NGCF-n两种模型中都将其去除,可以显著提高性能;</

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值