查看原文
其他

划重点!!因果推断两大算法框架解析

汪冬冬 DataFunTalk
2024-09-11

导读 本次分享题目为“因果推断知识地图”,分享人为来自京东科技的算法工程师汪冬冬。

主要内容包括以下几个部分:

1. 整体框架

2. 应用场景评估(决策问题)

3. 典型的因果算法

4. 因果推断实际落地中的难点

5. 案例-京东科技的额度决策模型

6. 未来发展

分享嘉宾|汪冬冬 京东科技 算法工程师 

编辑整理|毕东海

内容校对|李瑶

出品社区|DataFun


01
整体框架

因果推断的主要任务可分为三类。首先是因果结构的发现,即从数据中识别出变量之间的因果关系。其次是因果效应的估计,即从数据中推断一个变量对另一个变量的影响程度。需要注意的是,这种影响并非指相关性,而是指在对一个变量进行干预时,另一个变量的数值或分布如何变化。最后是校正偏差,因为在许多任务中,各种因素可能导致开发样本和应用样本的分布不同。在这种情况下,因果推断可以帮助我们进行校正偏差。

这些功能适用于多种场景,其中最典型的是决策场景。通过因果推断,可以了解不同用户对我们的决策行为的反应。其次,在工业场景中,业务流程通常复杂且长,导致数据存在偏差。通过因果推断清晰描述这些偏差的因果关系,可以帮助我们进行纠偏。此外,许多场景对模型的鲁棒性和解释性要求很高。希望模型能够基于因果关系进行预测,因果推断可以帮助构建更为强大的解释性模型。最后,决策结果的效果评估也很重要。虽然类似于决策场景,但这是在决策之后进行的评估。因果推断可以帮助更好地分析策略的实际效果。

接下来将介绍因果推断中的两个重要问题:如何判断一个场景是否适合应用因果推断,以及因果推断中的典型算法。

02

应用场景评估(决策问题)

首先介绍应用场景评估,判断一个场景是否适合使用推断主要涉及决策问题。

对于一个决策问题,首先需要明确其是什么,即在什么约束条件下做出什么动作,以达到最大化什么样的目标。接着需要考虑这个动作对目标和约束是否产生影响,以及是否需要使用因果推断模型进行预测。举例来说,在营销产品时,我们通常会考虑在给定总预算的情况下,决定是否给每个用户发放优惠券或打折,以最大化销量或销售额。如果没有预算约束,虽然折扣会影响最终的销售额,但只要知道其是正向策略,就可以给所有人打折。这种情况下,虽然决策动作对目标有影响,但无需使用因果推断模型进行预测。

以上是对决策问题的基本分析,此外还需观察数据条件是否满足。对于构建因果模型,不同的因果算法对数据和任务的假设有不同的要求。
  • 潜在结果类的模型有三个关键的假设。首先,个体的因果效应必须是稳定的,例如在探究发优惠券对用户购买概率的影响时,要保证一个用户的行为不受其他用户的影响,比如在线下比价或者受到不同折扣版本的优惠券影响。第二个假设是,在给定的特征情况下,用户的实际处理和潜在结果是独立的,这个假设可以用来处理观测不到的混杂。第三个假设是关于 overlap 的,即任何一种用户都应该给出不同的决策,否则就无法观察到这种用户在不同决策下的表现。
  • 结构因果类的模型所面临的主要假设是变量之间的因果关系,这些假设往往难以证明。而使用 Meta learning 和基于树的方法时,其假设通常是条件独立的,即在给定特征的情况下,决策动作和潜在结果是独立的。这个假设与前面提到的独立性假设相似。
在实际业务场景中,了解先验知识至关重要。首先,需要理解实际观测数据的分配机制,即先前决策的基础。当无法获得最准确的数据时,可能需要依靠一些假设来进行推断。其次,业务经验可以指导我们确定哪些变量对于区分因果效应的影响最为显著,这对于进行特征工程具有重要意义。因此,在处理实际业务时,结合观测数据的分配机制和业务经验,能够更好地应对挑战,有效地进行决策和特征工程。

03

典型的因果算法

第二个重要议题是因果推断算法的选用。

首先是因果结构发现类算法。这些算法的核心目标是确定变量之间的因果关系。主要的研究思路主要可分为三类。第一类方法是根据因果图中的节点网络条件独立性特点进行判断。另一类方法是定义一个评分函数来衡量因果图的质量。例如,通过定义似然函数,寻求使得该函数最大化的有向无环图,并将其作为因果图。第三类方法则是引入了更多的信息。例如,假设两个变量的实际数据生成过程遵循 a n m 型,即加性噪音模型,然后再求解这两个变量之间的因果关系方向。

