参考文章: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,树模型等等
- 缺点:只考虑了实体特征,没有考虑实体之间的关系
- 最近的图表示学习的尝试
- 没有利用无标签数据,模型缺乏可解释性
- 基于规则,Rule-based
综上,欺诈检测建模有如下灵魂三问:
How to bridge the labeled data with the unlabeled data?
如何处理不平衡的数据(labeled的数据少,unlabeled的数据多),利用无标签的数据?(Semi-supervised,使用social relation graph将labeled data和unlabeled data联系起来)
How to model the data heterogeneity?
如何聚合用户的来自不同view的异质信息?
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 整体框架

上面的架构图回答了下面的三个问题:
- In each view-specific graph,how to assemble the user’s neighbors?
- How to assemble multiview data to obtain user embedding?
- 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

对于一个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

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
$$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损失函数设计
标签数据
使用softmax函数处理multi-classification问题即可。

无标签数据
现象:欺诈常呈团伙聚集, 标注为负样本的用户, 其邻居节点也可疑.
基于上述假设, 受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 模型分析
模型主要特点:
- 综合使用异构的数据(multiview)
- 可能有较好的解释性(attention)
- SemiGNN是inductive method,能够运用到从未见过的样本上(inductive)
- 可并行训练的。从之前的伪代码和framework图可以总结出,时间复杂度为$O(I·|E|·d·m)$,然后模型的训练是以边为单位的,所以可以实现并行处理。
3.7 算法伪代码

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):
- user-relation(用户间关系)
- user-app(二部图)
- user-nick(二部图)
- user-address(二部图)
4.2 实验任务
- user default prediction 用户违约预测(default有“违约”的意思,活久见)
- 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的nicks和addresses。结果如下表:

4.5 参数敏感性 Parameter Sensitivity
深度学习重在调参,看看参数的论文中提到的参数对用户违约预测任务(二分类问题)的影响吧:
二分类问题使用AUC作为度量指标没问题,而且这里AUC应该比P-R曲线更有说服力。

- Dimension of Final Embedding:在达到最高值之后,会随着维度增加而减少,原因在于维度维度越大,越容易出现overfitting和redundancy;
- Dimension of the initial node embedding:变化并不明显;
- The value of $\alpha$:可以看出supervised的重要性更高,但是如果过度重视supervised,而忽视unsupervised,则会导致效果的急速下降。
5. 我的思考
本文关于异构信息的处理
实质上异构数据是单独处理, 再通过Attention连接来做embedding, 从结果来尚算喜人。
模型的可解释性仍是薄弱
文中对模型可解释性的分析, 仅是基于对若干只采用单一view的模型性能做分析, 进而比较attention系数的差异。
为什么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.
为什么要分view来讨论特征?
首先,文章有提到,你完全可以将所有view组合在一起作为特征vector(如Baseline中的XGBoost)。但是,作者认为如果建模不同任务和不同顶点对不同view的偏好,将会达到更好的效果。
回归淳朴,回到了最初的DeepWalk的思想,使用跟它们一样的损失函数,同时解决了node embedding这种无监督学习的缺陷,感觉更像是对node embedding的改进!!!为它引入supervised的信息。同时,输入DeepWalk模型的不再是embedding look-up,而是$a_u$(从view-specific graphs中提取出来的特征)
度量指标KS是什么东西?
Friedman, Jerome H. ”A recursive partitioning decision rule for nonparametric classification.” IEEE Transactions on Computers 4 (1977): 404-408.
论文可以改进的地方:
论文作者自己说以后要在relation graph的relation type上再做区分(家人,朋友,同事)。
hexo公式解析有坑,得对于$x_{y}^{z}$,等写成x_{y}^{z},先下后上。