A Semi-supervised Graph Attentive Network for Financial Fraud Detection


参考文章:https://blog.csdn.net/weixin_40505645/article/details/105124245

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,能够同时利用有标签数据和无标签数据(通过设计两个$Loss Function$进行实现)。

  • 聚合了异构信息。

  • 提出了一个Hierarchical Attention机制,该机制先在一个user的各个view上实行注意力机制,再在各个view之间实行注意力机制,增强了模型可解释性。

  • 在花呗的两个任务上,结果体现得很work。

2. Background 背景知识

  • 任务: 欺诈检测,Fraud Detection

    可视作分类任务,由于异常点的采集,标注极其耗费人力物力,数据集常为少量有标签数据(labeled data),及大量无标签数据(unlabeled data).

    模型需要具备解释性, 能向部署方, 被检测者说明检测的判别标准。

  • 过往检测方式

    • 基于规则,Rule-based
      • 原理: 假定欺诈活动基于一定可观测的模式
      • 缺点: 耗费人力手工设定, 依赖专家知识; 容易被攻击
    • 基于统计特征的机器学习模型
      • 如SVM,树模型等等
      • 缺点:只考虑了实体特征,没有考虑实体之间的关系
    • 最近的图表示学习的尝试
      • 没有利用无标签数据,模型缺乏可解释性
  • 综上,欺诈检测建模有如下灵魂三问

    1. How to bridge the labeled data with the unlabeled data?

      如何处理不平衡的数据(labeled的数据少,unlabeled的数据多),利用无标签的数据?(Semi-supervised,使用social relation graph将labeled data和unlabeled data联系起来)

    2. How to model the data heterogeneity?

      如何聚合用户的来自不同view的异质信息?

    3. How to learn an interpretable model?

      怎么保证模型的可解释性?

3. The Model Semi-GNN 模型

3.1 Problem Definition and Notations 问题定义及数学符号含义

  • Multiple View的构建

    • 重点研究User用户类型节点, 图中有标签数据<<无标签数据
    • 异构图(文中记为multiview graph=a collection of view-specific graph),$G^v = {U \cup S^v},v \in \lbrace 1,…,m \rbrace$,$v$就是view-specific graph,$U = U_L \cup U_{UL}$
    • view由具体业务确定, 本文中部分view是从用户特征处理产生的, 以增加结构信息. (详见实验部分数据集处理)
  • 数学符号含义

3.2 整体框架

model framework

上面的架构图回答了下面的三个问题:

  1. In each view-specific graph,how to assemble the user’s neighbors?
  2. How to assemble multiview data to obtain user embedding?
  3. How to model the labeled and unlabeled user simultaneously?

node-level(聚合各个view-specific graph内部的信息)→ view-level(聚合所有view-specific graph的信息)→ supervised classification loss 和 unsupervised graph-based loss(前者重点考虑feature带来的信息,后者考虑图结构带来的信息)。

3.3 Node Level

node level

对于一个user $u$,它的邻居结点$i$,给它传递的特征表示设为$e^{v}_{ui}$。

∵ 不同的邻居节点对节点的$u$的影响不同,引入Attention来自适应学习邻居节点的权重:
$$
\alpha_{ui}^{v} = \frac { \exp (e_{ui}^{v} · H_{ui}^{v}) } {\sum_{k \in \cal N_u^v} \exp (e^v_{uk} · H^v_{uk}) }
$$
,其中$H_{u}^{v}$是可以学习到的参数矩阵。

∴ 对于节点$u$在view $v$下的embedding,可以表示成:
$$
h_{u}^{v} = \sum_{k \in \cal {N_u^v}} \alpha_{uk}^v e_{uk}^{v}
$$

3.4 View Level

