图神经网络(一)
在文本、图像等非结构数据的学习中,提取结构的推理,如句子的依赖树和图像的场景图,是一个需要图推理模型的重要研究课题。图神经网络 (GNN) 是一种连接模型,它通过图的节点之间的消息传递来捕捉图的依赖关系。
与标准神经网络不同的是,图神经网络保留了一种状态,可以表示来自其邻域的具有任意深度的信息。图是一种数据结构,它为一组对象(节点)及其关系(边)建模。图分析作为一种用于机器学习的独特的非欧几里得数据结构,主要集中在节点分类、链接预测和聚类等方面。
1、图神经网络(GNN)
1.1 图
在计算机科学中,图是由顶点和边两部分组成的一种数据结构,顶点通常也被称为节点 (nodes)。图G可以通过顶点集合V和它包含的边E来进行描述:G=(V,E)。边可以是有向的或无向的,这取决于顶点之间是否存在方向依赖关系。
1.2 图神经网络
图神经网络是一种直接作用于图结构上的神经网络。GNN的一个典型应用是节点分类,本质上,图中的每个节点都与一个标签相关联,我们希望预测未标记节点的标签。它通过学习得到每个节点的d维向量(状态)表示为h_v,同时包含其相邻节点的信息。
详情请见博客:https://blog.csdn.net/u012325865/article/details/102466223
GNN是学习图的表示的模型,而图是一种用来刻画事物之间关联关系的数据结构。要讨论GNN在NLP里的应用,首先要思考哪里需要用到图。
第一个很直接用到的地方是知识图谱(knowledge graph, KG)。 KG里面节点是entity,边是一些特定的semantic relation,天然是一个图的结构,在NLP的很多任务中都被用到。早期就有很多在KG上学graph embedding然后做link prediction之类的工作(代表作TransE等),有GNN之后自然可以用来学KG上的embedding,做knowledge base completion[1][2]。然后利用KG可以帮助很多别的task,比如zero-shot learning[3](虽然这不是一篇NLP paper),question answering[4]等等。另外一个方向是不依赖已有的KB直接从文本中构建entity的graph的,去学entity之间的relation、coreference等关系,有一些挺好的工作[5][6][7]。这个时候的GNN其实就是fully-connected graph上的self-attention,思想是一样的。拿建出来的graph可以再去做别的task比如generation[8][9]。
第二个地方是句法结构(dependency structure),虽然一般是树结构,但是还是可以用图的模型来处理,或者有的时候加一些边就变成了图。这种linguistic knowledge在很多地方大家会认为有帮助,比如关系抽取,从以前的Tree LSTM[10]到Graph LSTM[11],也可以用GCN[12];比如semantic role labeling[13][14](后面这篇是EMNLP best paper,上面说的self-attention 就是fully-connected graph的GNN);还有machine translation[15]。
[1]Modeling Relational Data with Graph Convolutional Networks https://link.springer.com/chapter/10.1007/978-3-319-93417-4_38
[2]One-Shot Relational Learning for Knowledge Graphs https://www.aclweb.org/anthology/D18-1223
[3]Zero-Shot Recognition via Semantic Embeddings and Knowledge Graphs http://openaccess.thecvf.com/content_cvpr_2018/html/Wang_Zero-Shot_Recognition_via_CVPR_2018_paper.html
[4]Open Domain Question Answering Using Early Fusion of Knowledge Bases and Text https://www.aclweb.org/anthology/D18-1455
[5]Multi-Task Identification of Entities, Relations, and Coreferencefor Scientific Knowledge Graph Construction http://ssli.ee.washington.edu/~luanyi/YiLuan_files/EMNLP2018_YL_sciIE.pdf
[6]A General Framework for Information Extraction using Dynamic Span Graphs https://arxiv.org/pdf/1904.03296.pdf
[7]Graph Neural Networks with Generated Parameters for Relation Extraction https://arxiv.org/pdf/1902.00756.pdf
[8]Text Generation from Knowledge Graphs with Graph Transformers https://arxiv.org/pdf/1904.02342.pdf
[9]Coherent Comment Generation for Chinese Articles with a Graph-to-Sequence Model https://arxiv.org/pdf/1906.01231.pdf
[10]End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures https://www.aclweb.org/anthology/P16-1105
[11]Cross-Sentence N -ary Relation Extraction with Graph LSTMs https://www.cs.jhu.edu/~npeng/papers/TACL_17_RelationExtraction.pdf
[12]Graph Convolution over Pruned Dependency Trees Improves Relation Extraction https://aclweb.org/anthology/D18-1244
[13]Encoding Sentences with Graph Convolutional Networks for Semantic Role Labeling https://arxiv.org/pdf/1703.04826.pdf
[14]Linguistically-Informed Self-Attention for Semantic Role Labeling https://www.aclweb.org/anthology/D18-1548
[15]Graph Convolutional Encoders for Syntax-aware Neural Machine Translation https://arxiv.org/pdf/1704.04675.pdf
[16]Revisiting Semi-Supervised Learning with Graph Embeddings https://arxiv.org/pdf/1603.08861.pdf
[17]Graph Convolutional Neural Networks for Web-Scale Recommender Systems https://arxiv.org/pdf/1806.01973.pdf
[18]GraphIE: A Graph-Based Framework for Information Extraction https://arxiv.org/abs/1810.13083