A Semi-supervised Graph Attentive Network for Financial Fraud Detection 個人總結

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,利用有標籤、無標籤數據。(通過設計不同LossLoss實現)

  • 使用Hieranchical Attention,增加模型可解釋性

  • 在花唄的異構數據上很work。

2. Background 背景信息

  • 任務: 欺詐檢測,Fraud Detection

    可視作分類任務,由於異常點的採集,標註極其耗費人力物力,數據集常爲少量有標籤數據(labeled data),及大量無標籤數據(unlabeled data).

    模型需要具備解釋性, 能向部署方, 被檢測者說明檢測的判別標準.

  • 過往檢測方式

    • 基於規則, Rule-based
      • 原理: 假定欺詐活動基於一定可觀測的模式
      • 缺點: 耗費人力手工設定, 依賴專家知識; 容易被攻擊
    • 基於統計特徵的機器學習模型
      • 如SVM, 樹模型等
      • 缺點: 未利用用戶間交互信息
    • 圖表示學習的嘗試
      • 黑箱模型,缺乏解釋性
  • 綜上,欺詐檢測建模有如下靈魂三問:

    1. 如何處理不平衡的數據,利用無標籤的數據? (semi-supervised)
    2. 如何利用用戶間交互,及不同類別的特徵? (heterogenous graph)
    3. 如何保證模型可解釋性?

3. The Model Semi-GNN 模型

3.1 Problem Definition and Notations 問題定義及註記

  • 圖的構建

    graph

    • 重點研究User用戶類型節點, 圖中有標籤數據<<無標籤數據
    • 異構圖(文中記爲multiview graph), Gv={USv,Ev},v{1,,m}G^{v}=\left\{U \cup S^{v}, E^{v}\right\}, v \in\{1, \ldots, m\}, vv即view
    • view由具體業務確定, 本文中部分view是從用戶特徵處理產生的, 以增加結構信息. (詳見實驗部分數據集處理)
  • 註記:

notation

3.2 Overview 整體架構

model

node level(聚合各view內信息) → view level(整合views信息,得到對user的embedding) → relation loss ( 對有/無標籤數據不同損失)

3.3 Node Level

node

對於節點u, i在view v中的特徵表示, 設爲euive_{u i}^{v}

∵ 不同鄰居節點對節點u的影響不同, 引入Attention來自主學習鄰居節點的權重,

αuiv=exp(euivHuiv)kNuvexp(eukvHukv)\alpha_{u i}^{v}=\frac{\exp \left(e_{u i}^{v} \cdot H_{u i}^{v}\right)}{\sum_{k \in \mathcal{N}_{u}^{v}} \exp \left(e_{u k}^{v} \cdot H_{u k}^{v}\right)}, 其中HuvH^v_u爲可學習的參數矩陣.

∴ 對於節點u在viewv下的embedding,有:

huv=kNu(A)αukeukh_{u}^{v}=\sum_{k \in \mathcal{N}_{u}^{(A)}} \alpha_{u k} e_{u k}

3.4 View Level

view

  1. MLP

    個人理解即預處理, 但用MLP來映射總覺得有點偏, em, intuition?

    node-level得到的hvuh^u_v是屬於各自view內(異構)的embedding, 爲了聚合各個view時能更好的利用相互關聯性(capture the multiview correlations), 首先用MLP將之映射到高維的語義空間(high-level semantic space).
    即有,
    huv(l)=Relu(huv(l1)Wlv+blv),v{2,,m}h_{u}^{v(l)}=\operatorname{Relu}\left(h_{u}^{v(l-1)} W_{l}^{v}+b_{l}^{v}\right), v \in\{2, \ldots, m\}

  2. View-Attention

    不同view對User的embedding影響也不同,同樣,引入Attention來自適應.

    αuv=exp(huv(L)ϕuv)k{1,,m}exp(huk(L)ϕuk),v{1,,m}\alpha_{u}^{v}=\frac{\exp \left(h_{u}^{v(L)} \cdot \phi_{u}^{v}\right)}{\sum_{k \in\{1, \ldots, m\}} \exp \left(h_{u}^{k(L)} \cdot \phi_{u}^{k}\right)}, v \in\{1, \ldots, m\}

最後, 連接在attention加權後各view節點表示,得到User的embedding.

hu=i=1m(αuvhuv(L))h_{u}=\|_{i=1}^{m}\left(\alpha_{u}^{v} \cdot h_{u}^{v(L)}\right)

m爲view個數,||爲連接.

3.5 Loss 損失函數設計

  1. 標籤數據

