AIMaster

Neural Graph Collaborative Filte

2019-07-04  本文已影响0人  DouMarK
CF常见的两种关键方法:

目的

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

1. 高阶连通性概念

图1

图1左边所示的为协同过滤用户-项目交互的基本交互图,双圆圈表示需要预测的用户u1,右图为左图以用户u1为根节点扩展的树形结构,l为到达用户u1的路径长度(可以作为兴趣重要度的权重值)
从右图中可以看到,同路径长度为3的项目i4、i5中,明显用户对i4的兴趣度高于i5,这是因为<i4,u1>连接的路径有两条,分别为i4->u2->i2->u1、i4->u3->i3->u1,而<i5,u1>则只有一条,为i5->u2->i2->u1。所以通过这些树形结构来查看u1对项目的兴趣,看项目与用户的连通性。这就是高阶连通性的概念。

1.1 高阶连通性嵌入层建立

在实际的工作中提出了嵌入函数中高阶连通性信息的建模方法.而不是将交互图扩展为一棵复杂的树。
本章论文设计了一种在图上递归传播的神经网络方法,受最近发展的图神经网络的启发,可以看作是在嵌入空间中构造信息流。
通过在神经网络中,插入一个嵌入传播层,它通过聚合交互项(或用户)的嵌入来细化用户(或项)的嵌入。叠加多重嵌入传播层,我们可以强制嵌入,以捕获协作信号的高阶连通性.
以图1为例,堆叠两层捕获u1←i2←u2的行为相似性,堆叠三层捕获u1←i2←u2←i4和潜在的信息流的强度(由层间的大小估计权重值)确定i4和i5的推荐优先级。

优化点:

2. NGCF框架

  1. 一个为提供和初始化的嵌入,数据有用户嵌入和项嵌入。
  2. 通过注入高阶连通性关系来细化嵌入的多个嵌入传播层。
  3. 预测层,它将来自不同传播层的精化嵌入集合起来,并输出用户-项对的亲和力分数。

2.1 嵌入层

输入用户与项目交互的数据,建立参数矩阵,这个矩阵可以是作为嵌入的查询表。将用户和相互初始化为以下格式:


优化点:

这是一种端到端的优化,传统的神经协同和MF都是直接输入数据到交互层(或操作符)以达到预测分数。相反,在NGCF框架中,通过在用户项交互图上传播嵌入来改进嵌入。因为嵌入细化步骤明确地将协同信号注入到嵌入中。

2.2 嵌入传播层:

接下来,在GNN消息传递体系结构的基础上,根据图的结构捕获CF信号和细化用户和项的嵌入。

图2:NGCF模型体系结构的说明(箭头线表示信息流)。用多重嵌入p对user1(左)和item 4(右)的表示进行了细化,其输出被联合以进行最终预测。
消息构建:

Pui可以被解释为一个折扣因子,考虑到传播的主题应该随着路径长度的衰减而衰减
其中Mu←i是消息嵌入(即要传播的信息)。F(·)是消息编码函数,它以嵌入Ei和eu作为输入,并使用系数Pui进行控制。l边(u,i)上每个传播的衰减因子。在这项工作中,我们将f(·)实现为:
消息聚合。在这一阶段,我们聚合从u的邻域传播的消息,以细化u的表示,具体而言,我们将聚合函数定义为:

增加约束条件



矩阵传播规则:



其中L等于:

2.3 预测层

利用内积预测


嵌入一个损失函数,优化预测结果


3. 评价指标

在三个真实的数据集上进行实验来评价RGCF提出的方法,特别是嵌入传播层。本文的目标是回答以下研究问题:

三个数据集Gowalla、Yelp2018和Amazon-book
  1. Yelp2018:这个数据集来自2018年版的Yelp挑战。
  2. Amazon-book:Amazon-Review是广泛使用的产品推荐数据集
  3. Gowalla:这是从Gowallahere获得的签入数据集,用户通过签入共享他们的位置。

对于测试集中的每个用户,将用户没有交互的所有项作为否定项处理。然后每个方法输出用户的除训练集中使用的正面项目外,其他项目的偏好得分总体上都是如此。为了评估top-k推荐和优选的有效性,我们采用了两种广泛使用的评估方法召回率,和归一化折损累计增益
以下模型为常用的CF模型,本文利用了NGCF 与一下模型对比,说明NGCF的确优于常用的CF模型,本文也考虑了用SpectralCF 模型加入性能对比当中,但是发现特征分解导致高的时间成本和资源成本,特别是当用户和项目数量很大时性能特别差,但是在小型数据集中性能很好,所以没有选择它作为比较。为了公平的比较,所有的方法都优化了BPR损失(2.3所用的损失函数)。
结果如下:


3.1

RQ 1 :

由图3.1可以看到NGCF与目前的推荐模型比较结果,可以看到以下观察结果:

RQ2:

层数的影响:

3.3
如图3.3所示,2层和3层的NGCF明显比1层的NGCF性能有所提高,这说明层数的加深对的确对提高NGCF的性能有所帮助,但是当上升到4层的时候,可以NGCF对Gowall数据集的recall和ndcg提升很多,但是其他数据集则相对降低,这说明当NGCF的嵌入传播层设置在4层的时候,NGCF产生了过拟合,所以NGCF嵌入传播层设置在三层的时候,对性能提高最大,并且降低了发生过拟合的风险
层聚集机制:
3.4
在图3.4中,对嵌入传播层,聚合了一些算法,并对聚合后的算法对比基线,可以看到,聚合算法和传播层的时候,模型的性能不升反降,这说明聚合并不是一个好的想法,但是对比NGCF-1PinSage和SVD++可以知道,非线性变换对图形神经网络的性能提高有一定的帮助。
节点丢弃和消息丢弃技术:
节点丢弃和消息丢弃技术主要是用来防止NGCF产生过拟合,图3.5显示了不消息丢弃的比率p1和节点丢弃率p2,对NGCF产生的影响.如在Gowall数据集中,节点丢弃率p2设置在0.02中,模型达到最高的性能,召回率达到0.151,而在设置p2明显提高召回率比设置消息丢弃率有效得多。这个原因可能是丢弃了特定用户和特定项对模型的鲁棒性有更好的提升,也是节点的影响,因此说明节点丢弃比消息丢弃更有效。
3.5

RQ 3:

解释高阶连通性的影响:
为测试高阶连通性对推荐预测的影响,本文从 Gowalla数据集中随机抽取6个数据 量的数据集,并可视化他们的关系
如图3.6所示

3.6
图3.6为MF与NGCG-3的用户与项目关系性的可视化
从图3.6可以看到NDCG更好地分类了用户与项目的连接性,这意味着具有相同颜色(有相同兴趣的用户与相关的项目)的点倾向于形成簇。
对比a和b,NGCF堆叠到三层嵌入传播层的时候,其历史项目的嵌入往往更接近。这更好地说明三层嵌入传播层能够将显式协作信号(通过NGCF-3)写入到模型表示中。
上一篇下一篇

猜你喜欢

热点阅读