美文网首页因果推断推荐工具箱
因果推断推荐系统工具箱 - CauseRec(二)

因果推断推荐系统工具箱 - CauseRec(二)

作者: processor4d | 来源:发表于2021-12-07 21:42 被阅读0次

文章名称

【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)。
  • 如何构建优化目标(作者利用了对比学习)学习模型参数。
CauseRec Framework

具体做法

Formulation

首先,回顾一下问题的形式化定义,

  • (所有)用户可能的行为序列空间记作\mathcal{ X},物品总空间记作\mathcal{Y}
  • 观测到的用户行为数据集为\mathcal{ D} = \{ (x_{u,t}, y_{u,t}) \}_{u=1,..N, t=1,..,T_u}。其中,u, t分别表示用户的序号和其行为序列的序号(一个人可能有多条行为序列),T_u表示该用户产生的(或者说观测到的)行为序列交互的总数。
  • x_{u,t} = \{ (y_{u,1:t-1}) \}表示用户的行为序列(指的是其中一条序列)。
  • SRS的目标是在给定x_{u,t}的情况下准确的预测y_{u,t},预测概率记作p(y_{u,t}=y|x_{u,t})

值得注意的是,作者表示,文章旨在解决召回阶段的问题,而非排序阶段。

Identification of Indispensable/Dispensable concepts

作者利用concept score来识别indispensable/dispensable concepts。

如前所述,这种识别可以在物品和兴趣两个粒度进行,

  • 物品粒度。作者利用行为序列C = X中的每一个物品c_i与target物品y(也就是行为序列中的最后一个)的相似度作为concept score,即p_i^{item} = \phi_\theta(c_i, y)\phi可以是任意计算相似度的函数,作者采用点积。
  • 兴趣粒度。作者利用attention机制,把用户行为序列转换为C = A\top X,其中A为attention张量(shape \mathbb{R}^{t\times K}),其计算公式如下图所示。最终,利用相似度函数,得到每个兴趣粒度的concepts score。
    Interest-level Attention
    Interest-level concepts scores

有了concepts scores,作者把排序后前50%的concepts当做是indispensable concepts,后50%的concepts当做是dispensable concepts。

Counterfactual Transformation

为了生成反事实行为序列,作者采用替换概率r_{rep}来替换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行为序列分别记作\{ x^{+, m} \}_{m=1,...,M}, \{ x^{-, n} \}_{n=1,...,N}

为了增强模型鲁棒性,模型应该对indispensable concepts不敏感。因此,替换了indispensable concepts的序列得到的counterfactually positive user representations应该与原行为序列得到的user representations距离比较远(核心兴趣被改变了)。

为了增强模型准确性,模型应该更依赖indispensable concepts。因此,替换了dispensable concepts的序列得到的counterfactually negative user representations应该与原行为序列得到的user representations距离比较(核心兴趣没有改变)。

其具体计算公式如下图所示,其中x^q是原始行为序列得到的用户特征,作者采用L_2作为距离函数d,并从多次实验和经验的角度,令\Delta_{co}=1

Contrast between Counterfactual and Observation

此外,作者利用L2-normalized之后的target物品embedding和用户行为序列embedding(\tilde{y}, \tilde{x}^{+, m}, \tilde{x}^{-, n})进行对比学习,防止模型学习到平凡解。其计算公式如下图所示,且\Delta_{ii} = 0.5

Contrast between Interest and Items

最终,整体的学习目标如下图所示,其中\mathcal{L}_{matching}是匹配得分损失(相似度计算后的最大似然)。

Total Loss

心得体会

Concept Score

作者利用item和最后target的相似度作为concept score,感觉像是marginal的行为序列贡献值。

Counterfactual Transformation

个人感觉,作者采用的依概率r_{rep}随机替换的方法过于简单了,相比于其他类似反事实解释生成的方法,生成的序列里决策边界可能比较远,或者对模型训练提供的信息不够充分,也就是说不够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).

相关文章

网友评论

    本文标题:因果推断推荐系统工具箱 - CauseRec(二)

    本文链接:https://www.haomeiwen.com/subject/hfmcxrtx.html