看了很多负采样的论文,最后我选择不采样了。

2021-05-14 16:48:44 浏览数 (1)

作者:一元,四品炼丹师

Efficient Heterogeneous Collaborative Filtering without Negative Sampling for Recommendation(AAAI20)

背景

最近推荐相关的研究主要集中在探索神经网络的结构等,然后采用负采样对模型进行高效的学习。然而,这么做会导致有两方面的问题没有被考虑仔细:

  • 负采样会带来较大的波动;基于采样的方法很难获得最优的排序结果;
  • 尽管heterogeneous的反馈在许多在线系统中被广泛使用,(例如view,click,purchase),大多数现有的方案只会使用用户的一种反馈,例如购买等;

本文提出了一个新的非采样的迁移学习解决方案,我们称其为 Efficient Heterogeneous Collaborative Filtering(EHCF)的Top-N推荐。它不仅可以对细粒度的用户项关系进行建模,而且能够以较低的时间复杂度从整个异构数据(包括所有未标记数据)中高效地学习模型参数。

在三个实际数据集上的大量实验表明,EHCF在传统(单一行为)和异构场景中都显著优于最先进的推荐方法。此外,EHCF在训练效率上有显著提高,使其更适用于实际的大型系统。

在之前的许多工作当中,有两个重要的问题还没有非充分考虑,

  1. 很多神经网络为了提升模型的训练效率,采用负采样,但是这么做会出现模型训练不稳定,对于采样的分布以及采样的比例较为敏感。
  2. 之前的工作缺乏用户行为之间的关系的深度探索,每个行为都会有自己对应的上下文以及非常强的迁移关系。

Efficient Heterogeneous Collaborative Filtering

问题定义

假设我们有用户,商品,我们使用来表示用户, 表示一个商品, 表示用户和商品的对应种不同行为的交互矩阵,其中表示用户是否和商品在某个行为下有交互。

广义上,heterogeneous collaborative filtering有一个目标需要优化,我们将其表示为, 而Heterogeneous CF就是为了估计的概率,商品会以分数下降的顺序进行排序, 从而提供top—N的商品推荐列表。

模型一览

模型整体框架如下:

用户和商品会先被投影为一个dense向量表示,user-item的对,我们使用用户以及他对应的商品交互作为输入,此外,这边我们不进行采样,使用一种高效的优化方法。

对于每一个user-item的实例,映射函数可以定义为:

phi(p_u,p_v) = p_u odot q_v

其中,是用户和商品的潜藏向量,表示embedding的大小。表示element-wise相乘。

bar{R}_{(k)uv} = h_k^T(p_u odot q_v) = sum_{i=1}^d h_{k,i}p_{u,i}q_{v,i}

1. Transfer-based Multi-behavior Prediction

不同的行为之间是存在转化关系的,两个行为之间的关系可以通过下面的方式来定义:

f_{h_t rightarrow h_k} = h_tM_{tk} r_{tk}

其中,是一个迁移矩阵,它将从地个行为空间迁移到来第个行为空间。是一个bias向量,所以第个行为的预测层可以通过下面的形式计算:

h_k = sum_{t}(f_{h_t rightarrow h_k}) = sum_{t}(h_tM_{tk} r_{tk})

其中表示第个行为之前的行为,初始的行为是随机初始化的(在推荐里面就是view)

2. Efficient Optimization without Sampling

此处我们使用加权的regression loss

L_{Theta} = sum_{u in B} sum_{v in V} c_{uv}^k (R_{(k)uv} - bar{R}_{(k)uv} )^2 \ = sum_{u in B} sum_{v in V} c_{uv}^k (R_{(k)uv}^2 - 2R_{(k)uv} bar{R}_{(k)uv} bar{R}^2_{(k)uv} )

其中表示的权重。计算该loss的时间复杂度为,这在实践中是可以接受的。

在只有正样本的数据中,non-observed的实例通常会被设定为一个标签, 未观测到的可以被简化该等式。

