霍 欢,薛瑶环,黄君扬,金轩城,邹依婷
(1. 上海理工大学 光电信息与计算机工程学院,上海 200093;2. 复旦大学 上海市数据科学重点实验室,上海 201203)
现有的文本处理模型大致可以分为三类: BOW(bag-of-words)模型、基于序列结构的神经网络模型和基于树结构的神经网络模型。与BOW模型[1]中词与词间的独立性假设相比,基于序列结构的神经网络模型[2-3]将词序信息纳入文本的表示学习,并因其突出性能被广泛使用。但是这两种模型均未考虑文本自身存在的句法结构,而句法结构对获取文本的语义特征非常重要。因此,学者们将序列结构扩展为树结构,将句法结构特征纳入文本的表示学习中,在各类自然语言处理任务上取得了很好的效果[4-6]。现有的针对成分树(constituent tree)的LSTM[7]模型有三种: Zhu等提出的S-LSTM[8],Tai等提出的Constituency Tree-LSTMs[9]和Le等提出的LSTM-RNN[10],这类模型对序列LSTM的扩展方式基本相同,都是将顺序处理的LSTM单元按成分树递归排布,将句法结构纳入文本的表示学习中,大大改善了文本表达的质量。本文将这类模型统称为C-TreeLSTM。
但C-TreeLSTM模型的缺点也显而易见: 模型将文本句子解析成成分树,其中叶子节点对应于输入单词,内部节点表示句法成分。由于模型只在叶子节点直接使用输入单词的语义信息,内部节点的隐藏状态仅由左右子节点的隐藏状态和记忆单元决定,与输入词之间没有直接关联[11]。这种计算方式在文本的长距离编码过程中对单词语义信息的记忆越来越少,影响了文本建模的准确度,尤其是对于序列较长的复杂任务,准确度不高。
为了解决这个问题,本文提出一种针对成分树的混合神经网络模型。该模型借助BiLSTM[12]的编码方法计算文本成分树各内部节点所覆盖短语的语义向量,然后将语义向量注入相应内部节点进行节点的编码,增强节点对文本语义信息的记忆,故将此模型命名为Sementic C-TreeLSTM(SC-TreeLSTM)。模型包含短语向量计算模块和节点编码模块两个子模块。前者完成内部节点所覆盖的短语语义向量的计算,后者进行节点成分的编码。本文在情感分类和机器阅读理解两种自然语言处理任务上对模型进行测试,实验结果表明SC-TreeLSTM的表现普遍优于C-TreeLSTM。
本文结构安排如下: 第1节对C-TreeLSTM进行概述,第2节阐述了SC-TreeLSTM模型的详细设计,第3节介绍实验设置并分析实验结果,第4节介绍相关工作,最后为总结全文。
BiLSTM网络以LSTM网络为基础,对每个训练序列按照向前和向后分别训练正向和反向两个LSTM网络,则序列中的每个元素为正向LSTM的隐藏状态和反向LSTM的隐藏状态的拼接。LSTM网络包括以下几个部分: 输入序列、输入门ij、输出门oj和遗忘门fj,记忆单元cj控制并调整长期的记忆单元记忆和遗忘哪些信息,给定输入序列X:x1,x2,…,xl,当前时刻的记忆单元cj计算如式(1)所示。
(1)
其中,
j为当前输入的索引,1≤j≤l;⊗为Hadamard乘积操作;输入门ij控制新内容的输入,遗忘门fj控制旧内容的遗忘;σ为对应元素相乘的函数,如双曲正切函数或逻辑S形函数。最后,根据当前时刻的记忆单元cj和相应输出门oj计算当前输入的隐藏状态hj,如式(5)、式(6)所示。
本节将对C-TreeLSTM模型进行概述。图1展示了将John visited Mary this afternoon进行解析后的成分树。
图1 成分树示例
(7)
其中,
(8)
(9)
(10)
(11)
图2 节点隐藏状态计算
最后,根据当前节点的记忆单元ct和相应输出门ot计算每个节点的隐藏状态ht,如式(12)、式(13)所示。
(12)
ht=ot⊗tanh(ct)
(13)
本文提出一种针对成分树的SC-TreeLSTM模型,该模型借助BiLSTM网络的单词编码方法计算各内部节点所覆盖短语的语义向量,然后将短语向量注入相应内部节点进行树节点的编码,增强节点对文本语义信息的记忆,提高文本建模的准确度。
图3展示了短语语义向量的计算过程。对于文本句子X:x1,x2,…,xl,首先,将一系列单词输入BiLSTM网络进行编码,获得包含单词本身词义和上下文信息的语义向量,如式(14)~式(16)所示。
(14)
(15)
(16)
图3 短语语义向量计算过程
然后,计算文本的短语语义向量。对于句子中的任意短语Vm,n,其短语语义向量如式(17)所示。
γm,n=g(hm,…,hn)
(17)
(18)
图4展示了文本节点的编码过程。首先,本文将序列解析成成分树;然后,提取各内部节点所覆盖的短语,将上节计算出的短语语义向量γm,n注入相应的内部节点。以John visited Mary this afternoon的成分树为例(图1),第2层的内部节点ADVP(副词短语)覆盖的短语是this afternoon,因此在计算此节点记忆单元的时候注入短语this afternoon的语义向量γ4,5,第3层的节点VP(动词短语)为第2层节点ADVP与VP的父节点,覆盖短语visited Mary this afternoon,因此在计算此节点记忆单元的时候注入短语visited Mary this afternoon的语义向量γ2,5。
图4 节点编码模块
最后,将式(7)~式(13)在成分树的结构上根据短语语义向量γm,n的输入进行改进,则内部节点的记忆单元ct为计算如式(19)所示。
(19)
其中:
此处的t表示文本句子在成分树上的节点索引。
最后,根据当前节点的记忆单元ct和相应的输出ot计算每个内部节点的隐藏状态ht,如式(24)、式(25)所示。
(24)
ht=ot⊗tanh(ct)
(25)
(26)
其中,S是训练样本中的节点数目,λ是L2正则化超参数。
机器阅读理解任务是通过阅读和理解一段文本,在文本中选择一个连续的片段来回答与文本相关的问题,任务涉及文本和问题两个输入序列,需要构建两棵树并分别用一个SC-TreeLSTM进行编码,输出是文本的两个单词索引。本任务的目标函数如式(27)所示。
(27)
实验选择情感分类和机器阅读理解两个自然语言处理任务来测试本文提出的SC-TreeLSTM模型的性能: ①情感分类,分析一万多条带标签的电影评论的情感倾向; ②机器阅读理解,根据文本与问题的句法及语义关系,从文本中抽取问题答案。
数据集介绍对于情感分类任务,本实验使用与Zhu等相同的数据集Stanford Sentiment Treebank(SST)[18],该数据集包含从电影评论中收集的一万多条句子,每个句子都被解析成成分树结构,句子中的每个内部节点都对应一个短语并带有一个人工标记的情感标签,分别对应5种情绪类别: 非常消极、消极、中立、积极和非常积极,根节点的标签表示整个句子的情感标签。本文在五分类(细粒度分类)和二分类两种设置上进行实验: 对五分类任务,按8 544/1 101/2 210的比例将数据集划分为训练集/验证集/测试集;对二分类任务,实验中不考虑标记为中立的样本,将非常消极和消极归为一类,积极和非常积极归为另外一类,且训练集/验证集/测试集按6 920/872/1 821的比例划分。
实验设置机器硬件配置为Intel/Xeon E5-2683V3 14核28线程,NVIDIA GTX1080显卡,32GB内存,模型均使用Tensorflow 深度学习框架实现,使用Stanford PCFG Parser[19]解析输入的序列。
本文在验证集上对模型进行超参数调优,得到如下训练参数: 模型选择预先训练好的GloVe方法[14]来初始化词向量,词向量的维度设置为300,若遇到Unknown words则赋予300维正态分布的随机向量。模型的隐藏层维度设置为150,Embedding层和output层使用的dropout(keep probability)分别设置为0.6和0.8。优化器为Adam[20],初始学习率为0.01,batch size为25,L2正则化系数为0.000 1。
实验结果表1展示了C-TreeLSTM模型在五分类和二分类两个情感分类任务上分别训练10个epochs后的结果。模型对句子根节点(root)标签和短语(phrase)标签的准确度都进行了评估。其中,BiLSTM是基于顺序结构的神经网络模型,S-LSTM 、LSTM-RNN和Constituency Tree-LSTMs均为针对成分树的LSTM。经过细致的调优过程,本文对以上模型的实现在准确度上与各自在原始文献中给出的结果相似。因此,参照本文对各模型的实验结果来评估模型的性能,将各模型与经过改进的SC-TreeLSTM模型进行比较。
表1 C-TreeLSTM在SST上的测试结果
整体而言,相比于BiLSTM、S-LSTM 、LSTM-RNN和Constituency Tree-LSTMs的准确度均有所提升,说明树形结构在情感分类任务上起到了一定的作用,且在S-LSTM模型下的准确度最高。将短语语义向量加入S-LSTM后,五分类和二分类测试集的准确度得到了普遍提高。对于五分类任务,根节点标签的准确度提高了0.5%,短语标签的准确度提高了0.7%,这表明在注入节点所覆盖的短语语义向量后,短语标签预测的准确度得到了更为明显的提升。对于二分类任务,根节点标签的准确度提高了1.0%,短语标签的准确度提高了0.8%,说明短语语义信息对提高二分类任务的准确度作用更大,这是由于二分类任务的短语级别的标注不够丰富,只有消极和积极两种,导致S-LSTM、LSTM-RNN和Constituency Tree-LSTMs模型在长距离的学习中丢失了学习到的情感信息,本文的SC-TreeLSTM增强了节点对文本语义的记忆,提高了标签预测的准确度。
另外,本文还进一步对比了情感分类任务在其他模型上的实验结果,记录了各模型对根节点标签准确度的评估及在两个训练任务上每个epoch的平均消耗时间,如表2所示。与LCT-LSTM模型相比,本文的SC-TreeLSTM模型在五分类任务上的准确度提高了0.3%,在二分类任务上的准确度提高了0.7%;与Lexicalized TreeLSTM模型相比,本文的SC-TreeLSTM模型在五分类任务上的准确度并未提升,但训练耗时减少了3.9s,在二分类任务上的准确度有所提升,且训练耗时减少了3.1s,这是由于Lexicalized TreeLSTM模型需要处理两个方向的节点编码过程且无法并行化,导致训练时间较长,效率不高,而本文的SC-TreeLSTM能够更加快速地训练迭代并获得较好的结果。
表2 其他模型在SST上的测试结果
BiDAF本实验在开源问答系统BiDAF模型[23]的框架下测试本文提出的SC-TreeLSTM模型。BiDAF模型引入了双向注意流机制来进行文本和问题间的信息交互。该框架由六个部分组成: ①Character Embedding Layer, ②Word Embedding Layer, ③Contextual Layer, ④Attention Flow Layer, ⑤Modeling Layer, ⑥Output Layer。其中,三个部分包含BiLSTM网络: Contextual Layer使用具有相同权重的两个BiLSTM对文本和问题进行编码;Modeling Layer进一步采用双层BiLSTM来提取文本中单词的高阶特征;Output Layer使用另外一个BiLSTM来生成用于预测答案片段结束的特征。实验用S-LSTM 、LSTM-RNN、Constituency Tree-LSTMs、LCT-LSTM 、Lexicalized TreeLSTM 和SC-TreeLSTM分别替换这三个部分的BiLSTM进行BiDAF模型的构建,其余部分的操作保持不变,将改进后的BiDAF模型分别称为S-BiDAF、LR-BiDAF、CT-BiDAF、LCT-BiDAF、Lex-BiDAF和SC-BiDAF。
数据集介绍本实验使用斯坦福大学开发的问答数据集SQuAD[24]。SQuAD数据集包含10万多个问答对,被划分为10 570个验证样本,87 599个训练样本和大量隐藏的测试样本。问答对的答案均为相应文本段落的一部分,从单个单词到多单词文本片段,是可变长度的短语或从句。数据集同时提供几个人工答案,只要模型输出的答案与人工答案之一相符合,模型就被给予一个置信分。实验用两个指标来评估模型: 精确匹配(exact match,EM)和模糊匹配(F1 score)[24],分别用于表示精确率及精确率和召回率的加权平均值。
实验设置机器配置与情感分类实验相同。实验使用斯坦福大学的CoreNLP工具[25]对文本和问题单词进行预处理。对于词向量的构建,选择预先训练好的GloVe方法[13]和卷积神经网络CNN[15]来映射,词向量的维度设置为300,且在训练期间是固定不变的,Unknown words同样赋予300维正态分布的随机向量。本实验的网络参数如下: 模型的隐藏层维度设置为150,dropout比例为0.2。在训练过程中,实验设置batch size为32,并使用Adam优化器来更新参数;同时,初始学习率设置为0.2。
实验结果表3展示了所有对比模型在SQuAD验证集上训练12个epochs后的实验结果。与BiDAF相比,LR-BiDAF模型的EM值提升了0.3%,F1值提升了0.5%;CT-BiDAF模型的EM值提升了0.4%,F1值提升了0.9%;S-BiDAF模型的EM值提升了0.6%,F1值提升了1.1%;LCT-BiDAF模型的EM值提升了1.2%,F1值提升了2.2%;Lex-BiDAF模型的EM值提升了1.4%,F1值提升了2.2%,这是由于S-BiDAF、LR-BiDAF、CT-BiDAF、LCT-BiDAF和Lex-BiDAF将句法结构特征纳入了文本与问题的表示学习中,改善了文本表达的质量。在内部节点中注入短语语义向量后,本文的SC-TreeLSTM模型使得BiDAF的准确度得到了更大的提高,相比于LR-BiDAF,SC-BiDAF模型的EM值提升了1.5%,F1值提升了2.2%;相比于CT-BiDAF,SC-BiDAF模型的EM值提升了1.4%,F1值提升了1.8%;相比于S-BiDAF,SC-BiDAF模型的EM值提升了1.2%,F1值提升了1.6%;相比于LCT-BiDAF和Lex-BiDAF,SC-BiDAF模型的EM值分别提升了0.6%和0.4%,F1值均提升了0.5%。
表3 SQuAD验证集上的实验结果
为了更好地理解模型的性能,实验还在验证集上分析了文本的句子长度对EM值和F1值的影响,如表4所示。可以看出,当句子长度为5时,短语信息的注入使得S-BiDAF的EM提升了0.9%,F1值提升了1.2%,随着句子长度的增加,EM和F1值的提升幅度增大,当句子长度为25时,SC-BiDAF的EM值提升了2.2%,F1值提升了2.5%,这说明对于拥有大量长序列的更为复杂的自然语言处理任务,短语语义信息的输入作用更大,对文本建模的辅助更为有效。
表4 模型准确度随句子长度的变化
续表
图5展示了S-BiDAF和SC-BiDAF模型的准确度随答案长度的变化。随着答案长度的增加,EM和F1值均有所下降,但速度不同。当答案为多个单词的时候,本模型的准确度仍然较高。相比于S-BiDAF模型,加入短语语义向量的SC-BiDAF模型的EM和F1值得到普遍提升,且F1值的提升幅度更大。
图5 模型准确度随答案长度的变化
图6 模型准确度随问题类型的变化
图6对比了BiDAF,S-BiDAF和SC-BiDAF模型在7类问题上的准确度。与BiDAF及S-BiDAF模型相比,本文的SC-BiDAF模型在每种问题上的准确度都有所提高。与BiDAF模型相比,S-BiDAF和SC-BiDAF模型在“How”“What”“Why”三种类型上的改进尤为显著,这是由于与其他四种答案大多为实体的类型相比,这三类问题的答案通常较长,句法结构更加复杂,因此S-BiDAF和SC-BiDAF模型的句法感知特性使其性能优于BiDAF模型。与S-BiDAF模型相比,SC-BiDAF模型在“How”和“Which”两种问题上的准确度有较大的提高,这是由于SC-TreeLSTM在节点编码时加入了短语的语义信息,降低了答案检索的模糊性和不确定性。
目前,针对树结构建模的模型大致可以分为两类: 基于循环神经网络(RNN)在树结构上建模[8,26]和基于卷积神经网络(CNN)在树结构上建模[27]。
基于循环神经网络在树结构上构建的模型,除了C-TreeLSTM模型外,Chen等提出了TreeGRU模型[28],该模型同样在句子的成分树上建模,具有控制单元内部信息流的门控机制。TreeGRU模型用GRU单元代替LSTM单元,简化了TreeLSTM的网络结构。此外,模型将树结构自底向上节点的隐藏状态作为成分树的信息交给根节点,并沿着成分树自顶向下传播到子节点,形成双向TreeGRU网络,使得每个节点的编码向量包含其上下文节点的句法信息,但由于该模型无法并行化地处理两个方向的节点编码过程,导致训练时间较长,效率不高。
TBCNN[29-30]是基于卷积神经网络在树结构上构建的典型模型,该模型的树卷积方法能够在句法树上并行化地提取特征。与基于RNN在树结构上构建的模型相比,该模型的训练效率有很大的提升,但由于池化操作的空间不变性假设,TBCNN模型无法在节点间对特征进行组合,因此模型无法充分利用输入序列的结构信息。
目前存在很多将CNN与RNN相结合的混合神经网络模型。Wang等提出了regional CNN-LSTM[31]模型,该模型将CNN和LSTM相结合,利用CNN来提取各子句有价值的局部信息并进行加权,同时利用LSTM来捕捉句子之间的长距离依赖关系。Xiao等提出的混合模型[32]将卷积层与BiLSTM结合,使用卷积层来处理输入文本,并通过池化函数减小序列的长度,然后将生成的特征提供给BiLSTM网络用于后续处理。但上述两种模型都是基于顺序结构来处理输入序列的,因此计算得到的文本表示只包含了序列的顺序信息。
本文提出了一种针对成分树的混合神经网络模型SC-TreeLSTM,该模型将BiLSTM和C-TreeLSTM结合,在文本成分树的内部节点中注入由BiLSTM计算出的相应短语语义向量,解决了C-TreeLSTM模型内部节点信息来源缺失的问题,增强了节点在长距离编码过程中对文本语义的记忆。本文最后在情感分类和机器阅读理解两种自然语言处理任务上对SC-TreeLSTM模型进行了测试,通过实验结果可以看出,本文提出的SC-TreeLSTM的表现普遍优于C-TreeLSTM模型。今后的工作将研究SC-TreeLSTM模型在更复杂自然语言处理任务上的适用性。