Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

浅析图卷积神经网络

今天想和大家分享的是图卷积神经网络。随着人工智能发展,很多人都听说过机器学习、深度学习、卷积神经网络这些概念。但图卷积神经网络,却不多人提起。那什么是图卷积神经网络呢?简单的来说就是其研究的对象是图数据(Graph),研究的模型是卷积神经网络。

今天想和大家分享的是图卷积神经网络。随着人工智能发展,很多人都听说过机器学习深度学习卷积神经网络这些概念。但图卷积神经网络,却不多人提起。那什么是图卷积神经网络呢?简单的来说就是其研究的对象是图数据(Graph),研究的模型是卷积神经网络

为什么有图卷积神经网络


自2012年以来,深度学习计算机视觉以及自然语言处理两个领域取得了巨大的成功。和传统方法相比,它好在哪里呢?

假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。而深度学习是输入一张图,经过神经网络,直接输出一个标签。特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。相较于传统的方法,深度学习能够学习到更高效的特征与模式。

卷积神经网络很好,但是它研究的对象还是限制在Euclidean domains的数据。什么是Euclidean data?   Euclidean data最显著的特征就是有规则的空间结构,比如图片是规则的正方形栅格,比如语音是规则的一维序列。而这些数据结构能够用一维、二维的矩阵表示,卷积神经网络处理起来很高效。

但是,我们的现实生活中有很多数据并不具备规则的空间结构,称为Non Euclidean data。比如推荐系统、电子交易、计算几何、脑信号、分子结构等抽象出的图谱。这些图谱结构每个节点连接都不尽相同,有的节点有三个连接,有的节点有两个连接,是不规则的数据结构。

下面结合两个典型的业务场景来说明什么是图:

社交网络非常适合用图数据来表达

上面的图谱刻画社交网络中各个节点以及它们之间的关系,用户A、用户B、帖子都是节点,用户与用户之间的关系是关注,用户与帖子之间的关系可能是发布或者转发。通过这样一个图谱,可以分析用户对什么人、什么事感兴趣,进一步实现推荐机制。

电商场景中的图谱

在电商中,我们首先可以想到的关键节点就是,用户、交易和商品。用户关联的节点比如会有注册地址、收获地址等;交易会关联到商品、收货地址、交易IP等、商品会关联类目等。这些节点之间的关系,比如用户除了可以通过交易购买商品,还可以对商品进行评分。这样的图数据我们可以用来做两件事情,一是推荐、二是反欺诈。

通过上面两个例子,可以很明显的感受到,图有两个基本的特性:

一是每个节点都有自己的特征信息。比如针对上图,我们建立一个风控规则,要看这个用户的注册地址、IP地址、交易的收货地址是否一样,如果这些特征信息不匹配,那么系统就会判定这个用户就存在一定的欺诈风险。这是对图节点特征信息的应用。

二是图谱中的每个节点还具有结构信息。如果某段时间某个IP节点连接的交易节点非常多,也就是说从某个IP节点延伸出来的边非常多,那么风控系统会判定这个IP地址存在风险。这是对图节点结构信息的应用。


总的来说,在图数据里面,我们要同时考虑到节点的特征信息以及结构信息,如果靠手工规则来提取,必将失去很多隐蔽和复杂的模式,那么有没有一种方法能自动化地同时学到图的特征信息与结构信息呢?——图卷积神经网络


什么是图卷积神经网络


卷积神经网络(Graph Convolutional Network)是一种能对图数据进行深度学习的方法。


图卷积算子:



上面给出的是图卷积算子的计算公式,设中心节点为i;

如何理解图卷积算法?我们看动图分三步去理解(注意不同颜色代表不同的权重):

第一步:发射(send)每一个节点将自身的特征信息经过变换后发送给邻居节点。这一步是在对节点的特征信息进行抽取变换。



第二步:接收(receive)每个节点将邻居节点的特征信息聚集起来。这一步是在对节点的局部结构信息进行融合。



第三步:变换(transform)把前面的信息聚集之后做非线性变换,增加模型的表达能力。




卷积神经网络具有卷积神经网络的以下性质:

1、局部参数共享,算子是适用于每个节点(圆圈代表算子),处处共享。

2、感受域正比于层数,最开始的时候,每个节点包含了直接邻居的信息,再计算第二层时就能把邻居的邻居的信息包含进来,这样参与运算的信息就更多更充分。层数越多,感受域就更广,参与运算的信息就更多。


