新加坡国立大学冯福利:因果推理赋能推荐系统初探
2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系、AI TIME 论道承办的《2020 中国科技峰会系列活动青年科学家沙龙——人工智能学术生态与产业创新》上,新加坡国立冯福利博士进行了题为《因果推理赋能推荐系统初探》的主题报告,介绍了因果推理技术的实用价值,重点分析了其团队在利用反事实推理技术消除数据偏差方面的相关工作,并对因果推理研究未来的发展趋势进行了讨论。
图 1:因果推理赋能推荐系统初探
因果之梯
如图 1 所示,著名的贝叶斯网络之父、图灵奖获得者 Judea Pearl 将人类的智能划分为了三个层次(即「因果之梯」):Seeing、Doing、Imaging。Pearl 将第一层智能归纳为「关联」(Association),即观察数据并发现其中的关联关系。例如,如果我们观察超市的销售记录,可能会发现对某一种商品采取打折促销手段会导致销量上升,即发现打折和销量上升之间的关联关系。
图 1:第一层智能——「关联」
第二层的认知能力为「干预」(Intervention)。在观察销售记录的过程中,我们发现销售记录只记载了「洗发水打 5 折会导致销量上涨 20%」,但是并没有沐浴露打折对销量影响的记录。实际上,我们在进行决策时候可以推断:由于沐浴露和洗发水十分相似,如果我们对沐浴露打 5 折,可能也会增加 20% 的销量。
图 2:第二层智能——「干预」
在「因果之梯」的最上层,还具有一种认知能力——「反事实」。我们可以推测一些跟历史数据不一致的情况,预测在假定面对与现实不同的情况下会产生怎样的结果。在第二层智能「干预」中,我们可以很容易地将「洗发水打折对销量有有所提升」的结论泛化到沐浴露上。但是如果我们想要预测在打 7 折的情况下销量会增加多少,就无法简单地将历史数据泛化到目标任务上了,我们需要知晓打折和销量增加背后究竟有怎样的关系。
图 3:第三层智能——「反事实」
目前,大多数的机器学习模型只关注到了智能的「关联」层面,即学习出训练数据中的特征与标签之间的关联关系,但这种智能化程度仍然是远远不够的。
因果推理应用示例
图 4:巧克力消费量 vs 获诺贝尔奖数量
如图 4 所示,横轴代表各国巧克力的消费量,纵轴为该国家每 1000 万人口中诺贝尔奖得主的数量。不难发现,该图表明巧克力消费量和获诺贝尔奖的数量是高度相关的。那么问题来了:如果我们能否根据这些特征及其之间的相关性构建一个模型,预测某个国家未来会获得多少诺贝尔奖?由于图 4 显示巧克力消费量与获诺贝尔奖数量正相关,这个思路看起来似乎是可行的,该模型会认为巧克力消费量很大的国家可能获得的诺贝尔奖也很多。那么,该模型何时会失效呢?例如,假设某些获诺贝尔奖可能性很大的发达国家的人民突然间注意到了肥胖问题,而吃很多巧克力也许会导致肥胖,此时这些国家的巧克力消费量可能就会下降。如果我们再用之前的模型预测获诺贝尔奖的数量,结果将会不够准确。
该模型为什么会失效?从数据上看,历史数据告诉我们,巧克力消费量和诺贝尔奖的获得数量是高度相关的。但是,其背后的原因可能是:在过去的几十年中,收入较高的国家对于教育、科研的投入可能更大,因此就获得了更多的诺贝尔奖。同时,收入较高的国家可能也会消费更多巧克力,所以才导致巧克力的消费量与获得诺贝尔奖的数量在表面上有高度的正相关性。然而,如果收入高的国家的国民出于健康考虑,不再吃更多巧克力,这种相关性就会产生改变。
图 5:无处不在的数据偏差
总而言之,如果我们单纯依靠相关性构建机器学习模型,当训练数据和测试数据并不满足独立同分布假设时,模型就会失效。训练机器学习模型的过程离不开训练数据,尽管世界范围内的各个研究组贡献了很多高质量的数据集,但是这些数据集仍然存在很多数据偏差(bias)。以 ImageNet 数据集上的物体识别任务为例,图片的背景就是一种数据偏差。如果数据集中大多数狗的图片都是在草地上的狗(即背景为草地)。当测试样例是海滩上的狗时,使用该数据集训练出来的物体识别模型很有可能无法顺利将狗识别出来。
此外,在视觉问答系统(VQA)任务中,同样也存在数据偏差的问题。假设问答系统接收到的问题是:「香蕉是什么颜色的」?在我们的训练数据集中,大多数对于该问题答案都是「黄色」,即训练数据集中的香蕉都是熟透了的黄色。但是,当我们遇到一个测试用例为还未成熟的绿色香蕉图片时,很有可能 VQA 模型无法正确回答出该香蕉为绿色。这是因为在训练好的 VQA 模型看来,绝大多数训练样例对该问题的答案都是「黄色」,模型很难纠正这种「偏见」。
为了应对数据偏差问题,智源人工智能研究院首席科学家文继荣教授团队在论文「Counterfactual VQA: A Cause-Effect Look at Language Bias」(https://arxiv.org/abs/2006.04315)中给出了他们的解决方案。他们认为,针对有偏的数据集,我们不应该陷入费时费力纠偏的无限循环中。假如训练好的模型做出的预测是有偏的(例如,对于绿色的香蕉图片,回答其为黄色的概率更大),我们可以挖掘导致产生这种偏差的原因。当模型只有一种输入的时候,我会得到只考虑偏差数据的情况下的预测结果(即中间答案)。训练数据集中有很多因素都会对香蕉颜色的问题带来数据偏差,由于数据集中大多数香蕉都是黄色的,因此模型在不观察图像的情况下和没有看到问题的情况下都会更偏向于回答香蕉的颜色是「黄色」,如果将完全影响(TE,定义请参阅原文)与自然直接影响(NDE,定义请参阅原文)相减,就可以消除掉模型预测中的语言偏差,作者在这个框架中利用反事实推理消除掉了偏差的影响。
因此,解决此类问题的核心步骤为:(1)分析造成偏差的原因(2)量化估计造成偏差的因素在预测过程中的影响程度,通过消除这种因素的影响来消除偏差。
推荐系统中的因果推理
图 6:推荐系统
推荐系统旨在通过预测用户的兴趣,为用户推荐一些商品,帮助用户更快地买到自己想要的东西。在实现过程中,大多数公司的推荐系统会迭代进行以下三种操作,形成了一种用户反馈的循环:(1)模型训练:利用历史数据中用户和物料之间的交互记录训练一个推荐模型(2)通过模型输出影响用户行为:将训练好的模型上线,为用户生成推荐列表,将排序靠前的物料推送给用户(3)根据用户反馈修正训练数据:收集用户使用推荐列表的反馈信息,查看用户点击了哪些物料、跳过了哪些物料,将用户的行为反馈数据添加到训练数据中,进而开始新一轮的迭代。
图 7:推荐系统中的数据偏差
受到上文所介绍的论文「Counterfactual VQA: A Cause-Effect Look at Language Bias」(https://arxiv.org/abs/2006.04315)的启发,冯福利博士团队考虑使用因果推理技术解决推荐系统存在数据偏差的问题。例如,推荐系统中存在数据选择偏差:我们所观察的历史记录数据可以说明用户点击了哪些我们向其展示的物料,而无法知晓用户是否会点击我们未向其展示的物料东西我不知道用户会不会点,这种点击行为本身也是有偏的。
再举一例,推荐系统中也存在流行度偏差的问题(马太效应)。如果某个物料本身十分受欢迎,那么历史数据就会记录有很多用户点击了该物料,相对于其它不流行的物料来说,该物料被推荐的概率要大很多。另一方面,由于该物料被推荐的概率更大,它会得到更多被展示的机会,因而很可能有更多被点击的机会。当用户新的点击行为记录被添加到训练数据中之后,流行的物料会变得更加流行(马太效应),即用户反馈循环会放大数据偏差。目前,越来越多的研究人员正试图通过因果推理技术处理推荐系统中存在的数据偏差问题。
除此之外,因果还能为推荐系统带来更可靠的解释性。目前,深度学习模型大多是黑盒模型。对于为终端用户服务的模型而言,如果我们可以为其赋予可解释性,将会在很大程度上有助于提升用户对系统的信任程度。当前大多数的可解释推荐方法仍然停留在为推荐结果寻找解释的层面上,它们试图通过注意力机制或者树状结构等方式构建一个可解释模型。然而,由于我们往往基于「关联」关系搭建了推荐模型,因此这些解释结果只能够反映出一些相关性层面上的推荐原因。例如,当 YouTube 等视频网站为用户推荐了一个介绍卷积神经网络(CNN)的视频,传统方法对其的解释可能是:用户观看过 Hinton 有关「胶囊网络」(capsule network)的主题演讲(注:胶囊网络与卷积神经网络之间有关联,它们都属于神经网络模型)。然而,这种解释似乎并不合理。这是因为,观看「胶囊网络」演讲的用户一般而言对于卷积神经网络已经有所了解。如果再向此类用户推荐 CNN 的入门介绍视频,这里提供的解释是没有说服力。目前,一部分研究人员正试图基于「逆倾向指数」(IPS,Inverse Propensity Score)将因果推理引入到推荐系统的可解释性研究工作中。
推荐系统中的流行度偏差
图 8:MovieLens 数据集中的流行度偏差
图 8 显示了公开的推荐系统对比基准数据集 MovieLens 中的流行度偏差情况。我们按照训练数据中的交互频率将物料分为 6 组,观察不同的推荐系统在测试阶段推荐各组物料的频率。不难发现,在训练数据中出现次数越多的物料被推荐的次数也明显越多。无论用户是否喜欢该物料,只要该物料在训练数据中出现次数多就有可能被推荐给用户,而用户自己的兴趣就被频繁出现的物料「支配」了。具体而言,如果某用户对体育十分感兴趣,用户在购物时会期望推荐系统推送一些与运动相关的物料。然而,假如用户购物的时间节点在苹果举行产品发布会前后,手机将会成为训练数据中出现次数十分频繁的物料,推荐系统可能会向用户推荐数码产品而非与运动相关的产品,这与用户的购买兴趣不符。
图 9:通过 IPS 解决推荐系统中的流行度偏差问题
为了解决这一问题,一些传统的基于因果推理的方法采用了 IPS 技术。简而言之,IPS 指的是:用户在训练时会产生一系列点击行为,我们用 u_i 代表用户 u 点击第 i 个物料,用户之所以点击某个受欢迎的物料,可能是因为物料具有某些使其流行起来的特性,也可能是因为该物料本身符合用户的兴趣。为了将这两层因素拆分开来,我们为流行的物料赋予一个较小的权重,使其对训练的贡献较小。还有一些研究人员采用「因果嵌入」(CausE)来解决流行度偏差问题。例如,使用无偏的数据,试图将带来流行度偏差因素与匹配用户兴趣的因素分离开来。
![](http://aiqianji.oss-