点击关注我们,提升学习效率
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被优化以最大化正对之间的相似性,并最小化边距约束下的负对的相似性. 𝑤 是一个超参数,用于控制正样本损失和负样本损失的相对权重。
CCL的优点:
- 首先,CCL计算的是用户商品之间的余弦相似度,而不是点积或欧式距离。对两个表征向量用 L2 归一化后,余弦相似度只计算角度差,从而避免了量纲的影响。
- 其次,当负样本数量变大时,通常会存在许多冗余但信息量不足的样本。但是现有的损失函数(如BPR)同等对待每个负样本。因此,模型训练可能会被这些无信息样本淹没,这会显着降低模型性能并减慢收敛速度。相比之下,CCL 通过使用适当的边距 𝑚 来过滤无信息的负样本来缓解这个问题。
- 第三,作者发现直接对所有负样本的损失项求和或求平均会降低模型性能,尤其是当负样本数量很大时。这部分是由于正样本和负样本之间的高度不平衡(例如,当 |N | = 1000 时为 1:1000)。因此,引入了一个数据相关的权重 𝑤 来控制正损失和负损失之间的平衡。
2.2 模型结构
在借鉴了一些已有的CF方法后,作者提出了上述的模型结构,借鉴MF的机制,使用户和商品的表征在同一空间。并且,也向youtubeNet,ACF考虑用户的交互数据。
SimpleX 的聚合层可以采用常用的聚合方法,包括平均池化、自注意力和用户注意力机制等,但 Simplex 是一个统一的架构,任何其他聚合方法也应该适用。
假设用户 𝑢 的历史交互项集为
,将其最大大小设置为 𝐾。不够的就填充,超出的就裁剪。聚合向量计算如下,其中
是序列中第k个商品的embedding,
表示填充的掩码索引,若
表示是一个填充符号,若
则表示不是填充的。α为聚合权重,可以用不同方式计算得到,例子如下,平均池化对每一个商品都是同等对待,而用注意力机制可以根据用户偏好施加不同权重。
聚合后,用户表征和交互表征可能存在于不同的特征空间,因此,作者进一步将两个表征融合得到下式,其中V表示可学习参数,g是超参数。
最后计算相似度,如下式,
实验结果
MF上不同损失函数的结果比较
不同方法之间的对比