1.自然语言处理相关的应用
文本分类是自然语言处理中的一个经典应用,图神经网络常用的标准数据集里就包含引用网络中论文的分类,但是作为机器学习领域的通用模型测试数据集,它们并没有充分利用文本本身的结构(每个文档只是用词袋特征来表示),而更注重文档之间的关系。在自然语言处理领域, 在很多情况下,并没有像引用关系这么明显的图结构,因此专家的侧重点就放在了怎么寻找和利用潜在的图结构信息上。文档中句子之间的关系,词之间的关系 都可以被利用。例如,Peng 等人把文档重构成词组成了多个子图;Sentence LSTM则在词的连接之外把整个句子看成一个额外的节点;TextGCN对整个数据集进行重构,得到一个词——文档混合图,这样文档分类问题就变成了一个图上的节点分类问题。
我们以TextGCN 模型为例,介绍图卷积网络在文本分类任务中是如何运作的。在TextGCN 模型中构建图所用的关系主要是词和词,以及词和文档的共现关系。具体来说,对于一个词或一个文档,它们之间的连接被定义为:
其中,PMI(i,j) 是词的点对互信息。为了得到点对互信息,我们在每一个词周围定义一个滑动窗口,W 为所有滑动窗口的数量 ,W(i) 为包含词i的滑动窗口的数量,而W(i,j)为既包含i 又包含j 的窗口数量。
语义角色标注也是自然语言处理的一个传统任务,它是一个浅层语义分析技术:给定一个句子,找出句子中各成分与谓词的关系,以及它们相应的语义角色(如施事者、受事者、时间、地点)。句子的语法在语义角色标注中起到很 重要的辅助作用,于是Marcheggiani和Titov提出了Syntactic GCN方法,来利用句子的语法结构。通过依存句法分析,先得到句子的语法结构,然后将句子中的词连接起来,构造一个有向的语法图,语义角色标注也就变成了语法图中的分类问题。
这个语法图和普通的图有两点区别:
(1)有向性。
(2)边本身具有特征信息,因此 Syntactic GCN对图卷积网络模型做了一 些小的改进。它把节点的状态更新为:
其中为节点u 在第k 层的表示,L(u,v) 为节点u 和v 之间的语法关系。 如果每种关系的边都有一个自己的参数矩阵W, 那么参数过多可能会影响训练的效率和结果。因此,在参数的定义中只考虑边的有向性dir(u,v), 即WL(u,v)=Vdir(u,v)。再加上一个可以控制开关的门gu,v = f(hu,dir(u,v),L(u,v))来降低错误语法关系的影响,就得到了最后的形式:
Syntactic GCN不仅可以用来做句法标注,而且适用于其他以句子为单位的任务。例如,Basting 等人将它用在机器翻译中,取代原来的编码器,取得了很好的效果;Nguyen 等人用它做事件检测。当然,句法树本身并非一 要用Syntactic GCN来学习,其他包含边信息的图神经网络也同样可用。例如, Beck 等人就用门控图神经网络做机器翻译的编码器。另外,句法树也可以 被改动,来适应不同的任务:在实体关系抽取的任务中,只有实体之间的关系是更重要的,于是Zhang 等人对句法树进行修剪,以去除噪声干扰,只保留两个实体;Xu 等人同时考虑句法树和时序关系,对每个句子构建一个新的混合图,从而更好地利用句子本身的自然语序,得到一个更好的句子编码器和Graph2Seq模型,并用在了语义分析任务中。
除了词/文档的共现关系、句法依存关系,自然语言处理中还包含大量不同类型的图。例如,实体之间的“提及”关系可以用做阅读理解的辅助;AMR (Abstract Meaning Representation, 抽象语义表示)可以被当成图进行编码,从而提高AMR2text 任务的准确性;知识图谱中的图也可以作为额外的信息来辅助完成问答任务等。图神经网络并不是只能当成编码器,在语义分析等任务 中,由于生成的是具有很好的结构的逻辑语言,可以把它们当成图结构对其进行解码,于是我们可以用图生成模型得到更好的生成效果。
2.推荐系统上的应用
在介绍大规模图学习的章节里我们提到过PinSAGE,这是工业界第一次公开地将图神经网络应用到自己的产品中。PinSAGE的图嵌入算法主要基于GraphSAGE, 在具体的实现上则充分考虑了训练的效率,训练充满了大量的工程技巧。整个训练过程以批处理的形式进行,对于每个目标节点,我们对它周围的邻居进行重要性采样,然后经由图中右上角所展示的两层信息聚合(图卷积),得到节点的嵌入表示。
(1)不同于很多图神经网络模型,PinSAGE不需要运行在整个图上。回想图卷积网络的公式可知,在原始的图卷积网络中,需要存入整个图的邻接矩阵,但是PinSAGE采取了批处理的方式,只需要从训练数据节点周围随机游走来动态地得到需要的采样的邻居,这大大减少了计算量。另外,构建批数据的方式采用了生产者消费者模式,用CPU进行邻居的采样,用GPU进行矩阵的并行运算,这最大化地利用了计算资源。
(2)虽然基于GraphSAGE, 但不同于GraphSAGE的完全随机的采样,Pin-SAGE在采样时考虑了节点的重要性。被采样的邻居的重要性通过随机游走的访问数得到,这可以提高采样效率。
(3)模型训练完成后,如果直接使用PinSAGE的批处理算法,则会有大量的重复计算,因此在训练完成之后进行MapReduce (MapReduce 是一种编程模型,用于大规模数据集(通常在大型集群上)的分布式处理)推断,来避免节点重复地计入计算过程。
(4)在得到节点嵌入之后,利用局部敏感哈希算法进行高效的K- 近邻检索。PinSAGE 侧重于工业实现,它的模型本身做了相当程度的简化。例如,它把所有的节点当成同类型的节点,这样可以直接使用同质图的嵌入方法进行计 算。推荐系统的数据本质上是异构图,不仅节点具有不同的类型,节点之间的关系也可能具有不同的特征。区分这些节点的类型和引入边的特征在很多情况下都是必要的,因此更多推荐系统的策略是采用异构图的图神经网络算法,如 Fan 等人就提出了GraphRec 这种异构网络上的推荐系统。
3.计算机视觉相关的应用
在计算机视觉领域,图神经网络主要应用在语义分割、视觉问答、场景图的表示和生成等方面。在图像上,图结构本身并没有那么明显,但是我们仍然可以找到一些空间关系或者语义关系。传统的卷积神经网络主要利用的是一个小邻域上的本地信息,对于远程的关系处理起来很难,但是 语义分割的任务上正好大量存在着可能的远程关联。Liang 等人在图像中引入了一种叫作超像素的节点,这些超像素节点通过空间关系(距 离)建立联系,形成一个图,然后图LSTM(Graph LSTM)的模型对这些超像素构建的图进行建模,从而更好地利用远程的关联性辅助本来的分割任务。
场景理解和场景图的生成是视觉中另一个重要的任务,Yang等人提出了一个框架,它利用图神经网络来更新生成的场景图中目标物体和关系的表示, 从而矫正场景图的预测。我们先识别出图中所有的目标物体, 并抽出它们之间所有可能的关系,这样就得到了一个以图像中的目标物体为节点,任意两个节点之间都有关系的稠密图。对这个稠密图进行剪枝稀疏化,就得到了一个潜在的场景图表示,但是这个场景图中的每个节点都是由图像直接生成的,这样就少了一些互相的联系和规约。于是我们可以用一个图神经网络来建模这个场景图,重新学习节点的表示,这样就可以把节点周围的其他实体的信息也纳入。最后,根据图神经网络学到的新的表示重新预测每个节点代表的目标物体及它们之间的关系,这样场景图的预测就变得更加准确。
4.其他应用
图神经网络的强大表征能力使得它在各个领域都受到欢迎。在很多任务上, 我们都可以找到潜在的图结构,利用图神经网络得到更好的结果。例如,将图神经网络用在交通预测、辅助编程、选择规划算法、金融领域的反洗钱、反欺诈等方面。甚至很多看起来不相关的领域都有图神经网络的身影, 例如,图神经网络可以用来解组合优化问题[,可以用来进行小样本学习。
5.完结
(1)构建/利用图结构
在很多任务中,图数据是给定的,如引用网络、社交网络、推荐系统的图数据等,但是在更多情况下,图结构并不是非常明显,这就需要我们思考怎么构造我们需要的图,将一个传统的问题转化成一个图上可以解决的问题:节点分类、 链路预测等。我们需要思考我们的目标是什么,可以利用的关系是什么?
以用于文本分类的TextGCN 模型为例,我们的目标是文档分类,文档可以作为节点,于是我们构造了一个词与文档的关系图;而为了生成抽取式摘要, 我们的目标是句子,那么可以构建类似的句子一文档图。在图像语义分割时,我们想利用远程的依赖关系,所以我们构建了本不存在的超像素空间关系图;在语义角色标注中,由于句法关系起到了很重要的作用,我们利用句法树构建了句法树图。甚至在有些任务上没有办法得到一个确定的图,那么可以将图作为一个可学习的因子,通过下游任务自动学出一个最佳的图。如Kipf等人提出的神经关系推理模型就自动学习了多 时间序列中智能体之间的交互图。
(2)图作为外部知识
虽然一些任务本身和图没有关系,但是我们可以找到一些图结构的辅助信 息,典型的如知识图谱。通过引入知识图谱来帮助其他任务也是一个被广泛关注的话题。之前介绍的药物交互图可以作为外部知识辅助人们进行药物推荐;实体关系图可以作为额外信息帮助人们进行阅读理解。
(3)创造新的图
创造新的图在自然语言处理领域主要存在于文本生成或语义解析相关的任务中,由于要生成的文本或逻辑语言可以被认为是一个图结构,我们需要开发基于图神经网络的解码器。在生化领域,创造新的图主要用来生成新的分子,从而帮助发现新的药物。在计算机视觉领域,也有场景图的生成等图生成网络。
本章列举了图神经网络在各领域的应用,但也缺失了某些主题,如图神经网络在物理系统、在安全(对抗攻击)、可视化等领域的应用。