BSL: Understanding and Improving Softmax Loss for Recommendation
概
作者'发现'在协同过滤中, Softmax loss 会比 BCE/BPR 损失效果好很多, 作者认为这是因为 Softmax 实际上等价于 Distributionally Robust Optimization, 所以能够对负样本中的一些噪声免疫, 故而如此有效. 作者进一步对其进行了改进, 使得它对正样本中的噪声也有一定的免疫.
符号说明
- , users;
- , items;
- , interaction matrix;
- , ;
Softmax loss
-
Softmax loss 定义为 (分子部分作者只保留了负样本):
-
作者认为上式可以归结为:
说实话, 去掉式 ok 的毕竟是常数, 我不是很能理解 Negative Part 前的 是哪里来的.
-
DRO (Distributionally Robust Optimization) 是一种鲁棒优化的技术, 它形如:
即 DRO 认为, 最好的参数是使得在原始分布 周围的一些分布 中的最坏情况也变得能够接受的参数. 所以 DRO 会导致保守但鲁棒的模型, 因而能够免疫一定噪声.
-
有这样的一个理论: 优化 Softmax loss 等价于在原来的 point-wise loss 上进行 Distributionally Robust Optimization. 故而, Softmax loss 相较于一般的 Point-wise loss 的优势便在于此.
-
此外, 作者还证明了, 优化 Softmax loss 对于 fairness 也是有帮助的 (参见原文).
-
的作用: 这套理论的优势在于, 能够从鲁棒性的角度去理解 . 根据上面理论的证明 (请看原文), 当 减小的时候, Softmax loss 的鲁棒性半径 减小, 于是变得越发极端, 反之变得越发保守:
- 总而言之: 当你认为负样本的噪声很大的时候, 应该增大 , 反之减小 .
Bilateral Softmax loss (BSL)
- 作者进一步提出 BSL:如此一来, 我们就可以通过 的调节来应对正样本中的噪声.
注: 如果每个用户采样的正样本数为 , 那 positive part 不久退化为了 , 这样 不就没用了, 作者源代码里给的文章里说明好像有很大出入啊.
代码
- 作者提供了 Negative Sampling 和 In-Batch 两种方式的伪代码:
[official]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-04-02 DropAttack: A Masked Weight Adversarial Training Method to Improve Generalization of Neural Networks
2022-04-02 A Weight Value Initialization Method for Improving Learning Performance of the Backpropagation Algorithm in Neural Networks
2020-04-02 Auto-Encoding Variational Bayes