弱监视建模技术在蚂蚁风控场景中的探求与运行
传统(强)监视学习的典型状况是基于给定的 X、Y 数据组构建一个模型,以期在未来的场景中能够有较好的预测。通常在这类疑问上有一些基本假定,比如散布分歧性(即训练数据和未来经常使用的场景数据不能有较大的差异)、短缺的样本量、标签要相对准确等。该范式在业界被宽泛经常使用,但随着业务的开展,咱们发现很多疑问不满足这种比拟理想的形态,其中相当一局部可以用弱监视机器学习的技术手腕来启动处置。
弱监视机器学习关键在做什么呢?这里援用南京大学周志华传授在 2018 年的综述文章,其中关键引见了三类比拟典型的疑问:
2.蚂蚁场景中的弱监视疑问
之后引见的内容与前两种疑问相关,即指标场景中难以失掉到足够数量的标签牢靠的样本。这里有几个关键字,第一是有一个指标场景,第二是样本数量无余,或许标签是无法靠的。咱们的探求通常,实质上就是尝试应用一些消息,比如跨场景的数据,或许无法靠标注的数据,来协助建模。
这些状况对应的案例也比拟经常出现:
1.跨场景因果效应预计简介
因果效应预计是指预计因(treatment)的扭转对结果(outcome)发生的效应(effect)。区别于传统机器学习十分大的一个特点在于关注的是某种干预带来的变动,而机器学习很多时刻关注的是预测。典型例子是药物治疗时药用须要多少剂量,关于病人治疗效果的影响会如何。这类场景中经常出现的一个痛点是指标场景样本无余的疑问。有两种典型的状况:
2.状况 1:跨指标场景不存在有标志数据
该状况中存在几个痛点:首先是 unobserved effects,这个是在因果里十分典型的痛点,即只要 factual 的 outcome,而看不到反理想的结果,也就拿不到最终关注的 effect 消息,这会极大地限度建模的效果;其次是 complex distribution shift,比如非随机试验中存在 selection bias,即散布存在差异的状况,多源数据场景会更复杂一些。
咱们针对这些痛点,构建了一个 Direct Learning 框架,它的实质思维是首先经过一个方式预估伪的 effect,进而宿愿模型能够间接去建模 effect 消息。第二关于散布变动的痛点,咱们驳回了 Distribution Adaptation 的方式来处置,其面前的思维是 density based reweighting。
经常使用新的框架之后,经过试验发如今有些场景下可以起到作用,但有些场景则表现不够理想。进一步剖析会发现上一步做了一个伪标志的预测,会存在不太牢靠的状况,而这个无法靠好转了前面的建模。咱们进一步处置了这一疑问,就会使模型变得愈加鲁棒。
上方详细引见该框架的结构。
模型的基本架构如上图所示,训练数据中有 source domain 的 control 和 treated 的数据,但 target domain 没无关于 treatment 以及 outcome 的消息,关于前面这两组数据,区分去学习一个 control 组的模型和 treated 组的模型。基于这两个模型启动预估,可以给出 pseudo-effect 消息,即伪标签。
在上述形式的基础上,进一步处置前面所说的 complex distribution shift 的疑问。这里指标散布比拟明白,即未来的指标场景,其数据是可以拿到的。建模的每一个阶段,控制组模型、测试组模型,包含前面预估 effect 的模型,都是可以做散布对齐的。这里的基本思绪是,指标散布上的希冀损失可以经过优化训练散布上的加权损失来成功,而这个权重就是 density ratio。咱们经过驳回 Domain Adaptation 的技术打算为每一个样本预估一个权重,进而使得基于加权样本学习的模型能够更适配指标散布。
但是,这种形式会存在一个痛点,就是有些样本预估的 pseudo-effect 或许会不太准,就会影响到下一阶段 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>
指标场景中很难失掉十分多的准确标志,而专家标签、线上已有规定,或许已构建但或许过期的模型,也是可以提供一些标注消息的,这些不同的标注源是比拟多的。咱们关注的钻研指标是宿愿应用多源噪声标签,构建一个相对鲁棒的模型。
以往钻研关键包含两类方法:第一类是两阶段的方法,首先是多源标签的融合,比如对多源标签投票,而后再基于投票选出的标签去建模;第二种是同时预估标注源的混杂(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 两个模块的感知才干,试验结果也佐证了前面的设计是有协助的。
关于样本匮乏的状况,指标场景数据无余,但是有一些相邻场景的数据,咱们齐全有或许做这样相关的建模。典型的运行场景,比如经过干预的方式做一些操作带来指标的变动,营销场景的福利券发放中就或许遇到这个疑问。
关于噪声标签的状况,或许有各种不同的标签,那么咱们引见的打算都是可以思索的。比如咱们要识别一些用户画像,购物需求、资金需求,或许是一些其余的属性判断,都是可以有一些业务专家阅历给出一些标签,这些标签在某种状况下就是一个噪声标签,有或许来协助到咱们的建模。