关注我们,一起学习~
标题:Improving Micro-video Recommendation via Contrastive Multiple Interests
链接:https://arxiv.org/pdf/2205.09593v1.pdf
会议:SIGIR 2022
公司:MX Media
1. 导读
本文主要关注微视频的推荐方面的一篇短文,现有的微视频推荐模型依赖于多模态信息,并且学习的embedding无法反映用户对微视频的多种兴趣。本文结合对比学习提出提取对比多兴趣并设计微视频推荐模型 CMI。CMI 从用户的历史交互序列中为每个用户学习多个兴趣embedding,其中隐式正交微视频类别用于解耦多个用户兴趣。此外,构建对比多兴趣损失,以提高兴趣embedding的鲁棒性和推荐的性能。
2. 方法
用户集合表示为U,商品集合为V,用户u在时间t与商品v交互可以表示为
(u_i,v_j,t),给定用户
u_i,其交互序列可以表示为
s_i=[v_{i1},...,v_{i|s_i|}],用户的多个兴趣表征可以表示为
[\mathbf{u}_i^1,...,\mathbf{u}_i^m],然后,对于每个兴趣embedding,计算每个候选微视频的余弦相似度,并召回具有相似度最高的K个微视频,即总共召回了mK个微视频。最后,从召回的微视频中,根据余弦相似度选取topK个微视频。
2.1 多兴趣和一般兴趣编码器
本文认为商品的类别是用户兴趣的基础。假设有m种全局类别并设置可学习的隐式embedding为
[g_1,...,g_m]。对于交互序列
s_i中的商品,通过embedding层依次得到每个商品的embedding,得到
\mathbf{S}_i=[\mathbf{v}_{i1},...,\mathbf{v}_{i|s_i|}] 。使用商品embedding和类别embedding之间的余弦相似度作为衡量商品
v_{ik}属于类别
l的分数。公式如下,
w_{i k}^{l}=\frac{\mathbf{g}_{l}^{T} \mathbf{v}_{i k}}{\left\|\mathbf{g}_{l}\right\|_{2}\left\|\mathbf{v}_{i k}\right\|_{2}}
然后归一化得到相应的概率,
p_{i k}^{l}=\frac{\exp \left(w_{i k}^{l} / \epsilon\right)}{\sum_{l=1}^{m} \exp \left(w_{i k}^{l} / \epsilon\right)}然后可以得到商品类别
l对应的用户兴趣
\mathbf{u}_i^l为
\mathbf{u}_{i}^{l}=\sum_{k=1}^{\left|s_{i}\right|} p_{i k}^{l} \mathbf{v}_{i k}在执行类别分配时,可能会遇到两种退化情况。
- 每个商品具有相同或相似的属于不同类别的概率。造成这种退化的原因是学习到的商品类别embedding很相似。
- 所有商品都属于同一类。
为了避免退化情况,将类别embedding和商品embedding都约束在一个单位超球面内,即
\left\|\mathbf{g}_{i}\right\|_{2}=\left\|\mathbf{v}_{*}\right\|_{2}=1,并将两两类别的embedding约束为正交,公式如下,
\mathcal{L}_{o r t h}=\sum_{i=1}^{m} \sum_{j=1, j \neq i}^{m}\left(\mathbf{g}_{i}^{T} \mathbf{g}_{j}\right)^{2}
除了对用户的多种兴趣进行编码外,还使用 GRU 对用户的一般兴趣的演变进行建模,获得用户的一般兴趣
\mathbf{u}_i^g=GRU([\mathbf{v}_{i1},...,\mathbf{v}_{i|s_i|}])2.2 对比正则项
部分交互中隐含的用户兴趣与所有交互(所有交互的意思是整个交互序列
s_i)中隐含的用户兴趣相同。因此,采用随机抽样来得到不同的子序列,从而获得增广的数据。具体来说,给定用户
u_i的历史交互序列
s_i=[v_{i1},...,v_{i|s_i|}],从
s_i中采样
\min(\mu|s_i|,f)个微视频,并根据它们在
s_i中的顺序形成一个新序列
s_i',其中μ是采样率,f是最长序列长度默认值为 100。通过随机采样
s_i两次,得到两个序列
s_i'和
s''_i 。然后将这两个增强序列馈送到两个多兴趣编码器,以学习两组用户兴趣,即
\mathbf{U}_{i}^{\prime}=\left[\mathbf{u}_{i}^{1 \prime}, \mathbf{u}_{i}^{2 \prime}, \ldots, \mathbf{u}_{i}^{m \prime}\right]和
\mathbf{U}_{i}^{\prime \prime}=\left[\mathbf{u}_{i}^{1 \prime \prime}, \mathbf{u}_{i}^{2 \prime \prime}, \ldots, \mathbf{u}_{i}^{m \prime \prime}\right] ,可以表示为下式,
U_i'=\text{Multi-Interest-Encoder}(s_i')
U_i''=\text{Multi-Interest-Encoder}(s_i'')
然后,构建一个对比多兴趣损失。对于用户
u_i的任何兴趣embedding
\mathbf{u}_i^{k \prime} \in \mathbf{U}_i',构造一个正对
(\mathbf{u}_i^{k\prime},\mathbf{u}_i^{k\prime \prime}),用
\mathbf{u}_i^{k'}和其他2m-2个兴趣embedding构造2m-2个负样本对。由于m通常不会太大,因此上述负对的数量是有限的。给定
\mathbf{u}_i^{k \prime},利用同一批次中每个其他用户的兴趣embedding来构建额外的负对。综上,设训练batch为B,batch size为|B|,对于每个正对,有2m(|B| − 1) + 2m − 2 = 2(m|B| − 1) 个负对,形成负集
S^-。损失函数如下所示,
\operatorname{sim}(\mathbf{a}, \mathbf{b})=\mathbf{a}^{T} \mathbf{b} /\left(\|\mathbf{a}\|_{2}\|\mathbf{b}\|_{2} \tau\right)\begin{aligned}
\mathcal{L}_{c l}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{u}_{i}^{k \prime \prime}\right)=&-\log \frac{e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{u}_{i}^{k \prime \prime}\right)}}{e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{u}_{i}^{k \prime \prime}\right)}+\sum_{\mathbf{s}^{-} \in \mathcal{S}^{-}} e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{s}^{-}\right)}} \\
&-\log \frac{e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{u}_{i}^{k \prime \prime}\right)}}{e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime}, \mathbf{u}_{i}^{k \prime \prime}\right)}+\sum_{\mathbf{s}^{-} \in \mathcal{S}^{-}} e^{\operatorname{sim}\left(\mathbf{u}_{i}^{k \prime \prime}, \mathbf{s}^{-}\right)}}
\end{aligned}通过数据增强和对比多兴趣损失,用户兴趣学习不再对特定的正交互敏感,从而减少噪声正交互的影响,实现正交互降噪。
2.3 损失函数
用户
u_i和候选商品
v_t的预测方式为
c_{i t}=\max _{0 < k \leq m}\left(\left\{\mathbf{u}_{i}^{k T} \mathbf{v}_{t} / \epsilon\right\}\right)+\mathbf{u}_{i}^{g T} \mathbf{v}_{t}。在训练过程中,对于用户
u_i的每个正样本
v_p^i,从所有微视频中随机抽取从未交互过的n个微视频作为负样本。为了避免高采样成本,给定一个正样本,只采样一个负样本,即n为1。此外,将同一批次中其他用户的正样本商品和负样本商品作为负样本,从而形成负样本集N。然后采用以下交叉熵损失函数,公式如下,
\mathcal{L}_{\text {main }}\left(u_{i}, v_{p}^{i}\right)=-\ln \frac{\exp \left(c_{i p}\right)}{\sum_{v_{*} \in\left\{\mathcal{N} \cup v_{p}^{i}\right\}} \exp \left(c_{i *}\right)}总损失函数为下式,
\mathcal{L}=\mathcal{L}_{main}+\lambda_{cl}\mathcal{L}_{cl}+\lambda_{orth}\mathcal{L}_{orth}
3. 结果