我们来看GCN这个模型框架,输入是一张图,经过一层一层计算变换,最后输出一张图。


GCN模型同样具备深度学习的三种性质:

1、层级结构(特征一层一层抽取,一层比一层更抽象,更高级);

2、非线性变换 (增加模型的表达能力);

3、端对端训练(不需要再去定义任何规则,只需要给图的节点一个标记,让模型自己学习,融合特征信息和结构信息。)


GCN四个特征:

1、GCN 是对卷积神经网络在 graph domain 上的自然推广。

2、它能同时对节点特征信息与结构信息进行端对端学习,是目前对图数据学习任务的最佳选择。

3、图卷积适用性极广,适用于任意拓扑结构的节点与图。

4、在节点分类与边预测等任务上,在公开数据集上效果要远远优于其他方法。



我们怎么用图卷积神经网络


下面分享一个我们在实际应用场景中的实验:



实验输入是一个验证数据构成的图数据,节点是验证事件以及事件相关的属性节点。如IP,DeviceID,UA等节点。(我们总计用了30天的验证数据,每两个小时的数据构成一张图,共360张图。)


实验输出是对事件节点进行人机分类,正常或者异常。

实验细节

网络结构:

GCN(128)->GCN(64)->GCN(64)->Linear(2)

训练:  Adam优化器, lr=0.001

参照基准:  以只能学习特征信息的GBDT做为基准, grid_search 搜索超参数,GBDT是目前最流行的浅层分类器。


我们用第一天的数据做训练,持续30天预测结果如下:


GCN模型的准确率衰减比较小,而GBDT的衰减很严重。可见,GCN模型的人机判别效果要好,鲁棒性好。


7d评估效果可视化,(用第一天的数据训练模型,第七天观察其预测效果及最后一层输出的tsne可视化结果)。上图可以看出,GCN在第七天时对样本判别的分界面仍很明显,但是GBDT对样本判别的分界面已经很模糊类了。综上,GCN学到的结构信息在人机判别中不仅效果很好,也具有更好的鲁棒性。



写在最后


由于时间有限,很多问题浅尝辄止,关于GCN还有很多有趣的东西。我们将开设专栏《Graph Learning》,作者会分享给大家更加全面的图学习算法。


一直以来,我们都认为自己是一家技术驱动的公司,也说自己是AI公司。AI公司并不是那么高大上,实际上有时候很难,因为很多技术还不成熟,没有现成的可以用。在做公司业务的时候,会遇上一些现实难题,会踩到很多坑,当然也会收获一些感悟和经验。我们想,这些是企业创造的另外一种价值,应当好好利用。


“你有一种思想,我有一种思想,互相交换后,我们都拥有两种思想”这便是分享的意义。因此,后期我们还会整理一系列的干货分享专栏,以期把在实际应用中总结、学习、创造的知识分享给大家。当然,也非常欢迎有人可以一起探讨、交流、进步,这是我们做这件事情最期待的回馈。



《Graph Learning》专栏大纲



第一章               图及其应用场景

第二章               图的传播算法

第三章               社群检测以及高密子图

第四章              异构信息网络

第五章               图表示学习

第六章               图卷积神经网络

总共六章内容,预计25-30篇幅,感兴趣的小伙伴欢迎持续关注哦~

极验
极验

极验是全球顶尖的交互安全技术服务商,于2012年在武汉成立。全球首创 “行为式验证技术” ,利用生物特征与人工智能技术解决交互安全问题,为企业抵御恶意攻击防止资产损失提供一站式解决方案。

理论GCN极验
172
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

异构信息网络技术

与homogeneous同构信息网络相区别,异构信息网络的网络模式限定了对象集合以及对象间关系的类型约束。这些约束使得异构信息网络具有半结构化的特点,引导着网络语义的探究。异构信息网络可以由许多相互连接的、大规模的数据集来构造,范围涉及社会、科学、工程、商业应用等。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

Adam优化器技术

自适应矩估计(Adam)优化器是计算每个参数的自适应学习率的另一种方法。 除了存储像Adadelta和RMSprop之类的过去平方梯度vtvt的指数衰减平均数之外,Adam也保持了过去梯度mtmt的指数衰减平均值,类似于动量:

推荐文章
初学GCN,请问可以共享一下代码嘛?十分感谢~
可以添加小助手微信,进群一起学习 geetest1024