KDD'21 MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems

MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems

来源:KDD 2021

摘要:协同过滤的一个基本挑战是从隐式反馈中提取负信号,但基于GNN的协同过滤的负采样在很大程度上尚未被探索。在本文中,作者通过同时利用用户-项目图结构与GNN的聚合过程来研究负采样。作者提出了一种具有泛用性的负采样方法——MixGCF,可以用于训练所有基于GNN的推荐系统。在该方法中,作者没有采用从原始数据中进行负采样的想法,而是采用跳跃混合技术来合成hard负样本。通过使用MixGCF,基于GNN的推荐模型可以得到显著的改进,如NGCF的NDCG@20指标提升为26%,在LightGCN上的提升则为22%。

1 动机

    基于gnn的推荐系统的典型流程相对简单。给定一个用户-项目交互图,它首先在结构上定义一个聚合函数来传播邻域信息,通常接着是一个池化操作,用于输出用户和项目嵌入。与传统的推荐方法类似,它的目标函数被设计为更喜欢观察到的用户-项目对(作为正对),而不是未观察到的用户-项目对(作为负对)。以被广泛采用的BPRloss(式1)为例,对于每个用户和它的一个积极项目,通常从它从未互动过的项目中选择一个项目作为消极项目。因此,从本质上来说,负样本在基于gnn的推荐模型的性能中起着重要的的作用,直观上,阴性样本接近阳性样本(被称为hard 负样本),可以使模型更好地学习正负实例之间的边界。

                                      max\prod_{v^+,v^-}^n P_u(v^+ > v^-|\theta )                        (1)

    基于此,作者希望能够设计负采样策略来更好地训练基于gnn的推荐系统。本文提出了Mix-GCF框架。Mix-GCF设计了两种策略:正混合和跳混合。在正混合中,作者引入了一种插值混合方法,通过注入来自正样本的信息来污染原始负样本的嵌入。在跳混合中,作者对一些原始负样本进行采样,例如图1中的v_i^-,v_j^-以及v_k^-,然后通过使用他们选中的n跳邻居中聚合成的污染型嵌入来生成合成的负嵌入。详细的两种策略将在下面模块介绍。


图1 MixGCF合成负样本的示例

2 MixGCF方法

    MixGCF不是从数据中采样真实项作为负项,而是基于图结构合成负项,以训练基于gnn的CF推荐模型。MixGCF的流程如图2所示,其中e^{(l)}为节点e的第l层嵌入,e'^{(l)}为正混合生成的第l层嵌入。

图2 MixGCF

2.1 Positive Mixing

    我们知道,如果GNN有l层的话,那么对每一个item有l+1个embedding。假设现在有m个传统方法获得的负样本组成的样本集m,也就可以获得一个m*(l+1)的嵌入集合\varepsilon 。作者希望提高候选负样本的嵌入质量,受到mixup方法的启发,作者引入了正混合的思想,将正信息e_{v^+}注入到负嵌入中。𝑚𝑖𝑥𝑢𝑝是一种基于插值的数据增强方法,它强制模型在训练数据之间线性输出。具体来说,对于每个候选的负嵌入e_{v_m}^{(l)}\in \varepsilon ,正混合操作被形式化为:

公式 (2)

    其中,\alpha^{(l)}是从每hop均匀采样的混合系数,注意这里原本𝑚𝑖𝑥𝑢𝑝的混合系数是从一个beta分布Beta(𝛽,𝛽)中采样的,这对模型的泛化能力有重大影响。为了解耦影响,作者的正混合中的混合系数从(0,1)中均匀采样。

    设\varepsilon '是增强过的负样本候选集。正混合的两个作用是:

(1)向负样本中注入正信息来增强样本,这有助于使优化算法更好地学习决策边界,

(2)通过随机混合系数引入随机不确定性,适当提高边界的不确定性。

2.2 Hop Mixing

    利用正混合增强的候选负项的嵌入\varepsilon ' = {e'_{v_m}^{(l)}},作者提出了跳混合技术来生成合成的负项v_-及其嵌入e_{v-}。跳混合的主要思想是利用gnn中的分层聚合过程。具体来说,在正混合增强的候选集\varepsilon '中,对每一层采样一个样本,并将这些选择的样本的嵌入进行结合来得到新的负样本。

