基于转移神经网络的中文AMR解析

2019-05-24 06:41吴泰中周俊生曲维光顾彦慧
中文信息学报 2019年4期
关键词:分类器语义解析

吴泰中,顾 敏,周俊生,曲维光,李 斌,顾彦慧

(1. 南京师范大学 计算机科学与技术学院,江苏 南京 210023;2. 南京师范大学 文学院,江苏 南京 210097)

0 引言

语义是语言形式所要表达的内在含义,如何实现对自然语言句子的完整语义理解,是人工智能和自然语言处理研究领域的一个重要研究目标[1]。从某种意义上来讲,自然语言处理研究的最终目标是在语义理解的基础上实现各类自然语言处理的应用任务。然而,由于语义的表示形式多样,传统的句子语义解析通常针对一个特定领域设计一套形式化意义表示语言[2-3],高度的领域相关性使得语义分析的难度增大,同时对语义分析模型的泛化性提出了更高要求。

针对整句的逻辑语义表示规范和语料库缺失的问题,Banarescu等于2013年提出了抽象语义表示(abstract meaning representation, AMR)[4]。AMR 是一种全新的、领域无关的句子语义表示方法,它将一个句子的语义抽象为一个单根有向无环图。相比于英文AMR标注,中文AMR标注的研究起步较晚[5]。Li等基于英文AMR的框架结构,将AMR语义表示体系引入到汉语中,同时也充分考虑了汉语与英语的表达差异性,重点解决了AMR概念和词语对齐的问题,初步建立了一套汉语抽象语义的表示方法和标注规范[6],并发布了对应的AMR标注语料库。由于中文具有特有的动补结构、量词、重叠式、离合词、省略等现象,因此中文AMR的标注相对复杂。图1给出了中文句子的AMR 图表示示例。句子中的词语与AMR图中的节点对齐,AMR图中的边及边的标签表示了其语义层面的关联。在AMR图中,一个语义概念通常对应一个节点,而一个专有名词往往对应于一个子图结构,概念之间的语义关系则对应于相应节点之间的有向边。

在AMR标注规范和AMR语料库的基础上,研究人员尝试通过不同的AMR解析算法实现句子到AMR图的自动转化。AMR标注规范的提出和AMR解析算法研究推动着自然语言处理上层应用的发展,例如: 文本摘要、信息抽取、标题生成等[7-8]。

随着神经网络模型的应用,与基于统计学习模型的英文AMR解析相比,基于神经网络模型的英文AMR解析在模型架构、特征表示和学习、模型训练等方面都有了一定的提升。神经网络模型解决了特征稀疏表示导致的参数爆炸问题,实现了组合特征的自动学习,避免了繁琐的特征工程。低维稠密的特征表示在向量空间上呈现出共性或相似性,为模型的训练提供了更适合的特征,同时为多任务学习提供了统一底层表示。

针对中文AMR解析任务,本文提出了一个基于转移神经网络的增量式中文AMR解析模型。转移解码算法在依存分析和英文AMR解析中应用广泛且取得了一定的效果[9-11]。中文AMR表示是一种复杂的图结构形式。因此,本文引入基于双栈的扩展Shift/Reduce解码算法,以实现完整AMR图的生成。

此外,汉语表达具有省略、隐喻等复杂的语义特点,如何有效地进行语义表示学习是一个亟待解决的问题。因此,本文在基于转移解码方法的中文AMR解析基线系统的基础之上,通过依存路径语义关系表示学习和上下文相关词语语义表示学习,强化了特征的表示。中文AMR中允许补全句子中省略或者隐含的概念,且同一个词语在不同的语境下语义各不相同,其对齐的概念也不相同。如图1(b)中,AMR图中补全了概念节点“person”。概念之间语义关系边的构建依赖于概念识别的结果,概念识别的性能直接影响AMR解析模型的性能。针对概念识别和消歧问题,本文采用序列化标注思想,基于深度双向LSTM-CRF模型实现概念识别和消歧,以进一步提高中文AMR解析模型的性能,为语义分析及上层的应用奠定基础。

1 AMR解析

