文 | 光大科技大数据部 追光实验室 额日和
1. 图神经网络简介
图神经网络(Graph Neural Network,以下简称GNN)的研究正成为深度学习领域的热点。在2021年人工智能的顶会ICLR提交论文的前50个关键词中,GNN就排在第四位。GNN也越来越多地被应用于金融领域,本文将主要介绍GNN的基本框架以及在区块链场景中的应用。
GNN是一种处理图数据结构的深度学习模型,其发展得益于卷积神经网络(局部连接、共享权重和多层网络)和图表示学习(通过低维向量表示节点、边和子图)。GNN核心思想是采用聚合信息的方式来提取图中节点的信息和依赖关系,每个节点最初的表示都是节点本身的属性特征,根据这个节点邻居的信息以及本身信息不断更新每个节点的表示,最后合并在一起从而得到该节点新的表示。
GNN通常划分为四大类[1]:
- 图循环神经网络
- 图卷积神经网络
- 图自编码器
- 时空图神经网络
一般GNN设计流程分为四部分,如下图所示[2]:
(1)找到图结构,首先结合具体场景,把数据通过图的方式进行描述,主要有以下两类应用场景:
- Structural scenarios,即数据中存在清晰的图结构关系,如图挖掘、知识图谱及推荐系统等
- Non-structural scenarios,即数据中不存在明显的图结构关系,需要抽象出节点与边的关系,如计算机视觉、自然语言处理等
(2)确定图的类型,例如有向/无向图、同构/异构图等,越精细的场景需要越复杂的图类型;同时也需要根据图数据的大小匹配足够的算力
(3)设计损失函数,基于图学习任务不同考虑以下几类:
- 节点层面的预测
- 边层面的预测
- 社区层面的预测
- 图层面中的预测
此外还需要考虑任务是监督、半监督或无监督学习
(4)设置计算模块并训练模型
- 传播模块:节点之间如何进行信息传播使得网络可以捕捉到图的特征
- 采样模块:当图很大时需要进行采样
- 池化模块:当需要高维的子图表示时,池化模块可以提取节点信息
2. 图神经网络在区块链中的应用探索
2.1 区块链
区块链本质上是一个分布式的数据库技术,具有去中心化、不可篡改、全程留痕、匿名性等特点。区块链技术带来的重大变革,也对金融服务、生态安全、隐私保护提出了诸多挑战。
加密货币是基于区块链技术最成功的应用之一。从2009年比特币成为第一个去中心化的加密货币开始,到以以太坊为代表的具有平台属性的加密货币,再到Facebook提出的Libra加密货币项目,加密货币如火如荼发展的同时也带来了一系列风险。加密货币中各节点的身份信息不需要公开或验证,信息传递可以匿名进行,这也为洗钱、欺诈交易等违法行为带来了便利。
为防范金融风险,在监管层面,加密货币逐渐被纳入政府监测范畴;在技术层面,公开的数据也促进了更多的组织机构对区块链进行分析研究,这也表明单纯使用区块链技术构建的应用难以发挥其价值,这就需要区块链与人工智能、大数据等其他技术相结合,利用协同效应形成一体化解决方案。
2.2 工程领域的应用
GNN天然适合于区块链数据的分析,从结构上看,区块链数据本质上由一个图表示,其中节点表示地址,边表示交易等行为,构建交易图后模型可以提取图结构关系中高维度的特征,这些特征在做下游学习任务时往往表现很好。以下将介绍GNN在区块链的异常检测和实体识别等任务的应用探索。
2.2.1 异常检测
异常检测是一种用于识别不符合预期行为的异常模式的技术。图异常检测任务旨在挖掘出网络中具有显著离群特征的节点、边或子图等。
比特币实现了低成本、点对点的现金转账,然而其匿名性使得许多罪犯利用比特币实施勒索、洗钱以及交易非法商品。在此背景下,FinCEN(美国财政部下设机构金融犯罪执法局)规定了持有MSB(Money Services Business)牌照的机构必须充分了解客户,并评估客户潜在的洗钱、恐怖融资以及其他金融犯罪的风险。为了应对这些合规性的挑战,加密货币咨询公司也应运而生,专门针对加密货币领域提供“反洗钱”解决方案。由IBM的人工智能实验室发表的文章《Anti-Money Laundering in Bitcoin: Experimenting with Graph Convolutional Networks for Financial Forensics》[3]提出了使用图神经网络识别比特币交易中的洗钱团伙。
- 数据
数据来自于ELLIPTIC[4],ELLIPTIC是成立于2013年的加密货币合规服务商,旨在阻止非法加密货币活动。
- 节点和边
数据中涉及的图由203769个节点和234355条边组成,其中节点表示交易实体,交易实体包括交易所、钱包提供商、矿工、洗钱团伙等,边表示两个交易实体之间的比特币交易流。
- 特征
每个节点关联了166个交易相关的特征,特征包括:前94个是局部特征,代表节点的时间步长、入度和出度、支付支出费,以及比特币平均交易金额等衍生特征;剩下72个是聚合特征,通过从中心节点聚合邻居交易的最大、最小、标准差和相关系数等信息来获得。
- 标签
数据中约2%的节点为欺诈节点,21%的节点为非欺诈节点,其他的节点则没有标签。
- 图卷积神经网络(GCN)
GCN第l+1层的节点更新通过第l层的节点表示、邻接矩阵A以及权重矩阵W进行更新,是激活函数,初始矩阵的节点使用节点特征作为输入,由于是节点分类问题,输出后通过softmax函数进行概率表示,表达式如下:
为第l层的节点表示,为邻接矩阵,为第l层的权重,为激活函数。通过基于GCN的半监督学习可以对每一笔未标记的比特币交易进行非法或合法的分类。
2.2.2 实体识别
实体识别的目的是通过捕获交易模式的特点来对账户身份进行推断,比如对身份地址进行分析可以判断币价波动的原因以及与哪类账户(矿工、智能合约、交易商)关系更大,这对于保护区块链的生态安全和规范交易准则起着至关重要的作用。
区块链已从以比特币为代表的1.0时代发展到以以太坊为代表的2.0时代,智能合约的引入丰富了链上用户的行为,也给身份识别带来了巨大的挑战。链上不仅仅有用户的加密货币的交易,还包括了各类基于DApps(区块链平台衍生的各种分布式应用)的行为。
传统的识别方法主要包括人工标注以及源代码分析等方式,前者需要耗费大量的人力,面对上亿的身份地址几乎是不可能的任务。基于源代码分析的地址识别是通过对智能合约的源码进行分析从而判断其是否存在恶意后门或者漏洞,这种方法具有较高的精准度但是实现起来难度很大,且相当多的智能合约并未公开源码。图神经网络的技术则提供了新的解决思路,论文《A Graph Learning based Approach for Identity Inference in DApp Platform Blockchain》[5]设计了一种基于图深度学习的区块链地址身份识别方法,其框架如下:
该模型主要分为图构建、图学习和节点分类三大模块,图构建基于以下三个矩阵模块构造有向加权图,为每个节点生成具有辨识性的特征表示:
- 节点表示矩阵:节点包括节点的出度和入度信息,以及节点类型(智能合约或普通账户)
- 邻接矩阵:根据转账、合约调用、奖励等方式建立四种类型的边
- 时间密度矩阵:根据账户地址之间交互频率、交互时间构建矩阵
使用图卷积神经网络构建多层神经网络进行学习,最后通过softmax函数预测节点类型。
除此之外,以目标节点为中心可以构建多个子图,每个子图定义为 , 代表账户的子图,是子图中所有账户的集合,和分别代表了交易量和交易频率相关的有向边集合,是智能合约的信息,则是子图中心节点的对应标签。通过训练图神经网络识别子图的交易规律,最终识别账户是否为网络欺诈账户 ,这样就把节点分类问题转化为了图分类问题,该方法的好处是计算更快且内存占用资源较少[6],模型整体框架如下所示:
上述建模的pipeline:
a.通过区块链交易构建图网络
b.采样
c.构建子图作为模型输入
d.训练GNN模型并评估效果
3. 基于DGL搭建模型
针对本文2.2.1中的比特币反洗钱案例和数据,基于DGL (Deep Graph Library) 框架搭建GCN模型,识别交易中的洗钱团伙。建模流程共3部分,模型框架可应用于一般的节点分类任务:
1)读取和清洗数据
2)通过.csv的外部数据源创建图
3)搭建模型并训练,最后评估效果
作者:jsp
-------------------------------------------