当前位置:   article > 正文

图神经网络初探

图神经网络

介绍

随着图神经网络(Graph Neural Networks,GNN)热潮的出现,了解、掌握图神经网络相关原理以及应用相关技术越来越成来从事人工智能人员的必要条件。本文主要概述图神经网络的概念、相关模型、经典应用,经过本文的学习,希望能够激发读者对于图神经网络的技术兴趣。

知识点
  • 图神经网络概述

  • 图嵌入

  • 图神经网络类型

  • 图神经网络典型应用


图神经网络概述

近几年来,基于计算资源的快速发展以及大量训练数据的可获得性等原因,引发了神经网络兴起与应用,并成功地推动了图像领域(Computer Vision, CV)与文本领域(Natural Language Processing, NLP)的发展与兴盛。曾经严重依赖于手工提取特征的机器学习模式,如今都已被各种端到端的深度学习范式所取代,如卷积神经网络(CNN)、长短期记忆网络(LSTM)、自注意力机制(self-attention)。

神经网络的不同模型基于不同的数据结构展开,例如,图像的本质为上下左右相连的像素值;而时间序列(语音、文本等)则由元素单向连接而成。对于图像处理,CNN 是目前的基础结构,对于时间序列,self-attention 机制是目前的集大成者。

以上所提到的均是欧氏空间数据,神经网络在其特征表征方面取得了可观效果,但在许多实际应用场景中,数据从非欧式空间生成,元素和元素之间,是一个互相联系的复杂网络,这时候应当用节点和连接它们的边来描述这种数据类型,比如,社交网络(用户为节点,关系为边)、交通网络(地点为节点,交通工具行驶路径为边)、化学分子(原子为节点,化学键为边)等等,这时候一般的神经网络便难以适用了。主要原因在于:

  • 图是不规则的,图中的每个节点都有不同数量的相邻节点,导致一些重要的操作(例如卷积)在规则的图像上很容易计算,但不再适合直接用于图;

  • 大部分神经网络模型的一个核心假设是数据样本之间彼此独立。然而,对于图来说,情况并非如此,图中的每个数据样本(节点)都会经由边与图中其他实数据样本(节点)相关,而这些信息不可或缺,可用于捕获实例之间的相互依赖关系。

如下图所示,为一些常见的图数据场景:

04e972edb6b7670fac49a5048a26ad3b.png


如以上所示的社交图、交通网络图等等,广泛地存在于各种现实应用中,因此,图一直是学界及当前工业界的研究热点。而近年来,人们对神经网络在图数据上的扩展越来越感兴趣。在多方因素的成功推动下,研究人员借鉴了卷积网络、循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构,由此,一个新的研究热点——图神经网络应运而生。

图分析任务可以大致抽象为以下几类:

  • 节点分类:基于其他标记的节点和网络拓扑来确定节点标签,比如,在社交网络图中确定哪些人是“大V”。

  • 链接预测:预测缺失链路或未来可能出现的链路,比如,预测社交网络中某两个人可能存在关联,从而进行“可能认识的人”的推荐。

  • 图分类:任务不依赖于某个节点或某条边的属性,而是需要考虑整个图的信息,从而确定整张图的标签,比如,预测某分子结构是否有变异性。

  • 聚类:发现相似节点的子集,并将它们分组在一起,比如,将社交网络中的人群进行分类,从而进行基于社交的商品推荐。

  • 可视化:为了更深入直观地了解网络结构,如何对图进行表示的相关技术。

图嵌入

有时候查阅图神经网络的资料,最常见的名词是图嵌入(Graph Embedding)、图神经网络(GNN),那么这两者有什么关系吗?事实上,图神经网络是一个很宽泛的概念,可以简单地理解为:图神经网络=图+神经网络。而图嵌入发展较早,在早期是一个相对独立的领域,但在近期,人们开始基于图神经网络进行图嵌入的学习,因此可以说,图嵌入的表示应用了图神经网络。

因此,图神经网络的研究与图嵌入密切相关。在介绍图嵌入之前,我们先介绍什么是嵌入(Embedding)?嵌入在数学上是指,将一个空间的点映射到另一个空间,通常是从高维抽象的空间映射到低维的具象空间。嵌入的意义将高维数据转换到低维利于算法的处理。而图嵌入是指在保留图的网络拓扑结构和节点内容信息的基础上,找到一种映射函数,该函数将网络中的每个节点转换为低维度的潜在表示,如下图所示:

2a289a0e3f8bf3e804fb335388d479fb.png

