因果推断笔记(一)

PD(A)从因果分析的角度,尝试缓解流行度偏差问题。在应用因果分析解决实际问题的过程中,需要对数据的产生机制提出因果假设,或则从数据出发识别因果图结构。PD(A)首先对推荐系统中 user-item 的交互数据的产生过程提出了关键假设,PD(A)认为产生交互数据对应的因果图结构为图b:
请添加图片描述

  • 总体共包含 U , I , C , Z U,I,C,Z U,I,C,Z四个随机变量:
  • U U U表示用户, u u u表示某个具体的用户, U \mathscr{U} U表示全体用户组成的集合
  • 因为有曝光的物品才能被用户看到, I I I表示有曝光的物品, i i i表示某个具体的曝光物品, I \mathscr{I} I表示全体曝光物品组成的集合
  • C C C表示用户和商品交互结果, c c c表示某一次曝光的后具体取值, C \mathscr{C} C表示全体曝光结果组成的集合,可以看出C的取值空间为 Θ ( C ) = { 0 , 1 } \Theta(\mathscr{C})=\{0, 1\} Θ(C)={0,1}
  • Z表示商品热度
  • PDA认为C除了受到 U , I U,I U,I影响,还会受到物品热度的影响,表现在两个方面
    • Z → I Z \rightarrow I ZI: 热度高的物品会获得更多的曝光机会
    • Z → C Z\rightarrow C ZC:用户一般都有从众心理(herd mentality),对于热门内容有消费需求

以上是PD(A)对交互数据产生机制提出的关键假设。可以看到这里并没有做因果图识别和发现,而是基于作者对推荐过程的理解,提出的一个假设,效果很大程度取决于这个假设与实际情况的匹配程度,这里不展开。

在此因果图假设基础上,PDA提出:

  • Z Z Z I I I C C C 的混淆变量
  • 普通的推荐模型直接利用观察样本拟合的 P ( C ∣ U , I ) P(C|U,I) P(CU,I),其中混杂了由于混淆变量 Z Z Z带来的伪相关关系,需要去除(deconfounding)

那么如果不去除confounding的影响,会有什么问题呢?

