首页 > 其他分享 >BSL: Understanding and Improving Softmax Loss for Recommendation

BSL: Understanding and Improving Softmax Loss for Recommendation

时间:2024-04-02 10:45:48浏览次数:32  
标签:mathbb Loss tau Understanding BSL Softmax loss mathcal

目录

Wu J., Chen J., Wu J., Shi W., Zhang J. and Wang X. BSL: Understanding and Improving Softmax Loss for Recommendation. ICDE, 2024.

作者'发现'在协同过滤中, Softmax loss 会比 BCE/BPR 损失效果好很多, 作者认为这是因为 Softmax 实际上等价于 Distributionally Robust Optimization, 所以能够对负样本中的一些噪声免疫, 故而如此有效. 作者进一步对其进行了改进, 使得它对正样本中的噪声也有一定的免疫.

符号说明

  • \(\mathcal{U}\), users;
  • \(\mathcal{I}\), items;
  • \(\mathbf{R} \in \{0, 1\}^{|\mathcal{U}| \times |\mathcal{I}|}\), interaction matrix;
  • \(\mathcal{S}_u^+ = \{i \in \mathcal{I}| r_{ui} = 1\}\), \(\mathcal{S}_u^- = \{i \in \mathcal{I}| r_{ui} = 0\}\);

Softmax loss

  • Softmax loss 定义为 (分子部分作者只保留了负样本):

    \[\mathcal{L}_{SL}(u) = - \mathbb{E}_{i \in P_u^+} \bigg[ \log \frac{ \exp(f(u, i) / \tau) }{ N^- \mathbb{E}_{j \sim P_u^-}[ \exp(f(u, j) / \tau)] } \bigg]. \]

  • 作者认为上式可以归结为:

    \[\mathcal{L}_{SL}(u) = \underbrace{-\mathbb{E}_{i \sim P_u^+}[f(u, i)]}_{\text{Positive Part}} + \underbrace{\tau \log \mathbb{E}_{j \sim P_u^-} [\exp( f(u, j) / \tau)]}_{\text{Negative Part}}, \]

    说实话, \(N^-\) 去掉式 ok 的毕竟是常数, 我不是很能理解 Negative Part 前的 \(\tau\) 是哪里来的.

  • DRO (Distributionally Robust Optimization) 是一种鲁棒优化的技术, 它形如:

    \[ \hat{\theta} = \text{argmin}_{\theta} \{ \max_{P \in \mathbb{P}} \mathbb{E}_{x \sim P} [\mathcal{L}(x; \theta)] \}, \\ \mathbb{P} = \{P \in \mathbb{D}: D(P, P_o) \le \eta\}, \]

    即 DRO 认为, 最好的参数是使得在原始分布 \(P_o\) 周围的一些分布 \(P \sim \mathbb{P}\) 中的最坏情况也变得能够接受的参数. 所以 DRO 会导致保守但鲁棒的模型, 因而能够免疫一定噪声.

  • 有这样的一个理论: 优化 Softmax loss 等价于在原来的 point-wise loss 上进行 Distributionally Robust Optimization. 故而, Softmax loss 相较于一般的 Point-wise loss 的优势便在于此.

  • 此外, 作者还证明了, 优化 Softmax loss 对于 fairness 也是有帮助的 (参见原文).

  • \(\tau\) 的作用: 这套理论的优势在于, 能够从鲁棒性的角度去理解 \(\tau\). 根据上面理论的证明 (请看原文), 当 \(\tau\) 减小的时候, Softmax loss 的鲁棒性半径 \(\eta\) 减小, 于是变得越发极端, 反之变得越发保守:

  • 总而言之: 当你认为负样本的噪声很大的时候, 应该增大 \(\tau\), 反之减小 \(\tau\).

Bilateral Softmax loss (BSL)

  • 作者进一步提出 BSL:

    \[\mathcal{L}_{BSL}(u) = \underbrace{-\tau_1 \log \mathbb{E}_{i \sim P_u^+} [\exp (f(u, i) / \tau_1)]}_{\text{Positive Part}} + \underbrace{\tau_2 \log \mathbb{E}_{j \sim P_u^-}[ \exp(f(u, j) / \tau_2) ]}_{\text{Negative Part}}. \]

    如此一来, 我们就可以通过 \(\tau_1\) 的调节来应对正样本中的噪声.

代码

  • 作者提供了 Negative Sampling 和 In-Batch 两种方式的伪代码:

[official]

标签:mathbb,Loss,tau,Understanding,BSL,Softmax,loss,mathcal
From: https://www.cnblogs.com/MTandHJ/p/18110080

相关文章