view level

  1. MLP

    由node-level得到的$h_u^v$是属于各自view内(异构)的embedding, 为了聚合各个view时能更好的利用相互关联性(capture the multiview correlations), 首先用MLP将之映射到高维的语义空间(high-level semantic space)。(low-level space → high-level space),即有:
    $$
    h_u^{v(l)} = Relu (h_u^{v(l-1)}W_l^{v}+b_l^{v}),v \in \lbrace 2,…,m \rbrace
    $$

  2. View-Attention

    不同view对User的embedding影响也不同,同样,引入Attention来自适应:

$$
\alpha_u^v = \frac
{\exp (h_{u}^{v(L)}·\phi_u^v)}
{\sum_{k \in \lbrace 1,…,m \rbrace} \exp(h_u^{k(L)}·\phi_u^{k})} v \in \lbrace1,…,m\rbrace
$$

最后, 连接在attention加权后各view节点表示,得到User的embedding.
$$
h_u = ||_{v=1}^{m}(\alpha_u^v·h_u^{v(L)})
$$
$m$为view个数,$||$为连接.

3.5 Loss损失函数设计

  1. 标签数据

    使用softmax函数处理multi-classification问题即可。

    loss for labeled data

  2. 无标签数据

    现象:欺诈常呈团伙聚集, 标注为负样本的用户, 其邻居节点也可疑.

    基于上述假设, 受DeepWalk启发, 作者设计的Loss希望:邻近节点的表示是相似的, 同时不同节点的表示差异较大. (encourages nearby nodes having similar representaions while makes the representations of disparate nodes distinct)

    所以无标签数据的损失函数就和DeepWalk里面的损失函数长得一样了:

$$
\cal{L_{graph}} = \sum_{u \in \bf U}
(
\sum_{v \in \cal{N_v} \cup {Neg_u} }
(
-log(\sigma(a_u^{T}a_v)-Q·E_{q \sim P_{neg(u)}}log(\sigma(a_u^{T}a_q)))
)
)
$$

其中,$\cal{N_u}$ 为节点$u$的邻居,$\cal{Neg_u}$为节点$u$的负采样邻居,$\sigma$为sigmoid函数,$P_{neg}(u) \propto d_{u}^{0.75} $为负采样的分布,$Q$为负采样的采样数量(本文取3)。

综上所述,我们可以得到整个模型的Loss:
$$
\cal{L_{semiGNN}} = \alpha·\cal{L_{sup}} + (1-\alpha)·\cal{L_{graph}} + \lambda \cal{L_{reg}}
$$
其中,$\alpha$用于权衡监督和无监督之间的重要性,${\mathcal L}_{reg}$则是正则化系数。

3.6 模型分析

模型主要特点:

  1. 综合使用异构的数据(multiview)
  2. 可能有较好的解释性(attention)
  3. SemiGNN是inductive method,能够运用到从未见过的样本上(inductive)
  4. 可并行训练的。从之前的伪代码和framework图可以总结出,时间复杂度为$O(I·|E|·d·m)$,然后模型的训练是以边为单位的,所以可以实现并行处理。

3.7 算法伪代码

pseudo code

4. Experiment 实验

实验结果需要能够验证四件事情:

  • Can SemiGNN learn better embeddings for fraud detection compared with existing methods?
  • Whether the proposed hierarchical attention mechanism can help improve the model’s performance and give interpretable results?
  • Whether the performance of our model can benefit from the unlabeled data?
  • Is SemiGNN sensitive to the parameters and how the performance will be affected?

4.1 Dataset 数据集

花呗内部数据: 大约4,000,000 有标签用户,总共100, 000, 000用户。address的大小为300k,nicks的大小为500k,apps的大小为20k。

预处理后, 保留有约90% 的用户, 这些用户的相关view数据确实较少。

预处理后构建了如下4个图(其中有3种view):

  1. user-relation(用户间关系)
  2. user-app(二部图)
  3. user-nick(二部图)
  4. user-address(二部图)

4.2 实验任务

  1. user default prediction 用户违约预测(default有“违约”的意思,活久见)
  2. user attributes prediction 用户特征预测 (本文为用户职业预测)

