沈龙骧,邹博伟,叶 静,周国栋,朱巧明
(苏州大学 计算机科学与技术学院,江苏 苏州 215006)
否定语义在自然语言中十分普遍,通常用于表示人们对某一观点的态度。否定表述通常包含一个否定运算符(例如“不”“没有”),该运算符对表述本身或其某一方面的语义进行了反转。否定聚焦点是指在否定表述中最显著被否定的文本片段,它是否定词特别强调的语义,从更细粒度上对文本中的否定含义进行界定。在相同句子中,根据描述者所强调的否定语义之间的差别,其对应的否定聚焦点也不相同。如例1所示:
例1牛不会用叉子吃草。
在例1中,根据不同解释,否定词“不”的聚焦点可能对应以下三种情形之一①本文用粗体表示否定运算符,用下划线表示否定聚焦点。:
• 否定聚焦点1:牛
解释:牛不用叉子吃草,但其他动物可以。
• 否定聚焦点2:草
解释:牛不用叉子吃草,但是吃其他事物。
• 否定聚焦点3:用叉子
解释:牛吃草,但是不用叉子。
前两种情形不符合常识及人们在使用语言时的习惯,因此例1中否定词“不”的聚焦点应该为“用叉子”。根据以上分析可以看出,否定聚焦点识别不仅要考虑否定结构的句法特点,更重要的是其语义表示,甚至是常识及语境。Blanco和Moldovan 在否定聚焦点语料的标注工作中指出,其人工标注一致性仅为0.72[1],这从另一个角度说明了否定聚焦点识别任务的难度。
现有的否定聚焦点识别方法主要集中于基于规则的方法[2]和基于特征工程的方法[1],而这些传统方法大多依赖于领域专家进行模板或特征设计,需要耗费很多的人力和时间代价。与传统方法相比较,深度学习技术可以自动地学习特征,最小化特征工程的代价。基于深度学习的方法在自然语言处理的各个任务中已经被证明是有效的,如机器翻译[3-4]、情感分析[5-6]、关系抽取[7-8]等。近些年来,循环神经网络(recurrent neural network,RNN)[9]及其变体长短期记忆网络(long short-term memory,LSTM)[10-11]和门控循环网络(gated recurrent unit,GRU)[12]在序列化数据建模方面取得了较大成功。
本文将否定聚焦点识别作为序列标注任务,采用双向长短期记忆网络(bidirectional LSTM,BiLSTM)学习否定词上下文中前向和后向的远距离特征,同时,在该网络输出层后增加条件随机场(conditional random field,CRF)结构,学习输出标签之间的前后依赖关系。本文首先将句子中的词进行向量化表示,同时将每个词对应的相关特征(词性、位置、句法信息、语义角色等)向量化,并进行组合,将组合后的向量送入BiLSTM网络中进行训练,最后通过CRF层解码出全局最优标注序列。
本文提出的基于BiLSTM-CRF模型的否定聚焦点识别方法在*SEM2012数据集上进行测试,准确率达到69.58%,取得了目前最好的性能。此外,相关实验验证了语义角色信息对否定聚焦点识别的有效性。
本文组织结构如下:第1节介绍否定聚焦点识别的相关研究及BiLSTM-CRF模型的相关工作;第2节详细描述本文提出的基于BiLSTM-CRF模型的否定聚焦点识别方法;第3节介绍实验设置,并对实验结果进行分析;第4节给出本文结论。
本节分别介绍否定聚焦点识别研究的进展,以及BiLSTM-CRF模型在自然语言处理研究中的相关工作。
否定聚焦点识别任务由德克萨斯大学的Blanco和Moldovan于2011年首次提出[1],他们从语义角度对否定聚焦点的概念进行了定义和描述,并基于PropBank语料库[13]标注了否定聚焦点数据集。同时,提出决策树模型对否定聚焦点进行识别。然而,该方法采用了22类复杂繁琐的词法和句法特征,对特征工程依赖严重,需要大量人工参与和领域知识。
目前,针对否定聚焦点识别任务的研究相对匮乏,一方面原因是该任务本身难度较大(人工标注一致性仅为0.72[1]),另一方面,还未有充足的否定聚焦点识别语料供现有模型进行训练(Blanco标注的数据集规模为3 993句)。*SEM2012评测任务将否定聚焦点识别作为其子任务之一[14]。Rosenberg和Bergler采用基于启发式规则的方法来识别否定聚焦点[2],该方法不仅需要语言专家参与制定模板,在领域适应性方面也存在一定限制。Zou等人利用上下文特征,提出基于“词—主题”结构的双层图模型[15]。该方法首先需要借助海量文本建立主题模型,同时在训练过程学习大量参数,而调参方法大多基于个人经验,导致该方法扩展性较差。
不同于以往的传统模型,本文基于双向长短期记忆网络与条件随机场模型来识别否定词聚焦点。该模型能够充分利用上下文信息,并有效捕获相邻词的潜在依赖关系;此外,也摆脱了对特征工程以及基于经验的大量参数学习的依赖,而由神经网络自动学习参数及特征表示。据我们所知,本文首次尝试采用神经网络模型解决否定聚焦点识别问题。
近年来,深度学习在自然语言处理的各个任务中均取得突破性进展。其中,循环神经网络(RNN)作为一类典型的序列标注网络,最早由Goller和Kuchler在1996年提出[9];而由于RNN受限于梯度消失和梯度爆炸问题[16-17],Hochreiter和Schmidhuber[10]提出了RNN的变体长短期记忆网络(LSTM);之后,由于LSTM只能获取单方向的上下文信息,Graves等提出了双向LSTM(BiLSTM)并将其应用于语音识别[18-19],该模型可以在特定时间范围内有效利用过去和未来的特征。另一方面,条件随机场(CRF)由Lafferty等于2001年提出[20],近些年在自然语言处理领域中得到了广泛应用。在序列标注任务中,CRF可以对输出的相邻标签之间的前后依赖关系加以考虑。
基于以上原因,一些工作尝试将BiLSTM与CRF连接起来对序列化数据进行建模。Huang等首次将BiLSTM与CRF的混合模型用于NLP的序列标注任务上[21];Ma等将BiLSTM、CRF、CNN三种模型进行融合并应用于端到端的序列标注任务中[22];Lample等将BiLSTM-CRF模型用于命名实体识别任务中[23]。该模型在序列标注任务上的有效性逐渐得到证实。
本节首先介绍BiLSTM-CRF模型,然后给出基于该模型的否定聚焦点识别方法的细节。
LSTM单元循环神经网络(RNN)适合为序列化数据建模,该模型利用前一时刻的隐藏状态和当前输入决定最终的输出结果。然而,在实际应用中,RNN受限于梯度消失和梯度爆炸问题[16-17],为解决该问题,Hochreiter和Schmidhuber提出了一个RNN的变体,LSTM网络[10]。
图1 LSTM记忆单元结构
图1给出了LSTM记忆单元的结构,由输入门(input gate)、输出门(output gate)、遗忘门(forget gate)和一个细胞状态(cell)组成,它们控制着当前信息以一定的比例传递到下一时刻,或者舍弃。因此,LSTM能够有效利用长距离依赖关系,并消除冗余的上下文信息。
从图1中可以看出,输入门控制着输入新信息按比例保存到细胞状态中,遗忘门控制着细胞状态所保留的历史信息,输出门决定了最终的输出信息,t时刻的一个LSTM单元的更新公式如式(1)所示。
(1)
双向LSTM在LSTM中仅考虑了单一方向的上下文信息,却忽略了另一个方向。一个有效的解决方案是双向LSTM(BiLSTM),该模型采用两个相反方向的并行层——前向层和后向层,分别从序列的始端和末端开始运行,因此,可以捕获正向与反向的上下文信息。本文将两个LSTM层输出的隐藏状态进行拼接作为BiLSTM网络的输出。
CRF层在序列标注中,一个词的标签通常与其周围词的标签存在关联。因此,在序列标注任务中,对给定句子,一种有效的方法是将句子中当前词与相邻词的标签的关系考虑在内,然后解码出全局最优的标签序列。基于此,本文在BiLSTM网络输出层后增加了一层条件随机场(CRF)结构。形式地,给定句子:
S=(x1,x2,x3,…,xn)
其预测标签序列为:
y=(y1,y2,y3,…,yn)
定义其得分如式(2)所示。
(2)
其中,T表示转移得分矩阵,Ti,j表示从标签i到标签j的转移得分,y0与yn+1是新增的句子起始标签和终止标签,T的维度为 (k+2)×(k+2);E是BiLSTM的输出得分矩阵,其维度为n×k,其中k为不同标签的数量,Ei,j表示句子中第i个词的第j个标签的得分。在预测句子所有可能的标签序列时,采用柔性最大值(softmax)对结果进行归一化:
(3)
在训练过程中,本文最大化正确标签序列的对数概率如式(4)所示。
(4)
其中,YS表示句子S所有可能的标签序列。从式(4)可以看出,该模型生成概率最大的标签序列。解码时,获取最高得分的标签序列作为最终预测的输出序列,如式(5)所示。
(5)
BiLSTM-CRF模型图2给出了BiLSTM-CRF模型框架。首先,将句子中的词与其特征进行向量化;其次,将特征向量送入BiLSTM模型从前向和后向两个方向学习上下文特征;然后,将BiLSTM的输出结果作为CRF层的输入;最终,由CRF层预测全局最优的标签序列。此外,为减小过拟合的影响,我们在BiLSTM模型两端各添加了一个dropout层。
图2 BiLSTM-CRF模型框架
标记方案本文标注集合定义如下:
• 标记I:句子中的词位于否定词对应的聚焦点内;
• 标记O:句子中的词不属于否定聚焦点。
以*SEM2012数据集中的一个标注实例为例,图3给出了每个词对应的标记。例如,该句子的否定聚焦点为mostAmericans,因此这两个词对应的标签为I,而句子中其余词对应的标签为O。
Embedding层作为模型的输入,本文构建embedding层对词及对应的特征向量进行编码。对给定句子S=(w1,w2,w3,…,wn),首先使用向量矩阵WE将每个词转换成一个维度为dw的实值向量,其中WE∈dw×|V|,V表示词表。
在自然语言处理领域的各任务中,相关研究探索了各种词法、句法、语义等特征[24-26]。为比较各类特征在本文模型上的有效性,我们将词性、相对位置、句法、语义角色等特征加入模型。图3给出了各类型特征的示例,其向量化表示如下。
词性: 向量矩阵ME1将每个词的词性映射为一个维度为dpos的实值向量,其中ME1∈dpos×|Vpos|,Vpos表示词性的集合,采用随机初始化;
相对位置:向量矩阵ME2将每个词和动词触发词之间的相对距离映射为一个维度为dloc的实值向量,其中ME2∈dloc×|Vloc|,Vloc表示相对距离的集合,采用随机初始化;
语块标记:向量矩阵ME3将每个词在成分句法树中的语块标签映射为一个维度为dcon的实值向量,其中ME3∈dcon×|Vcon|,Vcon表示语块标签的集合,采用随机初始化;
图3 标记规则与特征表示
依存句法节点:向量矩阵ME4将每个词在依存句法树中的父节点映射为一个维度为ddep的实值向量,其中ME4∈ddep×|Vdep|,Vdep表示依存句法节点的集合,采用随机初始化;
语义角色:向量矩阵ME5将每个词在句子中的语义角色映射为一个维度为dsr的实值向量,其中ME5∈dsr×|Vsr|,Vsr表示语义角色的集合,采用随机初始化。
本文的实验数据采用*SEM2012评测任务数据集,其基于PropBank语料库[注]PropBank语料库对谓语动词和20多种语义角色进行了标注。进行标注,共包含3 544个否定聚焦点的实例,其中,2 302个实例作为训练集,530个实例作为开发集,712个实例作为测试集。*SEM2012数据集中不仅人工标注了否定聚焦点,还给出了词性、命名实体、语块、成分句法、依存句法、语义角色等信息。表1给出了该数据集中训练集、开发集、测试集的实例数的统计,以及否定聚焦点对应的语义角色类型的统计数据。
表1 *SEM2012数据集中否定聚焦点语义角色类型统计(实例数)
从表1中可以看出,否定聚焦点对应名称A1和AM-NEG两种类型的语义角色的情况较多。在大多数实例中,否定聚焦点只对应单一语义角色,而在一小部分实例中,否定聚焦点对应多个语义角色或不对应语义角色(表1中语义角色为“None”的数据)。
本文验采用预训练好的Senna词向量[注]以维基百科和Reuters RCV-1语料库为训练数据,http://ronan.collobert.com/senna/,维度为50[27]。此外,我们同时尝试了其他不同的向量集,包括Glove的100维词向量[注]以维基百科和网页文本60亿个词为训练数据,http://nlp.stanford.edu/projects/glove/以及Google预训练好的300维新闻语料[注]以谷歌新闻语料1 000亿个词为训练数据,https://code.google.com/archive/p/word2vec/的词向量[28-29]。
在实验中,我们将特征维度设置为50,LSTM隐藏层的维度设置为150,mini-batch大小设置为3,dropout设置为0.3。参数更新时采用随机梯度下降(stochastic gradient descent,SGD)算法,其中学习率设置为0.015,动量(momentum)设置为0.9。此外,我们还尝试了其他优化算法,包括Adadelta[30]和Adam[31],这些方法虽然使得模型收敛速度加快,但是最终性能均不如SGD。本文采用准确率(Accuracy,以下简写为Acc)作为系统性能评价指标,以句子为单位计算,即仅当一个句子中预测的标签序列全部正确时,才被判为正确。
表2给出了不同模型的性能比较,以及使用各种特征的BiLSTM-CRF模型的性能。其中,PoS表示词性特征,Chunk表示语块标签特征,Dep表示依存句法节点特征,RP表示相对位置特征,SR表示语义角色特征,ALL表示以上五种特征的组合。
表2 不同模型及特征组合的否定聚焦点识别系统性能比较
首先,我们比较了不同序列标注网络结构在否定聚焦点识别任务上的性能(表2:第2~4行)。实验结果表明:1)BiLSTM模型的准确率比LSTM模型高2.14%,主要原因是BiLSTM模型考虑了前向和后向两个方向的信息,比单向的LSTM模型能够更加充分地利用上下文特征。2)BiLSTM-CRF模型的准确率达到64.10%,比单使用BiLSTM模型的性能提升了3.25%,其原因是否定聚焦点通常由连续文本片段构成,甚至是一个完整的语义角色或句法结构,其中相邻词之间具有较强的依赖关系,仅采用LSTM或BiLSTM模型无法有效学习此类特征,而增加CRF层后,通过对转移概率的训练和学习,我们的否定聚焦点识别方法能够捕捉这些信息。
为验证不同特征的有效性,我们在BiLSTM-CRF模型中使用不同类型的特征,并比较其性能(表2:5~9行)。结果显示,添加词性、语块标签、依存句法节点和相对位置特征后,系统性能均有微弱提升。单独添加语义角色特征后,系统性能提升了5.48%。由此可见,语义角色特征对否定聚焦点识别任务较为有效。根据表1的语料统计,*SEM2012数据集中,大多数否定聚焦点对应单一的语义角色,因此,语义角色是该任务的一个重要特征。
为进一步验证以上结论,本文基于添加了语义角色特征的BiLSTM-CRF系统,分别加入其他四类特征(表2:10~14行)。实验结果表明,分别增加这些特征后,系统性能并没有获得明显提升。这说明,在否定聚焦点识别任务上,语义角色特征很可能包含了以上各类特征提供的信息,其他特征对识别否定聚焦点贡献不明显。
本文对添加语义角色特征的BiLSTM- CRF模型(表2中BiLSTM-CRF+SR系统)尝试了不同的参数设置,包括语义角色特征的维度、mini-batch大小、LSTM隐藏层维度、不同的预训练词向量以及梯度下降算法。在观察某一超参数值对模型性能影响时,其他参数值固定为3.1节中给出的值。
(1) 语义角色特征维度
表2中验证了语义角色特征对否定聚焦点识别的有效性,因此本文尝试采用不同的维度对语义角色特征进行向量化表示。实验结果如图4所示。
图4 语义角色特征维度对否定聚焦点识别的影响
可以看出,提升语义角色特征的维度后,系统性能有比较明显的提升,当特征维度为50时,系统性能达到最高值69.58%。然而,当继续增加特征维度时,系统性能开始出现下降。其原因可能是语义角色表征能力随着维度的增加而变强,直到维度超过某个阈值,其表示的信息开始变得稀疏或饱和,表征能力下降。
(2) Mini-batch大小
考虑到如果仅以单个实例来更新模型参数可能会使实验结果具有偶然性,在随机梯度下降过程中可能会越过全局最小值而仅收敛于局部最小值,我们探索了不同的mini-batch大小对模型性能的影响,实验结果如图5所示。
图5 mini-batch大小对否定聚焦点识别的影响
可以看出,改变mini-batch的大小能够使模型的性能得到进一步提升,当mini-batch的大小为3时,系统性能达到最高值69.58%。从图5中还可以看出,mini-batch的值过大时,系统性能下降,可能是由于模型的泛化能力下降所致。
(3) LSTM隐藏层维度
LSTM隐藏层维度和输入维度可能有着一定的联系和相互影响:隐藏层维度偏大会使得模型更为复杂,泛化能力下降;隐藏层维度偏小会导致神经网络学习不充分,丢失一些重要特征。因此,本文验证了LSTM隐藏层维度对模型性能的影响,实验结果如图6所示。结果表明,隐藏层维度为150时,系统性能达到最高值69.58%。
图6 LSTM隐藏层维度对否定聚焦点识别的影响
(4) 预训练词向量
为验证预训练词向量对模型性能的影响,本文对不同的公开词向量以及随机初始化的词向量进行了对比实验,实验结果如表3所示。
表3 不同预训练词向量对否定聚焦点识别的影响
比较两种随机初始化词向量的方法,采用高斯分布的方法比均匀分布高,但两种方法均低于公开的预训练词向量,这表明预训练词向量在本任务中的重要性。在三种不同的预训练词向量中,Senna的50维词向量获得了最高系统性能,达到69.58%,使用斯坦福Glove的100维词向量的性能比Senna低1.08%,而Google的300维词向量略逊于Glove,也低于Senna。
(5) 梯度下降算法
采用不同梯度下降算法对模型性能也有一定的影响,本文尝试了不同的优化算法。表4给出了各优化算法的性能,以及在10折交叉实验中完成迭代的实验平均收敛轮数。
表4 不同梯度下降算法对否定聚焦点识别的影响
实验结果表明,相比SGD算法,其他优化方法,包括Adadelta、Adam和RMSprop,均加快了模型的收敛速度,而从系统性能来看,这些算法性能比SGD算法的性能略低。
我们选取BiLSTM-CRF+SR系统在测试集上的50条错误实例进行了分析。主要包含以下几种类型的错误。
(1) 否定聚焦点识别错误(27/50)
*SEM2012数据集在标注聚焦点时,充分考虑了当前句子的上下文信息,即前一句和后一句,而我们的模型仅凭借当前句子,有时很难确定否定聚焦点。如下面句子所示:
Buta majority of the Addison councildidn’tbuy those arguments.
其否定聚焦点为a majority of the Addison council,而仅凭当前句子的含义,很难确定其聚焦点,换一种角度理解,也可能是those arguments或n’t。因此,在未来工作中需要考虑引入上下文信息帮助识别否定聚焦点。
(2) 否定聚焦点对应多个语义角色(8/50)
由于模型并未约束否定聚焦点对应单一语义角色,因此如果模型分配给不同语义角色的分值都比较高时,便会造成此类型的错误。
(3) 标准答案不符合标注规则(13/50)
我们还发现部分错误实例由标注答案错误所致,而我们系统给出的结果符合标注规则。如下所示:
标注结果:A panic on Wall Street doesn’texactly inspire confidence.
系统结果:A panic on Wall Street doesn’texactly inspireconfidence.
否定词n’t聚焦点应为confidence,而语料标注为n’t本身。
此外,*SEM2012评测任务在数据标注规则[14]中指出:否定聚焦点应为单一且完整的语义角色[注]We only target verbal negations and focus is always the full text of a semantic role.。而我们发现数据集中标注的否定聚焦点并非严格对应单一且完整的语义角色。因此,我们对测试数据集进行了进一步分析,统计了标注结果与标注规则不一致的句子数目,结果如下:
• 否定聚焦点不对应语义角色:35句;
• 否定聚焦点对应多个语义角色:44句;
• 否定聚焦点对应不完整语义角色:34句。
该类型的实例共113个,占测试集的15.9%,而这部分否定聚焦点识别难度较大。因此,未来工作可尝试修正此类标注不一致问题,同时需从理论层面考虑,是否存在否定聚焦点对应多个语义角色或不完整语义角色。
本文将我们的方法与现有的否定聚焦点识别模型进行了比较,结果如表5所示。
表5 否定聚焦点识别性能比较
B&M[1]系统使用决策树模型,融合了包括词性、语义角色、句法节点、位置等22类特征;Zou的系统[15]使用基于“词—主题”结构的双层图模型对否定聚焦点进行识别。本文提出的基于BiLSTM-CRF的否定聚焦点识别方法,准确率达到69.58%,比目前的最好系统性能高2.44%。此外,我们还尝试了另一种序列标注网络——双向门控循环网络(BiGRU)。在该网络上增加CRF层之后,其性能也达到了68.47%。说明本文提出的“RNN网络+CRF层”结构能够有效地提升否定聚焦点识别性能。
本文提出了基于BiLSTM网络和CRF结构相结合的否定聚焦点识别方法,该模型在*SEM2012数据集上取得了目前最好的性能。以下是本文主要结论:
首先,凭借BiLSTM模型在捕获全局信息和长距离依赖关系的优势,有效地利用了上下文信息,使模型的性能得到提升。
其次,考虑到否定聚焦点通常由几个连续的词所构成,为了获取更准确的识别结果,我们将CRF融合到BiLSTM模型中,使得模型兼具了CRF在权衡相邻标签之间的联系与依赖关系的优点,从而预测全局最优的输出标签序列。
最后,通过实验比较了各种特征对否定聚焦点识别性能提升的效果。据我们所知,这是首次将深度学习方法应用于否定聚焦点识别任务,并取得该任务目前的最好性能,因此本方法可以作为基线系统为相关研究提供参考。
本文方法仅针对当前句子内容识别否定聚焦点,而正如3.4节分析,对部分实例而言,需要根据前后句子的信息判断聚焦点,这也与Zou[15]所指出的相一致。因此,未来研究考虑将上下文信息引入模型中,以进一步提升否定聚焦点识别的性能。