基于反事实因果推断的度小满额度模型

8819d4c363f3ac7b665601555c378a4f.png

本文约4400字,建议阅读9分钟
本文从三个角度与你分享基于反事实因果推断的度小满额度模型。

1. 因果推断的研究范式

(1)相关性与因果性

(2)三大基本假设

2. 因果推断的框架演进

(1)从随机数据到观测数据

(2)反事实表示学习

3. 反事实额度模型Mono-CFR

(1)连续型Treatment的反事实估计问题

分享嘉宾|万世想 度小满 专家算法工程师

编辑整理|徐依依 字节跳动

出品社区|DataFun

01 因果推断的研究范式

研究范式目前主要有两个主要的研究方向:

  • Judea Pearl Structure Model 

  • 潜在的输出框架 

c1ca1a65627040e7bcc66e9176f31a90.png

在Judea Pearl 《The Book of Why – The New Science of Cause and Effect》这本书中,将认知阶梯定位为三层:

  • 第一层-关联:通过关联的方式找出规律,可以直接观察;

  • 第二层-干预:如果改变现状,应当实施什么样的行动,得出什么样的结论,可以通过实验观察;

  • 第三层-反事实:由于法律法规等问题无法直接实验观察,通过反事实假设,如果实施了行动,会发生什么,如何评估ATE和CATE,是较为困难的一个问题。

dae212f363e2332594e687ca18e52a63.png

首先阐述下产生相关关系的四种方式:

1. 因果关联:原因和结果之间有可靠的,可追溯的,能够正向依赖的关系,比如烟雾与烟雾报警器具有因果关联;

2. 混淆关联:含有未能直接观测的混淆变量,比如身高和阅读能力是否能够关联起来,需要控制年龄这个变量相似,从而得出有效的结论;

3. 选择偏差:本质上是伯克森悖论,比如探究外貌和才华的关系,如果只在明星群体中观察,可能会得出结论:长相和才华不可兼得。如果在全部人类里观察,长相与才华没有因果关系。

4. 逆向因果关系:即因果倒置,比如统计显示人类结婚时间越长,寿命就越长。但是反过来,我们不能说:如果想获取更长的寿命,就要早早结婚。

混淆因子如何影响观测结果,这里有两个case可以说明:

e34202935b8b2daaa62ee815fd08e2ec.png

上面图片描述了运动量与胆固醇水平的关系。从左图可得出结论:运动量越大,胆固醇水平越高。但是加入年龄分层来看,相同年龄分层下,运动量越大,胆固醇水平越低。此外,随着年龄增长,胆固醇水平逐渐升高,这个结论才符合我们的认知。

fbd818651cd8f971b65b9d0181a35e76.png

第二个例子为信贷场景。从历史统计数据中可以看出,给定的额度(能借到的钱款数)越高,逾期率越低。但是金融领域,会首先根据借款人的A卡判断其信用资质,如果信用资质越好,则平台赋予额度越高,整体逾期率也很低。但是根据局部随机实验表明,相同信用资质人群,会有一部分人其额度风险迁移曲线变化比较缓慢,也会有一部分人其额度迁移风险较高,即额度提升后,带来的风险增量较大。

上面两个case说明,如果建模中忽略混淆因子,可能会得到错误,甚至相反的结论。

188cf3567a79c7edc2134f2347a2aa0b.png

如何从RCT随机样本过渡到观测样本因果建模?

对于RCT样本的情况,如果希望评估ATE指标,可以通过分组相减或DID(difference in difference)。如果希望评估CATE指标,可以通过uplift 建模。常见的方法比如有meta-learner,double machine learning,causal forest等等。这里需要注意必要的三大假设:SUTVA,Unconfoundedness和Positivity。最核心的假设为:不存在未观测混淆因子。

对于仅有观测样本的情况,无法直接获取treatment->outcome的因果关系,我们需要借助必要的手段切断covariates到treatment的后门路径。常见方法是工具变量法和反事实表示学习。工具变量法需要对具体业务抽丝剥茧,绘制业务变量中因果图。反事实表示学习则依靠成熟的机器学习,匹配covariates相似的样本做因果评估。

02 因果推断的框架演进

1. 从随机数据到观测数据

接下来介绍因果推断的框架演进,是如何一步步过度到因果表示学习的。

常见Uplift Model有:Slearner, Tlearner, Xlearner。

其中Slearner将干预变量视为一维特征。需要注意,在常见的树模型里,treatment容易被淹没,导致treatment effect估计偏小。

66b2f9fd91521bb677b9097468975b38.png

Tlearner将treatment离散化,对干预变量分组建模,每一个treatment建立预测模型,再作差。需要注意,较少的样本量会带来较高的估计方差。

193a71f804496e9c855f846516796505.png

Xlearner分组交叉建模,将实验组和对照组分别进行交叉计算训练。该方法综合了S/T-learner的优点,其缺点是引入了更高的模型结构误差,提高了调参难度。

