Plaid的API可幫助開發(fā)人員為北美數(shù)以千萬計的消費者提供金融服務。這些服務幫助消費者管理他們的個人財務,讓他們轉移資金和付款,并允許他們獲得貸款和抵押貸款。我們的使命是通過提供對金融系統(tǒng)的訪問來改善人們的生活。
我們不僅通過幫助消費者訪問其財務數(shù)據(jù),而且通過提高數(shù)據(jù)質(zhì)量來實現(xiàn)這一使命。通過機器學習豐富數(shù)據(jù)是我們數(shù)據(jù)科學和基礎設施團隊的目標之一,在這篇文章中,我們還將討論我們團隊建立的ML模型。
交易的待處理和已過賬(pending-posted)的難題
Plaid為傳統(tǒng)銀行的交易數(shù)據(jù)增加價值的一種方法是確定何時發(fā)布來自消費者賬戶的待處理交易。當銀行正在處理消費者的交易時,交易正在等待銀行處理狀態(tài)中,在這個待處理期間,鈔票金額將從帳戶所有者的可用資金中扣除,但不會從帳戶余額中扣除。等交易結束后,交易才從“待處理pending”變?yōu)椤耙堰^賬posted”,已過賬posted的交易最終會完成,并且已從該帳戶余額中扣除。
當Plaid拍攝帳戶快照時,我們會收到一份包含說明、貨幣金額以及交易狀態(tài)是待處理還是已過帳的交易清單。雖然我們知道交易是否處于待處理狀態(tài),但銀行通常不會告訴我們先前快照中的哪些待處理交易與當前快照中的新發(fā)布交易相對應。這種匹配對客戶至關重要。如果他們向每個新交易的消費者發(fā)送通知,那么重要的是他們不要接受到重復復通知。
不幸的是,通常不清楚銀行的哪些已發(fā)布的交易事務映射匹配到先前消費組在商家的待處理的交易事務?一個常見的困難匹配問題是餐館賬單,當消費者的信用卡在餐館收取賬單時,餐廳會啟動待處理的交易,它不包括服務費和小費。一旦餐廳的收據(jù)被批量處理(通常在工作日結束時),他們通過在一個統(tǒng)一事務中來完成交易,這是事務交易成為已過賬posted狀態(tài)的時候。
在其他情況下,相應的待處理和已過帳的交易可能看起來不同。酒店通常會將較高的待處理pending費用作為暫緩incidental費用的帳戶。一旦交易過帳,即可結算到實際的賬單金額。商家,支付處理商和金融機構均可以更改這項交易的描述。
我們針對此問題的高級方法是構建一個模型來預測這種可能性或匹配分數(shù):來自銀行和消費組的兩筆的待處理和已過賬的交易是否是同一筆?如果待處理的事務從一個帳戶快照到下一個帳戶快照時消失,我們會將其與新快照上顯示的“最有可能”的已發(fā)布交易進行匹配。當匹配得分高于某個閾值時,貪婪地繼續(xù)匹配。
問題的關鍵是選擇一個模型來確定這個匹配分數(shù)。
決策樹算法
為了解決這個問題,我們最初考慮的規(guī)則會告訴我們一個特定的待處理和已發(fā)布交易的匹配程度。以下是匹配餐館發(fā)起的待處理和已發(fā)布交易的示例規(guī)則的直觀表示:
這種基于規(guī)則的方法稱為決策樹,它對獨立變量的空間進行分段,如有關事務的信息,并嘗試查找可能與匹配事務相對應的此空間區(qū)域。雖然上述可視化中的決策樹輸出布爾預測,但決策樹通常用于更強大的機器學習,包括在我們的模型中,而是輸出可能性的預測。
用于訓練決策樹的算法,在實踐中很少使用獨立樹。這是因為他們傾向于學習訓練數(shù)據(jù)背后的噪聲而不是數(shù)據(jù)中的基礎關系。決策樹可能錯誤地了解了無關緊要的交易描述,因為很多相互不匹配的事務卻具有相似的交易描述。此問題稱為過度擬合。
過度擬合
過多的模型復雜性導致過度擬合,因為它允許模型扭曲到訓練數(shù)據(jù)。
過度擬合被稱為“高方差”,因為過度擬合模型強烈依賴于訓練數(shù)據(jù),輸入的微小變化將導致預測的大的變化。
另一方面,變量不足和模型復雜性不足導致欠擬合,其中模型太不靈活,無法在訓練數(shù)據(jù)中找到有意義的關系。欠擬合被稱為“高偏差”,因為欠配合模型具有顯著的系統(tǒng)預測誤差或偏差。
數(shù)據(jù)科學的一個基本挑戰(zhàn)是偏差 - 方差權衡。不小心增加模型復雜性會導致更高的方差和更低的偏差。如果我們的模型完全基于偏差測量(例如訓練集的準確度)進行優(yōu)化,那么它們將傾向于過度擬合。
Bagging
為了解決待發(fā)布的匹配問題而不過度擬合,我們的第一個模型使用bagging裝袋和feature?特征采樣增強了決策樹的概念。讓我們先來討論bagging,這是指bootstrap?aggregating。
“Bootstrapping”是在訓練數(shù)據(jù)的隨機樣本上訓練模型的過程。通過限制訓練過程中使用的數(shù)據(jù)量,bootstrapping?通過在訓練期間提供不同的噪聲分布來對抗過度擬合。
“Aggregating”是組合許多不同引導模型的過程。對于bootstrapping?樹,聚合過程通常通過計算樹預測的可能性的平均值來對樹“投票”。由于訓練子集是隨機采樣的,因此決策樹仍然平均適合數(shù)據(jù)集,但投票給出了更穩(wěn)健的預測。
結合Bootstrapping和Aggregating結果進行bagging裝袋。
如果組件模型不相關,則bagging裝袋模型會更多地減少差異。然而,僅對不同的訓練數(shù)據(jù)樣本進行Bootstrapping通常會導致樹具有高度相關的預測,因為最具信息性的分支規(guī)則在采樣的訓練數(shù)據(jù)中通常是相似的。例如,由于交易描述是未處理和已過程交易是否匹配的強有力指標,因此我們的大多數(shù)樹木將嚴重依賴此指標。在這種情況下,bagging裝袋的能力有限,可以減少整體模型的差異。
這是特征抽樣的來源。
隨機森林
為了減少樹的相關性,我們的模型除了隨機抽樣訓練數(shù)據(jù)外,還隨機抽樣特征,產(chǎn)生隨機森林。作為數(shù)據(jù)科學家工具包的主要成分,隨機森林是具有低過度擬合風險,高性能和高易用性的強大預測因子。
這是Plaid多年來用于匹配待處理和已發(fā)布交易的模型。隨著時間的推移,這種方法被證明是有效的,但并不是很好:當我們根據(jù)人類標記數(shù)據(jù)評估模型時,我們注意到了高假陰性率。我們需要改進模型,以便更可靠地找到匹配項。
當隨機森林失敗時
隨機森林和一般的bagging裝袋易受不合適的不平衡數(shù)據(jù)集的影響。我們對從待處理pending到已過賬posted匹配的隨機森林模型遇到了這個問題。由于每個待處理交易在訓練集中最多只有一個已發(fā)布的事務,因此大多數(shù)待處理和已過賬交易的候選對都不匹配。這意味著我們的訓練集存在不平衡,其中絕大多數(shù)數(shù)據(jù)“不匹配”;?因此,我們的隨機森林模型錯誤地預測了較低的匹配概率,從而導致較高的假陰性率。
Boosting
為了解決這個問題,我們使用了boost。Boosting將決策樹限制為簡單形式 - 例如,樹不是很深 - 以減少整體模型的偏差。增強算法迭代地探索訓練數(shù)據(jù),添加最大限度地改善聚合模型的受限樹。與bagging裝袋一樣,樹的投票決定最終的決定。
從這個過程我們最終了解到,改善少數(shù)情況下的性能 - 匹配的交易對 - 將最大化模型提升。該算法深入研究了識別該情況的條件,通過精心調(diào)整的超參數(shù),我們終于看到了我們的假陰性率的重大改進。
boosting的另一個優(yōu)點是能夠在訓練期間靈活地定義“模型改進”度量。通過對誤報和漏報分配不對稱懲罰,我們訓練了一個模型,更加符合這些模型錯誤如何不對稱地影響消費者。
結果
與隨機森林模型相比,我們新的增強模型將假陰性率降低了96%,最終為我們的客戶和消費者提供了更高質(zhì)量的交易數(shù)據(jù)。除了內(nèi)部指標改進之外,我們還看到客戶提交的有關待處理到期交易票據(jù)顯著減少。
必須了解機器學習模型原型的特征如何導致不同的優(yōu)點和缺點。雖然我們的新模型在我們提供的數(shù)據(jù)質(zhì)量方面取得了重大進步,但它還是有自己的權衡。Boosting對模型改進度量以及限制樹必須簡單的其他超參數(shù)敏感。在這種情況下,改善的消費者體驗非常值得仔細的培訓程序和細致的調(diào)整。
還有更多我們還沒有探索。例如,考慮到我們使用大量的分類變量,哪種提升算法最好?鑒于我們每天有四分之一的美國人使用銀行賬戶處理交易多次,我們?nèi)绾未_保我們的匹配算法足夠快以便跟上?鑒于難以解釋和解釋其輸出背后的推理,深度神經(jīng)網(wǎng)絡對于這個問題是否值得投資?
電子發(fā)燒友App













評論