7 月 12 日,九章云极 DataCanvas 正式发布YLearn因果学习开源项目(以下简称“YLearn”)。据悉,这是全球首款一站式处理因果学习完整流程的开源算法工具包。YLearn 率先同时解决了因果学习中包括因果发现、因果量识别、因果效应估计、反事实推断和策略学习等关键问题,有效提升了政府和企业自动化“决策”能力。
GitHub 地址:https://github.com/DataCanvasIO/YLearn
近年来,因果学习在人工智能领域引起了广泛的关注。有观点认为,因果学习将开启下一代 AI 浪潮。图灵奖得主 Judea Pearl 也曾表示,“如果没有对因果关系的推理能力,AI 的发展将从根本上受到限制”。
那么,究竟什么是因果学习?它能解决什么问题?是否会取代机器学习?作为全球首个一站式处理因果学习完整流程的开源算法工具包,YLearn 有哪些技术实践和应用?针对这些问题,InfoQ 近日采访到了九章云极 DataCanvas 主任架构师、YLearn 团队主要负责人杨健和九章云极 DataCanvas 机器学习研究员吕博晨。
从预测到决策,AI 走向可信与可理解
从二十世纪五十年代正式研究机器学习以来,机器学习历经多个发展阶段,并在近十年取得快速发展。
2016 年,“AlphaGo 击败李世石”事件将以机器学习为代表的人工智能浪潮推至巅峰,并在全球范围内得到了广泛关注。与此同时,全球信息化建设快速发展带来了数据量的飞跃,以及算力的大幅度提升,这也为机器学习注入了新的能量。
不过,近两年,机器学习无论是在学术界的基础理论,还是在工业界的应用上,突破明显开始放缓。这个现象背后的本质是,当前的机器学习技术和通用人工智能中间还存在着巨大的鸿沟。具体而言,机器学习技术还存在诸多局限性,如泛化能力差、缺乏解释性等。
泛化能力方面,机器学习模型经常在训练集上效果不错,但在测试集上效果很差,模型本身缺少足够的鲁棒性。
从机器学习的本质来看,机器学习拟合的是从历史数据上观测到的相关关系,但基于相关关系的拟合是不可靠的,甚至很多时候是伪相关。图灵奖得主 Judea Pearl 也曾表示,现有的机器学习模型不过是对数据的精确曲线拟合,只是在上⼀代的基础上提升了性能,在基本的思想⽅⾯没有任何进步。这也就导致模型在线上容易出现表现不稳定、数据漂移等问题。
一个典型的例子是,某个数据集展示了尼古拉斯·凯奇拍摄的电影数量和当年在泳池中溺水的人数,两个数据的曲线高度重合,这样的数据可以训练出来一个精准度相当高的模型。但在真实世界中,这两个数据的相关性随时可能失效,这就是伪相关。
“我们目前使用的机器学习算法是没有办法发现伪相关的。因此我们需要利用因果学习去补机器学习的短板,在特征工程的过程中利用因果关系指导我们发现更加鲁棒的特征,让模型可以有更好的泛化能力。”杨健对 InfoQ 说道。此外,机器学习缺乏解释性,而因果关系的发现本身就是解释性的一部分,通过因果效应评估,可以进一步量化解释干预变量和结果变量之间定量的影响。
所谓因果学习,指的是让机器具备因果思维,通过输入数据,算法可以推断某件事的前因后果,进行反事实推理。相较传统的人工智能,基于因果的人工智能更加接近通用人工智能。
在杨健看来,机器学习技术本身存在一定的局限性,因果学习除了能够补机器学习的短板,也能解决企业对智能决策的需求。
在数字化时代,企业的目标是尽量在决策链条中减少人的参与,实现数据驱动的自动决策,从而提高决策的准确性和整体系统的运转效率。
简单来说,企业更需要的是自动化的“决策”,而不仅仅是对未来的“预测”。而当前的机器学习以相关性为基础,更多解决的是预测性分析,对未来结果做出预测。在面对需要因果关系为前提的决策性问题时显得力不从心,还很难满足自动化决策的需求,无法提供有效的行动策略选项。因此,要做出数据驱动的决策,理解因果关系是关键。
图灵奖得主 Judea Pearl 也曾表示:“目前有太多深度学习项目都单纯关注缺少因果关系的粗糙关联性,这常常导致深度学习系统在真实条件下进行测试时,往往拿不出良好的实际表现。”Judea Pearl 还在他的新书《The Book of Why: The New Science of Cause and Effect》中提到,“如果没有对因果关系的推理能力,AI 的发展将从根本上受到限制。”
目前,在学术研究方面,因果学习已经在计算机视觉(CV)、自然语言处理(NLP)等方向取得多个研究成果,计算机视觉顶级会议 CVPR 中的一些研究也是围绕着深度学习如何利用因果关系来改进它的表征学习,如何有效地去除伪相关性等方面进行研究。
此外,因果学习和强化学习也有一些相关的研究进展。传统的强化学习基本原理就是在一个模拟环境模型中不断的试错和学习,大家普遍认为这是一个非常暴力的训练方式,这也是强化学习饱受诟病之处。
“我们把因果关系引入到强化学习里,可以有效地收缩它的试错空间,大幅提高学习效率,降低算力成本。”杨健表示,“总的来说,因果学习和机器学习二者并不是替代关系,而是互补关系。实际上,因果学习在近几年之所以能够高速发展,也是得益于机器学习提供的一些支撑,甚至很多因果学习新的研究成果也是需要借助于机器学习算法来实现的。”
除深度学习和强化学习之外,因果学习在其他领域,如对抗学习、元学习、多任务学习(推荐场景)等方向的研究也比较有前景。
开源YLearn因果学习开源项目 的技术实践
正是观察到因果学习从 2019 年开始在学术研究上陆续取得成果,涉及到因果关系的论文数量每年都在翻倍增长,同时结合工业界在落地人工智能时遇到的问题,九章云极 DataCanvas 决定把因果学习作为 AutoML 之后的一个主要突破方向,并于 2021 年 6 月开始规划 YLearn 开源项目。2022 年 7 月 12 日,YLearn 正式发布。
YLearn 是“learn why”的双关语,又称因果学习算法工具包,是一个完整实现因果推断流程的开源Python 包,目的是通过数据发现 why 和 what if 问题,力求解决因果推断最核心的五个问题:因果发现、因果量识别、因果效应估计、反事实推断和策略学习。同时,YLearn 还提供了重要模块的可视化输出,如因果图、因果效应解释、决策树等,帮助用户更直观地理解数据、调整策略,最终实现预期。
“因果学习没有被广泛使用的一个主要原因就是门槛太高,这个领域的人才比机器学习、深度学习更稀缺,又缺乏比较完整的易用的工具包,那么我们就从这个痛点出发。有了 YLearn 最初的构想。”杨健表示,从因果学习的开源社区来看,目前的开源工具都只能解决因果学习几个主要任务中的部分问题,还没有一个端到端的全 pipeline 的完整工具包,“我们目前主要的精力投入是在开源项目的开发上,我们的愿景是希望 YLearn 能成为像 scikit-learn 在机器学习领域这样的一个因果学习的必选工具”。
YLearn 的研发历程
据吕博晨介绍,YLearn 的整个研发历程一共经历了三个阶段:
第一阶段,对现有工具进行调研,对前沿进展展开研究。
在这个时期,团队成员主要对现有的因果推断工具进行调查和研究,从而形成产品的大致思路。“我们在调查的过程中发现,当前多数因果推断工具只能做因果推断中的一类或两类步骤,用户想实现一个完整的因果推断流程,需要切换到不同的工具,再拼接成一个完整的流程,十分麻烦。”吕博晨表示,YLearn 最初的设计思路就是希望能提供一个更完整的因果学习算法工具包,并且支持学术界和工业界最新的各类算法,保持实时更新。
第二阶段,设计原型验证机,实现最基础算法。
有了设计思路后,团队开始设计原型验证机,做了一个全流程的粗糙版本,并实现一些基础算法,比如最基本的后门调整算法,以及一些很粗糙的 Meta-Learner 算法等等。“原形验证机的主要任务就是验证想法的可行性,并将因果校验识别、因果校验估计流程串起来,这一阶段进一步确认了最初的‘实现一个完整因果学习工具包’的想法。”
第三阶段,丰富各类算法,统一 API 和增加实用功能支持。
原形验证机设计实现后,需要进一步丰富和完善产品功能,增加易用性,调整和统一 API 接口,并且增加各类测试用例和使用样例,增加各类实用功能,比如 policy 模型和一个完整的 API Why。“在 Why 这个 API 里,用户可以完整地使用因果推断的各个相关功能,而不需要去预先了解 YLearn 甚至是因果推断的各类细化概念,比如什么是 adjustment set, 在最简单的情况下,用户只需要输入一个数据集给 Why 就可以使用了。”
当前,团队的短期目标就是提高 YLearn 的成熟度,实现可用、好用、易用,在特性的完整性、算法效率、稳定性等方面,YLearn 还需要迭代几个版本。
至于长期目标,团队也规划了几个方向。一方面,Causal Machine Learning 利用 YLearn 去补机器学习的短板,另一方面,Automated Causal Learning 让 YLearn 也具备自动化的能力,进一步降低使用门槛。此外还有决策图谱,这是一个能够把企业的关键运营指标和可干预变量构建出一个基于因果关系的图谱,通过可视化的交互式方式来推演各种决策动作对运营指标带来的影响。
YLearn 的算法模块设计、特性与应用
算法模块设计方面,YLearn 主要包含 5 个模块:因果发现(Causal Discovery)、因果模型(CausalModel)、估计模型(EstimatorModel)、政策模型(Policy )、解释器(Interpreter)。
从训练数据开始,首先使用因果发现揭示数据中的因果结构,通常会输出一个因果图,然后将因果图传递到因果模型,在其中识别感兴趣的因果效应并将其转换为统计估计值。并用训练数据训练估计模型以模拟因果效应和其他变量之间的关系,即估计训练数据中的因果效应。然后可以使用经过训练的估计模型来预测一些新测试数据集中的因果效应,并评估分配给每个人的策略或解释估计的因果效应。
目前业界主要有两套因果模型:Judea Pearl 的结构因果模型(因果图)和 Donald Rubin 的潜在结果模型。在因果表示与因果效应识别阶段,YLearn 主要采用因果图模型 (Causal Graphical Model)这一表示,能方便地支持因果图的各类操作,达成因果效应识别。此外,由于一般的因果效应识别也是基于因果图模型,YLearn 在这一阶段选择因果图模型也能支持这一方法。
而在因果效应估计阶段,YLearn 主要采用依赖于结构公式模型,因为因果图与结构公式模型为对应关系,而结构公式模型在估计方面表述更为方便。
“目前来说,最大的问题是无混淆假设的检验性问题,对于这个问题,一方面,可以通过学界的进一步研究解决,另一方面,YLearn 提供一种近似估计的手段,可以一定程度上确定一个因果效应的范围,帮助理解。”吕博晨说道。此外,YLearn 还提供了重要模块的可视化输出,如因果图、因果效应解释、决策树等,帮助用户更直观地理解数据、调整策略,最终实现预期。
特性方面,YLearn 主要具备以下三个特性:
- 一站式。通常的因果学习流程包括从数据中发现因果结构,对因果结构建立因果模型,使用因果模型进行因果效应识别和对从数据中对因果效应进行估计。YLearn一站式地支持这些功能,使用户以最低的学习成本使用与部署因果学习。
- 新而全。YLearn 实现了多个近年来在因果学习领域中发展出的各类算法,例如Meta-Learner、Double Machine Learning 等。也将一直致力于紧跟前沿进展,保持因果识别与估计模型的先进和全面。
- 用途广。YLearn 支持对估计得到的因果效应进行解释、根据因果效应在各种方案中选取收益最大的方案并可视化决策过程等功能。除此之外,YLearn 也支持将因果结构中识别出的因果效应的概率分布表达式以 LaTex 的形式输出等小功能,帮助用户将因果学习与其他方向交叉。
应用方面,杨健认为,从普遍意义上讲,只要是需要决策支持的这类任务都可以使用 YLearn 来完成,如弹性定价、客户挽留、产品推荐、广告等等,使用的前提条件和机器学习一样,准备好符合要求的数据就可以。
“因果学习中有一个重要的应用就是 Uplift 建模,直接字面理解就是提升建模,非常适合用在精准营销上面,可以提升 ROI(投入产出比)。”
杨健表示,提升建模的核心是把目标用户分到 4 个象限里,举个例子:某个产品有四类用户,第一类是无论是否收到产品推荐信息,都确定会购买的用户;第二类是无论是否收到产品推荐信息,都确定不会购买的用户;第三类是收到产品推荐信息,会产生购买行为的用户;第四类是收到产品推荐信息,会取消产品订阅的用户。对于第一、二、四类用户,商家可以节约营销成本,不触达他们,因为对这三类用户投入成本的收益几乎是0。而对于第三类用户,则需要重点触达,促进购买行为。
“机器学习模型是是没办法完成这个任务的。我们需要通过因果学习里面的异质化因果效应评估,也就是 CATE 来完成,而且还可以更进一步,对于这类用户用哪种营销手段收益更高,也是可以学习出来的,甚至不同的用户可以有不同的策略,最后我们可以综合性的提高总体投入产出比了。这是一个很典型的 YLearn 的应用场景。”杨健介绍道。
写在最后
虽然因果学习已经证明了其存在的价值,但在当前,因果学习还并未被业界广泛采用。正如前文所言,因果学习没有被广泛使用的主要原因就是门槛太高,这个领域的人才比机器学习、深度学习更稀缺。
“我们看到有很多讨论说现在的算法工程师不香了,其实这句话的背后就是机器学习在现实落地过程中遇到了一些问题,无法解决实际的问题,这也是我们要研究因果学习的原因。我觉得对个人来讲,如果在机器学习、深度学习领域遇到困惑了,不妨投入到因果学习方向上,这是一个非常有前途的方向。”杨健说道。
那么,技术人要想往因果学习领域发展,需要具备哪些专业素质?
吕博晨表示,因果学习需要技术人具备广泛的知识面,并且要对经典的机器学习算法和理论有一定的认识。“如果想在因果学习领域做出一些成绩的话,需要具备的基本素质包括深度和广度两方面。既要掌握机器学习、深度学习本身的基本概念,也要具备统计学基础,这样更容易进入因果学习这个领域。另外重要的一点是,要有足够的兴趣和热情,全身心地投入在这一领域,扎扎实实地在这一领域深耕。”