CF常见的两种关键方法:
- 嵌入:它将用户和项目转换为矢量化的表示
- 交换建模:重建历史嵌入的模型,例如,矩阵因式分解(MF)直接嵌入用户/项ID作为向量,并建立用户-项与内积交互的模。
目的
- 协同过滤学习模型从项目的丰富侧面信息中学习的深层表示来扩展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的推荐优先级。
优化点:
- 在最近的名为Hop-Rec的方法中已经考虑了高阶连通性信息,但是它只是用于丰富训练数据,具体来说HOPRec的预测模型仍然是MF,而它是通过优化具有高阶连通性的亏损来训练的。
- 而NGCF则不同,这是一种将高阶连通性集成到预测模型中的新技术,该技术在经验上比Cf的HOP-Rec具有更好的嵌入效果。
2. NGCF框架
- 一个为提供和初始化的嵌入,数据有用户嵌入和项嵌入。
- 通过注入高阶连通性关系来细化嵌入的多个嵌入传播层。
- 预测层,它将来自不同传播层的精化嵌入集合起来,并输出用户-项对的亲和力分数。
2.1 嵌入层
输入用户与项目交互的数据,建立参数矩阵,这个矩阵可以是作为嵌入的查询表。将用户和相互初始化为以下格式:
优化点:
这是一种端到端的优化,传统的神经协同和MF都是直接输入数据到交互层(或操作符)以达到预测分数。相反,在NGCF框架中,通过在用户项交互图上传播嵌入来改进嵌入。因为嵌入细化步骤明确地将协同信号注入到嵌入中。
2.2 嵌入传播层:
接下来,在GNN消息传递体系结构的基础上,根据图的结构捕获CF信号和细化用户和项的嵌入。
消息构建:
Pui可以被解释为一个折扣因子,考虑到传播的主题应该随着路径长度的衰减而衰减
其中Mu←i是消息嵌入(即要传播的信息)。F(·)是消息编码函数,它以嵌入Ei和eu作为输入,并使用系数Pui进行控制。l边(u,i)上每个传播的衰减因子。在这项工作中,我们将f(·)实现为:
消息聚合。在这一阶段,我们聚合从u的邻域传播的消息,以细化u的表示,具体而言,我们将聚合函数定义为:
增加约束条件
矩阵传播规则:
其中L等于:
2.3 预测层
利用内积预测
嵌入一个损失函数,优化预测结果
3. 评价指标
在三个真实的数据集上进行实验来评价RGCF提出的方法,特别是嵌入传播层。本文的目标是回答以下研究问题:
- RQ 1:NGCF与目前最先进的CF方法相比表现如何?·
- RQ 2:不同的超参数设置(例如,层的深度、嵌入传播层、层聚集机制,消息丢弃和结点丢弃)影响NGCF?
- RQ3:表示如何从高阶连通性中受益?
三个数据集Gowalla、Yelp2018和Amazon-book
- Yelp2018:这个数据集来自2018年版的Yelp挑战。
- Amazon-book:Amazon-Review是广泛使用的产品推荐数据集
- Gowalla:这是从Gowallahere获得的签入数据集,用户通过签入共享他们的位置。
对于测试集中的每个用户,将用户没有交互的所有项作为否定项处理。然后每个方法输出用户的除训练集中使用的正面项目外,其他项目的偏好得分总体上都是如此。为了评估top-k推荐和优选的有效性,我们采用了两种广泛使用的评估方法召回率,和归一化折损累计增益
以下模型为常用的CF模型,本文利用了NGCF 与一下模型对比,说明NGCF的确优于常用的CF模型,本文也考虑了用SpectralCF 模型加入性能对比当中,但是发现特征分解导致高的时间成本和资源成本,特别是当用户和项目数量很大时性能特别差,但是在小型数据集中性能很好,所以没有选择它作为比较。为了公平的比较,所有的方法都优化了BPR损失(2.3所用的损失函数)。
结果如下:
3.1
RQ 1 :
由图3.1可以看到NGCF与目前的推荐模型比较结果,可以看到以下观察结果:
- MF对三个数据集的性能较差。这表明内部嵌入不足以捕获用户和项目之间的复杂关系,从而进一步限制性能。Ne'uMf在所有情况下都优于MF,这说明了用户和项嵌入之间非线性特征交互的重要性
- 与MF和NeuMF相比,GC-MC的性能验证了一阶邻域的加入可以提高表征学习的效果。然而在Yelp2008数据集中,ndcg低于NeuMf,原因可能是GC-MC未能充分探讨用户和项之间的非线性特征交互。
- 在大多数情况下,CMN的性能通常优于GC-MC。这种改善可以归因于神经注意机制,它可以指定每个相邻用户注意力的权重,而不是相同的或启发式权重使用的GC-MC。
- •在Gowalla和AmazonBook中,PinSage略微优于CMN,而Yelp2018年表现更好;同时,HOPRec通常在大多数情况下取得显著的改进,这是有意义的,因为Pinsage在嵌入函数中引入了高阶连通性,并且HOP-rec利用邻居来丰富训练数据,而cmn则考虑了类似的情况。只有用户。因此,它指出了建立高阶连通性或邻居模型的积极作用
-
NGCF始终在所有数据集上获得最佳性能,特别是在Gowalla、Yelp2018和Am,这验证了在嵌入函数中使用高阶连通性捕获协同信号的重要性。
稀疏性问题通常限制推荐系统的表现力,因为不活跃用户的交互不足以生成高质量的表示。我们调查是否利用高阶连通信号有助于缓解此问题。
为此,我们对不同稀疏程度的用户组进行了实验。特别是,根据用户交互编号,我们将测试集划分为四个组,每个组都是最新的。他的互动也是一样的,如图3.2所示。
3.2
NGCF和HOP-Rec在所有用户组上的表现始终优于所有其他基础设施。它证明了利用高阶连通性极大地促进了不活跃的用户模型学习性能,因为协同信号可以有效地被捕获。因此,有希望解决推荐系统中的稀疏问题。
RQ2:
层数的影响:
如图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为MF与NGCG-3的用户与项目关系性的可视化
从图3.6可以看到NDCG更好地分类了用户与项目的连接性,这意味着具有相同颜色(有相同兴趣的用户与相关的项目)的点倾向于形成簇。
对比a和b,NGCF堆叠到三层嵌入传播层的时候,其历史项目的嵌入往往更接近。这更好地说明三层嵌入传播层能够将显式协作信号(通过NGCF-3)写入到模型表示中。
网友评论