公式(3)

    以𝐿=2为例,我们可以从\varepsilon ’中抽取e'_{v_a}^{(0)},e′_{v_b}^{(1)}以及e'_{v_c}^{(2)}来进行公式(3)的操作。请注意,这里的,𝑎、𝑏和𝑐并不需要进行区分。公式中的f_{pool}是与当前基于gnn的推荐器中相同的池化操作。

    Hop mixing 的基本问题是如何有效地从每层的\varepsilon^{(l)}中采样候选嵌入e'^{(l)}_{v_x}。值得注意的是,最近一项关于图表示学习(MCNS)的负采样的研究从理论上表明,期望损失J(\theta^*)和经验损失J(\theta_T)之间的预期风险满足:

公式(4)

    其中,P_d(v|u)P_n(v|u)分别表示目标用户对item的正分布和负分布,T表示节点对数,K表示损失中每个用户采样的负样本对数。这一推导表明,当T和K选定时,预期风险依赖于P_d(v|u)P_n(v|u)。同时,作者使用内积得分来近似正负节点的分布情况,基于上述理论,为了最小化预期风险,作者建议的负抽样方法是根据估计的正分布选择负抽样,即负抽样也尽量选择负候选集中内积最大的用户与项目对,在形式上实现为:

公式(5)

    其中f_Q(u,l)是一个查询映射,返回的是第l跳目标用户相关的嵌入。该函数依赖于用于推荐的GNN的池化模块,主流的池化模块有基于和的和基于连接的池化操作。因此,对于目标用户嵌入e_u和嵌入合成的负嵌入e_v-之间的内积有两种选择:

图3 两种池化方式

    在公式5中进行选择过程与GNN推荐中使用的池化一致,我们让f_Q(u,l) = e_u用于基于和的池化,f_Q(u,l) = e_u^{(l)}用于基于连接的池化。

    MixGCF算法流程总结如下:

图4 MixGCF算法图,其中(5)指公式(2),(6)指公式(3)

    损失函数依旧采用BPR Loss:

公式(5)

3 实验

3.1 数据集

图5 数据集

3.2 实验结果

图6 实验效果

    作者以三种具有代表性的基于GNN的CF模型——LightGCN、NGCF和PinSage作为基本推荐模型并在其上使用了MixGCF采样方法,并横向对比了其他几种先进的负采样方法,以验证本方法的泛用性和有效性。其中RNS表示随机负采样策略;DNS表示动态负采样策略,它自适应地选择推荐者得分最高的负项目;IRGAN将推荐器集成到一个生成式对抗网(GAN)中,其中生成器作为一个采样器来选择负值以对抗推荐器;AdvIR也是一个对抗性采样器,通过添加对抗性扰动,将对抗性采样与对抗性训练相结合;马尔可夫链蒙特卡罗负抽样(MCNS)是从理论上分析负抽样在链路预测中的影响的先驱,用理论分析提出通过近似于正分布来采样负值。

3.3 实验分析

正混合分析

图7 无正混合的mix gcf性能

        作者首先进行消融研究来研究正混合的影响。图7显示了没有正混合情况下的MixGCF表现,同时作者绘制了三个模型的训练曲线:

图8 没有正混合时三模型训练曲线

图7和图8表明:(1)正混合对于推荐结果有着一定的提高;(2)比较MixGCF和MixGCFw/op-m的训练曲线,可以发现MixGCFw/op-m的性能在早期阶段飙升,但很快达到峰值和垂直;而MixGCF受益于正混合,并在对抗过拟合时变得更加稳健。

邻居范围影响

图9 邻居范围影响

    作者观察到增加邻居范围是有着正向影响的,这一点在ngcf和pinsage中表现不明显,推测原因是沉重的设计导致效果不佳。

候选集的影响

图10 候选集大小的影响

    在大多数情况下,增加候选集的大小可以提高推荐者的准确性。

正混合系数分布的影响

图11 三个数据集上随机系数(𝛼(𝑙))的不同分布、高斯分布和均匀分布的性能比较

    通过实验结果,作者分析最初的正混合设置,即Uni(0,1),在所有情况下产生最好的性能。与Uni(0,0.5)相比,Uni(0,1)获得较高性能的可能原因是限制随机系数的选择范围会减少模型参数的搜索空间。beta分布在三个数据集上表现不佳。我们将其归因于对超参数𝛽的复杂选择,这被称为𝑚𝑖𝑥𝑢𝑝的限制。基于以上讨论,作者发现从均匀分布中采样𝛼(𝑙)可以获得较好的性能。因此,为了避免MixGCF的复杂化,作者将采样分布固定为Uni(0,1)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容