​ 使用softmax

  1. 無標籤數據

    現象: 欺詐常呈團伙聚集, 標註爲負樣本的用戶, 其鄰居節點也可疑.

    基於上述假設, 受DeepWalk啓發, 作者設計的Loss希望:

    鄰近節點的表示是相似的, 同時不同節點的表示差異較大. (encourages nearby nodes having similar representaions while makes the representations of disparate nodes distinct)

    聽起來, 和聚類的要求是一致的, 更替了表述而已. 但爲了實現上述期望, Loss的設計還是相當巧妙的.

    ↓↓↓

    Lgraph=uUvNuNegulog(σ(auTav))QEqPneg(u)log(σ(auTaq))\begin{aligned} \mathcal{L}_{\text {graph}}=& \sum_{u \in U} \sum_{v \in \mathcal{N}_{u} \cup N e g_{u}}-\log \left(\sigma\left(a_{u}^{T} a_{v}\right)\right) \\ &-Q \cdot E_{q \sim P_{n e g}(u)} \log \left(\sigma\left(a_{u}^{T} a_{q}\right)\right) \end{aligned}

    其中, Nu\mathcal{N}_{u}爲節點u的鄰居, Negu\mathcal{N}_{eg_u}爲節點u的被標記爲負樣本的鄰居, σ取sigmoid(), Pneg(u)du0.75P_{n e g}(u) \propto d_{u}^{0.75} 爲負樣本的採樣分佈, Q爲採樣的負樣本數量(本文取3).

    我們來按照每一項理解一下,

    • log(σ(auTav))-\log \left(\sigma\left(a_{u}^{T} a_{v}\right)\right)
      u,v爲鄰居, 我們希望兩個節點的表示是相近的. 若au,ava_u,a_v相近, 則其乘積auTava^T_ua_v較大, 取sigmoid()後接近1, 取對數後損失小, 符合我們設計Loss的期望.

      同理, 若au,ava_u,a_v相差較大, 則Loss較大, 給出懲罰

    • QEqPneg(u)log(σ(auTaq))-Q \cdot E_{q \sim P_{n e g}(u)} \log \left(\sigma\left(a_{u}^{T} a_{q}\right)\right)

      與上同理, 若鄰居中有負樣本, 則節點u也可疑, 其節點表示應與負樣本節點相近.

    注意, 鄰居節點v在模型中爲random walk path上的點.

綜上, 我們得到了整個模型的Loss,

LSemiGNN=αLsup+(1α)Lgraph+λLreg\mathcal{L}_{S e m i G N N}=\alpha \cdot \mathcal{L}_{s u p}+(1-\alpha) \cdot \mathcal{L}_{g r a p h}+\lambda \mathcal{L}_{r e g}

3.6 模型分析

模型主要特點:

  1. 綜合使用異構多維的數據(multiview)
  2. 可能有較好的解釋性(attention)
  3. 是歸納方法(inductive method), 訓練完成後可部署於平臺
  4. 可並行訓練的

4. Experiment 實驗

4.1 Dataset 數據集

花唄內部數據: 大約4,000,000 有標籤用戶, 總共100, 000, 000用戶.

預處理後, 保留有約90% 的用戶, 這些用戶的相關view數據確實較少.

預處理後構建瞭如下4個圖(3種view):

  1. user-relation(用戶間關係)
  2. user-app
  3. user-nick
  4. user-address

4.2 實驗任務

  1. user default prediction 用戶違約預測
  2. user attributes prediction 用戶特徵預測 (本文爲用戶職業預測)

4.3 實驗結果

超越baseline小几個點.

user default prediction:

default

user attributes prediction :

attributes

SemiGNNsup爲只使用有標籤數據的對照組.

結果表明, 在3.6模型分析中提到的優越性, 有助於提升模型性能.

作者後繼還對模型參數敏感性, 不同view對性能的重要性進行了簡要分析.

-1. One More Thing

個人思考:

  • 文章亮點:

    • semi-supervised learning 的Loss第一次接觸, 略開眼界. 接下來對欺詐檢測做進一步瞭解, 對比各類半監督方案.
    • 異構處理. 實質上異構數據是單獨處理, 再通過Attention連接來做embedding, 從結果來尚算喜人.
  • 一點疑惑:

    • 文章中的XGBoost估計沒有精調? 在用戶職業預測上, 由於有地址信息這一強特徵, 個人猜測應該能達到更好的結果. 故模型和業務部署的baseline的差距有多大呢.

    • 模型的可解釋性仍是薄弱.

      文中對模型可解釋性的分析, 僅是基於對若干只採用單一view的模型性能做分析, 進而比較attention係數的差異.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章