当前位置:网站首页>【RS采样】A Gain-Tuning Dynamic Negative Sampler for Recommendation (WWW 2022)
【RS采样】A Gain-Tuning Dynamic Negative Sampler for Recommendation (WWW 2022)
2022-07-25 11:11:00 【chad_lee】
《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,j−ru,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,jt−1+(1−α)⋅σ(Hu,jt+ϵHu,jt−1−Hu,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∈Δu∑j∈Δu′∑∣ru,j−ru,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⊤(Pu⊙Qi)=∑k=1dwk⋅pu,k⋅qi,k
性能收益主要来自于分组loss

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

分析真实和虚假负样本的H和G的分布,可以看出在训练过程中H越来越高的是假负样本,真实负样本的G越来越高。
边栏推荐
- W5500 adjusts the brightness of LED light band through upper computer control
- 微星主板前面板耳机插孔无声音输出问题【已解决】
- JS运算符
- 【多模态】《HiT: Hierarchical Transformer with Momentum Contrast for Video-Text Retrieval》ICCV 2021
- Various controls ==pyqt5
- php curl post Length Required 错误设置header头
- Go 垃圾回收器指南
- Risks in software testing phase
- 奉劝那些刚参加工作的学弟学妹们:要想进大厂,这些并发编程知识是你必须要掌握的!完整学习路线!!(建议收藏)
- W5500在处于TCP_Server模式下,在交换机/路由器网络中无法ping通也无法通讯。
猜你喜欢

创新突破!亚信科技助力中国移动某省完成核心账务数据库自主可控改造

如何解决“W5500芯片在TCP_Client模式下,断电重启之后无法立即连接到服务器”的问题

Transformer变体(Routing Transformer,Linformer,Big Bird)

brpc源码解析(八)—— 基础类EventDispatcher详解

JS数据类型以及相互转换

LeetCode 50. Pow(x,n)

剑指 Offer 22. 链表中倒数第k个节点
![[MySQL learning 09]](/img/27/2578f320789ed32552d6f69f14a151.png)
[MySQL learning 09]

MIIdock简述

【对比学习】Understanding the Behaviour of Contrastive Loss (CVPR‘21)
随机推荐
【无标题】
【多模态】《TransRec: Learning Transferable Recommendation from Mixture-of-Modality Feedback》 Arxiv‘22
flink sql client 连接mysql报错异常,如何解决?
Brpc source code analysis (VI) -- detailed explanation of basic socket
Signal and slot mechanism ==pyqt5
brpc源码解析(七)—— worker基于ParkingLot的bthread调度
JS interview question: handwriting throttle function
Varest blueprint settings JSON
11. Reading rumors spread with deep learning
JDBC summary
绘图==PYQT5
brpc源码解析(二)—— brpc收到请求的处理过程
Return and finally? Everyone, please look over here,
W5500上传温湿度到oneNET平台
Management of software defects
Solved files' name is invalid or doors not exist (1205)
剑指 Offer 22. 链表中倒数第k个节点
图神经网络用于推荐系统问题(IMP-GCN,LR-GCN)
Risks in software testing phase
brpc源码解析(八)—— 基础类EventDispatcher详解