基于图的推荐算法(7):LightGCN: Simplifyin
前言
- SIGIR2020 针对基于GCN进行CF的算法研究,对GCN提出组件简化算法,是对NGCF算法的针对性改进(NGCF见上一篇博客)
- 来自何向南团队
摘要
GCN在推荐中的高效性未被深入研究,缺少对GCN原理的对比分析。
作者通过实验发现GCN中的特征转换和非线性激活对于CF的效果作用不大,甚至可能影响推荐效果。
因此,这篇文章主要研究简化GCN,仅保留其聚合近邻节点操作,并使用线性传播的方式计算得到最后的用户/物品嵌入。
NGCF模型
基于图的推荐算法(6): Neural Graph Collaborative Filtering (jianshu.com)
模型计算形式如下:在半监督节点分类中,节点具有丰富的节点语义信息,所以利用非线性转换对特征学习是有效的。
然而,CF中只用了ID特征,这类特征不具有连续语义,所以作者认为利用多层非线性转换对于学习更好的特征没有帮助,甚至有负面作用。
作者同时进行了相关的消融实验,出去特征转换W,以及非线性激活函数sigmoid,实验结果表明:
非线性转换对NGCF有严重的负面作用。
在以上结论的基础上,作者对GCN的使用进行了简化,提出了完整的LightGCN.
模型方法
前面已经说明:NGCF是一个规模大且冗余的GCN模型。所以研究的目标就是通过简化GCN、提出一个轻量且高效的模型。
轻量模型具有很多优势:具备一定的可解释性;训练和存储简单;模型容易分析。
1. Light Graph Convolution
卷积方面,去除非线性转换,同时略去自联结的情况,仅聚合近邻节点来表示当前节点。 至于self-connection的情况,通过后面的多层结合实现。
2. Layer Combination & Model Prediction
堆叠K层操作后,将各层输出加权求和得到最后的嵌入,实验中使用求平均得到最优的效果;多层相加主要是因为:
- 随着层数增加,嵌入会出现over-smoonthed过度平滑的情况,需要将各层聚合起来;
- 不同层会获取不同级别/阶的语义/关联信息
- 不同层加和实现了self-connection和卷积的利用,是一个重要的trick
3. 矩阵形式表示
4.模型训练
BPR Loss实验效果
与NGCF的直接对比 与其他SOTA对比小结
本文对基于GCN进行CF的模型进行了有效的分析,从模型简化的角度,从理论和实验的角度分析了GCN用于CF时的冗余设计,得到了轻量化的GCN模型;整体研究思路清晰,论文分析到位,是很不错的工作。
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c