e61f9278884fa4ca31fcfa8a927a3690.png

三种model比较:

f2f4b19834f415b2059e993e3335d56e.png

在上图中,横轴是复杂的因果效应,MSE的的估计误差,纵轴是简单的因果效应,横轴纵轴分别表示两份数据。绿色表示Slearner的误差分布,褐色表示Tlearner的误差分布,蓝色表示Xlearner的误差分布。

在随机样本条件下,Xlearner对于复杂的因果效应估计和简单的因果效应估计均更优;Slearner对于复杂因果效应预估表现相对较差,对简单因果效应估计更优;Tlearner则与Slearner相反。

fc0da2694adc89cc17fab84bd5741628.png

如果有随机样本,X到T的箭头可以去掉。过渡到观测建模后X到T的箭头去不掉,treatment和outcome会同时受到confounders的影响,这时可以进行一些消偏处理。比如DML(Double Machine Learning)的方式,进行两阶段建模。在第一阶段中,这里的X是用户自身的表征特征,比如年龄、性别等。混淆变量会包括比如历史中对筛选特定人群的操作。在第二阶段中,对上一阶段计算结果的误差进行建模,这里的即是对CATE的估计。

从随机数据到观测数据有三种处理方式:

(1)做随机试验,但业务成本较高;

(2)寻找工具变量,一般比较困难;

(3)假设观测到所有的混淆因子,利用DML、表示学习等方法匹配相似样本。

2. 因果表示学习

e12f4d53bacfa008e6217e520abc19d7.png

反事实学习的核心思想就是平衡不同treatment下的特征分布。

核心问题有两个:

1. 如何调整训练样本的权重? 

2. 如何在表示空间中,使变换后的样本在实验组和对照组分布更加均衡?

本质思想是在变换映射后,为每个样本寻找它的反事实“双胞胎”。映射之后treatment组和control组X的分布比较相似。

090f2828c83524448cb6209664234082.png

比较有代表性的工作是发表在TKDE 2022上面的一篇论文,介绍了DeR-CFR的一些工作,这部分其实是DR-CRF模型的迭代,采用model-free的方式分离观测变量。

将X变量分成三块:调节变量A,工具变量I和混淆变量C。之后再通过I,C,A来调节不同treatment下X的权重,达到在观测数据上进行因果建模的目的。

这种方法的优势是可以分离混淆因子,减少估计偏差。缺点是难以处理连续型干预。

这个网络的核心就是如何分离A/I/C三类变量。调节变量A只与Y有关,需要保证A与T正交,并且A对Y的经验误差较小;工具变量I只与T有关,需要满足I与Y关于T条件独立,并且I对T的经验误差较小;混淆变量C与T和Y都相关,w是网络的权重,给了网络权重后,需要保证C与T关于w条件独立。这里的正交性可以通过一般的距离公式实现,比如logloss或者mse欧氏距离等约束。

edfb7b5a1766ca1f10776f5c4546cf15.png

如何处理连续型干预,这块也是有一些新的论文研究,发表在ICLR2021上的VCNet,提供了连续型干预的估计方法。缺点是难以直接应用在观测数据上(CFR场景)。

将X映射到Z上,Z主要包含之前提到的X分解中的I变量和C变量,即将对treatment比较有贡献的变量从X中提取出来了。这里将连续treatment划分为B个分段/预测头,每个连续函数转化成分段的线性函数,最下化经验误差log-loss,用来学习1e5fc7096975c8a34bb1e22fd845030e.png。之后再用学完的Z和θ(t)去学习a8d79195ddf73b299c789fb5b3122899.png,即outcome。这里的θ(t)是可以处理连续型treatment的关键,是一个变系数的模型,但是这个模型只处理了连续性treatment,如果是观测数据,无法保证每一个B分段数据同质。

03 反事实额度模型 Mono-CFR

最后来介绍一下度小满的反事实额度模型,这里主要解决的是在观测数据上对连续型Treatment的反事实估计问题。

e256f38d68575f99a5c1ee347a549838.png

核心问题是,如何给用户设计(可借)额度,使得平台盈利最大化?这里的先验知识是,额度越高,用户借款越多,违约风险越高。反之同理。 

  • 第一步,定义盈利公式。盈利=额度收入-额度风险。公式看起来简单,但实际上会有很多细节的调整。这样,问题就转化为了在观测数据上建模额度与风险(坏账)、额度与收入的因果关系。 

  • 第二步,估计用户在各个额度档位上的预估收入和坏账,确定最大盈利额度。

我们期望对每个用户有如上图所示的一个盈利曲线,在不同的额度档位上,对收益值做反事实预估。

c4e35257fc7373b0dddd56ff45f0f1fe.png

