点击下面卡片关注我呀,每天给你送来AI技术干货!

来自 | 知乎

作者 | 陈歪歪

地址 | https://zhuanlan.zhihu.com/p/366702128

编辑 | 机器学习算法与自然语言处理公众号

本文仅作学术分享,若侵权,请联系后台删文处理

写在前面

对因果推断方向有兴趣的同学可以先看我的《因果推断综述及基础方法介绍(一)》,这一部分主要介绍的是因果推断方向的基础方法,后面会对这个方向前沿的论文和方向做一些基础介绍,这些论文和方法有些我进行了精读或者实现,有些只是粗略地了解了大概的主旨,但是会力求讲解得尽量清楚明白,这里的介绍不分先后,只是对不同方法进行介绍,不同领域在早期和近期都有相关新论文出现,有任何问题和建议欢迎评论和私聊。

meta learning

这个方向使用基础的机器学习方法去首先Estimate the conditional mean outcome E[Y|X = x](CATE),然后 Derive the CATE estimator based on the difference of results obtained from step 1,我们常见的uplift model里面one model和two model方法其实也是属于meta learning,在这个领域one model方法是所谓的S-learner,two model方法是所谓的T-learner

  1. T-learner & S-learner

这里不多赘述这两种方法,简单来讲,T-learner就是用分别的两个base learner去模拟干预组的outcome和非干预组的outcome,优点在于能够很好地区分干预组和非干预组,缺点则在于容易出现两个模型的Bias方向不一致,形成误差累积,使用时需要针对两个模型打分分布做一定校准,S-learner是将treatment作为特征,干预组和非干预组一起训练,解决了bias不一致的问题,但是如果本身X的high dimension可能会导致treatment丢失效果。而且这两种方法更偏向于naive的方法,很多其他的问题比如干预组和非干预组样本不均衡的问题、selection bias的问题都未解决。

2. X-learner

在这两种方法的基础之上还有《Metalearners for estimating heterogeneous treatment effects using machine learning pnas.org/content/116/10》这篇论文中介绍的X-learner

首先跟T-learner一样,用base learner去预估干预组和非干预组的response

然后定义

这里D的定义为response的预估值和实际值的差值,然后我们用一个estimator去预估这里的D,最终我们的CATE就是这两个预估出来的τ的加权和。

论文中用图来解释了这么做的原因,如下:

如上图所示,如果我们的干预组和非干预组样本数量不均衡,如图A的蓝色,那么在预估蓝色的base learner时会出现无法拟合到中间上凸部分的情况,最终得到的treatment effect就是在中间部分下凸的结果。

但是如果我们使用了imputed treatment effect,会得到C中虚线的均衡结果。

论文中还提到了自己的实验,实验效果总结来看,如果treat和不treat的数据量差别比较大的时候,X learner效果特别好,但是如果CATE接近0的时候,X learner效果不如S learner,比T learner好,make sense的。

3. 总结性论文

meta learning的方法有非常多,这里只是提到较为经典的三种,其他meta learning的方法比如R-learner有点老了,这里不再介绍,在《Transfer Learning for Estimating Causal Effects using Neural Networks arxiv.org/abs/1808.0780》中比较有意思的是提到了很多方法的方案,包括传统艺能S-learner,T-learner,X-learner和比如warm start T-learner、joint training等等,有兴趣可以看看。

representation learning

表示学习对于因果推断其实算是非常自然的想法,本身由于selection bias的存在,导致treament group和control group的人群自带偏差,而类似S-learner的方法又会使得treat的作用丢失,那么将人群embedding中并尽可能消除bias和保存treat的作用就非常重要了。

  1. BNN & BLR

比较经典的论文有BNN、BLR《Learning Representations for Counterfactual Inference arxiv.org/abs/1605.0366》,整体的算法如图:

其中B指的是loss:

loss包含了三部分:事实数据的误差+和与i最近的j的反事实数据的误差和事实数据+反事实数据的分布差异,那我们是怎么学习φ的呢?