AMR解析旨在将句子解析成对应的AMR图。AMR 图中的每个节点表示一个语义概念,语义概念可以是词语、PropBank framesets或特殊的关键词。概念片段可以是单个概念节点,也可以是由多个概念节点连接组成的子图结构,如图1所示,虚线框内的子图表示一个概念片段。有向边的标注表示的是两个概念之间的关系。如图2所示,节点“我”与节点“买-01”之间的边标记为“:arg0”关系,表示主谓关系。节点“黄金”与节点“点儿”之间的边标记为“:quant”关系,表示数量关系。

图2 句子“我想买点儿黄金”对应的AMR图示例

中文AMR具有如下特点:

(1) AMR的基本组成单元是概念,而非词语。AMR 图中的每个节点表示一个语义概念,语义概念可对齐到句子中的词语上。

(2) 在AMR图中,会出现一个子节点有多个父节点的情况,该子节点被称为可重入节点(reentrant nodes),对应的边称为重入边(reentrant arcs)。如图2中节点“我”有两个父节点“买-01”和“想-02”。

(3) AMR图中存在非投影现象。非投影(non-projective)现象指将图结构表示的句子中的每个词语向下垂直投影形成的线性词序列同句子的词语排列顺序不一致,即从AMR图上看,边之间存在交叉情况。如图2(a)中虚线框内的节点对齐到图2(b)中句子中虚线框内词语,将AMR图投影成线性词序列顺序时,节点“想-02”和节点“我”之间的边与节点“Root”和节点“黄金”之间的边存在交叉。

1.1 英文AMR解析

在英文AMR解析中,传统的基于统计学习模型的AMR解析按照解析过程与解析策略的不同,可以分为基于图的解析方法、基于转移的解析方法、基于组合范畴语法的解析方法以及基于机器翻译的方法。其中,基于图的解析方法和基于转移的解析方法最为常见。Flanigan等在2014年提出了第一个AMR解析器JAMR[12],这是一种基于图的解析方法,将AMR解析任务划分为两个子任务: 概念识别和关系识别。概念识别将输入的句子中的词语或词串映射到AMR图中的概念片段。通过半马尔科夫模型实现概念片段的序列化标注,在概念识别输出的概念片段序列基础上,通过最大生成连通子图(maximum spanning connected subgraph, MSCG)算法从概念片段之间所有的关系中搜索具有最大得分的子图。以CAMR[13]为代表的基于转移的解析方法则通过预测转移动作,生成AMR图。

然而,传统的基于统计的模型过度依赖人工特征工程获取复杂的组合特征,且组合特征造成模型参数空间过大,造成了AMR解析的时间、空间效率较低。借助于神经网络模型强大的表示学习能力,Damonte等人将神经网络模型引入AMR解析[11]。

根据特征提取方法的不同,基于神经网络的AMR解析模型可分为组合特征提取模型、基于循环神经网络(recurrent neural network,RNN)的特征提取模型和基于卷积神经网络(convolutional neural network,CNN)的特征提取模型。

为了捕捉特征与模型评分之间的非线性关系,Damonte等使用数值型特征和embedding特征的组合[11],通过隐藏层进行特征的连接,形成组合向量表示。

为进一步简化特征设计,Foland等提出的AMR解析模型中将RNN引入模型[14]。Ballesteros等人则使用Stack-LSTM(stack long short-term memory)进行AMR状态表示学习,不借助外部资源获取特征表示[15]。Barzdins和Gosko在AMR解析中首次使用了序列到序列(sequence to sequence, Seq2seq)模型,他们使用深度优先算法序列化AMR图,通过LSTM编码中间表示,再通过解码获得序列化的AMR表示[16]。但是由于数据稀疏问题,其精度远低于基于统计的模型。在此基础上,Konstas等优化了表示学习,同时利用大规模未标注数据集作为外部资源进行自训练,提高了AMR解析效果[17]。

对于AMR图而言,图中的概念节点可以对齐到句子中的词语。英文单词的词缀、词根含有丰富的语义信息。如单词“unprecedented”中,前缀“un”在AMR中需要标注为“:polarty”关系。虽然词向量可以在语义空间上描述一个单词的信息,但是对于词缀、词根所含有的信息可能无法清晰地表达。所以,Wang等使用CNN编码字符特征向量[18],获取字符级别的特征,以提高AMR解析性能。

1.2 中文AMR解析

