支付寶如何用技術提升3倍反套現識別量?

tianxiaoxu發表於2018-05-17

【本文轉自雲棲社群 作者:四二】
螞蟻金服風險與決策中心整體負責其國內外業務場景的交易和資金風險防控,包括盜用、欺詐、營銷作弊、垃圾註冊識別和決策等。團隊以大資料積澱挖掘和前沿機器學習研發應用為核心能力,開發了支付寶第五代風控引擎AlphaRisk,運用人工智慧全面升級了螞蟻金服的風控體系。

  1.背景

  擁有世界級領先的風控技術能力,歷經十多年的發展,支付寶已從原先的CTU大腦全面進入人工智慧時代,AlphaRisk[1]作為第五代風控引擎,其核心正是由AI驅動的智慧風險識別體系AI Detect。

  AI Detect是一套智慧、高效的風險識別演算法體系,不僅包含了傳統的像GBDT,整合學習這種有監督學習演算法,還包括了大量基於深度學習的無監特徵生成演算法,以及監督&無監督概念之外的新演算法,本文介紹的工作正是其中之一。

  當你站在超市收銀臺前,從點開支付寶二維碼給掃碼槍掃描,到支付成功的短短時間內,支付寶風控系統的上百個模型已經對這筆交易完成重重掃描,以檢查是否手機丟失賬戶被盜用,是否欺詐被騙,是否有違法套現等風險。

支付寶如何用技術提升3倍反套現識別量?

  實踐中,不同的風險型別會給建模帶來不同的挑戰。

  一般而言,識別套現風險的模型建設相比盜用和欺詐更困難一些,因為缺少主動的外部反饋機制,即缺少樣本上的黑白標籤。使用者在被盜、被騙之後往往會聯絡支付寶,告知哪些交易非本人操作,抑或哪些交易是被騙的,這些反饋可以相對準確有效地沉澱成歷史資料的。然而不會有套現的人在交易後主動告訴支付寶或者銀行,這筆交易他是在做套現,而另一筆不是。

  對於最常見的有監督演算法來說,沒有標籤就會面臨巧婦難為無米之炊的困境。因此,現有的套現風險識別方案多是基於無監督模型,如異常檢測、圖演算法等。

  無監督模型的優勢正如其字面意義而言,即不需要標籤,當然這也有其代價。

  舉例來說,異常檢測模型(如Isolation Forest)對於輸入特徵的要求遠高於一般的有監督模型,通常在特徵數量稍多的情況下就難以保持其分值頂部的效能。

  而圖演算法則往往需要巨大的運算能力,才能應付支付寶每日億級別的支付筆數,意味著更大的技術難度和計算成本。

  當然,我們還可以用另一種方法解決無標籤的問題:那就是基於人的業務經驗進行人工標註,隨後基於標註進行有監督學習得到模型。但這也面對著不少困難:

  標註成本高:在我們的場景中,人工標註一個樣本所需時間通常在5~15分鐘,且需要具備相應的專業知識才能勝任,這使得我們難以大量標註樣本,對標註樣本資訊量以及樣本使用效率要求很高。

  標註存在一定誤差:即使是領域專家,在很多案例中也難以保證自己判斷的準確率。一般來說,專家對於判定為黑的往往比較有信心,因為通常有證據可循。然而要判定為白,則需要排除所有不可能,這在事實上是難以真正做到的。

  本文提出了一種基於主動學習(Active Learning[2],簡稱AL)與半監督(two-step Postive and Unlabled Learning[3],簡稱PU)結合的方法Active PU Learning。

  在人工標註工作量有限的情況下,改善了前述兩點困難,並基於該方法針對信用卡交易,開發了一個套現風險的識別模型,在相同準確率下,相比無監督模型Isolation Forest提升套現交易識別量3倍。

  2.相關演算法介紹

  2.1 Active Learning

  Active Learning來自於一個樸素的想法,假如得到標籤的成本很高昂,那就應該去尋找能對當前演算法提升最大的樣本請求打標,起到事半功倍的效果。該方法假設了一個active learner與專家進行多輪主動的互動,並持續地根據專家標註返回的結果更新分類器。

  下圖一直觀地展示了Active Learning的基本工作流程。

