LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation阅读笔记

动机

本文是2020年SIGIR的一篇文章。最近图卷积网络(GCN)在协同过滤推荐中大放异彩,但是却很少有工作探究其为什么在协同过滤推荐系统中有效,缺乏较为完善的消融实验,在本文中,作者通过一系列消融实验发现GCN中的特征转换和非线性激活对协同过滤并没有益处,因此,作者提出了LightGCN,它仅包含GCN中最重要的邻域聚合,并且取得了很好地效果。

算法

lightGCN原理非常简单,它地图卷积操作定义为

其中\(\mathcal{N_u}\)\(\mathcal{N_u}\)代表用户u和物品i的第一跳邻居。通过上述公式,可以得到用户和物品在每一层的嵌入表示,在这里需要注意每个节点只聚合了它的邻居表示,并没有包括自身。之后,组合每一层的嵌入得到用户和物品的最终表示

其中\(\alpha_k\)表示第k层的对最终表现的贡献度。它可以被当作是超参数,也可以作为模型的参数训练得出,作者在实验中将\(\alpha_k\)设置为1/(k+1)。通过将每层的embedding组合可以捕获到不同层次的信息,并且可以实现自连接。模型的预测可以使用最终得到的用户与物品的embedding的内积

模型中需要训练的参数只有第0层的embedding,作者在这里使用BPR loss作为损失函数

结果

作者在三个数据集上将LightGCN和最先进的模型进行比较,LightGCN明显比其他模型效果更好。

并通过一系列消融实验,发现各个参数对模型的影响,其中最值得思考的就是不同层embedding组合的系数\(\alpha_k\),因为在Amazon-Book数据集上,使用某一单层的embedding(相当于将该层的\(\alpha_k\)设为1,其余层设为0)比所有层聚合的embedding效果还要好,这也说明了\(\alpha_k\)对模型的性能影响很大,是以后的一个研究方向。下图LightGCN-single就是单独使用某一层,可以看出单独使用第2层明显是最好的。

总结

本篇论文提出的LightGCN结构比较简单,因为上周读过这篇论文《Neural Graph Collaborative Filtering》,所以这篇文章较易理解。LightGCN就是将NGCF再简化,删除了不必要的部分——特征转换和非线性激活,作者在文章中比较详细地解释了为什么LightGCN简单但有效,因为GCN最初是为属性图设计的,图中的节点包含丰富的信息,而推荐系统中图的节点包含的只有交互信息,信息含量较少,即使使用了特征转换和非线性激活,也未必能提取出更多的有效信息,甚至还可能损坏模型性能,而保留下来的邻域聚合足以表示用户和物品之间的信息。文章中的lightGCN还有改进的空间,例如难负例采样、对抗采样、将\(\alpha_k\)当作模型参数去训练等等。

posted @ 2021-12-30 17:52  South1999  阅读(462)  评论(0编辑  收藏  举报