与传统的基于统计学习模型的英文AMR解析类似,Wang等提出了一种通过对依存树进行转换的方法来实现中文AMR解析[19]。该模型主要包括两个步骤: 首先,使用现有的依存解析器将句子生成相应的依存句法树;然后,采用转移算法将依存树转换为AMR图。该模型设计了9种转移动作,通过对转移动作进行打分,利用贪心解码算法从转移动作集合中选择得分最高的动作对依存树进行相应的动作,从而实现从依存树到AMR图的转换。然而,该模型依赖于依存树作为中介,依存解析中的错误会直接传播到AMR解析中。

结合中、英文AMR解析的研究现状,针对中文AMR解析任务,本文提出了基于转移神经网络的中文AMR解析模型。

2 基于转移神经网络的中文AMR解析模型

2.1 转移解码算法

由于依存树与AMR图在结构上较为相似,受到依存分析中基于Shift/Reduce的依存分析算法的启发,本文采用转移解码算法,实现AMR解析。由于传统的转移解码方法(如Arc-standard算法和 Arc-eager算法)主要用于生成满足投影性质的依存树结构,而对于交叉边(crossing arcs)和可重入边情形一般无法进行有效处理。在现有的依存图分析研究的基础上[20],本文采用一种基于双栈的扩展Shift/

Reduce解码算法实现AMR解析。

基于转移的解析方法基于预先定义的转移动作集合,一步一步地从当前状态分析、预测转移动作,实现增量式的AMR解析。本文使用一个四元组表示当前分析状态c=(σ,σ′,β,A),其中,σ用于主栈(primary stack)存放已解析概念节点;次栈σ′(secondary stack)用于暂时存放概念节点;β表示缓存(buffer),存放未解析的词语序列;A存放已产生的部分子图。初始化时,待解析的句子中的所有词语存放于缓存中,主栈中包含一个根节点。从当前状态开始,通过预测转移动作,不断更新状态。循环操作下去,直到栈中只包含根节点,且缓存为空时,解析过程终止,形成完整的AMR图表示。

扩展Shift/Reduce模型中共需要定义五种转移动作,具体的动作集如表1所示。其中前四种动作与Arc-eager方法中的动作相似,仅针对主栈执行操作。引入的第五个动作MEM是用于将主栈中的栈顶元素压入到次栈中,从而满足交叉边或多个父节点等特殊情形的处理。

表1 动作集的形式化定义和描述

其中,a(β0)=(Va,Ea)表示β0对应的AMR子图,包含节点集合Va和边集合Ea。

算法1给出了扩展Shift/Reduce算法中的Oracle算法定义。在模型训练中,按从左到右的顺序依次处理输入句子中的每一个词语,根据当前的分析状态执行相应的转移动作,直到处理完输入句子的所有词语为止,最终Oracle返回整个转移动作序列T,作为训练的标准转移动作。

算法1 Oracle算法输入: 句子x={x0,x1,…,xn}和标准AMR图输出: 转移动作序列T1: T=[]2: while index

Oracle算法首先对转移动作序列变量T进行初始化(第1行),然后循环处理输入句子中的每一个单词,获取当前词对应的概念片段(2~5行),然后进行初始化(第6行)。Oracle根据当前状态依次进行判断并将相应的转移动作添加到T中(7~17行)。具体地,Oracle首先检查主栈中的栈顶元素与队列中的队头元素之间是否可以创建AMR图中的某条边(左弧或右弧),如果可以创建左弧,则将动作LEFT_ARC添加到T中;如果可以创建右弧,则将动作RIGHT_ARC添加到T中。在当前状态不满足前面两个条件的情况下,如果主栈中的栈顶元素α0与队列中除队头元素外的其他元素之间存在标准AMR图中的某条边,则将转移动作MEM添加到转移动作序列T中(第11行到第12行)。如果当前状态满足上一次执行的转移动作不为MEM且主栈中的栈顶元素α0与队列中除队头元素外的其他元素之间不存在标准AMR图中的边,则将转移动作REDUCE添加到转移动作序列T中(第13行到第14行)。如果当前状态不满足前面四个条件,则将动作SHIFT添加到转移动作序列T中(第15行到第16行),最后返回转移动作序列T(第17行)[21]。

2.2 整体模型结构