4.3 实验结果

超越baseline小几个点.

1)user default prediction :

2)user attributes prediction :

3) The effect of different views :

验证不同的view的影响,$SemiGNN_x$代表只使用$x$这一种view。从实验结果也可以看出每种view对两个任务的重要程度还是不一样的。

4.4 模型可解释性

根据任务的特点,为用户违约预测任务选择注意力在top 15的app,为用户职业预测——医生选择注意力在top 15的nicksaddresses。结果如下表:

4.5 参数敏感性 Parameter Sensitivity

深度学习重在调参,看看参数的论文中提到的参数对用户违约预测任务(二分类问题)的影响吧:

二分类问题使用AUC作为度量指标没问题,而且这里AUC应该比P-R曲线更有说服力。

  1. Dimension of Final Embedding:在达到最高值之后,会随着维度增加而减少,原因在于维度维度越大,越容易出现overfitting和redundancy;
  2. Dimension of the initial node embedding:变化并不明显;
  3. The value of $\alpha$:可以看出supervised的重要性更高,但是如果过度重视supervised,而忽视unsupervised,则会导致效果的急速下降。

5. 我的思考

  1. 本文关于异构信息的处理

    实质上异构数据是单独处理, 再通过Attention连接来做embedding, 从结果来尚算喜人。

  2. 模型的可解释性仍是薄弱

    文中对模型可解释性的分析, 仅是基于对若干只采用单一view的模型性能做分析, 进而比较attention系数的差异。

  3. 为什么node-level之后还需要经过L层的multiple layer perceptron之后才能聚合?

    多模态的知识。文章的大意是刚刚出来的每个node level的信息都是相关性极其弱的,因此,我们使用需要经过MLP,来使得它们具有相关性,也正是有了相关性,我们的view-level的注意力机制才有意义!否则,对于没有相关性的数据进行注意力,可能效果不好的(不知注意力机制的论文有没有提到这一点)

    Ngiam, Jiquan, et al. ”Multimodal deep learning.” Proceedings of the 28th international conference on machine learning (ICML-11). 2011.

  4. 为什么要分view来讨论特征?

    首先,文章有提到,你完全可以将所有view组合在一起作为特征vector(如Baseline中的XGBoost)。但是,作者认为如果建模不同任务和不同顶点对不同view的偏好,将会达到更好的效果。

  5. 回归淳朴,回到了最初的DeepWalk的思想,使用跟它们一样的损失函数,同时解决了node embedding这种无监督学习的缺陷,感觉更像是对node embedding的改进!!!为它引入supervised的信息。同时,输入DeepWalk模型的不再是embedding look-up,而是$a_u$(从view-specific graphs中提取出来的特征)

  6. 度量指标KS是什么东西?

    Friedman, Jerome H. ”A recursive partitioning decision rule for nonparametric classification.” IEEE Transactions on Computers 4 (1977): 404-408.

  7. 论文可以改进的地方:

    论文作者自己说以后要在relation graph的relation type上再做区分(家人,朋友,同事)。

  8. hexo公式解析有坑,得对于$x_{y}^{z}$,等写成x_{y}^{z},先下后上。


文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
 上一篇
【AI研习社】KDD 2020丨欺诈检测研究现状以及欺诈者对抗行为建模 【AI研习社】KDD 2020丨欺诈检测研究现状以及欺诈者对抗行为建模
本次分享将主要介绍欺诈检测问题在学术界的研究现状,以及如何将图神经网络和强化学习应用到欺诈检测问题中。嘉宾是大佬窦英通。
2020-12-12
下一篇 
多分类,多标签模型的Accuracy, Precision, Recall和F1-score 多分类,多标签模型的Accuracy, Precision, Recall和F1-score
前言众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE。但是我们真正了解这些评价指标的意义吗? 在具体场景(如不均衡多分类)中到底应该以哪
2020-12-11
  目录