前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD'21 FaceBook | MixGCF:基于图的负采样方法

KDD'21 FaceBook | MixGCF:基于图的负采样方法

作者头像
秋枫学习笔记
发布2022-09-19 11:46:12
7330
发布2022-09-19 11:46:12
举报
文章被收录于专栏:秋枫学习笔记

image.png

MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems https://keg.cs.tsinghua.edu.cn/jietang/publications/KDD21-Huang-et-al-MixGCF.pdf

1. 背景

GNN在协同过滤相关方法中达到了最优的效果,从隐式反馈中负采样是协同过滤中需要面临的一大难题。当前在基于图的协同过滤方法中,负采样方法探索的还比较少。本文提出了即插即用的MixGCF负采样方法。

  • 本文不是直接从原始样本中进行负采样,而是通过生成难负样本(hard negative samples)来进行负采样。
  • 该方法主要由两部分组成,分别为positive mixing和hop mixing

2. 方法

如图所示为MixGCF的总体概览,对positive mixing和hop mixing的流程进行可视化,具体流程我们后面介绍。

  • positive mixing通过插值的方法向负样本中添加正样本的信息,从而得到难负样本
  • hop mixing通过池化的方式将已得到的难负样本进行结合,从而生成虚假但是信息丰富的负样本。

2.1 Positive Mixing

难样本挖掘其实在图像等领域早就有了,这里的难负样本就是通过挖掘和正样本相近似的负样本用于训练,从而使得正负样本之间的边界更加分明。本文的positive mixing就是通过在负样本中加入正样本的信息,从而使得生成的新的负样本更靠近正样本,成为难负样本。生成难负样本的方式作者借鉴了mixup方法,公式如下,其中

e_{v^+}^{(l)}

表示第

l

跳的正样本embedding,这里的“跳(hop)”可以理解为GNN的第

l

层。

e_{v_m}^{(l)}

表示负样本的embedding,

\alpha^{(l)}

表示embedding的融合系数,从均匀分布中采样得到。

\mathbf{e}_{v_{m}}^{\prime(l)}=\alpha^{(l)} \mathbf{e}_{v^{+}}^{(l)}+\left(1-\alpha^{(l)}\right) \mathbf{e}_{v_{m}}^{(l)}, \alpha^{(l)} \in(0,1)

2.2 Hop Mixing

通过positive mixing可以得到候选集合

\mathcal{E}'=\{e_{v_m}^{\prime(l)}\}

,即对每一层GNN得到的embedding,都可以生成一个难负样本的候选embedding。而hop mixing的作用就是聚合。通过图中的池化操作对不同层的候选embedding进行聚合,公式如下,其中

e_{v^-}

表示最终生成的难负样本的embedding,可以发现pooling中的embedding来自不同的层,通过采样得到每一层的一个候选embedding,这些embedding可以来自同一个样本,也可以不是。然后对其进行池化。其中

f_{pool}

具体可以采用sum-based pool,concat-based pool等。

e_{v^-}=f_{pool}(e_{v_x}^{\prime{(0)}},...,e_{v_y}^{\prime{(L)}})

2.2.1 采样方式

\mathbf{e}_{v_{x}}^{\prime(l)}=\underset{\mathrm{e}_{v_{m}}^{(l)} \in \mathcal{E}^{(l)}}{\arg \max } f_{\mathrm{Q}}(u, l) \cdot \mathbf{e}_{v_{m}}^{(l)}

本文采用上式进行采样,采样后得到每一层的embedding,然后进行上述的池化。其中

f_Q

函数计算第

l

层的embedding和user的embedding的相似度,返回和user最相似的item的embedding。然后将该embedding和当前层

l

中所有embedding

e_{v_m}^{(l)}

做内积,选取得分最高的embedding作为当前层的embedding。

2.3 损失函数

本文采用BPR损失来衡量正负样本对之间的关系,其中

e_u,e_{v^-},e_{v^+}

分别表示用户embedding,生成的难负样本embedding和正样本的embedding。

\mathcal{L}_{\mathrm{BPR}}=\sum_{\begin{array}{l} \left(u, v^{+}\right) \in O^{+} \\ \mathrm{e}_{v^{-}} \sim f_{\text {MixGCF }}\left(u, v^{+}\right) \end{array}} \ln \sigma\left(\mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}-\mathbf{e}_{u} \cdot \mathbf{e}_{v^{+}}\right)
\mathcal{L}_{\mathrm{BPR}}=\sum_{\begin{array}{l} \left(u, v^{+}\right) \in O^{+} \\ \mathrm{e}_{v^{-}} \sim f_{\text {MixGCF }}\left(u, v^{+}\right) \end{array}} \ln \sigma\left(\mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}-\mathbf{e}_{u} \cdot \mathbf{e}_{v^{+}}\right)

3. 实验结果

在开头也说了,本文所提的是一种即插即用的采样方法,因此实验中和不同的采样方法进行了对比,并且将采样方法和不同的基于图的模型进行结合,然后实验。可以发现结果都有明显的提升。

4. 总结

本文所采用的的思想,一方面采用mixup,用插值的方式得到难负样本,这类方法其实在图像相关的方法中很常见,不过将其应用于图相关的协同过滤方法可能还是第一次。另一方面,利用池化将不同层的embedding进行结合,然后得到新的embedding。应用上的创新,将其他领域的知识迁移到了推荐领域。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 Positive Mixing
  • 2.2 Hop Mixing
    • 2.2.1 采样方式
    • 2.3 损失函数
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档