【推荐算法论文阅读】Neural Graph Collaborative Filtering

一、背景

协同过滤学习模型从项目的丰富侧面信息中学习的深层表示来扩展MF嵌入功能;神经协同过滤模型则用非线性神经网络取代内积的MF交互函数。

以上的方法都是有效的,但是却无法为CF提供合适的嵌入,这是因为缺少一个协同信号(它潜伏在用户与项目之间的交互中,以揭示用户(或项目)之间的行为相似性。)更具体的是,现有的大多数方法只使用描述性的特性(例如id和属性)构建嵌入功能,而不考虑用户-项目的交互,这些功能只用于定义模型训练的目标函数。因此必须依赖交互功能弥补次优嵌入的不足。虽然直接地使用交互功能能弥补次优嵌入的不足,但是在实际开发中,交互的规模可以容易地达到数百万甚至更大,使得难以提取期望的协作信号。所以在这项工作中,我们解决了所有问题,通过利用来自用户项目交互的高阶连通性,在交互图形结构中对协作信号进行编码的方式。

请添加图片描述

图 1 说明了高阶连通性的概念。 图1左边所示的为协同过滤用户-项目交互的基本交互图,双圆圈表示需要预测的用户u1,右图为左图以用户u1为根节点扩展的树形结构,l为到达用户u1的路径长度(可以作为兴趣重要度的权重值)。高阶连通性表示从路径长度 l 大于 1 的任何节点到达 u1 的路径。这种高阶连通性包含了承载协同信号的丰富语义。 例如,路径 u1 ← i2 ← u2 表示 u1 和 u2 之间的行为相似性,因为两个用户都与 i2 进行了交互; 较长的路径 u1 ← i2 ← u2 ← i4 表明 u1 很可能采用 i4,因为之前类似的用户 u2 有消费过 i4。此外,从 l = 3 的整体来看,同路径长度为3的项目i4、i5中,明显用户对i4的兴趣度高于i5,这是因为<i4,u1>连接的路径有两条,分别为i4->u2->i2->u1、i4->u3->i3->u1,而<i5,u1>则只有一条,为i5->u2->i2->u1。

本文提出了嵌入函数中高阶连通性信息的建模方法.而不是将交互图扩展为一棵复杂的树。本论文设计了一种在图上递归传播的神经网络方法,受最近发展的图神经网络的启发,可以看作是在嵌入空间中构造信息流。
通过在神经网络中,插入一个嵌入传播层,它通过聚合交互项(或用户)的嵌入来细化用户(或项)的嵌入。叠加多重嵌入传播层,我们可以强制嵌入,以捕获协作信号的高阶连通性.

以图1为例,堆叠两层捕获u1←i2←u2的行为相似性,堆叠三层捕获u1←i2←u2←i4和潜在的信息流的强度(由层间的大小估计权重值)确定i4和i5的推荐优先级。

二、模型结构

请添加图片描述
模型结构如图2所示,模型由embedding层、embedding传播层和预测层组成:

  1. 嵌入层:提供用户嵌入和项目嵌入初始化;
  2. 多嵌入传播层:通过注入高阶连通性关系来细化嵌入;
  3. 预测层:整合来自不同传播层的细化嵌入,输出用户-项目对的相似度得分。

2.1 embedding层

用嵌入向量 e u ∈ R d ( e i ∈ R d ) e_u∈R^d (e_i∈R^d) euRd(eiRd) 来描述用户 u (项目 i ),其中 d 表示嵌入大小。这可以看作是构建一个参数矩阵作为嵌入查找表:
E = [ e u 1 , ⋅ ⋅ ⋅ , e u N , e i 1 , ⋅ ⋅ ⋅ , e i M ] E = [e_{u1},···,e_{uN}, e_{i1},···,e_{iM}] E=[eu1euN,ei1eiM]

2.2 embedding传播层

直观上,与用户交互过的项目可以体现用户的偏好,类似的,与项目交互过的用户也可以看作是项目的特性,并且可以用于度量两个项目之间的协同相似性。在GNN消息传递体系结构的基础上,根据图的结构捕获CF信号和细化用户和项目的嵌入。

2.2.1 一阶传播

对于连接的用户-项目对 (u,i),我们将 i 到 u 的消息定义为:
m u ← i = f ( e i , e u , p u i ) \mathbf{m}_{u \leftarrow i}=f\left(\mathbf{e}_{i}, \mathbf{e}_{u}, p_{u i}\right) mui=f(ei,eu,pui)
其中 m u ← i m_{u←i} mui 是消息嵌入(即要传播的信息)。 f (·) 是消息编码函数,它以嵌入 e i e_i ei e u e_u eu 作为输入,并使用系数 p u i p_{ui} p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值