为了说明这点,我们构造这样一个模拟实验:

  • 三个随机变量 W , T , Y W,T,Y W,T,Y

  • 数据产生的因果图为

    • ![请添加图片描述](
  • W W W T T T Y Y Y的混淆变量,并假设变量间的因果关系为线性关系

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

def generate_data(mu, sigma, num):
    W = np.random.normal(mu, sigma, num)
    T = 2 * W + np.random.normal(0, 1, num)
    Y = 10 * T + 50 * W + np.random.normal(0, 1, num)
    T_parameters = [[t] for t in T]
    Y_parameters = [[y] for y in Y]
    return T_parameters, Y_parameters
    
def assocaiton_inference(mu, sigma, dot_color, fit_color, ):
    T, Y = generate_data(mu, sigma, 1000)
    model = linear_model.LinearRegression()
    model.fit(T, Y)
    plt.scatter(T, Y,color=dot_color)
    plt.plot(T, model.predict(T),color=fit_color,linewidth=4)
    print(('%f, %f') % (model.intercept_,model.coef_))
    
assocaiton_inference(mu = 0, sigma = 0.1, dot_color = 'blue', fit_color = 'red')
assocaiton_inference(mu = 0, sigma = 1,   dot_color = 'green', fit_color = 'white')

请添加图片描述

可以看出当Z的分布发生变化后,线性回归结果差别较大。说明当训练样本和预测样本的同分布假设不满足时,模型的泛化效果比较差。

如何去除混淆变量 Z Z Z 的影响呢 ?

PDA中并没有介绍太多背景,直接给出了答案,这里适当做些背景知识补充,并推导出答案。

总结一下问题,目前我们有来自Figure 1图 b (后文表示为 G b G_b Gb)样本数据 S 1 S_1 S1,目标是估计出Figure 1 图 c (后文表示为 G c G_c Gc)对应关联关系 P G c ( C ∣ U , I ) P_{G_c}(C|U,I) PGc(CU,I)

如果我们能从 G c G_c Gc的总体里采样出样本 S 2 S_2 S2,就可以采用普通的建模方式估计出 P G b ( C ∣ U , I ) P_{G_b}(C|U,I) PGb(CU,I),比如逻辑回归,树模型,矩阵分解等。但是 S 2 S_2 S2的获取成本非常高,有时候是不可操作。在推荐系统中就需要让曝光机制不受物品热度的影响,这点很难做到,或则成本很大。

换个思路,如果 P G c ( C ∣ U , I ) P_{G_c}(C|U,I) PGc(CU,I) G b G_b Gb中的某些概率值存在函数关系,那么就无需样本 S 2 S_2 S2了.

先给出一些Gb和Gc概率值间的关系:

P G c ( C ∣ U , I ) = P G b ( C ∣ U , d o ( I ) ) ( 1 ) P_{G_c}(C|U,I)= P_{G_b}(C|U,do(I)) \quad\quad (1) PGc(CU,I)=PGb(CU,do(I))(1)

等式(1)来自do操作的定义, d o ( I ) do(I) do(I)操作等价于将Ga图中指向随机变量 I I I的边全部去掉,本例中Ga去掉所有指向 I I I的边后,Ga就变成Gb,因此有等式(1)

P G b ( C ∣ U , d o ( I ) ) = ∑ Z P G b ( C ∣ U , I , Z ) P ( Z ) ( 2 ) P_{G_b}(C|U,do(I)) = \sum_ZP_{G_b}(C|U,I,Z)P(Z)\quad\quad (2) PGb(CU,do(I))=ZPGb(CU,I,Z)P(Z)(2)

为了证明等式(2),先证明在 G b G_b Gb P ( C ∣ d o ( I ) , Z ) = P ( C ∣ I , Z ) P(C|do(I),Z) = P(C|I,Z) P(Cdo(I),Z)=P(CI,Z),后面的证明都在因果图 G b G_b Gb上,因此省掉下标。

证明:

P ( C ∣ d o ( I ) , Z ) P(C | do(I), Z) P(Cdo(I),Z)

= P ( C , Z , d o ( I ) ) p ( Z , d o ( I ) ) =\frac{P(C,Z,do(I))}{p(Z,do(I))} \quad =p(Z,do(I))P(C,Z,do(I))

= P ( C , Z ∣ d o ( I ) p ( d o ( I ) ) ) P ( Z ∣ d o ( I ) p ( d o ( I ) ) ) =\frac{P(C,Z|do(I)p(do(I)))}{P(Z|do(I)p(do(I)))} =P(Zdo(I)p(do(I)))P(C,Zdo(I)p(do(I)))

= P ( C , Z ∣ d o ( I ) ) ∑ C P ( C , Z ∣ d o ( I ) ) =\frac{P(C,Z|do(I))}{\sum_CP(C,Z|do(I))} =CP(C,Zdo(I))P(C,Zdo(I))

= P ( C ∣ Z , I ) P ( Z ) ∑ C P ( C ∣ Z , I ) P ( Z ) =\frac{P(C|Z,I)P(Z)}{\sum_CP(C|Z,I)P(Z)} =CP(CZ,I)P(Z)P(CZ,I)P(Z)

= P ( C ∣ Z , I ) P ( Z ) p ( Z ) ∑ C P ( C ∣ Z , I ) =\frac{P(C|Z,I)P(Z)}{p(Z)\sum_CP(C|Z,I)} =p(Z)CP(CZ,I)P(CZ,I)P(Z)

= P ( C ∣ Z , I ) P ( Z ) P ( Z ) =\frac{P(C|Z,I)P(Z)}{P(Z)} =P(Z)P(CZ,I)P(Z)

= p ( C ∣ I , Z ) =p(C|I,Z) =p(CI,Z)

证明完成

接着证明 P ( C ∣ U , d o ( I ) ) = ∑ Z P ( C ∣ U , I , Z ) P ( Z ) P(C|U,do(I)) = \sum_ZP(C|U,I,Z)P(Z) P(CU,do(I))=ZP(CU,I,Z)P(Z)

证明:

P ( C ∣ d o ( I ) ) = ∑ Z P ( C , Z ∣ d o ( I ) ) P(C|do(I)) = \sum_ZP(C,Z|do(I)) P(Cdo(I))=ZP(C,Zdo(I))

= ∑ Z P ( C , Z , d o ( I ) ) P ( d o ( I ) ) =\sum_Z\frac{P(C,Z,do(I))}{P(do(I))} =ZP(do(I))P(C,Z,do(I))

= ∑ Z P ( C , Z , d o ( I ) ) P ( Z , d o ( I ) ) P ( Z , d o ( I ) ) P ( d o ( I ) ) =\sum_Z\frac{P(C,Z,do(I))}{P(Z,do(I))}\frac{P(Z,do(I))}{P(do(I))} =ZP(Z,do(I))P(C,Z,do(I))P(do(I))P(Z,do(I))

= ∑ Z P ( C ∣ Z , d o ( I ) ) P ( Z ∣ d o ( I ) ) =\sum_ZP(C|Z,do(I))P(Z|do(I)) =ZP(CZ,do(I))P(Zdo(I))

= ∑ Z P ( C ∣ Z , I ) P ( Z ) =\sum_ZP(C|Z,I)P(Z) =ZP(CZ,I)P(Z)

证明完成

可以发现等式(2)的右侧已经没有do操作了,而且每个组成部分都可以通过样本 S 1 S_1 S1估计得到。

原文中的因果推断部分介绍完成,其他的内容不再展开。

论文的关键优化是用 P ( C ∣ U , d o ( I ) ) P(C|U,do(I)) P(CU,do(I))替代 P ( C ∣ U , I ) P(C|U,I) P(CU,I),那么因果关系一定比相关关系优吗?几个个人观点:

  • 不一定,看具体场景和应用类型
  • 在同分布条件满足的情况下, P ( C ∣ U , I ) P(C|U,I) P(CU,I)不一定比 P ( C ∣ U , d o ( I ) ) P(C|U,do(I)) P(CU,do(I))差,在同分布条件不满足的情况下, P ( C ∣ U , I ) P(C|U,I) P(CU,I)的泛化性得不到保障
  • 现实中同分布假设是一个挺强的假设
  • 相关关系无法预测干预结果

补充:

其实上面的证明就是后门调整规则,这里正式介绍一下后门调整(Backdoor Adjustment)。

定义:关于变量T和Y的一组变量W,如果满足条件:

  1. W 阻断了所有从T到Y的路径
  2. W 不包含 T 的任何后代节点

则称 W 关于 T 和 Y 满足后门准则.

给定模块化假设和W关于T和Y满足后门准则,则可以通过下面的方式识别T对Y的因果影响:

P ( Y ∣ d o ( T ) ) = ∑ W P ( W ) P ( Y ∣ T , W ) P(Y|do(T)) = \sum_WP(W)P(Y|T, W) P(Ydo(T))=WP(W)P(YT,W)

reference:

https://arxiv.org/pdf/2105.06067.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值