因果效应的估计涉及多种算法,下面介绍几种常见的算法:
  • 首先是计量经济学中常提及的工具变量法、did 方法和合成控制法。工具变量法的核心思想在于寻找与处理相关但与随机误差项无关的变量,即工具变量。此时工具变量与因变量之间的关系不受混杂的影响,可以将预测分为两个阶段:首先利用工具变量预测处理变量,然后利用预测的处理变量来预测因变量,得到的回归系数即为平均处理效应(ATE)。而 DID 方法和合成控制法则是针对面板数据而设计的方法,但在此不作详细介绍。
  • 另一种常见的方法是利用倾向得分来估计因果效应。这种方法的核心是预测隐藏的分配机制,例如发放优惠券与不发放优惠券的概率。如果两个用户具有相同的优惠券发放概率,但实际上一个用户收到了优惠券,另一个用户没有,那么我们可以认为这两个用户在分配机制上是等价的,因此可以比较它们的效果。基于这一点,可以推广出一系列方法,包括匹配方法、分层方法和加权方法等。
  • 还有一种方法是直接预测结果。即存在观测不到的混杂情况下,也可以通过假设直接预测结果,并通过模型自动进行调整。然而,这种方法可能引发一个问题:如果直接预测结果就足够,那么问题就不存在了吗?实际上,并非如此。
  • 第四是结合倾向得分和潜在结果的思路,使用双重稳健和双重机器学习的方法可能会更准确。双重稳健和双重机器学习将两种方法结合在一起,其中任何一个部分的准确性都可以确保最终结果的可靠性,从而提供了双重保障。
  • 另一种方法是结构因果类的模型,基于因果关系构建模型,如因果图或结构化方程。这种方法允许直接干预某个变量以获得结果,并进行反事实推断。然而,这种方法的前提是我们已经了解变量之间的因果关系,这往往是一个奢侈的假设。
  • Meta learning 方法是一种重要的学习方法,其涵盖了多种不同的类别。其中之一是 S-learning,该方法将处理方法视为一个特征,直接输入模型中。通过调整这个特征,我们可以观察到不同处理方法下结果的变化。这种方法有时被称为单模型学习者,因为我们为实验组和对照组各建立了一个模型,然后通过修改特征来观察结果。另一种方法是 X-learning,其过程类似于 S-learning,但额外考虑了交叉验证的步骤,以更准确地评估模型的性能。
  • 树形方法是一种直观且简单的方法,通过构建树状结构来分裂样本,使得左右节点上的因果效应差异最大化。然而,这种方法容易过拟合,因此在实践中常常采用随机森林等方法来减少过拟合的风险。使用 boosting 方法可能会增加挑战,因为它更容易过滤掉一些信息,所以在使用时需要设计更复杂的模型以防止信息丢失。Meta learning 方法和基于树的算法通常也被称为 Uplift model
  • 因果表征是近年来在学术界取得一定成果的领域之一。该方法致力于解耦不同模块,将影响因素分开,以更精确地识别混淆因素。通过分析影响因变量y 和处理变量(treatment)的因素,可以识别出可能影响 y treatment 的混淆因素,这些因素被称为混淆因素。这种方法有望提高模型的端到端学习效果。以倾向得分为例,它常常在处理混淆因素时表现出色。然而,倾向得分的过分准确有时并非有利。在同一倾向得分下,可能出现无法满足重叠假设的情况,这是因为倾向得分可能包含一些与混淆因素相关但不影响y 的信息。当模型学习得过于准确时,在加权匹配或分层处理时,可能会导致较大的误差。这些误差实际上并非由混淆因素引起,因此并不需要考虑。因果表征学习方法提供了解决这一问题的途径,能够更有效地处理因果关系的识别和分析。
04

因果推断实际落地中的难点

