作者介绍:王宏阳,硕士毕业于中科院计算所,现为腾讯高级算法研究员,先后在百度和腾讯从事广告和推荐算法的研发工作,个人知乎号 武侠超人。
最近闲暇时间整理了一下推荐领域中的bias和debias,一方面这个方向在最近几年的学术界和工业界中都引起了很多的重视,另一方面最近各大公司都在强调推荐生态的理念,debias也是构建良好推荐生态中不可或缺的一个关键要素。
虽然这个方向很火,但是在整理的过程中发现各家对这个领域的定义和术语并没有一个很清晰的统一,确实需要系统性地归纳整理一番。
本次分享部分参考了2020年的这篇综述《Bias and Debias in Recommender System: A Survey and Future Directions 》,并对其中的多处地方做了重新修改和额外补充。
背景
我们一直认为通过推荐拿到的最优结果理论上是groudtruth的,于是在不断地优化各种推荐模型和系统,然而这种真的是这样的嘛?
实际上推荐中的bias是无处不在的。
从user、data、model这三个推荐循环生态的角度出发,整体归纳起来大致有以下几个Bias(其实这些Bias很多场景下是可以互相转化的)。
User->Data
Position Bias:用户更倾向于和位置靠前的物品进行交互
Exposure Bias / Observation Bias:带标签的数据都是曝光过的,未曝光的数据无法确定其标签
Selection Bias:用户倾向于给自己喜欢或者不喜欢的物品进行打分
Conformity Bias:用户打分的分数倾向于和群体观点保持一致
Data->Model
Inductive Bias:对模型的各种假设,用于提升泛化性,通常是有利的 ,例如我们常用的奥卡姆剃刀原理、CNN的局部性假设、RNN的时间依赖假设、注意力机制假设等等
Model->User
Popularity Bias:热门的物品获得了比预期更高的热度,长尾物品得不到足够曝光、马太效应严重
Unfairness:因数据不均匀导致对某些群体的推荐结果 有偏,如种族歧歧视、性别歧视等
循环加剧
这些bias在推荐系统的反馈循环中会不断被加剧,导致推荐生态逐步恶化
现状
最近几年无论是在学术界还是在工业界上,bias和debias的专题都引起了很大的关注和探讨
学术界上,比如2020年的RecSys和SIGIR都有专门针对Bias和Debias的专题讨论,也有人专门统计了这个方向在最近几年的一些知名会议的发文和占比
工业界上,2020年的KDD Cup比赛就有专门的Debiasing题目,吸引了很多大厂的团队参赛
上述这些bias在很多时候都是相通的,比如position bias和 exposure bias等。因此,后面介绍的debias的思想和方法也有很多都是融会贯通的
Position Bias
首先,有一些大家比较熟悉的通用方法
将Position特征加入训练数据(或loss function)中,预估时将该特征统一设置为某一定值(如 0)
计算CTR时考虑位置效应(如某个位置的历史平均点击)
单独建模 Position Bias,但预测时候还是只用Ranking model,2019年的RecSys有两篇文章都是用的这个思路
❝[RecSys 2019] PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems (华为)
❞
[RecSys 2019] Recommending What Video to Watch Next: A Multitask Ranking System (YouTube)
然后,还有一大类比较早期的方法可以叫做Click Models,常见的有
examination模型假设:如果一个物品被clicked,一定是examined & relevant ,相关研究比如比较早期微软提出过的贝叶斯模型
❝[WWW 2007] Predicting Clicks: Estimating the Click-Through Rate for New Ads (微软)
❞
cascade模型假设:用户从第一个到最后一个依次考察,点击一旦发生,序列行为便会停止,有些论文提出了一些公式来表示这个假设
相关研究比如还是早期微软提出过的级联模型
❝[WSDM 2008] An Experimental Comparison of Click Position-bias Models (微软)
❞
但是这类方法往往需要大量的数据支撑,同时如果假设错误的话就会产生bias
最后,最近几年提出的基于IPS或者叫IPW的模型是最近非常火的思路,可以用在解决各种Bias问题上
问题:怎么无偏地预估我们最终想要得到的相关性?现有的基于点击的模型是bias的
方案:设计IPS或IPW模型来解决(最简单通俗来讲,就是求得曝光的概率,从而调节原始数据分布)
证明:理论上可以证明该模型最终会收敛为相关性模型
那么应该如何预估呢?
常见的思路是基于 result randomization 预估,但有损用户体验且不能适应变化;也有人提出了基于Pair-wise swapping预估,同样不能彻底消除这个副作用
求解 Propensity Score 有很多的方法,这里以2018年的一篇SIGIR文章为例
❝[SIGIR 2018] Unbiased Learning to Rank with Unbiased Propensity Estimation
❞
这篇文章介绍了一种通过对偶学习 Ranking Model 和 Propensity Model 来求解 Propensity Score 的思路,这个思路可以同时解决多种 Biases,论文里仅以 Position Bias为例进行的介绍
这样问题就可以转化为了两个互相依赖的问题求解,这里可以类比我们传统的EM思想,本文提出了一个对偶学习的思路来解决
Exposure Bias
除了IPS类的方法之外,常见的还有基于启发式的方法和基于采样的方法
Heuristic-based Model:通过启发式方法补充未观测的交互反馈,将所有未观测的交互看作负样本,并赋予较低权重或根据用户和物品的活跃程度设置 (置信度),损失函数如下,但是这种细粒度的设定并不现实
Sampling-based Model:通过采样来控制那些数据用于更新模型,从而纠正数据分布,采样之后等价于优化如下损失函数,其中表示某个实例的采样概率,常见采样策略有均匀采样、流行负样本过采样、利用辅助信息(社交关系、知识图谱)等
Selection Bias
其实这里的Selection Bias更多的还是偏向于Exposure Bias,并不是用户主动选择引起的
这里提出的业界主流的三个Debias方法,同样可以应用在其他Bias上
Data Imputation:同时学习两个任务(打分预测任务和缺失数据预测任务),目前更多采用启发式方法,如直接对缺失值填充,最后结果严重依赖于缺失数据模型的预测准确度
Propensity Score:利用IPS-Based设计模型,直接以ISP的无偏估计量为优化目标,效果取决于Propensity的准确性,用户或物品倾斜的情况下还会出现高方差
Doubly Robust Model:融合了上述两个模型,可以证明如果imputation和propensities中有一个是准确的,整体就是unbiased
这里以2019年CIKM的一篇论文为例,介绍了另一个求解Doubly Robust Model的思路
❝[CIKM 2019] Improving Ad Click Prediction by Considering Non-displayed Events (华为)
❞
Conformity Bias
这个领域的研究确实比较少,但是思想大体是差不多的:把个人观点和群体观点进行更好地融合,同样拿一个最早的一篇论文作为例子,方法和思路都很容易理解
❝[RecSys 2016] Are You Influenced by Others When Rating? Improve Rating Prediction by Conformity Modeling
❞
Popularity Bias
正则化:是解决各种Bias的常见思路,除了设计简单的正则项以外,这里以2020年阿里的一篇论文为例,提出了ESAM(Entire Space Adaptation Model),利用Domain Adaptation的思想将热门物品(曝光集合)学到的知识迁移到长尾物品(未曝光集合)上
❝[SIGIR 2020] ESAM: discriminative domain adaptation with non-displayed items to improve long-tail performance
❞
对抗学习:同样是是解决各种Bias的常见思路,有很多相关的论文,这里可以参考2018年CIKM的这篇
❝[CIKM 2018] An adversarial approach to improve long-tail performance in neural collaborative filtering
❞
因果图或因果推断方法:常用在处理反事实推论上面,2020年arxiv上有篇文章是典型的这个思路,假设用户点击取决于个人兴趣和群体观念,设计了interest embedding捕获用户真实兴趣,popularity embedding捕获因流行度带来的伪兴趣,最终采用interestembedding进行预测
❝[arXiv 2020] Disentangling user interest and popularity bias for recommendation with causal embedding
❞
其他:结合业务场景,我们可以对训练数据进行加权和降权,同样可以在Re-rank阶段设计一些策略进行调整
Unfairness
这个是一个比较宽泛的Bias,可以有很多的定义,这里列举一些文章中提到的常见定义
Fairness Through Unawareness:在模型中任何用户的敏感属性都没有被显式地利用
Individual Fairness:对相似的人群提供相似的推荐结果
DemographicParity:对不同人群的推荐结果应该是相同的, (A代表用户敏感属性)
首先,我们可以在ranking和re-rank上结合业务做很多工作,比如
Ranking:对不同人群的训练数据进行re-labeling或者re-sampling,实现平等
Re-rank:根据业务上的公平性要求进行替换和排序
其次,同样可以用上面提到的正则化思想,将公平性指标加入正则项中来指导模型的优化。这里举两个我觉得非常好的论文为例进行介绍
❝[ICML 2013] Learning fair representations
❞
提出了LFR框架,通过representation来消除敏感信息的影响,这里D是通过比较简单的规则进行定义
❝[SIGIR 2020] (Best Paper) Controlling fairness and bias in dynamic learning-to-rank
❞
提出了FairCo算法,动态控制曝光公平性和实际排序的质量
最后,同样是采用了对抗学习的思想,这里有篇文章对上面提出的LFR模型进行了改进,提出了ALFR(Adversarial LFR)框架,将 LFR中的D改成了对抗网络 ,并利用min-max的思想求解
❝[ICLR 2016] Censoring representations with an adversary
❞
思考
最后自己的几点思考:
IPS类的复杂模型是否在工业届能否较好地 work呢?
能否直接根据系统中召回->曝光的链路去预估propensity score呢?(听说阿里手淘有在尝试这么做)
是否要根据业务场景定制化debias方案?(美团POI的场景也更适合,所以针对这个方向做了很多的工作)
如何更好地解决 Bias 和 performance 之间的trade-off?(把Bias都remove了,但是系统业务指标大概率是会降的,怎么能更好地做一个平衡呢,这也是当下推荐生态面临的最大问题)
主要参考资料
[WWW 2007] Predicting Clicks: Estimating the Click-Through Rate for New Ads
[WSDM 2008] An Experimental Comparison of Click Position-bias Models
[ICML 2013] Learning fair representations
[ICLR 2016] Censoring representations with an adversary
[RecSys 2016] Are You Influenced by Others When Rating? Improve Rating Prediction by Conformity Modeling
[SIGIR 2018] Unbiased Learning to Rank with Unbiased Propensity Estimation
[CIKM 2018] An adversarial approach to improve long-tail performance in neural collaborative filtering
[KDD 2019] Fairness-aware ranking in search & recommendation systems with application to linkedin talent search
[KDD 2019] Fairness in recommendation ranking through pairwise comparisons
[RecSys 2019] PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems
[RecSys 2019] Recommending What Video to Watch Next: A Multitask Ranking System
[CIKM 2019] Improving Ad Click Prediction by Considering Non-displayed Events
[SIGIR 2020] ESAM: discriminative domain adaptation with non-displayed items to improve long-tail performance
[arXiv 2020] Disentangling user interest and popularity bias for recommendation with causal embedding
[SIGIR 2020] (Best Paper) Controlling fairness and bias in dynamic learning-to-rank
[arXiv 2020] Bias and Debias in Recommender System- A Survey and Future Directions