图嵌入的方法大致可以划分为三大类别:

  • 矩阵分解:较传统的方法,计算量大,包括 Locally Linear Embedding、Laplacian Eigenmaps、Cauchy graph embedding、Structure Preserving Embedding、Graph Factorization 等方法。

  • 随机游走:主要借鉴了 NLP 中 word2vec 的思想,包括 DeepWalk、node2vec、 Hierarchical representation learning for network、Walklets 等方法。

  • 深度学习方法:在这里,图嵌入的深度学习方法也属于图神经网络,比如 Structural deep network embedding、Deep neural networks for learning graph representations 等 。

在这jfd里,我们主要介绍基于随机游走的方法。

对于 NLP 中的 word2vec,其本质是根据语料库中单词的共现关系训练出每个单词的嵌入,常用的 word2vec 模型有 CBOW 和 Skip-gram 两种,CBOW 根据上下文预测中心词,而 Skip-gram 根据中心词预测上下文,如下图所示:

f1a98cf6b66e773580eeb080540fad83.png


既然单词可以通过共现关系进行嵌入表示,那么,将图类比成整个语料库,图中的节点类比成单词,是否也可以通过共现关系对图中的节点进行嵌入表示呢?另一个问题则是,对于图,这种共现关系如何描述呢?随机游走的方法主要解决了此问题。

其中,DeepWalk 和 node2vec 是典型代表。DeepWalk 方法首先选择某一特定点为起始点,做随机游走得到点的序列,然后将这个得到的序列用 word2vec 的损失函数来学习,最终训练得到该点的嵌入表示。

以电商中的商品推荐为例,如下图所示,首先根据用户的购物行为(a)构建出一个图网络(b),随后通过随机游走采样的方式构建出结点序列(例如:一开始在 A 结点,A->B,B 又跳到了它的邻居结点 E,最后到 F,得到 "A->B->E->F" 序列);在产生多个序列(c)后,便可以采用 Skip-gram 的模型(d)的方式来得到最终的节点向量,通过最大化随机游走得到的序列中的节点出现的概率来保持节点之间的高阶邻近性。

027bdf05dddd39df4e2706cd1a57a43b.png


而与 DeepWalk 相似,与 DeepWalk 的最大区别在于,node2vec 采用有偏随机游走,在广度优先搜索(BFS)和深度优先搜索(DFS)之间进行权衡,从而产生比 DeepWalk 更高质量和更多信息量的嵌入。

图神经网络类型

在这里,我们将图神经网络划分为以下五大类别:

  • 图卷积网络(Graph Convolution Networks,GCN):是一种非常基本的图神经网络结构,将卷积运算从传统数据(例如图像)推广到图数据,其中的核心是学习一个函数映射,使得图中的节点可以聚合自身特征以及邻居特征,进而生成节点的新表示。GCN 又分为谱域 GCN(Spectral)和空域 GCN(Spatial),其中谱域 GCN 发展较早,主要思想基于图的信号处理,理论方面较难理解,对数学要求较高,但是现在主流方法以空域 GCN(Spatial)为主,因此对前者的学习可量力而行。

  • 图注意力网络(Graph Attention Networks):在图数据学习过程中使用注意力,放大数据中重要的部分的影响,典型代表有 Graph Attention Network (GAT)、Gated Attention Network (GAAN)、Graph Attention Model (GAM)。其中,GAT 和 GAAN 本质上也属于图卷积网络,特点有于它们能够自适应地学习邻居节点的重要性权重。

  • 图生成网络( Graph Generative Networks):顾名思义,此类网络的目标是在给定一组观察到的图的情况下生成新图。图生成网络的许多方法都是特定于领域的。主要方法有,将生成过程作为节点和边的交替形成因素,或者采用生成对抗训练。

  • 图自编码器( Graph Autoencoders):指图嵌入方法,其目的是利用神经网络结构将图的顶点表示为低维向量。

  • 图时空网络(Graph Spatial-temporal Networks):同时捕捉时空图的时间与空间相关性。例如,在交通网络中,每个传感器作为一个节点连续记录某条道路的交通速度,其中交通网络的边由传感器对之间的距离决定。图形时空网络的目标可以是预测未来的节点值或标签,或者预测时空图标签。一般将 GCN 与 RNN 或 CNN 结合使用,进行特定任务的处理。

图神经网络典型应用

图神经网络可以说是处于风口的一项新兴技术,业界普遍认为,其有望解决当前传统神经网络无法处理的因果推理、可解释性等一系列瓶颈问题,是未来神经网络领域的重点方向。那么,图神经网络有哪些应用呢?这里为大家列举一些典型的应用方向。

  • 自然语言处理(NLP)

