关注我们,一起学习~
title:MCL: Mixed-Centric Loss for Collaborative Filtering
link:https://www.cs.toronto.edu/~mvolkovs/WWW2022_MCL.pdf
code:https://github.com/layer6ai-labs/MCL
from:WWW 2022
1. 导读
推荐系统模型中通常采用逐点损失(CE)和成对损失(BPR),很少探索如何从可用的偏好信息中最优地提取信号。对负样本进行采样后,通常利用正样本和采样的负样本来更新权重。这可能会忽略来自其他用户和商品的有价值的全局信息,并导致次优结果。
本文提出了MCL来解决上述问题,首先挖掘富含信息的难样本对,然后为难样本分配更多的权重。加权过程由四个不同的组件组成,并结合了来自其他用户的距离信息,使模型能够更好地学习的表征。
文中对BPR,Triplet两个损失的导数影响进行了分析,具体可见论文第三节,本文直接介绍方法。
2. 方法
2.1 样本对挖掘 样本对挖掘的目标是找到难正样本和负样本,难正样本定义 为比至少一个负样本离用户更远的商品,难负样本定义 为比至少一个正商品更接近用户的商品。在每次迭代中,丢弃不符合难样本定义的商品,加入边距进一步约束距离关系。公式如下,其中E表示欧式距离,uj为正样本对{u,j}用户和正样本构成的样本对,uk为负样本对,N和P表示负样本和正样本。以难正样本为例进行解释 ,正样本的距离比最小的负样本的距离减阈值要大,则认为是难正样本。
E_{u j}>\min _{k \in N_{u}} E_{u k}-\epsilon
E_{u k}<\max _{j \in P_{u}} E_{u j}+\epsilon
负样本集合一般比较大,因此在实际中采用随机从负样本集和中采样一个子集进行上述计算。
2.2 混合中心损失MCL 通过挖掘样本对之后,可以得到对应的正负样本集合,表示为
P_u^s ,
N_u^s 。给定一个batch B,其中包含m个用户,其损失函数定义为下式,其中λ为边距,α,β控制正负样本的作用,他们都是超参数。第一项缩小难正样本到用户的距离,第二项增大负样本到用户的距离。
\begin{aligned}
L_{M C L} &=\frac{1}{\alpha} \log \left[1+\frac{1}{m} \sum_{u \in B} \sum_{j \in P_{u}^{s}} e^{\alpha\left(E_{u j}+\lambda_{p}\right)}\right] \\
&+\frac{1}{\beta} \log \left[1+\frac{1}{m} \sum_{u \in B} \sum_{k \in N_{u}^{s}} e^{-\beta\left(E_{u k}+\lambda_{n}\right)}\right]
\end{aligned} 难正样本(难负样本也类似)对权重导数的影响如下所示,
w_1^+ 仅和用户-目标商品的距离相关,离用户越远则其越小,使整个
w_{uj}^+ 变大。
w_2^+ 计算的是目标商品和集合中其他难正样本之间的关系,如果目标商品的距离比其他难正样本的距离更大,则w_2就更小,使得
w_{uj}^+ 变大;这对商品embedding空间具有正则化效果,其中损失倾向于使所有相同类型的商品与用户的距离相似,并且异常值受到强烈惩罚。
w_3^+ 表示和同一个batch中的其他用户进行比较,提供了跨用户的额外一致性,其中损失旨在将所有正样本放置在每个用户的相同距离内。距离明显更远的样本对具有更大的整体权重
\begin{aligned}
w_{u j}^{+} &=\frac{1}{m} \cdot \frac{e^{\alpha E_{u j}}}{e^{-\alpha \lambda_{p}}+\frac{1}{m} \sum_{u^{\prime} \in B} \sum_{i \in P_{u^{\prime}}} e^{\alpha E_{u^{\prime} i}}} \\
&=\frac{1}{m} \cdot \frac{1}{w_{1}^{+}(u, j)+w_{2}^{+}(u, j)+w_{3}^{+}(u, j)}
\end{aligned} \begin{array}{l}
w_{1}^{+}(u, j)=e^{-\alpha\left(E_{u j}+\lambda_{p}\right)} \\
w_{2}^{+}(u, j)=\frac{1}{m} \sum_{\substack{i \in P_{u}^{s}}} e^{\alpha\left(E_{u i}-E_{u j}\right)} \\
w_{3}^{+}(u, j)=\frac{1}{m} \sum_{\substack{u^{\prime} \in B \\
u^{\prime} \neq u}} \sum_{\substack{i \in P^{s} \\
u^{\prime}}} e^{\alpha\left(E_{u^{\prime} i}-E_{u j}\right)}
\end{array}
3. 结果