基于双栈的扩展Shift/Reduce解码算法是本文提出的中文AMR解析模型的基础。基线系统基于该解码算法,同时采用启发式搜索的方法进行概念识别,实现增量式AMR解析。在此基础之上,本文引入依存路径语义关系和上下文相关词语语义表示学习。同时,应用序列化标注思想实现AMR概念识别,由此提出了基于转移神经网络的中文AMR解析模型。该模型可分为6个部分,其模型结构如图3所示。其中,预训练模块、AMR概念标注模块和命名实体标注模块属于预处理操作。本文基于外部语料资源,使用Word2vec[注]https://code.google.com/p/word2vec模型预训练词向量,作用于模型的输入层。AMR概念标注基于规则完成AMR语料概念标注,作为概念识别模块的训练语料。基于预先定义的概念类别,结合AMR对齐结果,通过规则判断,给出AMR语料的句子中每一个词对应的概念标签。此外,本文使用Corenlp[注]https://stanfordnlp.github.io/CoreNLP/标注AMR语料中的命名实体,作为概念识别模块和基于转移解码的AMR解析模块的特征输入。

在进行了相应的预处理后,基于序列化标注的概念识别模块利用预先定义AMR概念标签集和根据标签集标注的AMR概念训练语料,训练基于深度双向LSTM-CRF的深度概念识别模型。该概念识别模型中使用外部语料资源预训练词向量,输入为词向量、词性标记向量和命名实体标记向量的组合,使用深度双向LSTM-CRF学习整句的特征,经过多层全连接层降维和CRF层计算得分,得到最佳标签序列,生成对应的AMR概念片段序列。

在AMR概念识别结果的基础上,本文基于扩展Shift/Reduce算法,通过训练前馈神经网络分类器,预测转移动作和关系标签,生成AMR图。针对中文AMR解析任务,本文设计了两个分类器: (a)转移动作分类器,(b)关系标签分类器。根据概念识别标签序列和分类器的预测结果,选择最优的概念子图和转移动作,构造一个单根有向无环的AMR图。最后,对生成的AMR图进行相关的评价、分析。

图3 基于转移神经网络的中文AMR解析模型结构图

2.2.1 概念识别

AMR对齐将句子中的单词或由多个单词构成的单词序列与AMR图中的概念(即节点)或概念片段(即多个节点构成的子图)对应起来。本文使用人工标注的对齐结果,获取单词到AMR图概念的映射关系。

图4 概念分布情况示意图

由图4可以看出,在中文AMR语料中,AMR概念片段中单个谓词和非谓词所占比重较大,由多个节点构成的概念片段约占5.89%。由于对齐信息的缺失,导致在AMR解析过程中,仅依赖对齐表进行启发式搜索会造成部分AMR概念节点的缺失。同时,由于同一个词语在不同的语境下对齐的概念各异,因此,本文采用序列化标注的思想,基于深度双向LSTM-CRF模型进行概念识别和消歧,其模型结构如图5所示。本文对解析的词语序列进行的AMR概念标签标注,通过概念标签序列,生成对应的AMR概念子图。

图5 基于LSTM-CRF的概念识别模型

AMR概念标签集的制定依赖于AMR概念片段的内部结构,标记使用“BIOES+概念类别”的形式表示。本文使用“BIOES”体系标识句子中的各个词语是否为概念片段的组成并区分概念片段的边界,其中“B”标记概念片段起始的第一个词,“I”标记概念片段内部非起始并且非结尾的词,“E”标记概念片段的最后一个词,“S”标记单个词组成的概念片段,“O”标记未有对齐概念片段的词语。本文定义了32个类别,设计了119个概念标签。例如,图1(a)中虚线框内的概念片段,对应句子中的词语“中国”,所属概念标签为“S_txNamed”,表示单个词语构成的命名实体类概念。

其中,“;”表示向量的连接。

本文使用的是4个双向LSTM堆叠形成的深度双向LSTM模型,每层之间增加一层全连接层进行降维,底层双向LSTM的输出作为上层双向LSTM的输入,最后一个双向LSTM的输出记为H∈n*k,n为句子长度,k表示标签数目,Hi,j表示第i个词语的第j个标签得分。

对于一个输出标签序列y=(y1,y2,…,yi,…,yn),定义其得分如式(3)所示。

其中,A表示转移得分矩阵。

