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,利用有标签、无标签数据。(通过设计不同LossLossLoss实现)

  • 使用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 问题定义及注记

  • 图的构建

    • 重点研究User用户类型节点, 图中有标签数据<<无标签数据
    • 异构图(文中记为multiview graph), Gv={U∪Sv,Ev},v∈{1,…,m}G^{v}=\left\{U \cup S^{v}, E^{v}\right\}, v \in\{1, \ldots, m\}Gv={USv,Ev},v{1,,m}, vvv即view
    • view由具体业务确定, 本文中部分view是从用户特征处理产生的, 以增加结构信息. (详见实验部分数据集处理)
  • 注记:

3.2 Overview 整体架构

node level(聚合各view内信息) → view level(整合views信息,得到对user的embedding) → relation loss ( 对有/无标签数据不同损失)

3.3 Node Level

对于节点u, i在view v中的特征表示, 设为euive_{u i}^{v}euiv

∵ 不同邻居节点对节点u的影响不同, 引入Attention来自主学习邻居节点的权重,

αuiv=exp⁡(euiv⋅Huiv)∑k∈Nuvexp⁡(eukv⋅Hukv)\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)}αuiv=kNuvexp(eukvHukv)exp(euivHuiv), 其中HuvH^v_uHuv为可学习的参数矩阵.

∴ 对于节点u在viewv下的embedding,有:

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

3.4 View Level

  1. MLP

    个人理解即预处理, 但用MLP来映射总觉得有点偏, em, intuition?

    node-level得到的hvuh^u_vhvu是属于各自view内(异构)的embedding, 为了聚合各个view时能更好的利用相互关联性(capture the multiview correlations), 首先用MLP将之映射到高维的语义空间(high-level semantic space).
    即有,
    huv(l)=Relu⁡(huv(l−1)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\}huv(l)=Relu(huv(l1)Wlv+blv),v{2,,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\}αuv=k{1,,m}exp(huk(L)ϕuk)exp(huv(L)ϕuv),v{1,,m}

最后, 连接在attention加权后各view节点表示,得到User的embedding.

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

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=∑u∈U∑v∈Nu∪Negu−log⁡(σ(auTav))−Q⋅Eq∼Pneg(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}Lgraph=uUvNuNegulog(σ(auTav))QEqPneg(u)log(σ(auTaq))

    其中, Nu\mathcal{N}_{u}Nu为节点u的邻居, Negu\mathcal{N}_{eg_u}Negu为节点u的被标记为负样本的邻居, σ取sigmoid(), Pneg(u)∝du0.75P_{n e g}(u) \propto d_{u}^{0.75}Pneg(u)du0.75 为负样本的采样分布, Q为采样的负样本数量(本文取3).

    我们来按照每一项理解一下,

    • −log⁡(σ(auTav))-\log \left(\sigma\left(a_{u}^{T} a_{v}\right)\right)log(σ(auTav))
      u,v为邻居, 我们希望两个节点的表示是相近的. 若au,ava_u,a_vau,av相近, 则其乘积auTava^T_ua_vauTav较大, 取sigmoid()后接近1, 取对数后损失小, 符合我们设计Loss的期望.

      同理, 若au,ava_u,a_vau,av相差较大, 则Loss较大, 给出惩罚

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

      与上同理, 若邻居中有负样本, 则节点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}LSemiGNN=αLsup+(1α)Lgraph+λLreg

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:

user attributes prediction :

SemiGNNsup为只使用有标签数据的对照组.

结果表明, 在3.6模型分析中提到的优越性, 有助于提升模型性能.

作者后继还对模型参数敏感性, 不同view对性能的重要性进行了简要分析.

-1. One More Thing

个人思考:

  • 文章亮点:

    • semi-supervised learning 的Loss第一次接触, 略开眼界. 接下来对欺诈检测做进一步了解, 对比各类半监督方案.
    • 异构处理. 实质上异构数据是单独处理, 再通过Attention连接来做embedding, 从结果来尚算喜人.
  • 一点疑惑:

    • 文章中的XGBoost估计没有精调? 在用户职业预测上, 由于有地址信息这一强特征, 个人猜测应该能达到更好的结果. 故模型和业务部署的baseline的差距有多大呢.

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

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

