前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CIKM'21「华为」推荐系统:用于协同过滤的余弦对比损失

CIKM'21「华为」推荐系统:用于协同过滤的余弦对比损失

作者头像
秋枫学习笔记
发布2022-09-19 11:15:58
7460
发布2022-09-19 11:15:58
举报
文章被收录于专栏:秋枫学习笔记秋枫学习笔记

点击关注我们,提升学习效率

title:SimpleX: A Simple and Strong Baseline for Collaborative Filtering

link:https://dl.acm.org/doi/pdf/10.1145/3459637.3482297

from:CIKM 2021

1. 导读

协同过滤(CF)一般包含三个部分:交互编码器、负采样和损失函数。现有的大部分工作集中在设计更强模型上,对负采样和损失函数的改进的相关工作比较少。相较于交互信息的编码而言,另外两者也同样重要,本文作者提出了一个新的损失函数 cosine contrastive loss (CCL) ,将其合并到统一的CF框架中,命名为simpleX 。

2. 方法

虽然已经存在BPR,BCE,softmax loss等损失函数,但是它们之间仍然缺乏系统的比较,使得它们对模型性能的影响没有得到很好的理解。作者在文中对比了不同的损失函数,并提出了新的损失函数CCL。

2.1 Cosine Contrastive Loss

给定正样本用户-商品对(u, i),和一些随机采样得到的负样本集合N,CCL可以表示为下式,其中y表示u,i表征的余弦相似度。m属于0~1是边距阈值,用于过滤负样本。含义:CCL被优化以最大化正对之间的相似性,并最小化边距约束下的负对的相似性. 𝑤 是一个超参数,用于控制正样本损失和负样本损失的相对权重。

\mathcal{L}_{C C L}(u, i)=\left(1-\hat{y}_{u i}\right)+\frac{w}{|\mathcal{N}|} \sum_{j \in \mathcal{N}} \max \left(0, \hat{y}_{u j}-m\right)

CCL的优点

  • 首先,CCL计算的是用户商品之间的余弦相似度,而不是点积或欧式距离。对两个表征向量用 L2 归一化后,余弦相似度只计算角度差,从而避免了量纲的影响。
  • 其次,当负样本数量变大时,通常会存在许多冗余但信息量不足的样本。但是现有的损失函数(如BPR)同等对待每个负样本。因此,模型训练可能会被这些无信息样本淹没,这会显着降低模型性能并减慢收敛速度。相比之下,CCL 通过使用适当的边距 𝑚 来过滤无信息的负样本来缓解这个问题。
  • 第三,作者发现直接对所有负样本的损失项求和或求平均会降低模型性能,尤其是当负样本数量很大时。这部分是由于正样本和负样本之间的高度不平衡(例如,当 |N | = 1000 时为 1:1000)。因此,引入了一个数据相关的权重 𝑤 来控制正损失和负损失之间的平衡。

2.2 模型结构

在借鉴了一些已有的CF方法后,作者提出了上述的模型结构,借鉴MF的机制,使用户和商品的表征在同一空间。并且,也向youtubeNet,ACF考虑用户的交互数据。

SimpleX 的聚合层可以采用常用的聚合方法,包括平均池化、自注意力和用户注意力机制等,但 Simplex 是一个统一的架构,任何其他聚合方法也应该适用。

假设用户 𝑢 的历史交互项集为

\mathcal{H}_u

,将其最大大小设置为 𝐾。不够的就填充,超出的就裁剪。聚合向量计算如下,其中

e_k \in \mathbb{R}^{d \times 1}

是序列中第k个商品的embedding,

I_k

表示填充的掩码索引,若

I_k=0

表示是一个填充符号,若

I_k=1

则表示不是填充的。α为聚合权重,可以用不同方式计算得到,例子如下,平均池化对每一个商品都是同等对待,而用注意力机制可以根据用户偏好施加不同权重。

p_{u}=\sum_{k \in \mathcal{H}_{u}} I_{k} \cdot \alpha_{k} \boldsymbol{e}_{k}
\alpha_{k}=\left\{\begin{array}{ll} \frac{I_{k}}{\sum_{k \in \mathcal{H}_{u} I_{k}}}, & \text { if average pooling, } \\ \frac{I_{k} \cdot \exp \left(\beta_{k}\right)}{\sum_{j \in \mathcal{H}_{u}} I_{k} \cdot \exp \left(\beta_{j}\right)}, & \text { if self-attention or user-attention. } \end{array}\right.
\beta_{k}=\left\{\begin{array}{ll} q^{T} \tanh \left(W_{1} e_{k}+b_{1}\right), & \text { if self-attention } \\ e_{u}^{T} \tanh \left(W_{2} \times e_{k}+b_{2}\right), & \text { if user-attention } \end{array}\right.

聚合后,用户表征和交互表征可能存在于不同的特征空间,因此,作者进一步将两个表征融合得到下式,其中V表示可学习参数,g是超参数。

h_u=g \cdot e_u+(1-g) \cdot V p_u

最后计算相似度,如下式,

\hat{y}_{u i}=\cos \left(h_{u}, e_{i}\right)

实验结果

MF上不同损失函数的结果比较

不同方法之间的对比

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 Cosine Contrastive Loss
  • 2.2 模型结构
  • 实验结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档