因果推断推荐系统工具箱 - Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender ...

文章名称

【KDD-2021】【DAMO Academy, Alibaba Group】Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems

核心要点

文章旨在将ULTR应用到E-commerce的场景,解决原有(检索场景中提出的)方法的两个问题。1)在E-commerce推荐结果不是单列瀑布流而是两列或多列grid-based layout;2)E-commerce中存在多个不同的隐式反馈信息,包括点击和购买(转化),原检索场景方法无法适用或没法充分利用这些信息。作者首先提出了一个通用框架来利用多种隐式反馈信息,同时提出了俩种点击模型,row skipping和slow decay,来估计propensity。

上一节讲述了,作者如何把Sampled Softmax和Contrastive Learning建立联系。这一节重点介绍,作者提出的解决IPW问题的方法CLRec。

方法细节

问题引入

真实的工业场景中估计是比较困难的,因为存在许多模块造成数据系数(是用户之前的点击序列,表示空间可以很大,尤其是当序列长度变大之后)。

具体做法

CLRec: Queue-based Contrastive Learning

CLRec采用代替。这样做,还可以避免过小的带来的方差(造成模型不稳定)。

进一步,作者利用代替。原因是,推荐模型会曝光点击率更高的物品,在propensity表示的是被曝光的概率,那么如果在已部署的推荐模型上收集数据,点击概率也就表明了接下来模型可能会对该物品曝光的概率,也就是propensity。作者利用这个逻辑,减少了在曝光数据上建模计算的开销。

从这个思路出发,可以利用公式3介绍的contrastive loss来纠正曝光偏差。然而,每次采样都会有计算开销,且并不能保证每个Epoch所有物品都有几率被采样到

contrastive loss

基于上述思路和问题,作者设计了基于队列的Contrastive Learning。维护一个队列,每个batch都累计保存新的batch的正样本或者。在当前batch,利用队列里存储到之前batch的正样本集合作为候选集,从中采样个负样本,组成这个batch的训练样本,计算公式3中的对比损失。

single-queue CLRec

Multi-CLRec: Multiple Disentangled Queues for Intent-Aware Bias Reduction

为了能够近似,除了采用单个队列外,可以考虑在物品类别上估计,但是物品的类别也可能成千上万。作者把物品类别聚类到个兴趣(作者令),在兴趣上分别构建一个队列来预测。

item embedding

此外,作者采用[2]中的聚类路由机制实现意图解耦,利用如下图所示的公式,计算物品的嵌入向量表示。其中,是用户第次点击的物品,是该物品的类别属性特征,表示多层感知机。利用另外的一个多层感知机,计算之前的点击的重要性(类似记忆注意力)。

click attention

采用一组可训练的参数来表示意图(兴趣)的原型(也就是共有的原点),利用如下计算公式,把物品以概率分配到意图上(也就是聚类到兴趣里),其中是temperature超参数(softmax里经常出现的能量参数),表示正则。

routing probability

基于上述routing概率,可以得到每个用户的个兴趣向量,计算过程如下图所示。其中表示所有用户共享的兴趣偏置向量。

H intention vectors

同时,由于可能存在趋近于0的情况,导致并不是所有的兴趣都符合用户当前的兴趣点(逻辑上也可以理解)。因此,作者利用另一个attention模块,筛选出最符合用户当前兴趣的向量,并把他作为用户向量。具体的计算过程如下图所示。

user encoder

值得注意的是,作者利用straight-through[1]近似梯度计算中的,计算过程如下图所示。

straight-through

Auxiliary Losses for Enhancing Interpretability

为了能够增强(大规模数据下)模型的可解释性,作者构建了3个额外的损失函数,

  • 鼓励具有极性,具体计算公式如下图所示。
polarized
  • 在向量空间中,促使正确的兴趣靠近目标物品,不正确的兴趣则远离,具体的计算公式如下图上所示。
correct intention
  • 促使物品被平均分配到个兴趣上,具体的计算公式如下图上所示,其中,表示在mini-batch中计算期望。
item balancing

最终,Multi-Queue Contrastive Loss如下图所示,其中表示余弦距离,分别表示主队列(单独CLRec时候的队列)以及目标兴趣队列,。目标物品在计算损失其进入主队列,主队列中出对的物品进入另外一个兴趣队列,其中是的类别。从非主队列出来的物品将被抛弃。

在优化过程中,Multi-Queue Contrastive Loss与上述三个Auxiliary Losses以及加权求和的方式作为优化目标,权重分别为

CLRec的整体框架如下图所示。到这里CLRec就全部介绍完毕了,在多兴趣下的CLRec结果比较复杂,过程也相对繁琐,感兴趣的同学可以参考原文了解更多细节。

framework

心得体会

把队列中的样本当做负样本

为了能够让所有样本都有机会被当做负样本,作者设计了队列机制来存储之前的正样本,并从里边采样下一个batch的负样本。(可能是我没理解透彻)个人感觉,这样的做法,有可能造成负样本的偏差?毕竟被点击的正样本相对来说还是少数的,很多长尾物品是否会没有办法成为负样本?还是说目的就是不拿他们当做负样本呢?

文章引用

[1] Yoshua Bengio, Nicholas Léonard, and Aaron C. Courville. 2013. Estimating or Propagating Gradients Through Stochastic Neurons for Conditional Computation. arXiv preprint arXiv:1308.3432 (2013).

[2] Jianxin Ma, Chang Zhou, Peng Cui, Hongxia Yang, and Wenwu Zhu. 2019. Learning disentangled representations for recommendation. In NeurIPS. 5712–5723.

你可能感兴趣的:(因果推断推荐系统工具箱 - Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender ...)