数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
十八、LightGCN [2020]
为减轻网上的信息过载,推荐系统已被广泛部署以执行个性化的信息过滤。推荐系统的核心是预测用户是否会和
item
进行交互,例如点击、评论、购买、以及其它形式的交互。因此,协同过滤collaborative filtering: CF
仍然是用于个性化推荐的基础fundamental
任务。其中,CF
专注于利用历史user-item
交互来实现预测。CF
最常见的范式是学习潜在特征(也称为embedding
)来表示用户和item
,并基于embedding
向量进行预测。矩阵分解是一种早期的此类模型,它直接将
user ID
直接映射到user embedding
。后来一些研究发现,利用用户的历史交互作为输入来增强
augmenting
user ID
可以提高embedding
的质量。例如:SVD++
展示了用户历史交互在预测用户评分方面的好处。Neural Attentive Item Similarity: NAIS
区分了历史交互中item
的重要性,并显示了在预测item ranking
方面的改进。
从
user-item
交互图interaction graph
来看,这些改进可以视为来自于用户子图结构user subgraph structure
(更具体而言,这子图结构就是用户的直接邻居)来改进embedding learning
。为了深化高阶邻居子图结构的使用,人们提出了
NGCF
从而为CF
实现了state-of-the-art
的性能。NGCF
从图卷积网络Graph Convolution Network: GCN
中汲取灵感,遵循相同的传播propagation
规则来refine embedding
:特征变换feature transformation
、邻域聚合neighborhood aggregation
、非线性激活nonlinear activation
。
尽管
NGCF
已经显示出有希望的结果,但是LightGCN
的作者认为NGCF
的设计相当沉重heavy
和冗余burdensome
:很多操作毫无理由地直接从GCN
继承下来(而并没有对GCN
进行彻底的理论研究和消融分析)。因此,这些操作不一定对CF
任务有用。具体而言,GCN
最初是针对属性图attributed graph
上的节点分类node classification
任务提出的,其中每个节点都有丰富的属性作为输入特征。而在CF
的user-item
交互图中,每个节点(user
或者item
)仅由一个one-hot ID
来描述,除了作为标识符之外没有任何具体的语义。在这种情况下,给定ID embedding
作为输入,执行多层非线性特征变换(这是现代神经网络成功的关键)不会带来任何好处,反而会增加模型训练的难度。为了验证这一想法(即
NGCF
中的这些操作不一定对CF
任务有用),在论文《LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation》
中,作者对NGCF
进行了广泛的消融研究。通过严格的控制实验(在相同的数据集拆分和评估协议上),作者得出结论:从GCN
继承的两个操作,特征转换和非线性激活,对NGCF
的有效性effectiveness
没有贡献。更令人惊讶的是,删除这两个操作会显著提高准确性accuracy
。这反映了在图神经网络中添加对目标任务无用useless
操作的问题:不仅没有带来任何好处,反而降低了模型的有效性。受到这些经验发现的启发,作者提出了一个名为
LightGCN
的新模型,其中仅包括GCN
最重要的组件component
用于协同过滤 ,即:邻域聚合。具体而言:- 在将每个用户(
item
)和ID embedding
关联之后,模型在user-item
交互图上传播embedding
来refine
这些embedding
。 - 然后,模型将不同传播层
propagation layer
学习的embedding
以加权和的方式聚合,从而获得用于预测的最终embedding
。
整个模型简单而优雅,不仅更容易训练,而且比
NGCF
和其它state-of-the-art
方法(如Mult-VAE
)获得了更好的实验性能。总而言之,论文的主要贡献如下:
经验表明:
GCN
两种常见设计,特征变换和非线性激活,对协同过滤的有效性没有正面影响。论文提出了
LightGCN
,它通过仅包含GCN
中最重要的组件进行推荐,从而在很大程度上简化了模型设计。论文通过遵循相同的实验
setting
,在实验中对比了LightGCN
和NGCF
,并展示了实质性的提升。论文还从技术和经验两个角度对
LightGCN
的合理性进行了深入分析。
相关工作:
协同过滤:协同过滤
Collaborative Filtering: CF
是现代推荐系统中的一种流行技术。CF
模型的一种常见范式是将用户和item
参数化为embedding
,并通过重建历史user-item
交互来学习embedding
参数。早期的CF
模型,如矩阵分解matrix factorization: MF
将用户(或item
)的ID
映射到embedding
向量中。最近的神经推荐模型如NCF
和LRML
使用相同的embedding
组件,但是同时增强了基于神经网络的交互建模interaction modeling
。除了仅使用
ID
信息之外,另一种类型的CF
方法将历史item
视为用户已经存在pre-existing
的特征,从而实现更好的user representation
。例如,FISM
和SVD++
使用历史item
的ID embedding
的加权均值作为目标用户的embedding
。最近,研究人员意识到历史item
对塑造个人兴趣有不同的贡献。为此,人们引入了注意力机制来捕获不同的贡献,如ACF
和NAIS
,从而自动学习每个历史item
的重要性。当以user-item
二部图的形式重新审视历史交互时,性能的提高可以归因于局部邻域(一阶邻域)的编码,这可以改进embedding learning
。即,将历史
item
视为用户行为特征,这是一种二部图上的局部邻域编码技术。用于推荐的图方法:另一个相关的研究方向是利用
user-item
图结构进行推荐。之前的工作,如
ItemRank
,使用标签传播机制label propagation mechanism
在图上直接传播用户偏好分user preference score
,即鼓励相连的节点具有相似的label
。最近出现的图神经网络graph neural network: GNN
揭示了图结构建模,尤其是高阶邻居,从而指导embedding learning
。- 早期的研究定义了谱域
spectral domain
上的图卷积,例如拉普拉斯特征分解Laplacian eigen-decomposition
(《Spectral Networks and Locally Connected Networks on Graphs 》
)和切比雪夫多项式Chebyshev polynomial
(《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》
),但是它们的计算成本很高。 - 后来,
GraphSage
和GCN
重新定义了空域spatial domain
中的图卷积,即聚合邻域的embedding
从而refine
目标节点的embedding
。由于其可解释性interpretability
和效率efficiency
,它们很快成为GNN
的流行公式并被广泛使用。 - 受图卷积力量的推动,
NGCF
、GC-MC
、PinSage
等最近的努力使得GCN
适应于user-item
交互图,并捕获高阶邻域中的CF
信号从而进行推荐。
值得一提的是,最近的一些努力提供了对
GNN
的深入洞察insight
,这激发了我们开发LightGCN
。具体而言,《Simplifying Graph Convolutional Networks》
认为GCN
不必要的复杂性,通过移除非线性、并将多个权重矩阵融合为一个从而开发简化的GCN
(simplified GCN: SGCN
)模型。LightGCN
和SGCN
的一个主要区别是:它们是针对不同的任务开发的,因此模型简化的合理性是不同的。具体而言:SGCN
用于节点分类,对模型的可解释性和效率进行了简化。- 相比之下,
LightGCN
用于协同过滤,其中每个节点只有一个ID
特征。因此,我们执行简化的理由更充分:非线性和权重矩阵对于CF
毫无用处,甚至会损害模型训练。
对于节点分类准确性,
SGCN
与GCN
相当(有时弱于)。对于CF
准确性,LightGCN
的性能大大优于GCN
(比NGCF
提高了15%
以上)。最后,同时进行的另一项工作
《Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network Approach》
也发现非线性在NGCF
中是不必要的,并为CF
开发了线性GCN
模型。相比之下,我们的LightGCN
更进了一步:我们删除了所有冗余参数,仅保留了ID embedding
,使模型像MF
一样简单。- 早期的研究定义了谱域
18.1 模型
18.1.1 NGCF
- 我们首先介绍
NGCF
,这是一个具有代表性的、state-of-the-art
的GCN
推荐模型。然后我们对NGCF
进行消融研究,以判断NGCF
中每个操作的有效性。本节的贡献是表明GCN
中的两种常见操作,特征转换和非线性激活,对协同过滤没有正面影响。
a. NGCF 介绍
首先每个用户和每个
$ \mathbf{\vec e}_u^{(l+1)} = \sigma\left(\mathbf W_1^{(l)}\mathbf{\vec e}_u^{(l)}+\sum_{i\in \mathcal N_u}\frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}}\left(\mathbf W_1^{(l)}\mathbf{\vec e}_i^{(l)}+\mathbf W_2^{(l)}\left(\mathbf{\vec e}_i^{(l)}\odot \mathbf{\vec e}_u^{(l)}\right)\right)\right)\\ \mathbf{\vec e}_i^{(l+1)} = \sigma\left(\mathbf W_1^{(l)}\mathbf{\vec e}_i^{(l)}+\sum_{u\in \mathcal N_i}\frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}}\left(\mathbf W_1^{(l)}\mathbf{\vec e}_u^{(l)}+\mathbf W_2^{(l)}\left(\mathbf{\vec e}_u^{(l)}\odot \mathbf{\vec e}_i^{(l)}\right)\right)\right) $item
都关联一个ID embedding
。令 $ \mathbf{\vec e}_u^{(0)} $ 表示用户 $ u $ 的ID embedding
、 $ \mathbf{\vec e}_i^{(0)} $ 表示item
$ i $ 的ID embedding
。NGCF
利用user-item
交互图来传播embedding
,即:其中:
- $ \mathbf{\vec e}_u^{(l)},\mathbf{\vec e}_i^{(l)} $ 分别为用户 $ u $ 和
item
$ i $ 在第 $ l $ 层的refined embedding
。 - $ \sigma(\cdot) $ 为非线性激活函数。
- $ \mathcal N_u $ 为用户 $ u $ 直接交互的
item
集合, $ \mathcal N_i $ 为与item
$ i $ 直接交互的user
集合。 - $ \mathbf W^{(l)}_1,\mathbf W^{(l)}_2 $ 为第 $ l $ 层可训练的权重矩阵,用于执行特征变换。
通过传播 $ L $ 层,
NGCF
得到了 $ L+1 $ 个embedding
$ \left\{\mathbf{\vec e}_u^{(0)},\mathbf{\vec e}_u^{(1)},\cdots,\mathbf{\vec e}_u^{(L)}\right\} $ 来描述一个用户、得到了 $ L+1 $ 个embedding
$ \left\{\mathbf{\vec e}_i^{(0)},\mathbf{\vec e}_i^{(1)},\cdots,\mathbf{\vec e}_i^{(L)}\right\} $ 来描述一个item
。然后
NGCF
拼接这 $ L+1 $ 个embedding
从而获得最终的user embedding
和item embedding
,并使用内积来生成预估分。- $ \mathbf{\vec e}_u^{(l)},\mathbf{\vec e}_i^{(l)} $ 分别为用户 $ u $ 和
NGCF
很大程度上遵循了标准的GCN
,包括使用非线性激活函数 $ \sigma(\cdot) $ 和特征变换矩阵 $ \mathbf W_1^{(l)},\mathbf W_2^{(l)} $ 。然而,我们认为这两种操作对于协同过滤不是太有用。在半监督节点分类任务中,每个节点都有丰富的语义特征作为输入,例如一篇文章的标题和关键词。因此,执行多层非线性变换有利于特征学习。
然而在协同过滤中,
user-item
交互图的每个节点只有一个id
作为输入,没有具体的语义。在这种情况下,执行多层非线性变换无助于学习更好的特征。更糟糕的是,执行多层非线性可能会增加训练的难度。接下来我们将提供实验的证据。
b. NGCF 实验探索
我们对
NGCF
进行消融研究,从而探索非线性激活和特征变换的影响。我们使用NGCF
作者发布的代码,在相同的数据集拆分和评估协议上运行实验,以保持尽可能公平地比较。由于
GCN
的核心是通过传播来refine embedding
,因此我们对相同embedding size
下的embedding
质量更感兴趣。因此,我们将获得最终embedding
的方式从拼接(即 $ \mathbf{\vec e}_u^* =\mathbf{\vec e}_u^{(0)}||\cdots||\mathbf{\vec e}_u^{(L)} $ )改为求和(即 $ \mathbf{\vec e}_u^* =\mathbf{\vec e}_u^{(0)}+\cdots+\mathbf{\vec e}_u^{(L)} $ )。注意,这种变更对于NGCF
的性能影响不大,但是使得以下消融研究更能够表明GCN
的refined embedding
质量。我们实现了
NGCF
的三个简化的变体:NGCF-f
:删除特征变换矩阵 $ \mathbf W_1^{(l)},\mathbf W_2^{(l)} $ 。NGCF-n
:删除非线性激活函数 $ \sigma(\cdot) $ 。NGCF-fn
:同时删除特征变换矩阵和非线性激活函数。
对于这三个变体,我们保持所有超参数(例如学习率、正则化系数、
dropout rate
等等)和NGCF
的最佳配置相同。我们在下表中报告了
Gowalla
和Amazon-Book
数据集上2-layer setting
的结果。可以看到:- 删除特征变换(即
NGCF-f
)导致在所有三个数据集上对NGCF
的持续提升。 - 相比之下,删除非线性激活函数(即
NGCF-n
)不会对准确性accuracy
产生太大影响。 - 如果我们同时删除特征变换矩阵和非线性激活函数(即
NGCF-fn
),那么性能会得到显著提高。
根据这些观察,我们得出以下结论:
- 添加特征变换对
NGCF
产生负面影响,因为在NGCF
和NGCF-n
这两个模型中删除特征变换(即NGCF-f
和NGCF-fn
)显著提高了性能。 - 添加非线性激活函数在包含特征变换时影响很小(
NGCF vs NGCF-n
),但是在禁用特征变换时会产生负面影响(NGCF-f vs NGCF-fn
)。 - 总体而言,特征变换和非线性激活函数对
NGCF
产生了相当负面的影响。因为通过同时移除它们,NGCF-fn
表现出比NGCF
的巨大提升(召回率相对提高9.57%
)。
为了更深入地了解表中获得的分数,以及理解为什么
NGCF
在这两种操作下(特征变换和非线性激活)恶化,我们在下图中绘制了训练损失和测试recall
。可以看到:
在整个训练过程中,
NGCF-fn
的训练损失要比NGCF, NGCF-f, NGCF-n
低得多。NGCF-fn
的训练损失和测试的recall
曲线保持一致,并且这种较低的训练损失成功地转化为更好的推荐准确性。NGCF
和NGCF-f
之间的比较显式了类似的趋势,只是提升幅度较小。
从上述证据中我们可以得出结论:
NGCF
的性能恶化源于训练难度,而不是过拟合。从理论上讲,
NGCF
比NGCF-f
具有更强的表示能力,因为将权重矩阵 $ \mathbf W_1^{(l)},\mathbf W_2^{(l)} $ 设置为单位矩阵 $ \mathbf I $ 可以完全恢复NGCF-f
模型。然而在实践中,NGCF
表现出比NGCF-f
更高的训练损失和更差的泛化性能。非线性激活的加入进一步加剧了表示能力和泛化性能之间的差异。NGCF
相比NGCF-f
更高的训练损失,这就是训练难度的表现。理论上NGCF
的模型容量更大,那么训练损失应该更低。假如NGCF
模型的训练损失更低、但是测试auc
反而更差,那么就是过拟合的表现。为了完善这一部分内容,我们主张在设计推荐模型时,进行严格的消融研究以明确每个操作的影响是非常重要的。否则,包含不太有用的操作会使得模型不必要地复杂化、增加模型训练难度、甚至降低模型的有效性。
18.1.2 LightGCN
前述分析表明:
NGCF
是一种用于协同过滤的沉重的、冗余的GCN
模型。在这些发现的推动下,我们设定了一个目标,即通过包含GCN
最基本的组件进行推荐从而开发一个轻量light
而有效effective
的模型。简单的模型具有以下优势:更容易解释、更容易训练和维护、技术上更容易分析模型行为并将其修改为更有效的方向,等等。在这一部分,我们首先展示我们设计的
Light Graph Convolution Network: LightGCN
模型,如下图所示。在LightGCN
中,仅对前一层邻居的embedding
执行归一化求和normalized sum
。所有其它操作,如自连接self-connection
、特征转换、非线性激活等等,都被删除。这在很大程度上简化了GCN
。在Layer Combination
中,我们对每一层的embedding
求和以获得最终representation
。然后我们对
LightGCN
进行深入分析,以展示其简单设计背后的合理性。最后我们描述了如何针对推荐来进行模型训练。
a. LightGCN
$ \mathbf{\vec e}_u^{(l+1)} = \text{AGG}\left(\mathbf{\vec e}_u^{(l)},\left\{\mathbf{\vec e}_i^{(l)}:i\in \mathcal N_u\right\} \right) $GCN
的基本思想是通过在图上平滑特征来学习节点的representation
。为了实现这一点,它迭代式地执行图卷积graph convolution
,即将邻居的特征聚合为目标节点的新representation
。这种邻域聚合可以抽象为:其中 $ \text{AGG}(\cdot) $ 为一个聚合函数(图卷积的核心),它考虑了目标节点及其邻居节点在第 $ l $ 层的
representation
。很多工作都提出了 $ \text{AGG}( \cdot) $ ,如:
GIN
中的weighted sum
聚合器、GraphSAGE
中的LSTM
聚合器、BGNN
中的bilinear interaction
聚合器等等。然而,大多数工作都将特征转换或非线性激活与 $ \text{AGG}( \cdot) $ 函数联系起来。尽管这些聚合器在具有语义输入特征的节点分类任务或图分类graph classification
任务上表现良好,但是它们可能对协同过滤造成负担(参考前面的初步分析结果)。
$ \mathbf{\vec e}_u^{(l+1)} = \sum_{i\in \mathcal N_u} \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}} \mathbf{\vec e}_i^{(l)}\\ \mathbf{\vec e}_i^{(l+1)} = \sum_{u\in \mathcal N_i} \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}} \mathbf{\vec e}_u^{(l)} $Light Graph Convolution: LGC
:在LightGCN
中,我们采用简单的加权和聚合器,删除了特征变换和非线性激活。LightGCN
中的图卷积操作定义为:对称的归一化项 $ \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}} $ 遵从标准的
GCN
的设计,这样可以避免embedding
的幅度(即向量的幅长)随着图卷积运算而增加。这里也可以应用其它选择,如 $ L_1 $ 范数。但是根据经验,我们发现这种对称归一化具有良好的性能(参考后面实验的结果)。值得注意的是:在
LGC
中,我们只聚合相连的邻居,没有聚合目标节点本身(即自连接)。这和大多数现有的图卷积操作不同,现有的图卷积通常聚合扩展的邻域(包含节点自身)并需要专门处理自连接。这是因为:层组合操作layer combination operation
本质上捕获了和自连接相同的效果,因此在LGC
中没有必要包含自连接。关于层组合操作的内容接下来介绍,并且我们还将证明层组合操作和自连接本质上是相同的效果。
层组合和模型预测
Layer Combination and Model Prediction
:在LightGCN
中,唯一可训练的模型参数是第0
层的embedding
,即所有用户的 $ \mathbf{\vec e}_u^{(0)} $ 和所有item
的 $ \mathbf{\vec e}_i^{(0)} $ 。当给定这些embedding
时,可以通过LGC
计算更高层的embedding
。在 $ L $ 层
$ \mathbf{\vec e}_u = \sum_{l=0}^L\alpha_l\mathbf{\vec e}_u^{(l)},\quad \mathbf{\vec e}_i = \sum_{l=0}^L\alpha_l\mathbf{\vec e}_i^{(l)} $LGC
之后,我们进一步结合在每一层获得的embedding
,从而得到最终的user representation
和最终的item representation
:其中 $ \alpha_l\ge 0 $ 表示第 $ l $ 层
embedding
在构成final embedding
中的重要性。它可以被视为要手动调优的超参数,也可以被视为要自动优化的模型参数。在我们的实验中,我们发现将 $ \alpha_l $ 统一设为 $ 1/(L+1) $ 通常会带来良好的性能。因此,我们没有设计特殊的组件来优化 $ \alpha_l $ ,从而避免不必要地复杂化LightGCN
并保持其简单性。和
NGCF
采用多层embedding
的拼接聚合不同,LightGCN
采用多层embedding
的加权和聚合。我们执行层组合
layer combination
从而获得final representation
的原因有三个:- 随着层数的增加,
embedding
会过度平滑over-smooth
。因此,简单地使用最后一层是有问题的。 - 不同层的
embedding
捕获不同的语义。例如,第一层对有交互的用户和item
强制执行平滑,第二层平滑与交互item
(用户)重叠的用户(item
),更高层捕获更高阶的邻近性proximity
。因此,将它们组合起来将使得representation
更加全面。 - 将不同层的
embedding
以加权和的方式组合,可以捕捉到带自连接的图卷积的效果,这是GCN
中的一个重要技巧。
模型预测被定义
$ \hat y_{u,i} = \mathbf{\vec e}_u^\top \mathbf{\vec e}_i $user final representation
和item final representation
的内积:- 随着层数的增加,
矩阵形式:我们提供了
LightGCN
的矩阵形式,以便于实现以及和现有模型的讨论。假设
$ \mathbf A = \begin{bmatrix} \mathbf 0& \mathbf R\\ \mathbf R^\top &\mathbf 0 \end{bmatrix} $user-item
交互矩阵为 $ \mathbf R\in \mathbb R^{M\times N} $ ,其中 $ M $ 为用户数量、 $ N $ 为item
数量。如果用户 $ u $ 和item
$ i $ 有交互则 $ R_{u,i}=1 $ ,否则 $ R_{u,i} = 0 $ 。然后我们得到user-item
交互图的邻接矩阵为:令第
$ \mathbf E^{(l+1)} = \left(\mathbf D^{-1/2}\mathbf A \mathbf D^{-1/2}\right) \mathbf E^{(l)}=\tilde {\mathbf A}\mathbf E^{(l)} = \tilde {\mathbf A} ^{l+1}\mathbf E^{(0)} $0
层的embedding
矩阵为 $ \mathbf E^{(0)}\in \mathbb R^{(M+N)\times d} $ ,其中 $ d $ 为embedding size
。则我们可以得到LGC
的矩阵等价形式为:其中 $ \mathbf D\in \mathbb R^{(M+N)\times (M+N)} $ 是一个对角矩阵(也称度矩阵), $ D_{i,i} = \sum_{j} A_{i,j} $ 表示 $ \mathbf A $ 中第 $ i $ 行非零元素的个数, $ \tilde {\mathbf A} = \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} $ 为对称归一化的矩阵。
最后,我们得到用于模型预测的
$ \mathbf E = \sum_{l=0}^L\alpha_l \mathbf E^{(l)}=\sum_{l=0}^L \alpha_l\tilde{\mathbf A}^{l}\mathbf E^{(0)} $final embedding
矩阵为:.
b. 模型分析
我们进行模型分析以证明
LightGCN
简单设计背后的合理性。首先我们讨论了与
Simplified GCN
的联系,这是最近的一个线性GCN
模型,它将自连接集成到图卷积中。这个分析表明通过层组合,LightGCN
包含了自连接的效果。因此,LightGCN
不需要在邻接矩阵中加入自连接。然后我们讨论和
Approximate Personalized Propagation of Neural Predictions: APPNP
的联系,这是最近的一个GCN
变体,它通过从Personalized PageRank
的启发来解决过度平滑问题。这个分析表明了LightGCN
和APPNP
之间的潜在等效性。因此,我们的LightGCN
在具有可控过度平滑controllable oversmoothing
的长距离传播方面享受同样的好处。最后,我们分析了第二层
LGC
,以展示它如何平滑用户及其二阶邻居。这为LightGCN
的工作机制提供更多的洞察insights
。与
$ \mathbf E^{(l+1)} = \left(\mathbf D + \mathbf I\right)^{-1/2} \left(\mathbf A + \mathbf I\right)\left(\mathbf D + \mathbf I\right)^{-1/2} \mathbf E^{(l)} $SGCN
的关联:在论文《Simplifying Graph Convolutional Networks》
中,作者论证了GCN
对节点分类的不必要的复杂性,并提出了SGCN
。SGCN
通过删除非线性并将权重矩阵压缩为一个权重矩阵来简化GCN
。SGCN
中的图卷积定义为:其中 $ \mathbf I $ 为单位矩阵,它添加到 $ \mathbf A $ 上从而构成自连接。
在下面的分析中,为简单起见,我们省略了 $ (\mathbf D+\mathbf I)^{-1/2} $ 项,因为该项仅仅对
embedding
执行缩放re-scale
。在
$ \mathbf E^{(L)} = (\mathbf A + \mathbf I)\mathbf E^{(L-1)}=(\mathbf A+\mathbf I)^L\mathbf E^{(0)} \\ = C_{L}^0 \mathbf E^{(0)} + C_L^1\mathbf A\mathbf E^{(0)} +C_L^2\mathbf A^2\mathbf E^{(0)} + \cdots+C_L^L\mathbf A^L\mathbf E^{(0)} $SGCN
中,最后一层得到的embedding
用于下游预测任务,可以表示为:其中 $ C_L^l=\frac{L\times\cdots\times (L-l+1)}{l\times\cdots\times 1} $ 表示组合数。
上述推导表明:将自连接插入到 $ \mathbf A $ 并在其上传播
embedding
,本质上等效于在每个LGC
层传播的embedding
的加权和。添加自连接相当于将每一层的
embedding
向更高层传播,此时最后一层embedding
隐含了各层的embedding
信息。这相当于不带自连接的、LGC
的各层embedding
的直接聚合。和
APPNP
的关联:在最近的一项工作《Predict then propagate: Graph neural networks meet personalized pagerank》
中,作者将GCN
和Personalized PageRank
联系起来,从中得到启发,并提出一个叫做APPNP
的GCN
变体。该变体可以在没有过度平滑oversmoothing
风险的情况下进行长距离传播。受到
Personalized PageRank
中的传送设计teleport design
的启发,APPNP
用起始特征starting feature
(即第0
层embedding
)补充每个传播层,这可以平衡balance
保留局部性locality
(即靠近根节点以减轻过度平滑)和利用大的邻域的信息的需要。
$ \mathbf E^{(l+1)} = \beta\mathbf E^{(0)} + (1-\beta)\tilde {\mathbf A} \mathbf E^{(l)} $APPNP
中的传播层定义为:其中 $ \beta $ 为传播中控制起始特征保留的
teleport probability
, $ \tilde{\mathbf A} $ 为归一化的邻接矩阵。在
$ \mathbf E^{(L)} = \beta \mathbf E^{(0)} + (1-\beta)\tilde{\mathbf A}\mathbf E^{(L-1)}\\ = \beta \mathbf E^{(0)} + \beta(1-\beta)\tilde{\mathbf A}\mathbf E^{(0)} +(1-\beta)^2\tilde{\mathbf A}^2\mathbf E^{(L-2)}\\ = \beta \mathbf E^{(0)}+\beta(1-\beta)\tilde{\mathbf A}\mathbf E^{(0)}+\beta(1-\beta)^2\tilde{\mathbf A}^2\mathbf E^{(0)}+\cdots+(1-\beta)^L\tilde{\mathbf A}^L\mathbf E^{(0)} $APPNP
中,最后一层用于最终预测,即:我们可以看到:通过相应的设置 $ \alpha_l $ ,
LightGCN
可以完全恢复APPNP
使用的预测embedding
。因此,LightGCN
在对抗过度平滑方面具有APPNP
的优势:通过适当地设置 $ \alpha $ ,我们允许使用大的 $ L $ 进行具有可控过度平滑controllable oversmoothing
的长程long-range
建模。另一个细微的区别是:
APPNP
在邻接矩阵中添加了自连接。然而,正如我们之前所展示的,由于LightGCN
采用了不同层embedding
的加权和,因此自连接是冗余的。二阶
embedding
的平滑性:由于LightGCN
的线性和简单性,我们可以深入了解它如何平滑embedding
。这里我们分析一个两层LightGCN
来证明其合理性。以用户侧为例,直观地,第二层平滑了在交互
$ \mathbf{\vec e}_u^{(2)} = \sum_{i\in \mathcal N_u}\frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}} \mathbf{\vec 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||\mathcal N_v|}} \mathbf{\vec e}_v^{(0)} $item
上有重叠overlap
的所有用户。具体而言,我们有:可以看到,如果另一个用户 $ v $ 和目标用户 $ u $ 有共同的交互
$ c_{v\rightarrow u} = \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_v|}} \sum_{i\in \mathcal N_u\cap \mathcal N_v}\frac{1}{|\mathcal N_i|} $item
,那么 $ v $ 对 $ u $ 的平滑强度smoothness strength
由以下系数来衡量:如果 $ v $ 和 $ u $ 没有共同的交互
item
,那么该系数为零。这个系数相当容易解释:二阶邻居 $ v $ 对 $ u $ 的影响由以下因素决定:
- 共同交互
item
的数量(即: $ \sum_{i\in \mathcal N_u\cap \mathcal N_v} $ ),数量越多则影响越大。 - 共同交互
item
的流行度popularity
(即: $ |\mathcal N_i| $ ),流行度越低(即越能够代表用户的个性化偏好)则影响越大。 - 用户 $ v $ 的活跃度(即: $ |\mathcal N_v| $ ),越不活跃则影响越大。
这种可解释性很好地满足了
CF
在度量用户相似性时的假设,并证明了LightGCN
的合理性。由于
LightGCN
公式的对称性,我们可以在item
方面得到类似的分析。- 共同交互
LightGCN
和SGCN
的一个主要区别在于:LightGCN
和SGCN
是针对不同的任务开发的,因此模型简化的合理性是不同的。具体而言:SGCN
用于节点分类,对模型的可解释性和效率进行简化。相比之下,LightGCN
用于协同过滤CF
,其中每个节点只有一个ID
特征。因此我们做简化的理由更充分:非线性和权重矩阵对于协同过滤毫无用处,甚至会损害模型训练。
c. 模型训练
LightGCN
的可训练参数只是第0
层的embedding
,即 $ \Theta=\left\{\mathbf E^{(0)}\right\} $ 。换句话讲,模型复杂度和标准的矩阵分解matrix factorization: MF
相同。我们采用贝叶斯个性化排序
$ \mathcal L_{\text{BPR}} = -\sum_{u=1}^M\sum_{i\in \mathcal N_u}\sum_{j\ne \mathcal N_u}\ln \sigma\left(\hat y_{u,i}-\hat y_{u,j}\right) + \lambda \left\|\mathbf E^{(0)}\right\|^2 $Bayesian Personalized Ranking
损失函数。BPR loss
是一种pairwise loss
,它 鼓励观察到的item
的预测高于未观察到的对应item
:其中 $ \lambda $ 控制了 $ L_2 $ 正则化强度。
- 我们采用
Adam
优化器,并以mini-batch
的方式优化。 - 我们知道其它可能会改进
LightGCN
训练的高级负采样策略,如hard
负采样和对抗采样adversarial sampling
。我们把这个扩展放在未来,因为它不是这项工作的重点。
- 我们采用
注意,我们没有引入
GCN
和NGCF
中常用的dropout
机制。原因是我们在LightGCN
中没有特征变换权重矩阵,因此在embedding
层上执行 $ L_2 $ 正则化足以防止过拟合。这展示了LightGCN
简单性的优点:比NGCF
更容易训练和调优。NGCF
需要额外地调优两个dropout rate
(node dropout
和message dropout
),并将每层的embedding
归一化为单位长度。还可以学习层的组合系数 $ \{\alpha_l\}_{l=0}^L $ ,或者使用注意力网络对组合系数进行参数化,这在技术上是可行的。即:个性化层的组合系数 $ \alpha_l $ ,以便为不同的用户启用自适应阶次的平滑。例如,稀疏用户可能需要来自高阶邻居的更多信号,而活跃用户则只需要来自低阶邻居的更少信号。
活跃用户具有大量的一阶
item
邻居,因此使用低阶邻居就可以得到良好的用户representation
;稀疏用户具有很少的一阶item
邻居,因此需要高阶邻居来补充从而得到更好的用户representation
。然而,我们发现在训练数据上学习 $ \alpha_l $ 并没有带来改进。这可能是因为训练数据不包含足够的信号来学习可泛化到未知数据的好的 $ \alpha_l $ 。我们还尝试从验证数据中学习 $ \alpha_l $ ,这是受到
《λOpt: Learn to Regularize Recommender Models in Finer Levels》
的启发,它在验证数据上学习超参数。我们发现性能性能略有提升(小于1%
)。我们将探索 $ \alpha_l $ 的最佳设置(如针对不同的用户和
item
来进行个性化)作为未来的工作。
18.2 实验
我们首先描述实验设置,然后和
NGCF
进行详细比较。NGCF
是和LightGCN
最相关、但是更复杂的方法。接下来我们将LightGCN
和其它state-of-the-art
方法进行比较。为了证明LightGCN
中的设计合理性并揭示其有效的原因,我们进行了消融研究和embedding
分析。最后我们研究了超参数。数据集:为了减少实验工作量并保持公平的比较,我们密切遵循
NGCF
工作的配置。我们从NGCF
作者那里获取了实验数据集(包括训练集、测试集的拆分),其统计数据如下表所示。Gowalla
和Amazon-Book
和NGCF
论文中使用的完全一致,因此我们直接使用NGCF
论文中的结果。- 唯一的例外是
Yelp 2018
数据集,这是一个修订版本。根据NGCF
作者的说法,之前的版本没有过滤掉测试集中的冷启动item
,他们只向我们分享了修订版本。因此,我们在Yelp 2018
数据集上重新运行了NGCF
。 - 评估指标是由
all-ranking
协议(用户的所有未交互的item
都是候选item
)计算的recall@20
和ndcg@20
。
对比方法:主要的对比方法是
NGCF
,其表现优于多种方法,包括基于GCN
的模型GC-MC, PinSage
、基于神经网络的模型NeuMF, CMN
、以及基于分解的模型MF, Hop-Rec
。由于比较是在相同评估协议下的相同数据集上进行的,因此我们没有进一步和这些方法进行比较(仅仅比较了NGCF
)。我们还进一步比较了两种相关的、且具有竞争力的
CF
方法:Mult-VAE
:这是一种基于变分自编码器variational autoencoder: VAE
的、基于item
的CF
方法。它假设数据是从多项式分布中生成的,并使用变分推断variational inference
进行参数估计。我们运行作者发布的代码,并在
[0, 0.2, 0.5]
中调优dropout rate
、在[0.2, 0.4, 0.6, 0.8]
中调优 $ \beta $ 。模型架构是原始论文中建议的架构:600 -> 200 -> 600
。GRMF
:该方法通过添加图拉普拉斯正则化器graph Laplacian regularizer
来平滑矩阵分解。为了公平地比较item
推荐,我们将评分预测损失调整为BPR loss
。
$ \mathcal L = -\sum_{u=1}^M\sum_{i\in \mathcal N_u}\left(\sum_{j\ne \mathcal N_u}\ln \sigma\left(\mathbf{\vec e}_u^\top\mathbf{\vec e}_i - \mathbf{\vec e}_u^\top\mathbf{\vec e}_j\right)+\lambda_g \left\|\mathbf{\vec e}_u-\mathbf{\vec e}_i\right\|^2\right) + \lambda \|\mathbf E\|^2 $GRMF
的目标函数为:其中 $ \lambda_g $ 在 $ \left[10^{-5},10^{-4},\cdots,10^{-1}\right] $ 之间调优,其它的超参数设置和
LightGCN
相同。此外,我们还比较了一个给拉普拉斯图增加归一化的变体:
$ \lambda_g\left\|\frac{\mathbf{\vec e}_u}{\sqrt{|\mathcal N_u|}}-\frac{\mathbf{\vec e}_i}{\sqrt{|\mathcal N_i|}}\right\|^2 $这被称作
GRMF-norm
。这两种GRMF
方法通过拉普拉斯正则化器在训练中引入embedding
平滑(测试时还是原始的embedding
而没有平滑),而我们的LightGCN
在预测模型中实现了embedding
平滑。
超参数配置:
- 与
NGCF
相同,所有模型的embedding
大小固定为64
,embedding
参数使用Xavier
方法初始化。 - 我们使用
Adam
优化器优化LightGCN
,并使用默认的学习率0.001
和默认的batch size = 1024
(在Amazon-Book
上,我们将batch size
增加到2048
以提高训练速度)。 - $ L_2 $ 正则化系数 $ \lambda $ 在 $ \left[10^{-6},10^{-5},\cdots,10^{-2}\right] $ 范围内搜索,大多数情况下最优值为 $ 10^{-4} $ 。
- 层组合系数 $ \alpha_l $ 统一设置为 $ \frac{1}{1+L} $ ,其中 $ L $ 为层数。
- 我们在
1 ~ 4
的范围内测试 $ L $ ,当 $ L=3 $ 时可以获得令人满意的性能。 - 早停和验证策略与
NGCF
相同。通常,1000
个epoch
足以让LightGCN
收敛。
我们的实现在
TensorFlow
和PyTorch
中都可用。- 与
18.2.1 模型比较
与
NGCF
比较:我们与NGCF
进行了详细的比较,下表中记录了不同层(1
层到4
层)的性能,还显示了每个指标的相对提升比例。其中NGCF
在Gowalla
和Amazon-Book
上的结果来自于NGCF
原始论文。我们在下图中进一步绘制了
training loss
和testing recall
的训练曲线training curves
,从而揭示LightGCN
的优势,并明确训练过程。训练曲线是每隔20
个epoch
收集一次训练损失和测试召回率。Yelp2018
结果的趋势和Gowalla/Amazon-Book
相同,因为篇幅有限这里忽略Yelp2018
的结果曲线。可以看到:
在所有情况下,
LightGCN
的表现都远远超过NGCF
。例如在
Gowalla
数据集上,NGCF
论文中报告的最高召回率为0.1570
,而我们的LightGCN
在4
层设置下可以达到0.1830%
,高出16.56%
。平均而言,三个数据集的召回率提高了
16.52%
、ndcg
提高了16.87%
,这是相当显著的提升。可以看到
LightGCN
的性能优于NGCF-fn
。NGCF-fn
是删除特征变换和非线性激活的NGCF
变体。由于NGCF-fn
仍然包含比LightGCN
更多的操作(如,自连接、图卷积中user embedding
和item embedding
之间的交互、dropout
),这表明这些操作对于NGCF-fn
也可能是无用的。增加层数可以提高性能,但是增益会逐渐减少。一般的观察是:将层数从
0
(即矩阵分解模型)增加到1
会导致最大的性能增益,并且在大多数情况下使用3
层会导致令人满意的性能。这一观察结果和NGCF
的发现一致。在训练过程中,
LightGCN
始终获得较低的训练损失,这表明LightGCN
比NGCF
更容易拟合训练数据。此外,较低的训练损失成功地转化为更好的测试准确性accuracy
,这表明了LightGCN
强大的泛化能力。相比之下,
NGCF
较高的训练损失和较低的测试准确性反映了训练好如此重型heavy
的模型的实际难度。
注意,在图中我们显示了两种方法在最佳超参数设置下的训练过程。虽然提高
NGCF
的学习率可以降低其训练损失(甚至低于LightGCN
),但是无法提高测试召回率,因为以这种方式降低训练损失只能为NGCF
找到无效解trivial solution
。和
SOA
模型的比较:下表给出了LightGCN
和其它baseline
方法的性能比较。我们展示了我们可以为每种方法获得的最佳得分。可以看到:
LightGCN
在所有三个数据集上始终优于其它方法,证明了其简单而合理的设计的有效性。注意:
LightGCN
可以通过调整 $ \alpha_l $ 进一步提升效果(参加后面的消融研究),而这里我们仅使用统一的 $ 1/(L+1) $ 设置以免过度调优over-tuning
。在所有
baseline
中:Mult-VAE
表现出最强的性能,优于GRMF
和NGCF
。GRMF
的性能与NGCF
相当,优于MF
,这表明使用拉普拉斯正则化器强制embedding
平滑的效果。- 通过在拉普拉斯正则化器中加入归一化,
GRMF-norm
在Gowalla
上优于GRMF
、在Yelp2018
和Amazon-Book
上没有任何收益。
18.2.2 消融研究
我们通过展示层组合
layer combination
和对称的sqrt
归一化如何影响LightGCN
的性能来进行消融研究。为了证明前面分析的
LightGCN
的合理性,我们进一步研究了embedding smoothness
(这是LightGCN
有效的关键原因)的影响。层组合的影响:下图显示了
LightGCN
及其变体LightGCN-single
的结果。其中LightGCN-single
不使用层组合,即仅仅将 $ \mathbf E^{(L)} $ 用于 $ L $ 层LightGCN
的最终预测。由于篇幅有限,我们省略了
Yelp2018
上的结果,这与Amazon-Book
显示出类似的趋势。可以看到:聚焦
LightGCN-single
,我们发现:当层数从1
增加到4
时,它的性能先提升然后下降;在大多数情况下,峰值点在2
层,然后迅速下降到4
层这个最差点。这一结果表明:使用一阶和二阶邻居来平滑节点的
embedding
对于CF
非常有用,而在使用高阶邻居时会遇到过度平滑的问题。聚焦
LightGCN
,我们发现:它的性能随着层数的增加而逐渐提高。即使使用4
层,LightGCN
的性能也不会下降。这证明了
layer combination
解决过度平滑的有效性,正如我们前面技术分析中(和APPNP
的关联)所表述的那样。比较这两种方法,我们发现:
LightGCN
在Gowalla
上的表现始终优于LightGCN-single
,但是在Amazon-Book
和Yelp2018
上则不然(其中2
层LightGCN-single
表现最好)。对于这种现象,在得出结论之前需要注意两点:
LightGCN-single
是LightGCN
的特例。如果将 $ \alpha_L =1 $ ,其它 $ \alpha_l=0 $ ,则LightGCN
降级为LightGCN-single
。- 在
LightGCN
中,我们没有调优 $ \alpha_l $ 而是简单地将其设为 $ 1/(L+1) $ 。因此我们可以看到通过调优 $ \alpha_l $ 进一步提高LightGCN
性能的潜力。
对称
sqrt
归一化:在LightGCN
中,我们在执行邻域聚合时对每个邻域embedding
采用对称sqrt
归一化 $ \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_i|}} $ 。为了研究其合理性,我们在这里探索了三种不同的选择:- 仅使用左侧目标节点的系数,即左侧归一化,用
-L
来表示。 - 仅使用右侧邻居节点的系数,即右侧归一化,用
-R
来表示。 - 使用
L1
归一化,即移除平方根,用-L1
来表示。
注意,如果移除整个归一化本身,那么训练会变得数值不稳定,并且会受到
not-a-value:NAN
问题的影响,因此这里我们不会比较这个配置。下表给出了
3
层LightGCN
的结果, 可以看到:- 一般而言,最佳设置是使用对称
sqrt
归一化(即LightGCN
的当前设计)。移除任何一侧都会大大降低性能。 - 次优设置是仅在左侧使用
L1
归一化,即LightGCN-L1-L
,这相当于通过in degree
将邻接矩阵归一化为随机矩阵stochastic matrix
。 - 两侧对称归一化有助于
sqrt
归一化(即LightGCN vs LightGCN-L/LightGCN-R
),但是会降低L1
归一化的性能(即LightGCN-L1 vs LightGCN-L1-L/LightGCN-L1-R
)。
- 仅使用左侧目标节点的系数,即左侧归一化,用
$ c_{v\rightarrow u} = \frac{1}{\sqrt{|\mathcal N_u||\mathcal N_v|}} \sum_{i\in \mathcal N_u\cap \mathcal N_v}\frac{1}{|\mathcal N_i|} $Embedding Smoothness
分析:正如我们在前面分析的那样,一个2
层LightGCN
根据用户交互item
上重叠overlap
的用户来平滑用户的embedding
,两个用户之间的平滑强度smoothing strength
$ c_{v\rightarrow u} $ 根据以下公式来衡量:我们推测这种
$ S_U = \sum_{u=1}^M\sum_{v=1}^M c_{v\rightarrow u}\left(\frac{\mathbf{\vec e}_u}{\left\|\mathbf{\vec e}_u\right\|_2}-\frac{\mathbf{\vec e}_v}{\left\|\mathbf{\vec e}_v\right\|_2}\right)^2 $embedding
平滑是LightGCN
有效性的关键原因。为了验证这一点,我们首先将用户embedding
的平滑性定义为:其中
embedding
的L2
范数用于消除embedding
幅度scale
的影响。类似地,我们可以获得
item embedding
的平滑性定义。理论上如果两个用户平滑强度 $ c_{v\rightarrow u} $ 较大,则他们之间应该越相似,即 $ \left(\frac{\mathbf{\vec e}_u}{\left\|\mathbf{\vec e}_u\right\|_2}-\frac{\mathbf{\vec e}_v}{\left\|\mathbf{\vec e}_v\right\|_2}\right)^2 $ 很小。因此 $ S_U $ 可以视为一种平滑性损失
smoothness loss
,该值越小那么embedding
越平滑。下表显式了矩阵分解(即使用 $ \mathbf E^{(0)} $ 进行模型预测)、
2
层的LightGCN-single
(即使用 $ \mathbf E^{(2)} $ 进行模型预测)这两个模型的平滑性。注意:2
层LightGCN-single
在推荐准确性方面远远超过MF
。可以看到:
LightGCN-single
的平滑性损失远远低于MF
。这表明,通过进行light graph convolution
,embedding
变得更平滑、更适合用于推荐。
18.2.3 超参数研究
当
LightGCN
应用于新数据集时,除了标准的超参数学习率之外,最重要的超参数是L2
正则化系数 $ \lambda $ 。这里我们研究了一个2
层的LightGCN
的性能针对超参数 $ \lambda $ 变化的曲线,如下图所示。可以看到:LightGCN
对 $ \lambda $ 相对不敏感。即使当 $ \lambda = 0 $ 时,LightGCN
也比NGCF
要好。而NGCF
额外使用dropout
来防止过拟合。这表明
LightGCN
不太容易过拟合,因为LightGCN
中唯一可训练的参数是第0
层的ID embedding
,所以模型很容易训练和正则化。Yelp 2018
、Amazon-Book
、Gowalla
数据集上, $ \lambda $ 的最佳取值分别为 $ 10^{-3},10^{-4},10^{-4} $ 。当 $ \lambda \gt 10^{-3} $ 时,模型性能下降得很快,这表明太强的正则化将对模型正常训练产生负面影响,因此不鼓励这样做。
我们相信
LightGCN
的洞察对推荐模型的未来发展具有启发意义。随着链接图数据linked graph data
在实际应用中的流行,基于图的模型在推荐中变得越来越重要。通过显式地利用预测模型中实体之间的关系,基于图的模型优于传统的监督学习方案(如隐式利用实体之间关系的分解机FM
)。例如,最近的一个趋势是利用辅助信息,如
item
知识图、社交网络、多媒体内容,从而进行推荐。在这个过程中,GCN
已经建立了state-of-the-art
技术。然而,这些模型也可能会遇到NGCF
的类似问题,因为user-item
交互图也由相同的、可能不必要的神经操作建模。我们未来计划在这些模型中探索LightGCN
的思想。另一个未来的方向是个性化层组合权重 $ \alpha_l $ ,以便为不同的用户启用自适应阶次的平滑。例如,稀疏用户可能需要来自高阶邻居的更多信号,而活跃用户可能只需要低阶邻居的信号。
最后,我们将进一步探索
LightGCN
简单性的优势,研究非采样回归损失non-sampling regression loss
是否存在快速解决方案,并将其流式传输streaming
到在线工业场景。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论