本文将从三个角度来理解GCN的概念,并介绍GCN在NLP中的相关应用。文中所有图片都来自引用文档,侵删。有道云笔记的格式更加,查看可以点击这里。
本文结构如下:GCN的理解构造法
均值法
谱图法
GCN在NLP中的相关应用文本分类
角色标注
翻译
关系抽取
事件抽取
知识图谱
总结
参考文献
GCN的理解
构造法【1】
GCN层的输入通常是图的结构与每个节点的特征,输出则是节点层面的结果或者图层面的结果(有时候为节点层的池化)。通常我们会使用邻接矩阵
表示图的结构,特征
表示各个节点的特征值,
表示模型的输出。每一个神经网络层都可以写作:
其中
。
根据输入与输出格式,可以构造一个简单的形式:
这个形式简单且有效,但其有两个限制。一是每个节点只考虑其邻居节点(未考虑自身),二是矩阵A是未标准化的,连乘会改变特征的尺度。所以可以进行以下优化:
这样我们就得到了【2】中GCN模型的形式。其中
,D是
的度矩阵。但是,这种角度总有一种偷看答案的感觉。
小实验【略】
关于GCN限制的分析,可以参考【3】
均值法【4】
如果将卷积理解为根据周围的点计算均值,那么图卷积可以理解为根据邻居节点计算均值。 那么可以得到一个简单的形式:
计算均值时考虑自身的特征,则可以表示为:
图中每个节点的邻居节点的个数并不一致,为了减少节点数目的影响(上面只是求和并不是求平均),我们对其进行归一化:
或者:
这样,我们同样得到了【2】中的形式,其中
。
谱图法【5】
根据卷积定理,我们可知,f与g的卷积等于f与g的傅里叶变换乘积再逆变换。
类似的,我们将图结构数据进行傅里叶变换,乘积之后再逆变换回来得到图卷积。因为难以对图数据进行傅里叶变化,所以我们将某种线性变换作为图傅里叶变换的替换。那么图卷积可以表示为:
下面我们对图卷积公式进行数学推导及近似,其中将涉及卷积定义、卷积定理、傅里叶变换、拉普拉斯算子、拉普拉斯矩阵、对角矩阵特征分解、切比雪夫多项式近似等概念。
卷积定义:
卷积定理(证明见【6】):
傅里叶变换:
傅里叶变换可以将时域数据转换到频域数据上,【7】是一个非常棒的关于傅里叶变换的科普文。本文接下来将基于线性空间来对傅里叶变换进行解释,具体参考【8】。
域:
由一个集合和四则运算构成,在集合内两元素进行四则运算(不含除0)结果还在集合里,常见有理数域,实数域,复数域。
线性空间:
若F是一个域,V是一个集合。如果V中元素可做加法(
),V和F可以做数乘(
),则V称为域F上的一个线性空间。V中的元素可以称为向量。
线性组合:
取V中一些向量
,和F中一些数
,然后计算
就叫做
的一个线性组合。如果仅当
都为0的时候,
才为0,此时称这些向量线性无关。
基与维数:
V中的一组向量的线性组合构成一个线性空间,如果这一组向量是线性无关的,且构成的线性空间恰好是V,则称这些向量为V的一组基,向量的个数叫做V的维数。
内积:
可以理解为将空间中两个元素映射为域中一个元素的一个二元函数。在闭区间的连续函数,可以定义内积为:
如果内积为0则称两向量正交。
傅里叶基:
如果有一个空间有一组两两正交的基,则称为一组正交基。现有这样一个线性空间,其由定义在
上的所有平方可积的函数构成,我们不加证明地给出:这个空间的每个向量都可以表示为一组基的无限线性组合,常取傅里叶基:
容易证明这些基是正交的,且不能找到另外一个向量与它们全正交。
傅里叶级数:
傅里叶级数就是将空间(
上的所有平方可积的函数)中的向量通过傅里叶基的线性组合方式写出来:
若将区间变为[-a,a],相当于将每个函数进行拉伸,则基变为:
傅里叶级数变为:
傅里叶变换:
当区间
时,求和可以变为积分表示,具体证明见【8】,公式则变为:
拉普拉斯算子:
拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度的散度:
拉普拉斯算子在物理学等方面中有着重要意义,具体可以参考【9】。【10】中表明,傅里叶变换是一种特殊的变换,因为傅里叶基是常数系数微分算子的特征函数,也是拉普拉斯算子的特征函数。
拉普拉斯矩阵:
在图中,定义D是N*N的度数矩阵:
A是N*N的邻接矩阵:
拉普拉斯矩阵定义为:
拉普拉斯矩阵本质上就是图上的拉普拉斯算子,证明见【11】。由定义可知,拉普拉斯矩阵是实对称矩阵,因此有着良好的性质:可以进行特征分解,有n个特征向量及其对应的特征值,所有的特征值都大于等于0且最小的特征值为0(易证,此时特征向量可以为全1的向量)。其特征分解可写为:
图傅里叶变换【12】:
经典的傅里叶变换为:
将函数表示为傅里叶基的求积,其基为拉普拉斯算子的特征函数:
类似的,我们定义图傅里叶变换表示为:将线性空间的一个向量表示为一组基的线性组合,其基为拉普拉斯矩阵的特征向量。
也可以写为:
同样的我们定义图傅里叶变换的逆变换为:
图卷积:
根据卷积定理,我们可以将图卷积定义为:将两个矩阵做图傅里叶变换的乘积再做逆图傅里叶变换,即:
GCN层的演变:
【13】中将卷积核的图傅里叶变换直接参数化,并用对角矩阵来降低其复杂度,形式如下:
【13】成功地将图卷积应用到神经网络上,但也有着几个限制:1、它是非局部性连接,2、卷积核参数的个数是图的维度n,3、前向传播计算复杂度是
,4、如果一个样本一个图,那么每个样本都要进行图拉普拉斯矩阵的特征分解运算。 因此,【14】提出了多项式参数卷积核:
进而可以得到:
此时卷积核参数个数由n减少为k个,并且具有了局部链接性质,并且并不需要对拉普拉斯矩阵进行特征分解,没有了复杂的特征向量相乘操作,但拉普拉斯矩阵的幂运算依然是高复杂度的,所以在【14】中作者进行了进一步优化,使用切比雪夫多项式(详见【15】)来进行近似,具体公式如下:
因为切比雪夫多项式要求定义域在[-1,1]之间,所以将拉普拉斯归特征向量一化为:
即拉普拉斯矩阵归一化为:
这样就降低了前向传播高复杂度的问题。 而【16】在上面的基础上进行了进一步的简化,如果将上面的K设置为1,那么我们就得到了一个线性的图卷积模型,此时我们可以通过叠加多层GCN层来达到经典卷积层的功能。我们进一步假设
,因为我们可以通过训练过程中变化参数的值来适应。那么此时图卷积公式可以近似为:
两个参数是无约束的,设置其进行参数共享,所以我们令:
然后可以得到:
为了防止学习过程中的梯度爆炸(
),我们进行重归一化,令:
这样整个卷积结果变为:
GCN在NLP领域的相关应用
文本分类
SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS【2】
这篇文章主要是对图中的节点做分类,也就是整个数据集构成一个图,每一个样本是一个节点,利用有标签的节点训练整个网络,最终预测没有标签的节点,自然的形成了一种半监督式的训练。论文中一个实验数据是引证文档,每篇文档作为一个节点,文档间的引用作为边,这样所有的文档构成一个大图。文中表示,相比于目前的半监督学习方法,本文的方法取得了明显地提高。
Graph convolutional networks for text classification【16】
本文是基于GCN对文本进行分类,主要创新点是利用所有文档构成了一个图,然后根据【2】中的方法来进行文本分类。
文档图的构建过程如下:先选定一个长度为n的窗口,每篇文档可以划分为多个有部分重叠的窗口。文档中每一个词都是一个节点,每一篇文档也是一个节点,文档与文档之间没有边,如果某个词存在与某个文档中则他们之间有边,如果某两个词在同一个窗口中则他们之间有边。边上的权重值由上面公式给出。
论文实验表明,随着标签数据的减少,跟目前最优的分类方法比较,本文的方法显示出了更好的鲁棒性。
角色标注
Encoding Sentences with Graph Convolutional Networks for Semantic Role Labeling【17】
本文的GCN层是将【2】中的标准化给忽略了,也就是说
。
表示节点u到节点v的方向,分为三种方向,u是头节点v是尾节点是一个方向,u是尾节点v是头节点是一个方向,u跟v是一个节点是一个方向。因此,每层GCN的参数W被分为三个。除此之外还添加了门控因子
,来控制节点u流向节点v的信息量多少。文本实验表示,取得了当前最好的SRL效果。
翻译
Graph convolutional encoders for syntax-aware neural machine translation【18】
本文主要应用GCN修改了翻译模型的encode过程,应用了依存树作为图结构。
Exploiting semantics in neural machine translation with graph convolutional networks【19】
本文主要应用GCN修改了翻译模型的encode过程,应用了语义角色作为图结构。
关系抽取
Graph Convolution over Pruned Dependency Trees Improves Relation Extraction【20】
文本中的图卷积方式为:
,标准化方式跟【2】中有所不同。主要事利用GCN获取每个词的embedding,然后预测两个事件间的关系。论文实验表明,本文方法由很好的互补性,结合其他方法可以提高当前最优结果。
Attention Guided Graph Convolutional Networks for Relation Extraction【24】
原论文中,attention公式(2)有误,【】中的值是不需要的,也就是说,本文中使用了各个节点间计算attenetion的系数来替代邻接矩阵。论文模型中还添加了稠密连接层,如公式(3)(4)所示。最后预测与【20】有所不同,【20】使用了整个句子的embedding,而本文中使用的是剔除了实体之后的句子embedding。本文实验表明,文中提出的AGGCN模型是当前最优的关系抽取模型。
事件抽取
Graph convolutional networks with argument-aware pooling for event detection【21】
1、以词向量、位置向量、实体类型向量初始化encoding层
2、通过biLSTM层
3、基于依存树进行图卷积操作
4、基于实体引用进行池化操作
5、前馈神经网络进行最后预测
论文实现表明,本文取得了当前最优的事件检测结果。
Jointly Multiple Events Extraction via Attention-based Graph Information Aggregation【22】
本文中的GCN层跟【17】中的一样。文本中将事件抽取的两个任务(事件触发器与事件元素)进行联合训练,其loss由公式(2)表示。论文实验表明,本文的方法跟当前最优结果接近。
知识图谱
Cross-lingual Knowledge Graph Alignment via Graph Convolutional Networks【23】
本文主要处理多语言知识实体的对齐问题。
表示实体结构的信息,
表示实体属性的信息。邻接矩阵根据公式(2)重新计算权重。公式(3)是计算两个实体间的距离(用结构信息与属性信息经过GCN层之后的向量值来计算),用来判断两实体是否对齐。公式(4)(5)分别是结构信息与属性信息的loss,分别使用SGD来优化,S表示已知对齐的实体集合,
表示随机获取的不对齐实体集合,通过随机改变对齐实体中的一个得到。论文实现表示,所提模型获取当前最优的知识对齐结果。
总结:
GCN的应用的三个层次,节点层次、边层次、图层次【25】。边层次的处理一般会转化为节点层次的处理:将原有的边转为新的节点,然后在新节点与原来的两端节点间各建立一条新边,重而构成新的图。
促进GNN(GCN)发展的动机: 1. 图类型的数据结构应用广泛,包括社会科学(社交网络)、自然科学(物理/生物/化学)、知识图谱等其他研究领域。 2. CNN在几乎所有领域的成功应用,但其难以处理非欧数据。 3. 对图节点、边以及子图的嵌入学习。 4. 标准神经网络的输入都要求有序的,而图数据是无序的,GNN可以处理这些数据。 5. 图中的边表示了两个节点间的依存关系,标准神经网络仅仅把它作为节点的一个特征处理,GNN可以根据图结构传播信息而不是把它作为特征的一部分。 6. 最新的研究表明,人类的高级智能以及推理过程是基于图结构的。
GCN还有很多关于图像、科学领域的应用,更多关于GCN或则GNN的内容,可以参考【26】。
参考文献:
Original: https://blog.csdn.net/weixin_39568659/article/details/111763281
Author: weixin_39568659
Title: gcn在图像上的应用_GCN的概念与应用
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/568942/
转载文章受原作者版权保护。转载请注明原作者出处!