本文最早於 2018 年 2 月 6 日發表(原文鏈接)。來自安全與信任團隊的 David 帶領大家了解愛彼迎如何在對正常用戶影響最小的前提下,高效打擊信用卡盜刷的行為。

作者:David Press,Airbnb 數據科學家譯者:Faye Fang,Airbnb 中國工程師

校對:Zhongjie Wu,Airbnb 中國工程經理

每個晚上,都有 191 個國家/地區的近 200 萬人住在愛彼迎平台上的民宿里。而愛彼迎能夠快速發展成全球大家庭的基石,是用戶對平台的信任。

我們有很多方式來保障用戶對平台的信任,包括預防性保護用戶以及出了問題時積極響應。今天我想著重聊一聊我們防止欺詐團伙在愛彼迎平台上盜刷信用卡而採取的前瞻性措施,這些措施通常都在幕後發生。

在這篇文章中,我將介紹如何利用機器學習、實驗和數據分析來識別和阻止欺詐團伙,同時最大限度地減少對正常用戶的影響。 首先,我將介紹如何用機器學習模型來觸髮針對欺詐團伙的產品阻力。 然後,我將聊一聊我們如何通過最小化損失函數來選擇模型的閾值,並深入介紹函數的每個參數:假陽性(誤傷),假陰性(遺漏)和真陽性(正確識別)的成本。 最後,我將通過例子來說明阻止交易和產品阻力的區別。

打擊的對象:信用卡盜刷

與所有線上業務一樣,欺詐團伙時常在愛彼迎平台上盜刷信用卡。 當真正的持卡人發現他們的卡被盜刷並注意到賬單上有未經授權的費用時,信用卡公司會發出拒付扣款,而商家(愛彼迎)需要返還給信用卡公司這一筆錢。

與一些競爭對手不同的是,我們會承擔所有的成本,不會讓房東支付拒付扣款。 為了更好地保護愛彼迎平台並減少拒付成本,我們需要大力打擊信用卡盜刷。

我們有多種方式去檢測欺詐行為,最主要的便是機器學習(ML)模型。這些模型是根據平台上實打實的好行為和欺詐行為來訓練的。 沒有一種模型是完美的,所以總會存在誤傷:被模型歸類為「壞事件」的好事件。在某些場景里,我們會直接拒絕用戶進行操作。但在大多數場景里,我們會通過額外驗證的方式讓用戶自證清白。這種額外驗證,便是我們接下來要介紹的產品阻力。最理想的場景是,產品阻力將欺詐團伙拒之門外,對正常用戶而言卻十分容易完成。

我們的拒付模型會觸發一些產品阻力,來確保房客是持卡人,包括隨機小額預授權驗證(信用卡上發起兩筆隨機預授權,持卡人必須登錄他們的網上銀行來提交預授權金額大小)和銀行賬單驗證(要求持卡人上傳信用卡賬單),從而達到防止信用卡盜刷的目的。

優化模型閾值

我們根據歷史交易里的正常行為和惡意行為來訓練拒付模型,從而預測每一筆交易中欺詐的可能性。 由於欺詐極為罕見,我們欠缺壞行為標籤,所以模型標籤分類是不平衡的。 因此,我們算出每個閾值的真陽性率和假陽性率,然後通過損失函數 L 來計算所有閾值帶來的總成本。

總而言之,我們的目標是最小化整體損失函數 L:

在這個函數中,FP 是總誤判(偽陽性)量,G 是產品阻力下正常用戶的流失率,V 是正常用戶的生命周期價值(lifetime value),FN 是總漏判(偽陰性)量,C 是欺詐給平台帶來的成本,TP 是總欺詐(真陽性)量,F 是產品阻力對欺詐團伙的有效程度。(「真陰性」的成本,即正確識別好用戶的成本,為零,因此不會出現在損失函數中。)在下文里,我們將討論每一個變數的估算方法。

偽陽性的成本

每一次產品阻力被錯誤地施加在正常用戶身上,我們都有可能會損失一個正常用戶。因為正常用戶有可能不想或者不會完成產品阻力,從而退出愛彼迎平台。 G 代表了正常用戶的流失率。

我們假設每個離開的正常用戶都不會再回來,換句話說,我們失去了這些用戶的生命周期價值 V。這篇文章並不會細聊我們如何計算用戶生命周期價值,這是一個大小企業都會用到的概念。

好用戶流失的損失等於總偽陽性數乘以預期流失損失: FP * G * V。

我們用 A / B 測試來測量產品阻力對正常用戶 G 的影響。模型分數較低的用戶(欺詐可能小的用戶)會被分配進實驗里,分為實驗組和控制組,實驗組會被施加產品阻力。

我們在這樣的實驗里究竟在測量什麼? 為簡單起見,我們一般選擇單一的,漏斗末端的指標:成功完成預訂的房客數量。 正常用戶的流失率 G 定義為:1 - (實驗組(有產品阻力的)成功率)/(控制組(沒有產品阻力的)成功率)。

