注:本文所用到的代码及论文,文章底部有链接,可自行下载
论文部分:
1、简单介绍概念知识:
开发了一个新的推荐框架 Neural Graph Collaborative Filtering (NGCF),它通过在传播嵌入来利用 user-item 图结构。 这导致了用户项目图中高阶连通性的表达建模,以显式方式有效地将协作信号注入到嵌入过程中。通过利用来自用户项交互的高阶连通性来应对挑战,这是一种在交互图结构中编码协作信号的自然方式。(感觉官方术语太形式化,可看下面白话介绍)
图 1 说明了高阶连通性的概念。 推荐感兴趣的用户是u1,在用户-项目交互图的左子图中用双圆圈标记。 右子图显示了从 u1 扩展的树结构。 高阶连通性表示从路径长度 l 大于 1 的任意节点到达 u1 的路径。
例如,路径 u1 ← i2 ←u2 表示 u1 和 u2 之间的行为相似性,因为两个用户都与 i2 进行了交互; 较长的路径 u1 ← i2 ←u2 ← i4 表明 u1 很可能采用 i4,因为她的类似用户 u2 之前已经消费过 i4。 此外,从 l = 3 的整体来看,项目 i4 比项目 i5 更可能对 u1 感兴趣,因为有两条路径连接 <i4,u1>,而只有一条路径连接 <i5,u1>。
总而言之,这项工作做出了以下主要贡献:
(1)强调了在基于模型的 CF 方法的嵌入功能中明确利用协作信号的关键重要性。
(2)提出了NGCF,一种基于图神经网络的新推荐框架,它通过执行嵌入传播以高阶连接的形式显式编码协作信号。
(3)对三百万个数据集进行实证研究。广泛的结果证明了 NGCF 的最新性能及其在通过神经嵌入传播提高嵌入质量方面的有效性。
框架中有三个组件:
(1)提供和初始化用户嵌入和项目嵌入的嵌入层;
(2) 多个嵌入传播层,通过注入高阶连接关系来细化嵌入;
(3) 预测层,聚合来自不同传播层的精细嵌入并输出用户-项目对的亲和度得分。
2、核心部分:
(1)Embedding Layer
可以看作是构建一个参数矩阵作为嵌入查找表:(注:这个主要是指创建初始的全节点embeding,连接用户和物品的结点信息)
(2)Embedding Propagation Layers(本文的核心创新点)
该过程有两个主要操作:消息构造和消息聚合。
先来个一阶聚合理解理解:
消息构造:
mu←i表示物品到用户的消息构造。其中W1和W2是用于提取传播有用信息的可训练权重矩阵,eu和ei表示用户和物品的embedding,用eu和ei内积相乘来获得邻域的的信息(通俗讲就是聚合中心结点的邻居信息),然后再加ei(通俗讲此处是指再加上自身结点信息),最后的N是u和i的度用来归一化系数,可以看做是折扣系数(这个在代码中的体现就是将邻接矩阵归一化处理,防止多层卷积聚合后导致信息值太大,会发生计划之外的偏差)
消息聚合:在这个阶段,我们聚集从u的邻域传播的消息,