因果推断在实际应用中面临着诸多挑战。
  • 因果关系的弱化。在许多场景中,因果关系往往与随机波动的噪音处于同一量级,这给建模工作带来了巨大的挑战。在这种情况下,建模的收益相对较低,因为因果关系本身并不明显。然而,即使必须进行建模,也需要采用具有更强学习能力的模型才能够准确捕捉到这种弱化的因果关系。同时,需要特别注意过拟合的问题,因为学习能力较强的模型可能会更容易受到噪音的影响,导致模型过度拟合数据。
  • 第二个普遍存在的问题是数据条件的不足。这个问题的范围较为广泛,主要原因在于我们所使用的算法假设存在着许多不足之处,特别是在利用观测数据进行建模时,我们的假设可能并不完全成立。其中最典型的问题包括重叠假设可能无法满足,我们的分配机制可能缺乏随机性。更为严重的问题是,我们甚至没有足够的随机测试数据,这使得我们难以客观地评估模型的表现。在这种情况下,如果仍然坚持进行建模,而且模型性能优于同比规则,那么我们可以借助一些业务经验来评估模型的决策是否合理。从业务角度出发,对于一些假设不成立的情况,比如未观测到的混杂因素,从理论上并没有特别好的解决方法,但如果一定要使用模型,可以尝试根据业务经验或进行一些小规模的随机测试来评估混杂因素的影响方向和程度。同时,将这些因素考虑到模型中,对于不满足重叠假设的情况,虽然这在我们后面的列举中作为第四个问题,但在此一并讨论,我们可以通过一些算法来排除一些分配机制中的非混杂因素,即通过因果表示学习来缓解这一问题。
  • 在处理这种复杂性时,决策动作显得尤为重要。许多现有模型主要专注于解决二元问题,然而,若涉及多个处理方案,如何分配资源便成为一个更为复杂的问题。针对这一挑战,我们可以将多个处理方案分解成不同领域的子问题。此外,利用深度学习方法,我们可以将处理方案视为特征,并假设连续处理方案与结果之间存在某种函数关系。通过优化这些函数的参数,可以更好地解决连续决策问题,然而,这也引入了一些额外的假设,如重叠问题。
  • 分配机制固定。见上述分析。
  • 另一个常见问题是目标预测很多。在某些情况下,目标预测受到多种因素的影响,而这些因素又与处理方案相关联。为了解决这一问题,我们可以采用多任务学习的方法,尽管直接处理复杂的角色问题可能较为困难,但我们可以通过简化问题,仅预测受处理方案影响最为关键的指标,逐步为决策提供参考。
  • 最后,一些场景下进行随机测试的成本较高,而且效果回收周期较长。在模型上线之前,充分评估模型的效果变得尤为重要。在这种情况下,进行小规模的随机测试可以用来评估效果。尽管评估模型所需的样本集比建模样本集少得多,但如果甚至无法进行小规模的随机测试,那么我们可能只能通过业务解释性来判断模型决策结果的合理性。
05

案例-京东科技的额度决策模型

接下来以京东科技利用因果推断技术制定信贷产品的辅助应用为例,展示如何根据用户特征和经营目标确定最佳信贷额度。在确定经营目标后,这些目标通常可以细分为用户表现的指标,如用户的产品使用情况和借款行为。通过分析这些指标,可以计算出利润、规模等经营目标。因此,额度决策过程分为两步:首先利用因果推断技术预测用户在不同额度下的表现,然后根据这些表现和经营目标,采用各种方法来确定每个用户的最佳信贷额度。

06

未来发展

未来的发展中将面对一系列挑战与机遇。

首先,针对当前因果模型存在的不足之处,学界普遍认为需要大规模的模型来处理更为复杂的非线性关系。因果模型通常只处理二维数据,并且大多数模型结构相对简单,因此未来的研究方向可能包括解决这一问题。

其次,研究者提出了因果表示学习的概念,强调了解耦和模块化思想在表示学习中的重要性。通过从因果关系的角度理解数据生成过程,基于真实世界规律构建的模型很可能具有更好的迁移能力和泛化性。

最后,研究者指出当前的假设过于强大,很多情况下难以满足实际需求,因此需要针对不同情境采用不同的模型。这也导致了模型落地的门槛相当高。因此,寻找通用性强的万金油算法具有巨大的价值。
以上就是本次分享的内容,谢谢大家。


分享嘉宾

INTRODUCTION


汪冬冬

京东科技

算法工程师

毕业于天津大学,2017 年加入京东科技,具有多年智能决策模型建模经验。


往期推荐


vivo 超大数据规模分布式消息中间件架构演进实践

专利大模型的实践与知识问答探索

蚂蚁集团 EB 级大数据治理架构与实践

平安银行智能化数据安全分类分级实践分享

大语言模型对汽车行业的影响和实践探索

告别信息过载:大模型驱动的搜索与推荐,精准定位用户需求

阿里巴巴技术实践:BI+AI技术的融合与应用

官宣|Apache Paimon 毕业成为顶级项⽬,数据湖步⼊实时新篇章!

从0到1,聊聊货拉拉如何搭建数据指标体系

领域模型生产指南

点个在看你最好看

SPRING HAS ARRIVED

继续滑动看下一个
DataFunTalk
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存