弱監督建模技術在螞蟻風控場景中的探索與應用
一、弱監督學習簡介
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。
三、標簽存噪下的建模
目標場景中很難獲取非常多的準確標記,而專家標簽、線上已有規則,或者已構建但可能過時的模型,也是可以提供一些標注信息的,這些不同的標注源是比較多的。我們關注的研究目標是希望利用多源噪聲標簽,構建一個相對魯棒的模型。
以往研究主要包括兩類方法:第一類是兩階段的方法,首先是多源標簽的融合,比如對多源標簽投票,然后再基于投票選出的標簽去建模;第二種是同時預估標注源的混淆(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 兩個模塊的感知能力,實驗結果也佐證了前面的設計是有幫助的。
四、應用場景簡介
對于樣本匱乏的情況,目標場景數據不足,但是有一些相鄰場景的數據,我們完全有可能做這樣相關的建模。典型的應用場景,比如通過干預的方式做一些操作帶來目標的變化,營銷場景的福利券發放中就可能遇到這個問題。
對于噪聲標簽的情況,可能有各種不同的標簽,那么我們介紹的方案都是可以考慮的。比如我們要識別一些用戶畫像,購物需求、資金需求,或者是一些其他的屬性判別,都是可以有一些業務專家經驗給出一些標簽,這些標簽在某種情況下就是一個噪聲標簽,有可能來幫助到我們的建模。