首页 > 其他分享 >Personalized Ranking with Importance Sampling

Personalized Ranking with Importance Sampling

时间:2023-02-19 18:33:05浏览次数:54  
标签:Ranking Importance sum uij ln exp mathcal Personalized hat

目录

Lian D., Liu Q. and Chen E. Personalized ranking with importance sampling. In International World Wide Web Conference (WWW), 2020.

作者总结了 4 种基于 importance sampling 的负样本采样方法.

符号说明

  • \(\mathcal{U}\), users;
  • \(\mathcal{I} = \{o_1, \cdots, o_N\}\), items;
  • \(\mathcal{S} = \{(u, i) \in \mathcal{U} \times \mathcal{I}a| \text{user u interacts with item i}\}\);
  • \(\mathcal{I}_u\), positive items for user \(u\);
  • \(\mathcal{U}_i\), users who interact with the item \(i\);

Motivation

  • BPR 损失:

    \[\mathcal{L} = -\sum_{(u, i) \in \mathcal{S}} \sum_{j \not \in \mathcal{I}_u} \ln \sigma(\hat{x}_{uij}) + \lambda \|\Theta\|^2, \]

    实际上优化的是 AUC, 它对所有的负样本一视同仁, 可能对于 ranking 的任务不是那么友好.

  • 所以作者就提出了一个新的损失:

    \[\mathcal{L} = -\sum_{(u, i) \in \mathcal{S}} \sum_{j \not \in \mathcal{I}_u} P(j|u, i)\cdot \ln \sigma(\hat{x}_{uij}) + \lambda \|\Theta\|^2, \]

    其中

    \[P(j|u, i) = \frac{\exp(-\hat{x}_{uij})}{\sum_{j' \in \mathcal{I} \setminus \mathcal{I}_u} \exp (-\hat{x}_{uij'})}. \]

    即, 我们对那些赋予 high score 的负样本赋予更多的权重 (个人认为这个 motivation 不是那么强啦).

  • 直接计算 \(\mathcal{L}\) 需要遍历所有的 unobserved items, 所需的计算量比较大, 但是我们注意到实际上:

    \[\sum_{j \not \in \mathcal{I}_u} P(j|u, i)\cdot \ln \sigma(\hat{x}_{uij}) = \mathbb{E}_{j \in P(j|u, i)} \ln \sigma(\hat{x}_{uij}), \]

    对于这类我们可以借助 importance sampling 来估计.

  • 即引入一个容易采用的分布 (proposal distribution) \(Q(j|u,i)\), 然后利用下式替代:

    \[\mathcal{L}(u, i) \approx \frac{1}{L} \sum_{l=1}^L \frac{P(j_l|u, l)}{Q(j_l|u, i)} \ln \sigma(\hat{x}_{uij_l}), \: j_l \sim Q(j_l|u, i). \]

  • 然后, 作者还认为 \(P(j|u, i)\) 本身也是难以直接计算的 (对于一些 items 的实际场景, 不过我暂时还没遇到过), 但是因为 \(P(j|u, i) = \exp(-\hat{x}_{uij}) / Z_P\), 配平常数可以用

    \[Z_P \approx Z_Q \frac{1}{L} \sum_{l=1}^L \exp(-\hat{x}_{uij_l} - \ln \tilde{Q}(j_l|u, i)) \]

    来估计 (这个和 here 的做法很相似, 这里不展开了), 其中 \(\tilde{Q}\) 是 \(Q\) 的 unnormalized 分布, \(Z_Q\) 是它的配平系数. 最后令

    \[w_l = \frac{\exp(-\hat{x}_{uij_l} - \ln \tilde{Q}(j_l | u, i))}{\sum_k \exp(-\hat{x}_{uij_k} - \ln \tilde{Q}(j_k | u, i))}, \]

    即可得一个容易求解的近似

    \[\mathcal{L} \approx \sum_{(u, i) \in \mathcal{S}} \sum_{l=1}^L w_l \ln \sigma(\hat{x}_{uij_l}) + \lambda \|\Theta\|^2, \: j_l \sim Q(j|u, i). \]

Negative Samplers

接下来的问题就是如何如何选择 \(Q\) 以及如何从中采样了.
一般来说, \(Q\) 和 \(P\) 越接近, 近似程度越好, 当然一般采样起来也会复杂一些.

Uniform Sampling

  • 此类情况下, 令

    \[Q^U (j|u, i) = \left \{ \begin{array}{ll} 0, & \text{if } j \in \mathcal{I}_u \\ \frac{1}{N - N_u}, & \text{otherwise}. \end{array} \right . \]

  • 对应的

    \[w_l^U = \frac{\exp(\hat{x}_{uj_l})}{\sum_{t=1}^L \exp(\hat{x}_{uj_t})}. \]

  • 但直接用这个采用并不是 memory-efficient 的, 因为你得保存每个 user 的 unobserved items, 所以作者采用的 rejection sampling:

Popularity Sampling

  • 顾名思义, 即根据流行度来采样:

    \[Q^P (j|u, i) = \left \{ \begin{array}{ll} 0, & \text{if } j \in \mathcal{I}_u \\ \frac{f_j}{\sum_{j' \in \mathcal{I} \setminus \mathcal{I}_u} f_{j'}}, & \text{otherwise}. \end{array} \right . \]

  • 相应的,

    \[w_l^P = \frac{\exp(\hat{x}_{uj_l} - \ln f_{j_l})}{\sum_{t=1}^L \exp(\hat{x}_{uj_k} - \ln f_{j_t})}. \]

  • 类似地, 作者用的是如下的 rejection sampling (\(P_Q(i) = f_i / \sum_i f_i\)):

其它

作者还讨论了 cluster-based sampling, 这里会引入和 \(u, i\) 的关系以及一些可训练的参数, 所以更为复杂.

标签:Ranking,Importance,sum,uij,ln,exp,mathcal,Personalized,hat
From: https://www.cnblogs.com/MTandHJ/p/17135296.html

相关文章