MixGCF论文阅读笔记
MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems论文阅读笔记
Abstract
现存问题:
基于gnn的CF中的负采样在很大程度上尚未被探索。
提出方法:
我们建议通过同时利用用户-项图结构和gnn的聚合过程来研究负抽样。我们提出了MixGCF方法——一个一般的负采样插件,可以直接用于训练基于gnn的推荐系统。在MixGCF中,我们设计了原始负样本,而是采用跳跃混合技术来合成硬样本。具体来说,跳混合的想法是通过聚合来自不同层的原始负邻域的嵌入来生成合成负值。利用理论支持的硬选择策略对层和邻域选择过程进行了优化。
Introduction
从根本上说,负样本对(基于 GNN 的)推荐模型的性能起着决定性作用。负样本通常使用均匀分布 。为了提高负样本的质量,有研究尝试设计新的采样分布,以优先考虑有信息的负样本 。这样,模型就会面临挑战,被迫以更精细的粒度区分它们之间的差异。为了改进 GNN 中的负面采样,PinSage根据负面的 PageRank 分数对其进行采样,而 MCNS 则在考虑其结构相关性的基础上重新设计了正面和负面的采样分布。然而,这些在 GNN 中的尝试只关注了改进离散图空间中的负采样,而忽略了 GNN 在嵌入空间中独特的邻域聚合过程。
在这项工作中,我们提出设计负采样策略来更好地训练基于gnn的推荐系统。我们提出了一个简单的MixGCF框架来生成硬负样本。MixGCF没有直接从数据中采样真实的负数据,而是从数据增强和度量学习中获得灵感,通过利用底层的基于gnn的推荐器来合成负样本。
为了使合成负样本难以用于推荐模型,MixGCF 设计了两种策略:正向混合和跳跃混合。在正向混合中,我们引入了一种插值混合方法,通过注入正向样本的信息来污染原始负向样本的嵌入。在跳数混合中,我们对图 1 中的几个原始负样本(如𝑣 𝑖 -、𝑣 - 𝑗 和𝑣 𝑘 -)进行采样,并使用从其邻居的选定跳数中汇总的污染嵌入来生成合成负样本 𝑣 - 的嵌入。例如,如蓝色圆圈所示,跳 0、1 和 2 分别选自𝑣 𝑖 -、𝑣 - 𝑗 和𝑣 𝑘 -。值得一提的是,从邻域中选择哪一跳是由设计好的硬选择策略指导的。
本文的贡献如下:
- 引入合成负样本而不是直接从数据中采样负样本的思想,以改进基于gnn的推荐系统。
- 提出了一个通用的MixGCF框架,具有跳跃混合和正混合策略,可以自然地插入到基于gnn的推荐模型中。
一些预备知识:
直观上,接近阳性样本的阴性样本,也就是硬负样本,可以使模型更好地学习正负实之间的边界。为此,我们对硬负样本进行了多次尝试,以改进一般推荐系统的优化,在这项工作中,我们提出了一个问题,即我们是否可以在基于推荐者基础上的GNN的连续空间中合成更难的负样本。
Method
MixGCF的模型图如下所示:
MixGCF 并非从数据中抽取真实条目作为负面条目,而是建议根据图结构合成有信息的(和虚假的)负面条目,用于训练基于 GNN 的 CF 推荐模型。具体来说,MixGCF 引入了正混合和跳混合技术,通过混合来自不同局部图的信息来合成负面样本。
MixGCF的流程如图2所示。在正混合中,我们开发了一种插值混合方法,将信息从正样本注入到负样本,使硬负候选样本。在跳混合中,我们首先利用硬负选择策略从上述生成的每个硬负项中提取唯一的信息,然后使用池操作将提取的不同信息组合起来,创建虚假但信息丰富的负项。
正样本混合
回想一下,在一个 𝐿 层的 GNN 中,对于每个项目 𝑣 ,我们可以有 𝐿 + 1 个 𝑣 的嵌入,其中每个 \(e_v^{(l)}\) 都对应于与 𝑙 层聚合的嵌入(0 ≤ 𝑙 ≤ 𝐿)。
为了用图2中嵌入的e𝑣−的负样本𝑣𝑖−,我们首先按照约定选择𝑀负项形成候选集M,𝑀通常比数据中的项数量要小得多。这些𝑀负项可以形成一个大小为𝑀×(𝐿+ 1)的候选负嵌入集\(\mathcal{E}=\{\mathbf{e}_{v_{m}}^{(l)}\}\)
最近的一项研究表明,推荐模型通常是在主要包含简单负样本的输入空间上,因此我们建议提高候选负样本的嵌入E的质量。受𝑚𝑖𝑥𝑢𝑝的启发,我们引入了正混合的思想,将正信息e𝑣+注入到负嵌入中。𝑚𝑖𝑥𝑢𝑝是一种基于插值的数据增强方法,它强制模型在训练数据之间线性输出。具体来说,对于每个候选的负嵌入\(\mathbf{e}_{v_m}^{(l)}\in\mathcal{E}\),正混合操作形式化为:
\(\mathbf{e}_{v_m}^{\prime(l)}=\alpha^{(l)}\mathbf{e}_{v^+}^{(l)}+(1-\alpha^{(l)})\mathbf{e}_{v_m}^{(l)},\alpha^{(l)}\in(0,1),\)
其中,𝛼(𝑙)为每个跳𝑙均匀采样的混合系数。请注意,𝑚𝑖𝑥𝑢𝑝的混合系数是从一个beta分布Beta(𝛽,𝛽)中采样的,这对模型的泛化能力有重大影响。为了解耦影响,我们的正混合中的混合系数𝛼(𝑙)从(0,1)中均匀采样
设E‘为候选负m的增强嵌入集。正混合:
- (1)通过向负样本注入负信息,帮助优化算法更难地利用决策边界
- (2)通过随机混合系数引入随机不确定性。
Hop Mix
通过正混合增强候选负项的嵌入\(\mathcal{E}^{\prime}=\{\mathbf{e'}_{v_m}^{(l)}\}\),我们提出了跳混合技术来生成合成的负项𝑣−及其嵌入的e𝑣−。跳混合的主要思想是利用gnn中的分层(基于分层的)聚合过程。
具体来说,对于每个layer 𝑙(0≤𝑙≤𝐿),,我们从\(\mathcal{E}^{\prime(l)}\)中抽取一个候选负嵌入\(\mathbf{e^{\prime}}_{v_x}^{(l)}\left(1\leq x\leq M\right)\),其中包含M中所有\(l\)层候选负项的嵌入。以𝐿=2为例,我们可以从\(\mathcal{E}^{\prime}\)中采样\(\mathbf{e'}_{v_a}^{(0)},\mathbf{e'}_{v_b}^{(1)},\mathrm{and~}\mathbf{e'}_{v_c}^{(2)}\)。请注意,𝑎、𝑏和𝑐并不需要进行区分。
跳混合的想法是结合由层选择的所有𝐿+1嵌入,生成(假的)负𝑣−的表示e𝑣−。具体来说,该表示法是通过池化操作融合所有候选嵌入来合成的
\(\mathbf{e}_{v^-}=f_{\mathrm{pool}}{\left(\mathbf{e^{\prime}}_{v_x}^{(0)},\cdots,\mathbf{e^{\prime}}_{v_y}^{(L)}\right)},\)
其中,\(\mathbf{e}^{\prime(l)}\)表示在第𝑙层采样的𝑣𝑥的第𝑙层嵌入,而𝑓pool(·)应用了与当前基于gnn的推荐器相同的池化操作。
跳混合的基本问题是如何有效地从每层𝑙的\(\mathcal{E}^{\prime(l)}\)中采样候选嵌入\(\mathbf{e'}_{v_x}^{(l)}\left(1\leq x\leq M\right)\)。值得注意的是,最近一项关于图表示学习(MCNS)的负抽样的研究从理论上表明,期望损失𝐽(𝜃∗)和经验损失𝐽(𝜃𝑇)之间的最优参数\(\mathbf{e}_u^T\mathbf{e}_v\)的预期风险满足:
\(\mathbb{E}\left[||(\theta_T-\theta^*)_u||^2\right]=\frac1T(\frac1{p_d(v|u)}-1+\frac1{Kp_n(v|u)}-\frac1K),\)
其中,𝑝𝑑(𝑣|𝑢)、𝑝𝑛(𝑣|𝑢)分别表示估计的正分布和负分布,𝑇为节点对的数量,𝐾为损失中每个用户招募的负数。这一推导表明,如果𝑝𝑛(𝑣|𝑢)与𝑝𝑑(𝑣|𝑢)成正比,则预期风险仅依赖于𝑝𝑑(𝑣|𝑢),并且可以准确估计内积得分高的用户-项目对之间的交互概率。
基于上述理论,建议的负抽样方法是根据估计的正分布选择负抽样。这里我们应用内积得分来近似正分布,并选择得分最高的候选样本,这也称为硬负选择策略。形式上,第𝑙层的硬选择策略实现为:
\(\mathbf{e}^{\prime}v_{x}^{(l)}=\arg\max f_{\mathbb{Q}}(u,l)\cdot\mathbf{e}^{\prime}v_{m}^{(l)},\\\mathbf{e}^{\prime}v_{m}^{(l)}\in\mathcal{E}^{(l)}\)
其中,·是内积操作,而\(f_{\mathbb{Q}}(u,l)\)是一个查询映射,它返回与第𝑙跳的目标用户𝑢相关的嵌入。
在等式中进行的查询依赖于用于推荐的GNN的池化模块。如第2节所述,基于gnn的推荐中的主流池化模块可以分为基于和的和基于连接的池化操作。因此,对于目标用户嵌入e𝑢和嵌入合成的负e𝑣−之间的内积有两种选择:
在等式中进行选择过程(8)与GNN推荐中使用的池化一致,我们分别让\(f_Q(u,l)=\mathbf{e}_u\)用于基于和的池化,分别让\(f_Q(u,l)=\mathbf{e}_u^{(l)}\)用于基于连接的池化。
MixGCF的优化策略
现在,我们可以使用提出的 MixGCF 方法作为损失函数中的负采样方法 \(f_S(\cdot)\),来优化基于 GNN 的推荐模型的参数。简单来说,BPR 损失函数可以更新为
\(\begin{aligned}\mathcal{L}_{\mathrm{BPR}}&=\sum_{(u,v^{+})\in O^{+}}\ln\sigma(\mathbf{e}_{u}\cdot\mathbf{e}_{v^{-}}-\mathbf{e}_{u}\cdot\mathbf{e}_{v^{+}}),\\&\mathbf{e}_{v^{-}}\sim f_{\mathrm{MixGCF}}(u,v^{+})\end{aligned}\)