• 【RS采样】A Gain-Tuning Dynamic Negative Sampler for Recommendation (WWW 2022)


    《Simplify and Robustify Negative Sampling》 NIPS 2020

    这篇文章实验观察到虽然False Negative和Hard Negative都会有较大的Socre,但是False Negative有更低的预测方差。所以提出一个Simplify and Robustify Negative Sampling方法,在训练epoch t t t 时,根据前5个epoch的训练记录,预测评分高、方差大的样本作为Hard Negative:

    在这里插入图片描述

    A Gain-Tuning Dynamic Negative Sampler for Recommendation (WWW 2022)

    现有的挖掘RS难负样本的方法只想要挖掘训练过程梯度贡献大的样本(预测和标签差距大的),在RS场景中这样很容易导致选择假负样本(False Negative、missing data),从而导致过拟合训练数据集。

    文章提出一个基于期望增益的采样器,在训练过程中根据正负样本之间差距的期望的变化,动态指导负采样,可以识别假负样本。

    在这里插入图片描述

    增益感知负采样器

    衡量一个物品 j j j 是不是用户 u u u 的真实负样本的方法:
    H t ( u , j ) = E i ∼ Δ u σ ( r u , j − r u , i ) \mathcal{H}^{t}(u, j)=\mathbb{E}_{i \sim \Delta_{u}} \sigma\left(r_{u, j}-r_{u, i}\right) Ht(u,j)=EiΔuσ(ru,jru,i)
    公式计算的是期望, t t t是训练epoch, Δ u \Delta_{u} Δu 用户交互过的物品集合, σ \sigma σ 是sigmoid函数,括号里是负样本的得分减去正样本的得分。

    这样选出的负样本是得分靠近正样本的,可以为训练过程提供比较大的梯度,从而提供更多的信息。理想很美好,但是实验发现这种难负样本真正是很少的,反而很可能选到伪负样本。实验还发现,真实负样本的 H t ( u , j ) \mathcal{H}^{t}(u, j) Ht(u,j) 变化程度要比伪负样本变化程度大,所以进一步提出一个增益感知的衡量方法,监控变化大的样本:
    G u , j t = α ⋅ G u , j t − 1 + ( 1 − α ) ⋅ σ ( H u , j t − 1 − H u , j t H u , j t + ϵ ) \mathcal{G}_{u, j}^{t}=\alpha \cdot \mathcal{G}_{u, j}^{t-1}+(1-\alpha) \cdot \sigma\left(\frac{\mathcal{H}_{u, j}^{t-1}-\mathcal{H}_{u, j}^{t}}{\mathcal{H}_{u, j}^{t}+\epsilon}\right) Gu,jt=αGu,jt1+(1α)σ(Hu,jt+ϵHu,jt1Hu,jt)
    这个指标是衡量 H t ( u , j ) \mathcal{H}^{t}(u, j) Ht(u,j)的下降程度,作者认为两个epoch中间的期望增益是检测负样本和正样本集之间差异更敏感的信号。其中 α \alpha α 是平滑系数, ϵ \epsilon ϵ是防止分母为0。

    这个指标可以理解为,在上个epoch中,哪个样本 H t ( u , j ) \mathcal{H}^{t}(u, j) Ht(u,j) 下降的最多,就选谁当负样本。

    分组优化器

    提了个类似于MCL、CPR的loss
    L ( u , Δ u , Δ u ′ ) = ∑ i ∈ Δ u ∑ j ∈ Δ u ′ ∣ r u , j − r u , i + γ ∣ + \mathcal{L}\left(u, \Delta_{u}, \Delta_{u}^{\prime}\right)=\sum_{i \in \Delta_{u}} \sum_{j \in \Delta_{u}^{\prime}}\left|r_{u, j}-r_{u, i}+\gamma\right|_{+} L(u,Δu,Δu)=iΔujΔuru,jru,i+γ+
    Δ u , Δ u ′ \Delta_{u}, \Delta_{u}^{\prime} Δu,Δu分别是用户 u u u 的正样本集合和负样本集合,意味着每个正样本分别要对所有负样本算loss,等于所有的正样本共享了负样本信息,而不是一对一对的分别优化,效率更高,信息更多。和CPR和MCL的意思很像。
    在这里插入图片描述

    实验结果

    base模型是GMF: r u , i = W ⊤ ( P u ⊙ Q i ) = ∑ k = 1 d w k ⋅ p u , k ⋅ q i , k r_{u, i}=W^{\top}\left(P_{u} \odot Q_{i}\right)=\sum_{k=1}^{d} w_{k} \cdot p_{u, k} \cdot q_{i, k} ru,i=W(PuQi)=k=1dwkpu,kqi,k
    在这里插入图片描述

    性能收益主要来自于分组loss

    在这里插入图片描述

    文章的核心idea主要来自于这个实验图:

    在这里插入图片描述

    分析真实和虚假负样本的H和G的分布,可以看出在训练过程中H越来越高的是假负样本,真实负样本的G越来越高。

  • 相关阅读:
    ILM ADO storage tiering policy on table partition
    WinForms中使用DataGridView控件绑定数据并支持点击表头排序
    【机器学习-周志华】学习笔记-第十四章
    openpose 安装到简单实用 win11
    共建共享数字世界的根:阿里云打造全面的云原生开源生态
    Leetcode 541:反转字符串II
    【论文阅读】Prototypical Networks for Few-shot Learning
    独家揭秘|小米14魔改存储芯片多出8GB空间背后的秘诀
    迷你无人车 Navigation 导航(5)— 基础框架学习
    JS中findIndex方法的使用场景以及与find的差别
  • 原文地址:https://blog.csdn.net/yanguang1470/article/details/125903456