因果推断推荐系统工具箱 - ULTR-CP(三)

文章名称

【WSDM-2021】【Jilin University-JD】Unbiased Learning to Rank in Feeds Recommendation

核心要点

前两节,我们完整的描述了,作者提出的ULTR-CP以及如何利用regression-based EM的方法来求解combinational propensity(准确的说,只有相关性用了regression,其他的都还是不同的EM,并且相关性严格的讲不是propensity的一部分)。文章的另一个亮点是从样本平衡的角度验证(或者评估)了学习到的propensity的好坏(感觉更causal inference一些)。

方法细节

问题引入

从上节所讲的伪代码中(或者说其实所有的IPW方法),可以看出propensity的估计和排序函数的学习其实是相互独立的。propensity的估计偏差严重影响了偏差纠正的效果(从因果推断的角度讲,propensity学的不好,样本对齐就不好,得出来的因果效应的估计就是有偏差的,因为不是同一个或同样的一群人的potential outcome的差值)。因此,重中之重是校验propensity估计的好坏。作者顺着样本匹配的角度对propensity score进行了校验。

具体做法

Balancing Property

在因果推断中,我们通过2个不同的treatment下的potential outcome的差值来表示2个treatment的因果效应的大小。一般把感兴趣的treatment当做实验组而把参考的treatment当做对照组。但是因果推断存在2大基本问题,

  • missing counterfactual,也就是我们不能同时观测到同一个研究主体,在不同treatment下的输出结果
  • confounding bias,在观测数据中,通常存在即影响treatment assignment,同时又影响outcome的随机变量,这种变量导致了,不同treatment下特征分布的不均匀(其实应该是反着的)
    总之,我们需要满足一些包括SUTVA,positive,unconfoundness等假设,才能够确保因果效应是可以被识别的。在观测数据上,通过消除confounding bias,并利用匹配后不同treatment组里的研究个体的factual来当做potential outcome对因果效应进行估计是matching的主要思路。但是matching会遭遇维度灾难(多个值如何兼顾呢?),因此利用研究个体被分配到不同treatment的概率(propensity)来充当balancing score成为了主流,也就是我们所说的IPW方法。

在给定propensity score的条件下,用户的特征与treatment的分配是独立的,也就是说,不同treatment下用户的特征分布应该趋于一致的。

Balancing Checking Method

[1]将用户按照propensity score分桶,在每个桶中进行treatment与covariates的独立检验。一般这种检验检测的是均值的差异,如果均值差异小就认为propensity估计的合理,对应的IPS方法的效果会比较好(严格的话做假设检验)。

作者认为treatment是物品是否被曝光(原文说的是相关性是否被曝光),即随机变量。outcome是用户的物品与查询的相关性。confounder是哪些影响物品被观测到概率的随机变量组合。把物品按照估计的combinational propensity,划分成多个小段,每个小段内分别比较点击数据和非点击数据下,中每个特征元素的均值差异,均值差异总体较小的被认为是combinational propensity估计较好。

至此,Balancing Checking Method讲解完了,文章占的篇幅不大,但是感觉可以仔细再读一下,总觉得有点奇怪,具体原因参见下述心得体会(也许我没读懂...需要再推敲下)。

心得体会

Balancing Checking Method

个人觉得虽然Balancing Checking Method是本文的亮点之一,但是整体假设显得比较牵强。以下观点有点绕,聒噪预警...

假设推荐模型是一个策略,那么推荐的整个排序结果应该是一个treatment。这个推荐结果改变了用户的某种行为变量,比如点击或者购买转化,也许我们可以把这些指标看作是outcome。在L2R中,不同的推荐排序结果可以被当做treatment(为了减少复杂度,我们认为ranker只改变结果集的顺序,不改变候选物品集合,因为那部分可以归因为召回策略。另外,我们也可以假设这个场景仅仅是rerank。不过,这里如果要比较的话,就变成了同一个召回候选集下的不同排序模型的排序结果作为treatment),会影响用户的点击和转化。

出于某种原因,用户不能够完全get到我们的全部推荐结果(因为排序了,后边的受关注度就低),那么到单个物品层面,treatment就变成了是否被推给了用户,进而用户还看到了这个物品。所以,treatment是倒还比较好理解,毕竟如果用户看到了才是真正的推荐到了。

不妥outcome是相关性这一点,个人感觉可能有些问题,在给定物品和查询上下文的时候就是固定的了。并且随机变量(是否观测到物品)不应该决定随机变量(物品是否与查询相关)。反倒是,可能决定了(不相关就不会被推荐,不被推荐就应该不被看到,当然,在PBM类似的模型中,都假设独立于,这个因果图就感觉有点奇怪了)。有一种可能,作者所说的是被用户看到的相关性(也就是用户体会到的,而不是物品实际的,有点类似价格和价值的概念),只有这样,感觉才合理(但是最终模型要估计的是被用户体会到的相关性,还是固有不变的相关性,就需要仔细区分了)。

再来看看confounder,因为同时影响treatment assignment以及outcome的具体值,才需要被adjust。如果把点击率当做是outcome,当做treatment,也许位置才会是一个合理的confounder(或者上述被用户体会到的相关性也是可以的)。不然,固有相关性,似乎反过来还会位置,因为相关性决定排序结果嘛(所以,说着说着,感觉这里边应该有两2个)。

最后,看看平衡检验的方法。回顾一下,因果推断的检验是,检测不同treatment下,covariates的分布是否一致。奇怪的是,作者检测的是click和non-click data下的的每一个covariate是否一致。但是click和non-click应该不是不同的treatment才对(treatment是)。如果按照上述,treatment是,应该是观测到和没被观测到的两个组之间比较,但是这两个组是位置的,是估计出来的。

综上,感觉这个因果框架设计的有点蜜汁。

文章引用

[1] Leonardo Grilli and Carla Rampichini. 2011. Propensity scores for the estimation of average treatment effects in observational studies. Training Sessions on Causal Inference, Bristol (2011), pp: 28–29.

你可能感兴趣的:(因果推断推荐系统工具箱 - ULTR-CP(三))