正常用戶流失率的實驗成本十分之高。 我們需要流失足夠多的正常用戶來確保實驗的置信度,這意味著我們會損失掉一些訂單! 為了最大限度地減少產品阻力下的正常用戶,同時仍在置信區間內測量 G,實驗採用了不平衡的分配,例如 95% 用戶進入控制組(無產品阻力)/ 5% 進入實驗組(有產品阻力)。而原因是我們可以使用 Delta 方法計算比率指標的方差:

μ_c 和 μ_t 分別是控制和實驗組的平均值,σ_c2 和 σ_t2 是它們各自的方差,G = 1-μ_t/μ_c。 由於 σ_t2 是隨著由成本高的實驗組(有產品阻力組)的大小變化的,我們希望 σ_c2 儘可能小——這可以通過增加控制組的大小來實現。大多數時候,如果 G?1,不平衡實驗只需給大約 ? 的用戶施加產品阻力,就能得到 50/50 的實驗里 G 同樣的置信區間。

與 50/50 實驗相比,不平衡實驗的缺點是數據需要更長的時間才能收斂(即需要更大的總樣本量)。實驗組的大小需要根據每天符合實驗條件的用戶數量,G 的預期量值以及我們能接受的實驗時間長度來定製。

偽陰性的成本

接下來,我們來看一下偽陰性的成本—— 即每個低於模型閾值的欺詐事件所造成的損失。 偽陰性的總損失是偽陰性的數量乘以每個欺詐事件的成本:FN * C.

愛彼迎承擔了所有與盜刷相關的費用,而房東無需退款。 因此,總成本是盜刷金額,加上交易費用的間接成本,和信用卡被拒率的增加。

真陽性的成本

真陽性是模型正確識別出的,得分高於閾值的欺詐行為。 我們的最終目標是阻止盜刷者使用愛彼迎。如果產品阻力成功阻止了盜刷者,我們就實現了這一目標,並且沒有任何損失。

事實上,沒有一種產品阻力能完美阻擋盜刷者。如果盜刷者以某種方式設法完成了產品阻力,那麼我們就會產生損失。 總損失是 TP *(1-F)* C,其中F是有產品阻力下的盜刷者流失率。

我們使用新的A / B實驗,將高於模型閾值的高危用戶分為實驗組和控制組,比對這兩個組來測量F。 這次不平衡的分配要被翻轉了,因為不對盜刷者應用產品阻力的成本是非常昂貴的。 我們將實驗里所有越過產品阻力的高危事件都進行人工審查,以減少損失。 我們通過比對實驗組裡的盜刷數量和控制組裡人工審核出的盜刷數量來得出盜刷者流失率F。F=1就說明產品阻力對盜刷者100%有效,所以我們希望F越接近1越好。

有兩點值得注意:

  • 有一種產品阻力是直接阻止交易,正如許多金融公司所做的一樣。 這可以被認為是F = 1和G = 1的產品阻力。
  • 理想的產品阻力會得到F = 1,G = 0。 如果我們有這樣的產品阻力,我們會將它應用到100%的場景里,因為對於正常用戶是沒有成本的。 不幸的是,這樣的產品阻力很難得到!

正常用戶流失率以及盜刷者流失率實驗的示意圖

示例:阻止交易與產品阻力的對比

我們來看一個虛構的例子。假設我們用歷史欺詐案例訓練出了一個機器學習模型。這個例子里,我們將使用 TPR = ?√[1-(1- FPR)?] 定義的虛擬 ROC 曲線。

機器學習模型里預測P(欺詐)的ROC曲線

假設欺詐事件發生的概率為 1%, 每個欺詐事件的固定成本 C = 10,並且每個正常用戶的價值V = 1。 如果我們使用模型直接阻止交易(下圖 a),通過阻止大約 1% 的交易,損失函數在 ~6 最小化。

如果我們使用該模型來觸發對正常用戶流失率 G = 10% 和欺詐者流失率 F = 95% 的產品阻力,那麼通過對 11% 的交易施加產品阻力將總損失可最小化到 ~3。與阻止交易相對比,產品阻力的應用可以將總損失減少近一半!

(a): 阻止交易,F = 1,G = 1 (b): 應用產品阻力,F = 0.95,G = 0.1

進一步地,我們可以阻止最高危的交易,同時對中危交易應用產品阻力。此方法是一個上述損失函數的二維優化。

最後的一點想法

打擊欺詐團伙本質上是一種對抗性業務。 我們越是積極地應用產品阻力,欺詐者再次攻擊的可能性就越小 - 而上述框架並沒有明確說明這種反饋循環。 出於這個原因,我們傾向於比損失函數曲線上的最優點更積極地採取行動。 當我們看到欺詐率下降時,我們也會避免過快更新我們的操作點。但如果欺詐率上升,我們會迅速採取行動並更新操作點。

事實上,欺詐團伙永遠不會停止尋找攻破防禦的新方法。機器學習和針對性的產品阻力只是我們努力保護愛彼迎安全的眾多方式之一。我們的團隊不斷努力完善系統,走在欺詐團伙和羊毛黨的前面,以贏得您的信任。


推薦閱讀:
相关文章