一个方法是对于特征进行选择BLR,在embedding层只有一层,更加白盒,相当于特征筛选,只保留在treatment group和control group差距较小的特征。

另一个方法是深度的方法BNN,embedding后整体的loss加入分布的差异。

2. TARNet

与这篇论文很相似的论文包括TARNet《Estimating individual treatment effect:generalization bounds and algorithms arxiv.org/abs/1606.0397》,这篇文章整体的思路跟BNN那篇有点像,说到了BNN那篇的问题,这里面讲了BLR的两个缺点,首先它需要一个两步的优化(优化φ和优化y),其次如果如果φ的维度很高的话,t的重要性会被忽略掉,挺有道理的,但感觉跟那篇唯一的区别就是解决了一下treat和control组的sample数量不均衡的问题,所以火速看了一下就过了

loss的计算为:

可以看出是在上篇论文的基础上增加了ω的加权,去除了样本不均衡的问题。整体的算法步骤如下:

把两步走的优化变为了同时优化,虽然优化看起来比较微小,但如果大家实际跑一下IHDP数据集的话会发现提升还是挺明显的。

3. CFR

还有一篇论文是在TARNet之上进行优化的,《Counter Factual Regression with Importance Sampling Weights https://www.ijcai.org/Proceedings/2019/0815.pdf》而本文的改进点也在ω上,不除以p(t),而是用一个网络学习了p(t|x),除以p(t|x)

作者将其简化为

可以用任何的网络去拟合第二项,整体的过程为:

4. ACE

还有一篇论文讲到了另一个角度《Adaptively Similarity-preserved Representation Learning for Individual Treatment Effect Estimation cs.virginia.edu/~mh6ck/》

这篇主要的思想希望在representation之后能够尽可能地保留local similarity,用一个toy example来说如下:

整体的框架如图:fprop(x)是提前训练好的倾向性得分function

整体希望representation之前用x计算出倾向性得分相近的两个个体,representation之后,representation之间的距离还是相近,把最重要的部分贴下来如下:

其中Q是Ri和Rj的联合概率(R是representation),P是xi和xj的联合概率,similarity preserving loss就是Q和P的KL散度,其中S的函数如下:

整体的loss包括正常的imbalance loss:

Factual y的分类或者回归loss:

还有similarity preserving loss,总的loss function就是:

5. SITE

还有一篇比较类似思想的论文是SITE《Representation Learning for Treatment Effect Estimation from Observational Data papers.nips.cc/paper/75》但这篇论文我没有非常认真地读,来自NIPS,也是非常经典的一篇,说的主要是普通的representation learning的方法考虑了全局的分布信息,但是没有考虑用户间的局部相似性,然后KNN的方法考虑了局部相似性,但是忽略了全局信息,这里面用了三元triplet pairs的方法选择三个对,用的是倾向性得分,倾向性得分在中间的一对,倾向性得分接近1的treat unit,倾向性得分接近0的control group,有兴趣的同学可以自己看一下。

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

点击上面卡片,关注我呀,每天推送AI技术干货~

整理不易,还望给个在看!