如果在观测数据上看到额度越高风险越低,本质上是由于混淆因子的存在。我们场景里的混淆因子是信用资质。信用资质比较好的人,平台会赋予更高的额度,反之则赋予较低额度。优信用资质人群的绝对风险仍旧明显低于低信用资质人群。若拉齐信用资质,会看到额度的提升将带来风险的提升,高额度突破了用户自身的偿债能力。

c3bd9faf140fd83c026a20b0c535f303.png

我们开始介绍反事实额度模型的框架。在可观测变量X中,存在之前提到的三种变量,其中大多数是混淆变量C,小部分是策略未考虑到的是调节变量A,还有一部分是仅仅跟干预有关系的工具变量I。 

  • 工具变量I:如政策、需求等,会影响历史的定额策略,但不会影响逾期概率; 

  • 混淆变量C:如信用、收入与负债等,同时影响对额度的调整,和这个人的逾期概率; 

  • 调节变量A:如环境、社会地位等,会影响逾期率。

模型思想:给定期望额度μ(T|X),学习∆T与Y的单调性关系(Dose-Response Curve)。期望额度可以理解为模型学习到的连续性倾向额度,使得混淆变量C和额度T之间的关系能够断开,转换成∆T与Y的因果关系学习,从而对∆T下Y的分布进行较好的刻画。

383d0e15932445d7a8823d7788b57ff5.png

这里进一步细化上述抽象的框架:将∆T转化成变系数模型,再接入IntegrandNN网络,训练误差分成两部分:

c50b686749654a32ee2df317fe33374e.png

这里的α是衡量风险重要程度的超参数。

Mono-CFR由两大部分组成: 

  • 额度倾向网络:预测策略倾向额度,使X⊥∆T;

作用一:蒸馏出X中与T最相关的变量,最小化经验误差; 

作用二:锚定历史策略上的近似样本。

  • 风险单调网络:约束∆T与Y的理论单调关系。 

作用一:对弱系数变量施加独立单调约束; 

作用二:减少估计偏差。

问题转化为: 

  • 额度倾向网络:验证输出∆T与Y 的关系; 

  • 风险单调网络:如何约束∆T与Y的单调性?

实际额度倾向网络输入如下:

faeb623d04b6e886d48206000f60984d.png

横轴是A卡评分定义出的人群,可以看出,不同倾向额度μ(T|X)下,额度差∆T与逾期率Y呈现单调递增关系,越劣质人群的额度差∆T变化曲线越陡峭,实际逾期率变化曲线也越陡峭,整个曲线斜率更大。此处的结论完全是通过历史的数据学习得出的。

f28862c77da5a3e6233f30003ddbcbd1.png

从X和∆T分布图中可以看出:不同资质人群(图中通过不同颜色区分)的额度差∆T均匀分布在相似的区间之中,这是从实际角度说明e9edc467679c4f6b2d796682dc6deff9.png。从理论角度,亦可被严格证明。

第二部分是风险单调网络的实现:

34073073a9bea197520e153bc6a8e5ca.png

这里的ELU+1函数数学表达式为:

6fe86063b32044f978d8ce623e8f807b.png

3bd040bda415c78b0077bdf18862e806.png

∆T和逾期率呈现单调递增的变化趋势,通过ELU+1函数的导数总是大于等于0来保证。

接下来说明风险单调网络如何对弱系数变量学的更加准确:

假设有这样一个公式:

8b3216e88e35db003482e05091a37761.png

可以看出这里的x1即为弱系数变量,当对x1施加单调性约束后,对响应Y的估计更加准确。如果没有这样的单独约束,x1的重要性会被x2淹没,导致模型偏差增大。

4bf8e5944cb7ebeb1d4e672f37dcee9e.png

如何离线评估额度的风险的估计曲线?

分成两部分:

  • 第一部分:可解释验证

e053673e34e9084fa38b71ef71fa6223.png

不同资质人群下,去绘制如上图所示的额度风险变化曲线,模型可以学出不同资质人群(图中不同颜色标识)不同档位实际额度和逾期率的区分度。

  • 第二部分:利用小流量实验验证,不同提额幅度下的风险偏差,可以通过uplift分箱得出。

线上实验结论: 

在额度上涨30%条件下,用户逾期金额下降20%以上, 借款提升30%,盈利性提升 30%以上。

未来模型预期:

以model-free形式将工具变量与调节变量更清晰地分开,使模型在劣质人群上的风险迁移表现更佳。

在实际业务场景中,度小满的模型演进迭代流程如下:

6d5d882ebb0442fc9eee3a11edc8ff22.png

第一步,观测建模,不断滚动历史观测数据,去做反事实因果学习,不断拉新训练窗口,补充外部数据源;

第二步,模型迭代,依据小流量随机样本进行效果验证,支持有效的模型迭代;

第三步,业务决策,业务根据模型输出进行实验决策,验证模型效果提升,拿到业务收益。

以上就是本次分享的内容,谢谢大家!

编辑:黄继彦

9ccaf051ad6f974cdd7d6883463d0ba1.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值