模型训练选用交叉熵损失函数,使用SGD算法进行优化,同时加入dropout和L2正则化方法,防止模型过拟合。在该模块通过计算得分,选择得分最高的概念标签序列。基于获取的AMR概念标签序列,利用规则生成对应的AMR子图,用于基于转移解码的AMR解析模块。

2.2.2 语义关系表示学习与上下文相关词语语义表示学习

对于AMR图而言,仅仅获取当前栈顶元素和下一个词语之间的依存句法标签无法满足需求。相关联的两个概念所对应的词,在依存树中并不一定是父子节点的关系,还有可能存在更为复杂的关联。因此,本文尝试对依存句法路径进行建模,获取依存句法路径语义表示,实现长距离依存表示建模。本文将依存树中两个节点v1和v2的最近公共祖先(nearest common ancestor)记为nca(v1,v2)。v1、v2到其nca(v1,v2)的两条路径分别为v1→…→nca(v1,v2)和nca(v1,v2)←…←v2。

模型中将依存的路径分为两部分路径——词路径和关系路径。这两种路径分别用两个LSTM(LSTMtok和LSTMrel)进行建模。nca(v1,v2)所对应的LSTM单元中的隐藏层输出向量就作为v1、v2之间语义关系的表示,示例如图6所示。

图6 句子“我想买点儿黄金”中“我”和“买”的语义关系表示模型

词路径部分的表示定义为Rtok(v1,v2), 如式(4)所示。

关系路径部分的表示定义为Rrel(v1,v2), 如式(5)所示。

v1、v2之间语义关系的表示定义为R(v1,v2), 如式(6)所示。

本文将所得到的语义关系的表示R(σ0,β0),送入到转移神经网络的输入层。其中,σ0和β0分别表示栈顶元素和缓存中的第一个元素。

由于中文的语言环境相对复杂,省略、隐喻等现象增大了中文AMR的研究难度。并且,当前的上下文语境直接影响AMR解析。因此,本文采用语言模型学习上下文相关的词语语义表示,得到基于语言模型的词向量表示(embeddings from language model,ELM),模型结构如图7所示。Peters等使用神经网络建立语言模型,从语言模型中获取词的向量表示[22]。该种基于语言模型训练的向量表示在语义角色标注、命名实体识别和情感分析等任务中都取得了较好的效果。本文采用类似的语言模型,基于CTB5.0[注]https://catalog.ldc.upenn.edu/ldc2005t01语料和中文AMR标注语料,学习针对中文AMR解析任务的上下文相关语义表示。

图7 基于语言模型的上下文相关语义表示模型

对于每一个词xt,一个L层双向语言模型可以计算出2L+1个表示, 如式(8)所示。

本文将每一层LSTM输出的表达加权求和,得到基于语言模型的词表达, 如式(9)所示。

其中,因子γ用于避免计算出的词表达过大或者过小。

基于语言模型训练得到的词表达具有很好的上下文依赖性。我们将其与原有词表达相连接,作为新的词语表示使用。

2.2.3 转移动作分类器和标签分类器

在转移解码过程中,本文基于前馈神经网络模型设计了两个分类器,分别是: 转移动作分类器和标签分类器。

转移动作分类器根据当前状态,预测出下一个需要执行的动作(包括SHIFT、LEFT_ARC、RIGHT_ARC、REDUCE和MEM)。分类器中定义的特征模板如表2所示。

表2 转移动作分类器的特征模板

当系统执行LEFT_ARC和RIGHT_ARC动作时,需要判断添加的新边的类型,并给出边的标签(如:arg0、:arg1等)。标签分类器可以根据执行完LEFT_ARC和RIGHT_ARC动作后的状态,预测边的类型。其定义的特征模板如表3所示。

表3 标签分类器的特征模板

续表

分类器使用Adagrad优化算法对如下目标函数进行最小化,如式(10)所示。

3 实验分析

3.1 实验数据及评价指标

本文使用的实验语料为中文AMR标注语料[23],将该数据集随机划分为训练集、验证集和测试集三个部分,其中的句子数量分布信息如表4所示。

表4 中文AMR语料句子数量分布

本文中使用CTB5.0语料训练词向量,包含507 222个词语,词向量维数为100。对于概念识别部分,模型dropout率为0.3,表示学习和分类器部分dropout为0.3。模型batch size为64,各个LSTM层维数均为200,ELM中隐藏层单元数为100,其他均为200。