A Semi-supervised Graph Attentive Network for Financial Fraud Detection 个人总结相关推荐

  1. 【论文分享】异构图神经网络域名检测方法GAMD:Attributed Heterogeneous Graph Neural Network for Malicious Domain Detection

    题目:Attributed Heterogeneous Graph Neural Network for Malicious Domain Detection 链接:https://ieeexplor ...

  2. 论文阅读 - Social Bot-Aware Graph Neural Network for Early Rumor Detection - CCF B

    目录 摘要: 1 绪论 2 问题定义 3 SBAG模型 3.1社交机器人检测 3.2 机器人感知图神经网络 3.2.1基于GCN的用户发布 3.2.2 基于GAT的用户交互 3.2.3文本编码器 3. ...

  3. 【论文阅读】Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud

    最近在看3d目标检测的文章,感觉看完东西还是要记一下自己的想法,尤其是有思考的文章. 论文题目:Point-GNN: Graph Neural Network for 3D Object Detect ...

  4. Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记

    Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记 文章标题:A ...

  5. GNN金融应用之Classifying and Understanding Financial Data Using Graph Neural Network学习笔记

    Classifying and Understanding Financial Data Using Graph Neural Network 摘要 1. 概述 2. 数据表示-加权图 3. GNN利 ...

  6. 如何理解 Graph Convolutional Network (GCN)?

    几年前如果熟练使用TensorFlow,同时掌握基本的AI算法就可以很容易找到一份高薪的工作,但现在不一样了,AI岗位的要求越来越高,对知识的深度也提出了更高的要求. 如果现在一个面试官让你从零推导S ...

  7. (十九)【AAAI2021】Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommend

    题目: Knowledge-Enhanced Hierarchical Graph Transformer Network for Multi-Behavior Recommendation 论文链接 ...

  8. 如何理解 Graph Convolutional Network(GCN)?

    几年前如果熟练使用TensorFlow,同时掌握基本的AI算法就可以很容易找到一份高薪的工作,但现在不一样了,AI岗位的要求越来越高,对知识的深度也提出了更高的要求. 如果现在一个面试官让你从零推导S ...

  9. 2021_AAAI_Knowledge-aware Coupled Graph Neural Network for Social Recommendation

    [论文阅读笔记]2021_AAAI_Knowledge-aware Coupled Graph Neural Network for Social Recommendation 论文下载地址: htt ...

最新文章

  1. 2022-2028年中国汽轮发电机行业市场深度分析及发展趋势分析报告
  2. 时间罗盘html源代码_重磅!Vue 3.0源代码公布后,究竟有哪些变更?
  3. Java图片,视频上传,截取视频帧以及文件下载和视频IO获取
  4. ThreadPoolExecutor源码解析(一)
  5. Springboot只允许进入登录注册的页面,没登录页面进行拦截。
  6. 编译原理:文法及其二义性(判定及消除)
  7. 将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法
  8. Mysql ERROR 2002 (HY000) Can't connect to local MySQL server through socket
  9. 统信UOS使用wine安装“方正ApabiReader_4.5.2.1790(ceb阅读器)”并解决安装过程中文显示成方块问题
  10. 误差函数erf matlab,matlab求解erf误差函数方法(有详细注释 )
  11. 微信公众平台:微信网页授权和微信支付
  12. 算法之迪杰斯特拉算法
  13. ei计算机相关 小木从,怀念楼讲心那棵小木钩瞒
  14. mysql之第n高的薪水
  15. 确定位数的C语言程序设计,c语言程序设计
  16. oracle cpu基线,Oracle SQL执行计划基线总结(SQL Plan Baseline)
  17. 谷款量子计算机用了多少光子,中国光量子计算机诞生 脑容量小的别看
  18. php 开发桌面应用,winbinder开发php桌面应用程序 | 学步园
  19. 30.华为WLAN产品特性介绍_AP管理
  20. MAC版outlook开启左侧收件箱导航条

热门文章

  1. 计算机监控系统软件设计,计算机监控软件设计.doc
  2. 【Vue】- created()方法
  3. Vue created() 里同步
  4. 服务器能进系统滴滴响,主机报警连续响个不停
  5. Lua pairs与ipairs效率分析
  6. 解压主播狂揽4000w+播放,快手美食赛道又添新风向?
  7. VS2017_扩大程序运行内存
  8. 部署并安装Discuz论坛
  9. word停止工作 怎么解决
  10. P1457 城堡 The Castle(DFS+染色)