支付寶如何用技術提升3倍反套現識別量?

  2.2 PU Learning

  AL本身並不限制圖一中分類器的具體種類,在更新樣本後,按照新的樣本庫直接進行二分類的有監督分類是最簡單直接的方法,但考慮到我們樣本標註的來之不易以及P樣本集的高可靠性,我們在這裡採用一種半監督的演算法Two-step PU Learning,以提升樣本的使用效率。

  PU Learning假定我們面對的資料中,真實黑樣本中的小部分已經被標記了出來,構成集合P(Positve),剩下所有資料都無標記構成集合U(Unlabeled),如何建設模型可以對未標註的樣本進行黑白分類?

  把U中的樣本標籤視為缺失,那麼我們便可以考慮使用EM(Expectation Maximization)的思想,EM可以理解為是存在隱變數時MLE(Maximum Likelihood Estimation)的一種改進方法,這裡我們在E步對缺失值進行填充,M步基於上次填充結果進行迭代,如是多輪之後產出最終模型,這就是原始的PU。

  Two-step PU Learning是在原始的PU Learning上的進一步發展,假如P在真實黑樣本集上是有偏的,那麼多輪的EM反而很有可能會起到負向的效果。Two-step PU Learning引入了spy機制,可以更可靠的生成白樣本。

  下文所提到的PU Learning,如不作特殊說明,都指代two-step PU Learning。

  3.演算法實現

  3.1 演算法Workflow

  Algorithm: Active PU Learning 1.生成樣本池:選取問題所需的樣本集,並根據其他領域遷移而來的知識給部分樣本打上正例標籤 2.while 不滿足停止條件 do 3. 取樣:基於特定的取樣方法,在取樣環節選取出待標註樣本 4. 標註:對待標註樣本進行人工標註 5. 更新樣本:採用特定的方法更新樣本庫 6. 更新模型:使用two-step PU Learning方法更新模型 7.end while

  相比Stikic[4]中的方法,我們將取樣與模型更新方式改進為批次取樣以及two-step PU Learning。

  3.2 取樣

  在很多Active Learning工作中,取樣與迭代是流式的,也即是基於當前演算法取樣一個,標註一個,演算法迭代一次,基於當前演算法取樣一個,…,如是迴圈。該方法的時間效率較低,假如標註100個樣本,那就需要迭代100次模型,對於較大的訓練資料集和較為複雜的模型,其時間成本是不可接受的。

  作為替代,我們採取了mini-batch的方法批次取樣,每次取樣多個紀錄,取樣全都標註完成後演算法才更新,在相同標註數量下顯著減少了時間成本。

  取樣的方式基於Uncertainty & Diversity標準,即儘量取出當前模型最不確定同時又有著豐富的多樣性的樣本集。具體流程為:

  對新的資料Dnew,使用當前模型打分。

  抽取出若干個模型最不確定的白樣本構成Duncertain,不確定性的衡量基於模型打分而來。

  對Duncertain進行K-Means聚類,在每個類中取出最不確定的若干個樣本,構成最終的待標註樣本。

  3.3 標註

  專家進行標註,由於我們的方法對於P集合的資訊會充分的信賴與利用,因此要求專家判斷時,僅把具有充分信心的樣本標註為1,保證P集合的正確性。

  3.4 更新樣本

  在這一環節,由於我們對於專家標註的0無法完全信任,因此會選擇將標為0的部分放入U集合中,假裝沒有標註過。而對於標註為1的部分,則進行多倍的上取樣後全都放入P集合,以強化這批樣本在下一輪模型更新中的作用。

  3.5 更新模型

  常規的Active Learning通常如圖二左邊所示,專家會多次標註,逐漸擴充L(Labeled)集合,active learner則會在多次學習L集合時不停提升自己的效能,我們稱之為LU setting。

  然而在本場景,我們更像是一個PU setting,專家多次標註,擴充P(Positive)集合,Learner則在每次迭代的時候,基於PU Learning進行學習。