对于实验的评测,本文采用的是目前公认的AMR评测方法Smatch[24],通过计算其正确率(P)、召回率(R)和F1值进行评价。

3.2 实验结果分析

为方便表示,本文将使用启发式搜索概念识别的转移解码AMR解析模型基线记为TC-AMR(transition based Chinese AMR parser);在基线模型的基础上,将仅优化语义关系表示学习的模型记为TC-AMR2;将优化语义关系表示学习和上下文相关词语语义表示学习的模型记为STC-AMR(Semantic-enhanced transition based Chinese AMR parser);将基于深度双向LSTM-CRF模型优化概念识别的中文AMR解析模型记为LC-AMR(LSTM-CRF-AMR)。

3.2.1 学习整体解析对比

本文对比分析了中文AMR解析整体的Smatch结果,如图8所示。

图8 中文AMR整体解析结果对比图

图8中,基于深度双向LSTM-CRF模型优化概念识别的中文AMR解析模型LC-AMR在中文AMR自动解析任务上达到了0.61的Smatch F1值,优于TC-AMR,TC-AMR2和STC-AMR模型。与基线模型相比,增加语义关系表示学习和上下文相关词语语义表示学习的模型STC-AMR整体F1值提高了3%。由此可见,基于LSTM学习的语义关系表示和上下文相关词语语义表示可以有效提高中文AMR解析性能。相比于使用启发式搜索的方法实现概念识别的STC-AMR模型,LC-AMR基于序列化标注实现概念识别,提高了概念识别性能,同时使得后续的关系识别效果提高,达到了最优的中文AMR解析性能。本文使用的数据集是随机划分的,而Wang等使用的数据集未进行此项操作[19]。在未随机划分的数据集上,Wang等提出的CAMR系统获得的SmatchF1值为0.587。而本文提出的模型达到了0.591,略高于CAMR。

3.2.2 单项指标对比

此外,本文对比分析了AMR图的各个单项评价指标,共计7种,分别为: Unlabeled表示不带关系标签的评价;No WSD表示去除Propbank suffix的概念节点评价;Named Ent.表示命名实体识别评价,Negations表示否定关系(:polarity关系边)识别评价,Reentrancies表示重入边识别评价,Concepts表示概念识别评价,SRL表示“:arg”关系边评价。具体结果如表5所示。因为Wang等论文中未给出单项评价的具体数值结果,所以本文此处未与其进行比较。

表5 中文AMR解析单项评价结果

注: 表中同一行加粗表示的数值为模型对比结果的最高值。

从表5中可以看出,基于深度双向LSTM-CRF优化概念识别的中文AMR解析模型LC-AMR相比于其他模型在关系边的识别和概念的识别上都有了提升。但是,在对于否定关系边的识别上,略低于其他模型。LC-AMR在进行概念识别时,将否定概念节点标记为txPolarity概念标签,对于此类概念标签的识别准确率仅为0.90。对于否定节点的预测错误传播到关系识别中,造成了否定关系边预测的召回率较低,仅为0.58。

4 总结

本文针对中文AMR解析任务,探讨如何使用神经网络模型进行中文AMR解析研究。提出了一个基于扩展Shift/Reduce转移神经网络的中文AMR解析模型,并通过LSTM模型学习语义关系表示和上下文相关词语语义表示,增强模型的特征表示学习。在此基础上,模型引入深度双向LSTM-CRF模型进行概念识别和消歧。实验结果表明,本文提出的模型在中文AMR解析任务中达到了0.61的Smatch F1值,明显优于基线系统。

在下一步的工作中,我们将扩展现有概念标签集合,以覆盖更大规模的AMR语料。另外,我们将研究如何进一步优化模型结构,引入带有复杂门机制的记忆神经网络模型等来提高现有模型的表达能力,进一步提高中文AMR解析性能。

猜你喜欢
分类器语义解析
真实场景水下语义分割方法及数据集
三角函数解析式中ω的几种求法
基于朴素Bayes组合的简易集成分类器①
语言与语义
基于特征选择的SVM选择性集成学习方法
睡梦解析仪
基于差异性测度的遥感自适应分类器选择
电竞初解析
批评话语分析中态度意向的邻近化语义构建
对称巧用解析妙解