因果推断综述及基础方法介绍(二)相关推荐

  1. 蒙特卡罗方法介绍( 二)

    蒙特卡罗方法介绍( 二) 一.蒙特卡罗求解定积分 蒙特卡洛方法求解定积分有两种方法,一种是上一节中讲的投点法,另外一种是期望法(也称平均值法). 1.1 投点法 给出如下曲线f(x)f(x)f(x), ...

  2. 因果推断综述-基础知识2

    这一节是文章中第二部分基础知识.这一节公式较多,会影响阅读时效. 2.3假设 为了估计治疗效果,在因果推断文献中通常使用以下假设. 假设2.1  稳定的unit治疗价值假设(SUTVA) 任何unit ...

  3. [因果推断] 倾向得分Propensity Score 原理(二)

    目录 一 前置知识 干预效果 Treatment Effect Randomized Controlled Trials(RCT) Observational Studies ATT Average ...

  4. 2020年因果推断综述《A Survey on Causal Inference》

    最近阅读了TKDD2020年的<A Survey on Causal Inference>,传送门,自己对文章按照顺序做了整理,同时对优秀的内容进行融合,如有不当之处,请多多指教. 文章对 ...

  5. 论文阅读——基于观测数据的时间序列因果推断综述

    国防科大2022年3月的综述 1.Granger 多元Granger: VAR+条件集,P(X|Y)=>条件VAR模型,比较y与y^来判定因果关系. (加入条件集,消除其它变量影响) 条件Gra ...

  6. 八字推断系统:(一) 基础知识介绍

    简序: 基于对国学古老传统文化五行八字的兴趣爱好,尝试对其浅显理解和和实践,构建分析工具,借此抛砖引玉,希望能引起对古文化的兴趣. 五行八字基础: 五行是古代是古人对时间空间认知的一个综合世界观,认为 ...

  7. ☀️ 学会编程入门必备 C# 最基础知识介绍(二)——进制、原码反码、基本语法、数据类型、类型转换

    C#

  8. 因果推断笔记——uplift建模、meta元学习、Class Transformation Method(八)

    文章目录 1 uplift 模型介绍 -- 为个体计算ITE 1.1 模型方向 1.2 ITE的假设前提 2 uplift方法一:元学习方法(Meta-learning methods) 2.1 Co ...

  9. 因果推断笔记——自整理因果推断理论解读(七)

    之前有整理过一篇:因果推断笔记-- 相关理论:Rubin Potential.Pearl.倾向性得分.与机器学习异同(二) 不过,那时候刚刚开始学,只能慢慢理解,所以这边通过一轮的学习再次整理一下手里 ...

  10. 因果推断笔记——双重差分理论、假设、实践(四)

    文章目录 1 双重差分 - difference-in-difference -DID 理论与假设 1.1 DID介绍 1.2 使用时需要满足的假设 2 DID + PSM 差异与联用 2.1 DID ...

最新文章

  1. 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
  2. 矢量切片_数据粒度均衡的二维矢量瓦片构建方法
  3. D3---01基础的柱状图制作(转)
  4. c语言中有12个球,数学老师做不出来的一道逻辑推理题
  5. 企业开发--React 中的this使用
  6. Android开发笔记(一百三十八)文本输入布局TextInputLayout
  7. 软件核心研发迎来又一春!
  8. android开发actionbar,Android 开发之为ActionBar 添加Actionbar Button
  9. SAP系统登录以及注册开发人员
  10. 常用连接Linux的SSH工具、SFTP工具
  11. python模拟账号登录_用Python(Tornado)模拟登录小米帐号
  12. 自定义字体需要css的,CSS 自定义字体
  13. 编写c语言程序解一元一次方程,一元方程计算器1.0的代码(C语言实现)
  14. win10系统计算机如何分盘,windows10怎么分盘
  15. Linux版本qq可以远程协助吗,QQ的最实用功能:远程协助
  16. [渝粤教育] 浙江工商大学 中外经典演出欣赏 参考 资料
  17. 英语esl语言课程等级105c,说一下英语ESL的等级
  18. 吉洪诺夫正则化(Tikhonov regularization )
  19. Kali Linux系统安装
  20. 【英语】美式元音 总结

热门文章

  1. mysql 5.5 中创建的数据库名称全都是小写
  2. 学习webbench需要掌握的基础知识(webbench源代码学习心得)
  3. BZOJ4530:[BJOI2014]大融合
  4. Mongo散记--聚合(aggregation)amp; 查询(Query)
  5. 程序4-1 对每个命令行参数打印文件类型
  6. CCleaner系统优化
  7. 【转载】SQL Server 2005关于数据类型最大值(3)
  8. Win32Asm学习笔记[不断更新]
  9. 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  10. 第三百三十二节,web爬虫讲解2—Scrapy框架爬虫—Scrapy使用