前言
- SIGIR2019 基于图神经网络对CF进行改进的算法研究(何向南团队)
- 相关研究参见基于图的推荐算法(4): Graph Convolutional Matrix Completion - 简书 (jianshu.com)基于图的推荐算法(5): Spectral Collaborative Filtering - 简书 (jianshu.com)
摘要
学习用户和物品表征是当前推荐系统的核心。从早期的矩阵分解到最近出现的基于深度学习的方法,现有的努力通过从描述用户(或项目)的预先存在的特征映射,如 ID 和属性,来获得用户(或项目)的嵌入。
这种方法的一个固有缺点是,在用户-项目交互中隐藏的协同信号(高阶关系)在嵌入过程中没有被编码。因此,最终的嵌入表征可能无法具有协同过滤效应。
本文提出将用户-项目交互二部图整合到嵌入过程中。提出了一个新的推荐框架神经图协同过滤(NGCF) ,它通过在用户/项目图结构上传播嵌入来利用该结构。实现了二部图中高阶连通性(high-order connectivity)的高效建模,显式地将协同信号融入嵌入学习过程中。
与本系列前几篇工作的出发点基本相似,从二部图出发,探究如何挖掘/利用高阶连通性/关联性,通过不同的模型设计和表征构建来实现这一目的
前言
一般来说,可学习 的CF 模型(基于模型的CF方法)有两个关键组成部分:
- 嵌入,将用户和项目转换为向量化表示;
- 交互建模,基于嵌入重构历史交互。
例如,矩阵分解模型直接嵌入用户/项目 ID 作为矢量,并用内积计算交互; NCF使用非线性神经网络来取代MF中计算交互的内积操作等等。
这些模型尽管很高效,但这些方法为CF不足以生成高质量的特征嵌入,主要原因是:嵌入模块缺少对关键协同信号(collaborative signal)的显式编码,隐式地反映用户间(物品间)行为相似性。
更具体地说,大多数现有的方法只使用描述性特征(如 ID 和属性)来构建嵌入,而没有考虑用户与项目的交互,而这些交互仅用于定义模型训练的目标函数。因此,当嵌入不足以反映CF时,方法必须依靠交互来弥补次优嵌入的不足。
本文基于交互图结构以自然的方式来编码交互信息,利用用户-物品交互中的高阶联通性。
high-order connectivity概念如上图所示,如长路径表明用户u1可能会点击i4,同时与i5相比,i4更适合推荐给u1;因为<i4,u1>间有两条路径,而<i5,u1>间只有一条路径。
模型总体设计思路:
- 设计嵌入特征,并基于图神经网络的方式在图上迭代地传递嵌入;
- 通过多层嵌入传递层堆叠来捕捉高阶联通性。
模型方法
1. Embedding Layer
用户和物品嵌入构成模型嵌入表:2. Embedding Propagation Layer 嵌入传播
-
1阶关系传播 First-order Propagation
直接交互的物品(用户)能够最直接反映用户(物品)的特性,基于这种假设在相连的用户-物品对间进行嵌入传递,主要包括两个操作:-
Message Construction:
这种设计的优势在于:使得计算出来的信息依赖于两个节点的亲和力(affinity),即会传递来自相似节点的更多信息。能够增强模型表征能力,同时提升模型效果。
那么就是对应拉普拉斯正则,表示用户和物品节点的一跳邻居数量。 -
Message Aggregation 消息聚合. 将当前节点的近邻消息进行整合,同时考虑自环的情况(self-connection)
-
Message Construction:
-
高阶关系传播:通过堆叠嵌入传播层,可以实现高阶关系的利用:
-
传播的矩阵形式表示:
3. 模型预测
将各层的用户/物品嵌入进行拼接得到最后的表征4. 模型优化
此外采用了Message and Node Dropout,对传递的信息进行dropout;同时对节点进行随机block,丢弃其信息。
注意,dropout仅用于训练过程,并且必须在测试时取消。Message dropout使得表征对于用户和物品之间是否存在单个连接具有更强的鲁棒性,Node dropout则侧重于减少特定用户或项目的影响。
实验结果
将NGCF与之前几类主流CF方法进行对比:1)MF-based
-
Hop-Rec 将高阶关联融入MF的;
3)GC-MC与Pinsage:当时基于图神经网络的SOTA方法
小结
- 本文是基于图神经网络对CF进行改进的算法比较成熟、完整的工作,模型思路简单明晰,同时具有针对性的设计。也是后续该方向发展的重要文献。
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c