GNN 在自然语言处理中的应用包括多跳阅读(Multi-hop Reasoning)、实体识别、关系抽取以及知识图谱中的关系补全或预测等。其中,多跳阅读是指在阅读理解的过程中,需要在多篇文档之间进行多级跳跃式的关联与推理,才能找到正确答案,相较传统单文档问答数据集,更具有开放性与挑战性(如下图所示)。要完成多跳推理任务,离不开对语义实体的识别以及实体之间关系的抽取,而 GNN 能对表征语义关系的网络进行整体建模,学习更加复杂与丰富的语义信息,极大地提高了推理能力。

b0542a13b3475ae76bd9481815e0d37f.png


  • 计算机视觉(CV)

GNN 在计算机视觉中的应用包括场景图生成、点云分类与分割、动作识别、视觉推理等多个方面。例如,点云数据是 3D 视觉中一种十分常见的数据表示方法,其通常由一组坐标点(x,y,z)表示,映射了现实世界中物体的特征(如下图所示为巴黎圣母院的点云图),因此存在一种内在的表征物体语义的流行结构,而这种结构的学习也正是 GNN 所擅长的。又如,在动作识别中,识别视频中包含的人类动作有助于从机器更好地理解视频内容。首先,检测视频剪辑中人体关节的位置,再由骨骼连接的人体关节自然形成图表。如此,给定人类关节位置的时间序列,便可以应用时空神经网络来学习人类行为模式。

6a6ddb01fb6a13a8d73f455900e04f60.png


  • 推荐系统

推荐一直是各大互联网公司十分重要的营收手段,如何在推荐系统中有效地融入额外的信息,如用户端社交网络的信息、商品端商品知识图谱的信息等,一直是学界和工业界的研究热点。由于大部分信息本身为错踪复杂的网络结构,图神经网络能够从多方面赋能推荐。比如,用户的购买行为会受到其社交圈的影响,而社交圈可以基于图神经网络进行建模。

  • 生化领域

在生化领域,研究人员可以应用图神经网络研究分子的图结构。例如,化合物是由原子和化学键构成的,天然就是一种图数据的形式,原子为图中的节点,化学键为图中的边,而节点分类、图形分类和图形生成是分子图的三大主要任务,可应用于包括新药物的发现、化合物筛选、蛋白质相互作用点检测、以及疾病预测等任务。

  • 交通网络

随着现代化的进程,交通拥堵越来越成为现代城市建设的一个热点难题。准确地预测交通网络中的交通速度、交通量或道路密度,在路线规划和流量控制中至关重要。基于图的时空神经网络方法或许可用来解决这些问题。例如,将交通网路建模为时空图,节点为放置在道路上的传感器,边由阈值以上成对节点的距离表示,每个节点都包含一个时间序列作为特征,目标是预测一条道路在时间间隔内的平均速度。

随着神经网络在各方面的重要积淀,GNN 快速发展,除以上领域外,图神经网络还可应用于其他问题,如工业风控、社会影响预测、对抗性攻击预防、电子健康记录建模、脑网络、事件检测等更广领域、更多层面的场景任务。

写在最后:如何上手

上文主要讲述图神经网络的一些基本概念,可能过不了几天你还是忘了什么是图神经网络,因为缺少实践。这里推荐一个开源库 PyTorch Geometric ,这是基于 PyTorch 构建的几何深度学习扩展库,将大多数近期提出的图神经网络层都整合到了此框架,可以通过其快速构建图神经网络,还提供一系列经典图数据的下载接口,是上手图神经网络的良好工具,你可以试一试它。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

bb0ab883df75e007c3ff086f121d5a35.png

END -

46959e6f456ff5e08b4b758b7ba6b766.png

8078a82c797dcf9922656f617c54be1f.png

NLP文本分类 落地实战五大利器!

2021-09-10

5837f0078d60c9aec6e26ddfa953aeaf.png

研究生期间如何成为科研大佬?

2021-09-07

4ec80b41b9af3a44a8611968f38d346c.png

三大视角,聊聊我眼中的广告系统

2021-09-06

e0fc5a595dbd3ca9761c88e297b6ebc9.png

谈谈文本匹配和多轮检索

2021-09-05

d280a5aabdb6a87fcf083cf90e9624af.png

777b1987d6ad2b6d5b1250c7ab462930.gif

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/306185
推荐阅读
相关标签
  

闽ICP备14008679号