bar{L}_{Theta} = -2 sum_{u in B} sum_{v in V^{k }} c_{uv}^{k } (R_{(k)uv} bar{R}_{(k)uv} ) sum_{u in B} sum_{v in V^{k}} c_{uv}^k bar{R}^2_{(k)uv} \ = overbrace{sum_{u in B} sum_{v in V^{k }} ((c_{uv}^{K } - c_{uv}^{K-}) bar{R}^2_{(k)uv} - 2 c_{uv}^{k }R_{(k)uv} bar{R}_{(k)uv} )}^{L_k^P(Theta)} overbrace{sum_{u in B} sum_{v in V} c_{uv}^{k-} bar{R}^2_{(k)uv}}^{L_k^A(Theta)}
  • 关于的常数值已经被省略了。

其中表示正样本的损失,其中表示对所有样本的损失,表示对所有正样本的和所有样本的损失。

基于内积乘法操作的decouple的操作,

bar{R}^2_{(k)uv} = sum_{i=1}^d h_{k,i} p_{u,i} q_{v,i} sum_{j=1}^d h_{k,j} p_{u,j}q_{v,j} \ = sum_{i=1}^d sum_{j=1}^d (h_{k,i} h_{k,j}) (p_{u,i} p_{u,j}) (q_{v,i} q_{v,j})

我们将上式代入得到:

  • 因为是均匀的; 参数是商品相关的;
  • 和可以被很好地分开,的优化以及是相互独立的,我们可以通过预先计算这两项来加速。

最终对于单个第个行为的整个数据集的loss就是:

bar{L}_k(Theta) = L_k^P(Theta) sum_{i=1}^d sum_{j=1}^d (h_{k,i} h_{k,j}) (sum_{u in B} p_{u,i} p_{u,j}) (sum_{v in V} c_v^{k-} q_{v,i} q_{v,j})

所以关于的复杂度从降为。

3. Multi-Task Learning

L(Theta) = sum_{k=1}^K lambda_k bar{L}_k(Theta)

其中为用户行为的个数, 用来控制第个需变更为u的行为的影响,此处我们令.

讨论

在第个行为的batch更新的时间复杂度为:, 其中表示该batch中用户和商品在的行为下的正向交互次数。在MTL更新类行为时,我一个batch需要耗费。

对于原始的回归损失,会需要耗费次, 在实践中,因为 以及 ,本文的模型复杂度得到了大大的降低。

实验

1. 效果比较

  • 使用异质反馈的方法通常优于仅利用购买行为的方法,这表明了用户异质反馈的互补性;
  • 使用全数据学习策略的方法通常比基于样本的方法表现更好;

2. 解耦实验

  • 将View数据和购物车数据添加到我们的模型中都会带来改进,从而验证了辅助行为对用户偏好建模的有效性。
  • 我们的方法的显著改进也表明了应用非抽样策略从异质反馈中学习的必要性。此外,没有迁移和没有MTL的变体的性能都比完整的EHCF模型差,这验证了所提出的基于迁移的预测层和多任务训练组件的有效性;

3. 效率分析

  • EHCF比NCF和NMTR在单个行为数据以及heterogeneous数据上的效果都好;

4. 解决数据稀疏问题

  • 使用其它的信息可以缓解数据标签稀疏的问题(例如购买等);

5. 参数的影响

  • 不同的数据集对应的参数是不一样的。

小结

本文提出了一种新的端到端推荐模型EHCF。所提出的EHCF具有两个关键特性:

  • 采用新设计的优化方法进行高效的基于全数据的模型学习;
  • 通过传递方式关联每个行为的预测,捕捉不同行为之间的复杂关系。

在三个真实数据集上的大量实验表明,EHCF不仅比现有的推荐模型有很大的提高,而且训练过程也相当快。这项工作补充了主流的基于样本的神经网络推荐模型和隐式反馈,为神经推荐模型的研究开辟了一条新的途径。所设计的高效的基于整体数据的策略有可能使许多人受益只观察到正面数据的任务。未来的工作包括在网络嵌入和多标签分类等其他相关任务中探索我们的EHCF模型。我们还将尝试扩展我们的优化方法,使它适用于学习非线性模型。

参考文献

  1. Efficient Heterogeneous Collaborative Filtering without Negative Sampling for Recommendation:http://www.thuir.cn/group/~mzhang/publications/AAAI2020-Chenchong.pdf
  2. https://github.com/chenchongthu/EHCF/blob/master/code/EHCF.py

0 人点赞