A Semi-supervised Graph Attentive Network for Financial Fraud Detection 個人總結
寫在前面:爲方便閱讀,儘量使用中文總結,對於翻譯無把握或專有詞彙,在中文後附上原文字段。此外,水平有限,對文章理解有偏差部分懇請大家海涵, 指正。
順便,移步去GitHub看看憋>﹏<
0. 原作信息
@inproceedings{wang2019semi,
title={A Semi-supervised Graph Attentive Network for Financial Fraud Detection},
author={Wang, Daixin and Lin, Jianbin and Cui, Peng and Jia, Quanhui and Wang, Zhen and Fang, Yanming and Yu, Quan and Zhou, Jun and Yang, Shuang and Qi, Yuan},
booktitle={2019 IEEE International Conference on Data Mining (ICDM)},
pages={598--607},
year={2019},
organization={IEEE}
}
1. Contribution 本文貢獻
-
設計semi-supervised GNN,利用有標籤、無標籤數據。(通過設計不同實現)
-
使用Hieranchical Attention,增加模型可解釋性
-
在花唄的異構數據上很work。
2. Background 背景信息
-
任務: 欺詐檢測,Fraud Detection
可視作分類任務,由於異常點的採集,標註極其耗費人力物力,數據集常爲少量有標籤數據(labeled data),及大量無標籤數據(unlabeled data).
模型需要具備解釋性, 能向部署方, 被檢測者說明檢測的判別標準.
-
過往檢測方式
- 基於規則, Rule-based
- 原理: 假定欺詐活動基於一定可觀測的模式
- 缺點: 耗費人力手工設定, 依賴專家知識; 容易被攻擊
- 基於統計特徵的機器學習模型
- 如SVM, 樹模型等
- 缺點: 未利用用戶間交互信息
- 圖表示學習的嘗試
- 黑箱模型,缺乏解釋性
- 基於規則, Rule-based
-
綜上,欺詐檢測建模有如下靈魂三問:
- 如何處理不平衡的數據,利用無標籤的數據? (semi-supervised)
- 如何利用用戶間交互,及不同類別的特徵? (heterogenous graph)
- 如何保證模型可解釋性?
3. The Model Semi-GNN 模型
3.1 Problem Definition and Notations 問題定義及註記
-
圖的構建
- 重點研究User用戶類型節點, 圖中有標籤數據<<無標籤數據
- 異構圖(文中記爲multiview graph), , 即view
- view由具體業務確定, 本文中部分view是從用戶特徵處理產生的, 以增加結構信息. (詳見實驗部分數據集處理)
-
註記:
3.2 Overview 整體架構
node level(聚合各view內信息) → view level(整合views信息,得到對user的embedding) → relation loss ( 對有/無標籤數據不同損失)
3.3 Node Level
對於節點u, i在view v中的特徵表示, 設爲
∵ 不同鄰居節點對節點u的影響不同, 引入Attention來自主學習鄰居節點的權重,
, 其中爲可學習的參數矩陣.
∴ 對於節點u在viewv下的embedding,有:
3.4 View Level
-
MLP
個人理解即預處理, 但用MLP來映射總覺得有點偏, em, intuition?
由node-level得到的是屬於各自view內(異構)的embedding, 爲了聚合各個view時能更好的利用相互關聯性(capture the multiview correlations), 首先用MLP將之映射到高維的語義空間(high-level semantic space).
即有,
-
View-Attention
不同view對User的embedding影響也不同,同樣,引入Attention來自適應.
最後, 連接在attention加權後各view節點表示,得到User的embedding.
m爲view個數,||
爲連接.
3.5 Loss 損失函數設計
- 標籤數據
使用softmax
-
無標籤數據
現象: 欺詐常呈團伙聚集, 標註爲負樣本的用戶, 其鄰居節點也可疑.
基於上述假設, 受DeepWalk啓發, 作者設計的Loss希望:
鄰近節點的表示是相似的, 同時不同節點的表示差異較大. (encourages nearby nodes having similar representaions while makes the representations of disparate nodes distinct)
聽起來, 和聚類的要求是一致的, 更替了表述而已. 但爲了實現上述期望, Loss的設計還是相當巧妙的.
↓↓↓
其中, 爲節點u的鄰居, 爲節點u的被標記爲負樣本的鄰居, σ取sigmoid(), 爲負樣本的採樣分佈, Q爲採樣的負樣本數量(本文取3).
我們來按照每一項理解一下,
-
u,v爲鄰居, 我們希望兩個節點的表示是相近的. 若相近, 則其乘積較大, 取sigmoid()後接近1, 取對數後損失小, 符合我們設計Loss的期望.同理, 若相差較大, 則Loss較大, 給出懲罰
-
與上同理, 若鄰居中有負樣本, 則節點u也可疑, 其節點表示應與負樣本節點相近.
注意, 鄰居節點v在模型中爲random walk path上的點.
-
綜上, 我們得到了整個模型的Loss,
3.6 模型分析
模型主要特點:
- 綜合使用異構多維的數據(multiview)
- 可能有較好的解釋性(attention)
- 是歸納方法(inductive method), 訓練完成後可部署於平臺
- 可並行訓練的
4. Experiment 實驗
4.1 Dataset 數據集
花唄內部數據: 大約4,000,000 有標籤用戶, 總共100, 000, 000用戶.
預處理後, 保留有約90% 的用戶, 這些用戶的相關view數據確實較少.
預處理後構建瞭如下4個圖(3種view):
- user-relation(用戶間關係)
- user-app
- user-nick
- user-address
4.2 實驗任務
- user default prediction 用戶違約預測
- user attributes prediction 用戶特徵預測 (本文爲用戶職業預測)
4.3 實驗結果
超越baseline小几個點.
user default prediction:
user attributes prediction :
SemiGNNsup爲只使用有標籤數據的對照組.
結果表明, 在3.6模型分析中提到的優越性, 有助於提升模型性能.
作者後繼還對模型參數敏感性, 不同view對性能的重要性進行了簡要分析.
-1. One More Thing
個人思考:
-
文章亮點:
- semi-supervised learning 的Loss第一次接觸, 略開眼界. 接下來對欺詐檢測做進一步瞭解, 對比各類半監督方案.
- 異構處理. 實質上異構數據是單獨處理, 再通過Attention連接來做embedding, 從結果來尚算喜人.
-
一點疑惑:
-
文章中的XGBoost估計沒有精調? 在用戶職業預測上, 由於有地址信息這一強特徵, 個人猜測應該能達到更好的結果. 故模型和業務部署的baseline的差距有多大呢.
-
模型的可解釋性仍是薄弱.
文中對模型可解釋性的分析, 僅是基於對若干只採用單一view的模型性能做分析, 進而比較attention係數的差異.
-