导读 今天分享的主题是弱监督机器学习在蚂蚁的一些业务场景中的应用。
今天的介绍会围绕下面四点展开:1. 弱监督学习简介
2. 样本匮乏下的建模
3. 标签存噪下的建模
4. 应用场景简介
分享嘉宾|张雅淋 蚂蚁集团 算法专家
编辑整理|薛敏
内容校对|李瑶
出品社区|DataFun
01弱监督学习简介
1. 弱监督学习简介
传统(强)监督学习的典型情况是基于给定的 X、Y 数据组构建一个模型,以期在未来的场景中能够有较好的预测。通常在这类问题上有一些基本假设,比如分布一致性(即训练数据和未来使用的场景数据不能有较大的差异)、充足的样本量、标签要相对准确等。该范式在业界被广泛使用,但随着业务的发展,我们发现很多问题不满足这种比较理想的状态,其中相当一部分可以用弱监督机器学习的技术手段来进行解决。弱监督机器学习主要在做什么呢?这里引用南京大学周志华教授在 2018 年的综述文章,其中主要介绍了三类比较典型的问题:不完全监督(Incomplete Supervision):典型情况是有少量有标签样本,并有大量的样本是没有标签的。文章中给出的两种典型的研究问题分别是半监督学习和主动学习。最大的痛点就是标签匮乏。
不准确监督(Inaccurate Supervision):典型情况是依然有 X、Y 的数据组,但其中的 Y 不够准确。比如基于规则来打标,虽然有标签,但是标签存在不可忽略的噪声。如果不对这个问题做充分考虑的话,模型会被污染。所以需要一定的技术从这样一个相对不整洁的数据里去获得一个相对鲁棒的模型。
不精确监督(Inexact Supervision):这种情况在周老师的文章中给出了一类非常典型的研究问题,叫做多示例学习。简单而言,X 和 Y 不再是一对一的数据组,而是多对一,标签是对这一组样本的刻画,这属于标签粒度不够精确的一类学习范式。
2. 蚂蚁场景中的弱监督问题
之后介绍的内容与前两种问题相关,即目标场景中难以获取到足够数量的标签可靠的样本。这里有几个关键字,第一是有一个目标场景,第二是样本数量不足,或者标签是不可靠的。我们的探索实践,本质上就是尝试利用一些信息,比如跨场景的数据,或者不可靠标注的数据,来帮助建模。这些情况对应的案例也比较常见:第一种情况:比如业务场景中需要基于风险进行处置操作,那么我们往往是从更高风险的用户开始,并阶段化地推进。当我们做了一定的操作后,业务会进一步地往前走,这时可能需要再对风险比之前稍低但仍然较高的客群进行建模。再举个例子,我们有某些场景下老客的历史数据,希望基于这些历史数据对新户或者另一个目标客群建模。当遇到这种问题时,我们探索了利用跨场景的数据进行建模的一些方案。
第二种情况:某些业务场景中很难获得准确标记的样本,或者获得相对准确的标签所需的成本较高,比如反欺诈或者反套现场景。但我们其实有很多业务经验、专家经验,包括已经线上成型的规则或者模型,也可以给出一个参考标签。这个标签虽然不够准确,但也是有信息量的,可以尝试利用这些信息来帮助我们去解决所面临的标签信息不够健全、样本信息不够健全等痛点。
样本匮乏下的建模
1. 跨场景因果效应估计简介
因果效应估计是指估计因(treatment)的改变对结果(outcome)产生的效应(effect)。区别于传统机器学习非常大的一个特点在于关注的是某种干预带来的变化,而机器学习很多时候关注的是预测。典型例子是药物治疗时药用需要多少剂量,对于病人治疗效果的影响会如何。这类场景中常见的一个痛点是目标场景样本不足的问题。有两种典型的情况:情况 1:目标场景不存在有标记数据
情况 2:目标场景存在少量有标记数据
2. 情况 1:跨目标场景不存在有标记数据
该情况中存在几个痛点:首先是 unobserved effects,这个是在因果里非常典型的痛点,即只有 factual 的 outcome,而看不到反事实的结果,也就拿不到最终关注的 effect 信息,这会极大地限制建模的效果;其次是 complex distribution shift,比如非随机实验中存在 selection bias,即分布存在差异的情况,多源数据场景会更复杂一些。我们针对这些痛点,构建了一个 Direct Learning 框架,它的本质思想是首先通过一个方式预估伪的 effect,进而希望模型能够直接去建模 effect 信息。第二对于分布变化的痛点,我们采用了 Distribution Adaptation 的方式来解决,其背后的思想是 density based reweighting。使用新的框架之后,通过实验发现在有些场景下可以起到作用,但有些场景则表现不够理想。进一步分析会发现上一步做了一个伪标记的预测,会存在不太可靠的情况,而这个不可靠恶化了后面的建模。我们进一步解决了这一问题,就会使模型变得更加鲁棒。下面具体介绍该框架的结构。(1)Unobserved Effects 模型的基本架构如上图所示,训练数据中有 source domain 的 control 和 treated 的数据,但 target domain 没有关于 treatment 以及 outcome 的信息,对于前面这两组数据,分别去学习一个 control 组的模型和 treated 组的模型。基于这两个模型进行预估,可以给出 pseudo-effect 信息,即伪标签。(2)Complex Distribution Shift 在上述模式的基础上,进一步解决前面所说的 complex distribution shift 的问题。这里目标分布比较明确,即未来的目标场景,其数据是可以拿到的。建模的每一个阶段,控制组模型、测试组模型,包括后面预估 effect 的模型,都是可以做分布对齐的。这里的基本思路是,目标分布上的期望损失可以通过优化训练分布上的加权损失来实现,而这个权重就是 density ratio。我们通过采用 Domain Adaptation 的技术方案为每一个样本预估一个权重,进而使得基于加权样本学习的模型能够更适配目标分布。然而,这种模式会存在一个痛点,就是有些样本预估的 pseudo-effect 可能会不太准,就会影响到下一阶段 effect 模型的学习。(3)Unreliable pseudo-effect 解决上述问题的思路是建立一个关于预估是否准确的评估,其背后的思路是不确定量化(uncertainty estimation)。我们实践中采用的方案是基于 MC-dropout 设计的,本质思想是做很多次预测,如果预测比较集中的话,那我们认为这个样本是比较明确的一个样本,则可以给一个比较大的重视程度,用于学习下一阶段的 effect 模型。简而言之,就是在前面框架的基础上进一步引入了这样一个叫做 reliable scoring 的模块,用于指导后面 effect 模型的学习,使得整体框架能够做得更好。 我们进行了大量实验,结果表明,我们的方法在存在比较明显的分布差异场景下可以体现出优势,当不存在明显的分布差异时,我们的方法与对比方法也是可比的。这意味着我们的方法更加鲁棒,能够适配到更多的场景上。除此之外我们也做了消融实验,最初在增加了 Distribution Adaptation 模块之后,结果可能出现下降,这不是我们所希望的。进一步引入了 Reliable Scoring 模块,发现带来了相对稳定的提升,这说明了该模块可以使整体方案更加健全。该工作已发表在 CIKM上,题目为 Treatment Effect Estimation across Domains。3. 情况 2:目标场景存在少量有标记数据
我们也探索了一些两阶段之外的方式,比如基于 NN 的方式。因果效应估计中 NN 框架的典型形式是首先对于 factual outcome 做预测,希望对于见到的有准确标记的样本能够有一个比较好的预测。其次是增加一个 debias loss 平衡两个数据组的分布,从而使得整个模型的学习能够规避分布差异带来的负面影响,有一个比较好的泛化能力。 当问题场景从这样的一个基本框架推广到多源数据时,最简单的思路就是增加一个关于源的信息,并且增加一个关于源分布差异的匹配模块。通过我们的实践发现这一做法还有一定的提升空间,其中一个大的痛点就在于存在跨域间迁移不足的问题,以及某些样本在低密度区域表现欠佳。我们在方案设计中正是从这两个视角来尝试解决这个问题。 具体做法是在原有框架下增加了两个显著的模块:第一个是协同对抗泛化模块,思路是希望不同域的样本能够尽量地接近,强化不同域之间信息的迁移和共享;第二个是模式增广的能力,本质上是从原始样本空间来做数据增广,进而解决低密度区域预测不佳的问题。 第一个模块的基本思路是从隐空间优化,希望不同域样本的分布能够尽量地相互匹配,以往的研究比如 MMD 也是这个思路,但我们经过实验发现 MMD 本质上是强调 average 的分布,但我们希望的是更大程度的匹配。简单的思路是在此基础上,直接把两个域的样本之间两两匹配计算,但这样的计算复杂度较高。所以我们退而求其次,试图找到一些代表样本,优化代表样本之间的关系来做匹配。简而言之,就是找到每个域里更有区分度和更没有区分度的一些样本,让更有区分度样本向另一个域里的样本靠近,让整个分布能够尽量地融合。第二个模块的思路是从原始样本空间直接做优化。得益于我们采用的是跨域的建模,一大优势在于有不同域的样本用来帮助建模,因此可以进行数据增广。基本思想是把其它域的样本,包括本域的 control 组和 treatment 组样本用来帮助本域的 treatment 组或 control 组的建模。但这些样本本身是没有 Y 信息的,为了解决这个问题,我们采用了一致性约束的方式,这在半监督学习等框架上得到过验证。 总结一下,我们从隐空间、原始空间的视角分别做了一些设计来让样本融合程度更大,信息的迁移能力更好,来缓解前面提到的痛点。实验也佐证了这些方案引入所带来的效果提升,这一部分工作可以参见论文 Modeling Treatment Effect with Cross-Domain Data。03标签存噪下的建模
目标场景中很难获取非常多的准确标记,而专家标签、线上已有规则,或者已构建但可能过时的模型,也是可以提供一些标注信息的,这些不同的标注源是比较多的。我们关注的研究目标是希望利用多源噪声标签,构建一个相对鲁棒的模型。 以往研究主要包括两类方法:第一类是两阶段的方法,首先是多源标签的融合,比如对多源标签投票,然后再基于投票选出的标签去建模;第二种是同时预估标注源的混淆(confusion)矩阵信息和进行模型学习。我们注意到这类研究对于 self-cognition 能力利用不够,所以我们试图做的工作就是在这个问题场景上充分地利用这个能力来做建模。 我们进行了一些理论分析,这里介绍两个核心的结论。(1)首先,模型具有识别每个源内样本级(instance-wise)噪声情况的能力。通俗一点讲,当给定两个样本,其中一个是错误标注,一个是正确标注。在模型学习到一定经验之后,往往能够一定程度上区分那些样本级的噪声,比如从 loss 视角来看,正确标注的样本的 loss 大概率比较小,这在以往研究中也是有佐证的。(2)第二,也是本工作中更为增量的探索,在多源噪声标签场景下会有进一步的诉求,即是否能够对于不同源的标注有一个认知。我们做了一个理论分析,基本结论为模型学习到一定阶段后,具备能力识别多源噪声中标注源级(annotator-wise)标注质量,即能够区分哪个标注源是相对高质量的,哪个是相对低质量的。进一步地,我们学习到模型和真实标签的关系也满足这样的关系。这些理论结果为后面的方法设计提供了非常重要的指导,本质上来说我们希望做的事就是尽量利用好那些标签信息更可靠的样本,尽量更重视那些更可靠的标注源。 整体方案的框架如上图所示,这示例中训练数据有三个样本及若干个标签源,对于每个标签源都做建模,这里是一个 public 接 private 的结构,当然也可以有各种不同的变体。通过理论的指导,在整个框架中引入了 Self-cognition 和 Mutual-denoising 两个典型模块:(1)Self-cognition 一方面能够随着模型推进,认知到样本标注的可靠程度。另一方面能够给出各源标注质量的向量。比如这里有 3 个源,相应的长度就是 3。基本方法就是基于预测及标注源的 gap 做一个距离的计算,距离越近,这个源往往是更好的。(2)进一步整合这两个信息,就可以给出每个样本的各标签源所给出标签的好坏程度了,W 就是这个信息。 (3)Mutual-denoising:进一步地,一个基本思路是利用别的源的学习信息帮助一个源的学习。比如对于某一个源的学习,借鉴别的源给出的预测作为一个伪标签来使用。那么如何整合呢?前面说到模型其实能够区分不同源的好坏。不同源的好坏可以用来生成伪标签,比如对于源 1,我要试图利用源 2 和源 3 的预测作为伪标签,并且进一步结合前面的权重信息来生成伪标签来使用。当生成伪标签后,可以用这个信息来做一个 loss 的计算,但这里还有另外一个思考,就是我本来也是利用了噪声标签来做,如果这个源里某个样本或者这个源越可靠,我对于别的信息的参考程度要越低,这就是 1-w 的基本思想。简单概括就是,基于前面理论指导的 w 的信息做信息的整合及汲取,从而来做模型的学习,这样能够帮助每个源学习得更好、更鲁棒。 实际使用中为了提高效率,我们进一步引入了 Selective Knowledge Distillation 模块,其基本思想是从前面学到的源,以及噪声标签信息来学到一个比较轻量级的模型,实际实现时我们尝试基于前面学习到的可靠权重信息进行标签信息的采样来指导建模。在某些需要轻量级的场景中,我们可以用这个模型做部署使用。以上就是我们关于多源噪声标签学习的工作。总结来说,我们在很多问题场景中可以非常容易地获得噪声标签,而且是很多源的,为了能够利用这些信息,我们首先从理论上做一个基本推导,来鉴别模型是不是能够有某些认知,是不是能够利用这些认知进而制定一个实例化的设计方案。我们并不追求于非常复杂的模型结构,而是给出一个相对清晰整洁的、易于感知的基本框架。该工作已被 ICML 录用,题目为 Self-cognitive Denoising in the Presence of Multiple Noisy Label Sources,大家感兴趣的话可以进一步跟进了解。 实验对比了大量对比方法,从结果可以看到我们的方法是有一定优势的,并且在各种数据设定下也能够取得一致的效果。进一步的我们在实验中增加 self-cognition、mutual-denoising 两个模块的感知能力,实验结果也佐证了前面的设计是有帮助的。04应用场景简介
对于样本匮乏的情况,目标场景数据不足,但是有一些相邻场景的数据,我们完全有可能做这样相关的建模。典型的应用场景,比如通过干预的方式做一些操作带来目标的变化,营销场景的福利券发放中就可能遇到这个问题。对于噪声标签的情况,可能有各种不同的标签,那么我们介绍的方案都是可以考虑的。比如我们要识别一些用户画像,购物需求、资金需求,或者是一些其他的属性判别,都是可以有一些业务专家经验给出一些标签,这些标签在某种情况下就是一个噪声标签,有可能来帮助到我们的建模。以上就是本次分享的内容,谢谢大家。分享嘉宾
INTRODUCTION
张雅淋
蚂蚁集团
算法专家
张雅淋,硕士毕业于南京大学,现蚂蚁集团平台技术事业群算法专家。研究方向聚焦于弱监督机器学习、因果机器学习以及自动机器学习等领域,在 ICML、NeurIPS、ICDE、CIKM 等国际会议发表论文20余篇;熟悉信贷风控与营销的业务场景,并借助相关技术解决业务中的痛点问题。
往期推荐
京东RaftKeeper2.1发布,让CK告别ZooKeeper!
Apache SeaTunnel——OLAP 引擎的数据动脉
DataFunCon北京站精彩回顾|附PPT 下载方式
数据在零售供应链领域的应用
在交叉小径的花园随机漫步
StarRocks 数据湖查询和迁移实践
基于大模型的群体智能解决方案
阿里妈妈获 NeurIPS 2024 比赛主办权,全球参赛选手报名启动!
RAG 标准和腾讯云 ES 的技术实践
腾讯云大数据首发高性能计算引擎Meson,极致释放计算生产力!
点个在看你最好看
SPRING HAS ARRIVED