文章名称
【SIGIR-2021】【Zhejiang University, China/National University of Singapore】CauseRec: Counterfactual User Sequence Synthesis for Sequential Recommendation
核心要点
文章旨在解决用户行为序列系数且具有噪声,对模型稳定性和鲁棒性造成的影响。作者从观测序列中识别不可或缺的和可替换的concepts,concepts包括物品粒度和兴趣粒度两个层级。通过替换观测序列中这两种concepts,可以得到反事实的行为序列分布(counterfactual data distribution,相当于数据增广)。通过在观测行为和反事实行为上进行对比训练(contrastive learning),解决前述问题。
上一节介绍了问题的背景,作者的思路和整体框架以及作者提出的baseline。本节将详细介绍CauseRec的3个组成部分。
方法细节
问题引入
上一节描述了CauseRec的整体框架(如下图所示),可以分为3各部分。那么问题转化为,
- 如何识别indispensable/dispensable concepts。
- 如何替换indispensable/dispensable concepts以生成反事实序列(out-of-distribution counterfactual user sequences)。
- 如何构建优化目标(作者利用了对比学习)学习模型参数。
![](https://img.haomeiwen.com/i1767638/e5acc7870a8a3069.png)
具体做法
Formulation
首先,回顾一下问题的形式化定义,
- (所有)用户可能的行为序列空间记作
,物品总空间记作
。
- 观测到的用户行为数据集为
。其中,
分别表示用户的序号和其行为序列的序号(一个人可能有多条行为序列),
表示该用户产生的(或者说观测到的)行为序列交互的总数。
表示用户的行为序列(指的是其中一条序列)。
- SRS的目标是在给定
的情况下准确的预测
,预测概率记作
。
值得注意的是,作者表示,文章旨在解决召回阶段的问题,而非排序阶段。
Identification of Indispensable/Dispensable concepts
作者利用concept score来识别indispensable/dispensable concepts。
如前所述,这种识别可以在物品和兴趣两个粒度进行,
- 物品粒度。作者利用行为序列
中的每一个物品
与target物品
(也就是行为序列中的最后一个)的相似度作为concept score,即
。
可以是任意计算相似度的函数,作者采用点积。
- 兴趣粒度。作者利用attention机制,把用户行为序列转换为
,其中
为attention张量(shape
),其计算公式如下图所示。最终,利用相似度函数,得到每个兴趣粒度的concepts score。
Interest-level Attention
Interest-level concepts scores
有了concepts scores,作者把排序后前50%的concepts当做是indispensable concepts,后50%的concepts当做是dispensable concepts。
Counterfactual Transformation
为了生成反事实行为序列,作者采用替换概率来替换indispensable/dispensable concepts(注意,这里的替换概率是常数,对indispensable/dispensable concepts采用同一个值,只是在标记为positive还是negative的时候,才用indispensable/dispensable区分)。
值得注意的是,作者强调可以直接从原始行为序列中删除某些行为。然而,这样会影响整体行为序列的长度,也会影醒行为在C序列中的相对位置,进而影响整体语义。
这里之前写的不清楚,作者是借鉴CLRec [83]的做法,维护了一个mini-batch的队列,每一个mini-batch的时候作为concept的缓存(包括indispensable和dispensable,这个队列的设计可以是不区分两者,也可以是两者分别用一个队列存储,作者做了区分),下一个mini-batch的时候就从这个队列里出队一些concepts进行替换,完成transformation。原文的描述如下。
We maintain a first-in-first-out queue as a concept memory for each level
and use dequeued concepts as substitutes. We enqueue the concepts extracted from the current mini-batch.
在生成counterfactually positive/negative user representations的时候,也可以分为3种不同的方法,
- CauseRec-Item。利用物品粒度生成的反事实序列和baseline模型,学习counterfactually positive/negative user representations。
- CauseRec-Interest。利用兴趣粒度生成的反事实序列和baseline模型,学习counterfactually positive/negative user representations。
- CauseRec-H(ierarchical)。利用物品粒度生成的反事实序列,结合兴趣concept score的提取过程,得到兴趣行为序列(**作者强调,这里不会在进行concepts score的计算。如果再做替换,会引入噪声。Concepts score是在物品粒度计算好的,替换也是在物品粒度发生的,只是在兴趣粒度汇总(也就是过个变换和attention而已。)。
Learning Objectives
经过Counterfactual Transformation得到的counterfactually positive/negative行为序列分别记作。
为了增强模型鲁棒性,模型应该对indispensable concepts不敏感。因此,替换了indispensable concepts的序列得到的counterfactually positive user representations应该与原行为序列得到的user representations距离比较远(核心兴趣被改变了)。
为了增强模型准确性,模型应该更依赖indispensable concepts。因此,替换了dispensable concepts的序列得到的counterfactually negative user representations应该与原行为序列得到的user representations距离比较近(核心兴趣没有改变)。
其具体计算公式如下图所示,其中是原始行为序列得到的用户特征,作者采用
作为距离函数
,并从多次实验和经验的角度,令
。
![](https://img.haomeiwen.com/i1767638/aca69bc695437323.png)
此外,作者利用L2-normalized之后的target物品embedding和用户行为序列embedding()进行对比学习,防止模型学习到平凡解。其计算公式如下图所示,且
。
![](https://img.haomeiwen.com/i1767638/a711adbea4b7c513.png)
最终,整体的学习目标如下图所示,其中是匹配得分损失(相似度计算后的最大似然)。
![](https://img.haomeiwen.com/i1767638/4bc26706acf7d7c9.png)
心得体会
Concept Score
作者利用item和最后target的相似度作为concept score,感觉像是marginal的行为序列贡献值。
Counterfactual Transformation
个人感觉,作者采用的依概率随机替换的方法过于简单了,相比于其他类似反事实解释生成的方法,生成的序列里决策边界可能比较远,或者对模型训练提供的信息不够充分,也就是说不够hard。
Contrastive Learning
个人感觉,作者设计的对比学习,是方法亮点之一。只是解释的时候逻辑上稍微有一点别扭,明明说鲁邦是对dispensable concepts不敏感,那不应该是让改变了dispensable的行为序列和原行为序列接近么?反而解释的是改变了indispensable的行为序列和原始行为序列距离拉远...虽然思路上没啥问题,总感觉说反了。(当然,可能不同的角度不同的理解)
文章引用
[83] Chang Zhou, Jianxin Ma, Jianwei Zhang, Jingren Zhou, and Hongxia Yang. 2020. Contrastive Learning for Debiased Candidate Generation at Scale. CoRR (2020).
网友评论