文章名称
【CIKM-2021】【CS Research, New Delhi, India】CauSeR: Causal Session-based Recommendations for Handling Popularity Bias
核心要点
文章旨在解决Session-Based推荐场景下Popularity带来的Bias对长尾物品推荐的影响。流行物品的过渡曝光影响了长尾物品的曝光,并且这种偏差会在模型训练过程中不断被放大。作者认为这种影响在1)数据收集;2)魔性训练两个阶段都会有影响。数据收集时的偏差源于Popularity带来的Conformity Bias,而模型训练时的偏差来源于样本不平衡导致的偏差(可以理解为传统的Popularity Bias)。不同于现有方法,作者考虑联合解决两种偏差。
方法细节
问题引入
如上所述,流行物品的过渡曝光造成了SRS(session-based RS)模型在学习预测时(分类时)面对的训练样本是不平衡的,标签呈现长尾分布,因而会影响模型的性能。并且,这种偏差在新模型的训练过程中会被逐渐放大,放大偏差的影响主要源于两个方面,
- 数据收集时候积累的Conformity Bias,一般是指用户与物品交互时有从众心理(可能是线下发生的);
- 模型训练阶段积累的Popularity Bias,一般是指模型见到的样本是不平衡的,进一步呈现马太效应,导致模型性能变差。
作者现有方法更多解决的是数据收集阶段的偏差,而对训练阶段的偏差处理较少,尤其是在SRS领域。
具体做法
Formulation
首先,形式化定义一下SRS问题,
- 用户集合为,物品集合为;
- 所有用户-物品交互的session可以记作。例如,表示用户点击物品的行为序列。表示其中的一个session。
- SRS的目的是基于session 的前个行为序列,预测第个交互的物品。这个预测结果用多分类得分表示,而得分较高的前个物品,被作为top-k推荐结果返回。
作者构建的,SRS的数据生成过程和模型训练过程的因果图,如下所示。
Causal Graphs数据生成阶段,表示用户在的session中的兴趣,表示物品的特征(包含该物品的流行度特征),表示物品与当前session中用户兴趣的相关程度。是用户是否点击了该物品的outcome。该阶段,物品的基础特性会影响,进而影响。同时,物品的流行程度也会由于Conformity Bias(流行的物品用户更倾向点击,原因是因为从众)直接影响。同时具有DE(Direct Effect)和IDE(InDirect Effect)两部分,在这样的数据上训练会和我们想得到的”只通过造成的effect“出现偏差。
模型训练阶段,表示session中的embedding,表示物品的embedding(个人认为这里是可以不包含流行度特征的),是momentum of SGD optimizer(SGD的动量),是在头部物品方向上的投影。是用户是否点击了该物品的outcome。[18]证明了,SGD的动量会让模型偏向于流行度高的物品(这里有一点疑惑,应该说的是所有SGD方法都会有这个问题。简单的理解,也许是样本不均衡,导致优化器有偏)。
本节介绍了CauSeR模型解决的问题背景和形式化,下节继续介绍模型的训练和预测。
心得体会
Data-Graneration Stage
个人认为,作者在这个阶段是把当做treatment,此时Conformity Bias,造成treatment对outcome的影响,分成了DE(Direct Effect)和IDE(InDirect Effect)两部分。因此,如果在这样的数据上训练,会高估流行物品(因相关性带来的)Effect。
那么问题来了,如果我的effect只是为了点击,有啥问题么?答案是,没有(毕竟,管他是什么物品,只要点了就好)。但是,我们的目标是提高相关性带来的点击,进而实现有效的推荐(把相关的物品推荐给具有相应兴趣的人)。这样做的原因,有两个,1)推荐系统的目标是解决信息爆炸,挖掘个性化兴趣,这个初心不能变(而不是纯做流行物品,人云亦云,即便用户容易这样,但是当他们反应过来自己真正的需求时,还是会觉得从众不是他们真正想要的,不然还需要啥个性化呢?);2)一旦用户明白过来自己想要的,从众的答案(即便他过去从众了)他们是不会进一步转化的,带不来收益(靠热度影响,不在咱们讨论的范畴)。并且,这种从众的心理,单个用户是随机产生的,决定不从众了,就要推荐系统给个性化的结果。可惜的是,模型没有这么快转身,因为模型是统计模型,个体不从众了,可是统计数据还是从众的,不断训练还会恶性循环放大这种从众,模型就永远给不出不从众的推荐了。
Traning Stage
作者提到是对的effect的confounder,那么此时到底谁是treatment?
个人认为还是是treatment,因为毕竟推荐改变的是物品,而不是改变用户的session。那么,为什么会有有confounder就出现偏差的问题?原因可能是,其实是个条件,是一个collider结构。训练阶段是已知的,因此是相关影响的(具有相关性),因此对的影响被对的影响左右,自然也会导致模型估计的对的影响出现偏差?
推荐时候,我们是看着的变化,来推的。所以,在预测时,其实暗含了,我们期望,这个条件,仍然是collider的场景。
此外,是否可以把同时当做treatment?个人觉得好像不太合理。
网友评论