支付寶如何用技術提升3倍反套現識別量?

  使用PU Learning的原因有兩個,一是我們希望新的模型能夠生長在已有知識的基礎上,當前我們已經有大量的基礎模組的資訊帶來高準確率但低召回率的黑樣本標註。二是在樣本標註量較小的情況下,U(Uncertain)集合中的資訊對於模型訓練預期會帶來更多的幫助。

  我們基於two-step PU實現模型更新,之所以稱為two-step PU是因為它可以分為兩步,第一步是將P集合中部分樣本作為spy混入U集合中並進行多輪EM迭代,第二步則是考察spy樣本的分值分佈,將U集合中所有分值小於spy中10%分位模型分值的樣本標記為0,生成N(Negative)集合,並基於此進行多輪EM迭代。

  EM迭代的思路在two-step PU過程中都是一致的,將P集合的樣本score標記為1,U集合的樣本score繼承上一輪模型打分,訓練新的模型擬合樣本score並給出新的模型打分,即完成一輪迭代。

  我們採用了GBRT(Gradient Boosting Regression Tree)作為Active Learning的基分類器,這意味著在整個學習過程結束後,我們將產出一個GBRT模型。

  4.實驗結果

  我們總共設計了三個實驗,分別證明了two-step PU的有效性,Active Learning的有效性,以及Active PU Learning的方案有效性。

  由於實驗成本較高,三組實驗並沒有採取完全一樣的setting與考察方法。在三組實驗中,訓練集的樣本量都在百萬級別,評估集都經過特殊的非均勻取樣以提升計算效率。

  4.1 two-step PU Learning 有效性

  我們單獨考察了two-step PU的演算法有效性,考察方法如下:

  1. 基於相同的訓練資料集,訓練三個模型,無監督模型IF(Isolation Forest), 有監督模型GBRT,two-step PU Learning迭代生成的GBRT(簡稱PU GBRT);

  2. 同一時間段的信用卡交易,IF, GBRT, PU GBRT分別打分;

  3. 在各自的95~100分位取樣,得到若干樣本;

  4. 評估得到IF&GBRT準確率為60%,PU GBRT為70%;

  結果證明了,PU產出的模型是更優的。

  4.2 Active Learning 有效性

  同樣,我們單獨考察了Active Learning的有效性,AL的有效性考察可以分成三塊:

  業務效能提升考察:對比當前無監督模型,考察是否AL帶來模型效能提升;

  AL框架有效性考察:對比不利用人工標註資料的有監督GBRT模型,考察AL訓練出來的GBRT模型是否有提升;

  AL取樣方法有效性考察:對比隨機取樣標註相同個數訓練得到GBRT模型,考察AL取樣方法訓練出來的GBRT模型是否有提升。

  考察1的方法如下:

  基於訓練資料集A,訓練無監督模型IF;

  在資料集A上應用Active Learning,額外標註部分資料並多輪迭代生成RF(Random Forest)(簡稱AL RF);

  同一時間段的信用卡交易,IF和AL RF分別打分;

  分別在各自的99分位以上,95~99分位,90~95分位,80~90分位取樣,得到若干樣本;

  評估得到IF準確率為91%,AL RF準確率為94% 。

  結果證明了,AL產出的模型是更優的。考察2與考察3的方法類同,實驗結果也都是正面的,此處不再贅述。

  4.3 Active PU Learning方案有效性

  最後,我們考察了Active PU Learning是否擁有良好的效能(參見圖三),考察方法如下:

  基於相同的訓練資料集A,訓練兩個模型,無監督模型IF, 有監督模型GBRT;

  在資料集A上應用Active PU Learning,迭代生成GBRT(簡稱APU GBRT);

  同一時間段的信用卡交易,IF, GBRT, APU GBRT分別打分;

  在各自的85-90分位,90-95分位,95-99分位,99-100分位抽取若干樣本,進行人工標註;

  橫向比較相同Percentile下,不同模型的標註準確率,在每個區間上,APU GBRT都勝於或等同於另兩個模型的準確率。

支付寶如何用技術提升3倍反套現識別量?

  5.總結與展望

  在各行各業的機器學習問題中,缺少標籤或者標籤獲取代價昂貴的現象是普遍存在的,從業者為了在這類場景中建設可靠的模型實踐了各種方法。

  本文的Active PU Learning方法集中在瞭如何以較小的代價,引入更多的外部資訊,並且更好地利用當前已有標籤知識。

  相比之前的同類工作,Active PU Learning主要貢獻在於引入了two-step PU Learning改進了Active Learning中模型更新的方法。當然該方法也有其侷限,演算法對人工標註的質量有很高的要求,整套方案的訓練流程相比常規的GBRT也更耗時。

  目前,我們在反套現該場景應用Active PU Learning產出的模型後,相比基於Isolation Forest方法在相同準確率下,識別量提升3倍。

  作為一種驗證已有成效的方法論,在內我們正在積極的擴充應用場景,對外則希望本文能給所有的讀者帶來一些啟發。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2154595/,如需轉載,請註明出處,否則將追究法律責任。

相關文章