张琳,刘明童,张玉洁,徐金安,陈钰枫
(北京交通大学 计算机与信息技术学院,北京 100044)
复述生成(paraphrase generation)是自然语言处理中一个长期存在的问题[1],旨在对给定文本转换为同语言中相同语义但不同表达的句子,例如给定原句“How far is Beijing from Shanghai?”,可以生成其他不同表达的句子(复述句)“What is the distance between Shanghai and Beijing?”。近年来,复述生成技术被广泛应用机器翻译[2]、自动问答[3]、文本摘要[4]、信息检索[5]和对话生成系统[6]等自然语言处理任务中,进而提高系统的泛化性和鲁棒性。
目前,深度神经网络的兴起愈来愈提高自然语言处理高资源复述模型的能力,但仍存在以下两方面的问题。一方面,现有的复述生成研究大多依赖于大规模的复述平行语料,而可用的高质量复述资源十分匮乏,严重阻碍了复述生成模型对新语言或新领域的适用性。因此,如何在规模有限的训练数据上提高复述生成模型性能是该研究亟待解决的问题。另一方面,以往基于数据增强的复述生成模型自动生成的复述伪数据伴随大量噪声[7],直接使用这些数据不利于模型性能的提升。因此,获取高质量的复述伪数据参与每轮模型的迭代训练是增强模型性能的重要环节。
为了解决以上问题,本文提出一种低资源下的迭代式复述生成方法来增强模型性能。其基本思路是最大化利用单语语料和已有小规模复述平行语料迭代式训练复述生成模型并生成复述伪数据,以此构建高质量的复述生成模型。与此同时,为了在模型每轮训练过程中获取高质量的伪复述,本文提出句子流畅性、语义相近性和表达多样性的3 种计算方法,并以此为基准设计伪数据筛选算法,渐进地增益模型性能。在公开数据集Quora 上实验结果表明,仅利用30%的复述数据在语义和多样性评测指标上均超过了基线模型,验证该方法的有效性。
早期研究人员致力于使用人工定义的规则[8]和复述模板[9]来进行复述生成,通常效果不佳且需要大量的专家知识。之后,基于统计机器翻译的方法[10-11]在一定程度上提升了复述生成模型效果,但受语料规模和模型学习能力的限制,复述生成质量仍有待提高。
近年来,研究者们发现数据增强技术是扩充复述数据和提高模型性能的有效策略[12]。例如,基于同义词[13]和近义词[14]的词汇替换数据增强方法,通过替换原句词汇来生成不同的复述,但就其所能提供的多样性而言,在句法多样性方面仍受限制。随后,Wieting 等[15]借助机器翻译中的回译方法,将捷克语-英语平行语料中捷克语句子翻译为英语,利用译文与原英语句合并构建复述数据,但机器翻译模型需要大规模的捷克语-英语平行语料来训练。后来,Iyyer 等[16]提出基于对抗训练的语言模型方法显示出了优势,通过向样本中注入噪声以达到增强模型鲁棒性的效果,但该方法在确定注入扰动的方向上需要昂贵的计算成本[17]。
此外已有研究表明,迭代式模型的性能在很大程度上取决于伪数据质量[18],大规模低质量的伪数据容易导致模型学习效果差,生成语义偏差且句式单一的句子。为此,本文提出伪数据筛选算法选取高质量的复述句对参与模型的迭代训练。
本节将详细阐述我们提出的方法,包括其基本组成部分及模型工作机制。
迭代式复述生成增强方法主要分为3 个阶段:初始训练阶段、预训练-微调阶段、迭代式训练阶段。其整体框架如图1 所示。
图1 迭代式复述生成增强方法的整体框架Fig.1 Framework of iterative paraphrase generation enhancement method
2) 预训练-微调阶段。在获取成对的复述伪数据后,我们使用2.2 节设计的筛选算法抽取出高质量的复述伪数据Dfilter,其余的复述伪数据记为Dremain。其中,我们仅使用Dfilter来预训练模型,直到验证集上没有观察到改进,最后利用小规模复述语料Dpara对模型进行微调。
3) 迭代训练阶段。我们使用筛选后的复述伪数据Dfilter和小规模复述平行语料Dpara训练一轮模型的过程记为第一次迭代。接下来,我们采用微调后的模型对余下单语语料Dremain(S)生成伪复述,并与上一轮筛选后保留的数据进行合并,作为第二次迭代。经过N轮迭代训练后,得到最终复述生成模型。
综上,我们设计迭代式复述生成增强的方法,算法步骤如下所示。
算法迭代式复述生成增强方法
输出训练完成的复述生成模型
1)Dpara使用训练初始化复述生成模型M0;
4) 输出最终迭代N轮的复述生成模型。
值得注意的是,模型自动生成的复述伪数据含有大量的噪声数据在迭代训练过程将被不断积累和放大,进而影响模型效果。对此,我们将生成句T作为复述伪数据的原句,原句S作为复述伪数据的参考句合并配对,使得模型在解码过程中更多关注原句的语义信息,提升复述生成效果。
为了避免模型性能受到噪声数据影响。我们联合句子流畅性、语义相近性和表达多样性3 种计算方法选取高质量的复述句对,逐步受益于复述生成模型,满足最终的筛选目标。
1) 句子流畅性(fluency)
采用典型的长短期记忆神经网络(long shortterm memory,LSTM)预训练语言模型计算困惑度(perplexity,PPL)得分,评估生成句表达自然流畅程度[19]。该方法主要根据词的概率来估计句子的自然流畅程度,困惑度的具体计算过程为
式中:T为当前句子,T={w1,w2,···,wN};N表示该句子长度;P(wi) 是第i个词的概率,第1 个词是P(w1|w0);w0为句子的起始。
困惑度越小,说明该句子更加自然流畅,故我们保留困惑度较低的复述句。
2) 语义相近性(semantics)
其次,由于语义越相近的句对在向量空间中越接近,可以通过余弦相似度,衡量两个句子的语义差异。为此,我们采用Sentence-BERT[20]方法(SBERT)获取动态词向量,继而计算句对的余弦相似度。具体地,首先将复述伪数据输入到两个共享的BERT 模型,然后将输出的字向量进行求平均值操作,将均值向量作为整个句子的句向量。之后,通过计算复述句向量和参考句向量之间的余弦相似度,进行语义相近性的评估,余弦值越大,语义越相近,其具体计算方法如式(1)所示。
式中:VX表示复述伪数据中原句的句向量;VY表示复述伪数据中生成句的句向量。
3) 表达多样性(diversity)
最后,基于句子流畅性和语义相近性筛选方法后的复述伪数据,进一步获取句式丰富的复述句对。首先,需要去除原句和生成句相同的句子。之后,利用BLEU 指标[21]比较复述句和原始句的N-gram 重合程度,重合程度越低,则两个句子结构具有明显差别,多样性越好。因此,在余下的句子中选取BLEU 得分低的句子加入训练。
综上,筛选算法的具体执行过程如下:首先,进行句子流畅性筛选,保留小于困惑度阈值的伪复述句及对应输入句。其次,进行语义相近性筛选,保留大于余弦相似度阈值的复述伪数据。最后,进行表达多样性筛选,保留小于BLEU 阈值的伪复述句对。最终,通过上述筛选算法得到高质量的复述伪数据。筛选方法的阈值设置如表1所示。
表1 筛选方法阈值设置Table 1 Threshold settings of the filter methods
采用融合注意力机制[22]、复制机制[23]和覆盖机制[24]的编码-解码复述生成模型,其中复制机制解决模型解码时无法生成未登录词、低频词的问题,覆盖机制解决模型解码时生成的词汇重复问题,以此提高模型生成复述句的质量。
复述生成模型的编码器采用双向长短时记忆循环神经网络Bi-LSTM,解码器采用单向LSTM。给定复述语料模型编码时,编码器首先顺序读取输入句X={x1,x2,···,xp}每个词进行语义编码。解码时,注意力机制动态计算当前t时刻编码器的隐状态与解码状态st的对齐分数然后将softmax 激活函数应用于对齐分数的计算,获得归一化t时刻所有词的注意力权重at,注意力权重越高的词,对目标词预测的影响越大,计算公式如式(2)和式(3)所示。
其中v,Wh,Ws,battn表示可学习的参数。
随后,整合编码器隐藏层状态hi和输入句中每个词语注意力权重,得到t时刻输入句的上下文语义向量ct,计算公式为
为解决模型无法生成未登录词的问题,我们在注意力机制的基础上引入复制机制。融合复制机制模型预测词语w的概率P(w)的计算公式为
其中Pgen表示当前词选择生成模式进行预测的概率,取值范围为[0,1],计算公式如式(4)所示;Pvocab(w)表示对词汇表中w的生成概率,计算公式如式(5)所示;1 −Pgen表示当前词选择复制模式进行预测的概率,取值范围同为[0,1],Pcopy(w)表示原句中词w的复制概率,计算公式如式(6)所示。当词w为未登录词时,即选择复制模式获取目标词,令Pvocab(w)=0;当词w不 是未登录词时,令Pcopy(w)=0。
式中:σ表示sigmoid 函数;f表示softmax 函数;ct表示t时刻的上下文语义向量;yt−1表示上一个时刻t-1 生成词语的向量表示;st表示t时刻解码器隐状态表示可学习参数。
为解决生成的词汇重复问题,我们引入了覆盖机制。具体地,通过添加覆盖向量gt记录历史决策信息,使得注意力决策避免重复关注同一词的位置,让原句中未解码的词得到关注,其计算过程为
其中v、wg、Wh、Ws、battn表示可学习参数。
最后,我们基于注意力机制复述生成模型融合复制机制和覆盖机制目标函数为
式中:θ表示模型参数,−lnP(wt)为生成词语的损失函数,覆盖机制的损失函数为括号内的第2 项,最小化重复关注同一个词的注意力决策,表示在t时 刻对词xi的注意力决策。当根据上下文历史决策对词xi的注意力权重变大,则当前时刻t对该单词注意力变小;反之,对该单词注意力权重变大。超参数 λ用来对覆盖损失进行加权平衡,有效规避词汇重复生成的问题。
我们在英文Quora 问句复述语料上进行了评测实验,训练集、验证集和测试集分别为3×104、3000和3×104对句子。
本文采用的单语语料来自Quora 和Wiki-Answers 两个数据集,共选取5×105对问题句。其中,从WikiAnwsers 数据集中的2.5×106对不同问题句中选取1.62×105对,从Quora 数据集的非复述句对中,通过拆分、去重等方法选取3.38×105对问题句。另外,为了验证单语数据领域对模型性能影响,我们从WikiAnwsers 语料中随机获取了3×104对复述句对作为域外测试集。
我们与近年来使用Quora 数据集中1×105数据规模的复述生成模型进行了比较,这些模型主要包括:
1) Residual LSTM[25]重构Seq2Seq 编码-解码网络,在LSTM 网络层间加入残差网络来训练更深的网络模型结构生成复述句;
2) DiPS[13]模型在解码阶段采用子模块化函数生成不同的复述句;
基于南充市下辖景区为例,设计了旅游景区可达性模型,并依据现有数据对景区可达性进行测算,研究大数据背景下旅游景区交通可达性对景区旅游带来的影响。研究表明,旅游景区交通可达性对景区旅游具有正向刺激作用,而区域经济发展水平以及景区知名度对各旅游景区以及南充市景区的整体交通网络可达性指数影响较大。基于此,提出了加快基础设施建设提升交通运输服务质量、设计合理旅游路线优化旅游产品结构以及推进区域旅游合作机制建设等景区可达性优化建议,从而促进南充市旅游产业的发展。
3) DNPG[26]将复述句分解为句子级和短语级,并对每个级别使用单独的Transformer;
4) Seq2Seq-att[27]基于注意力机制的Seq2Seq模型;
5) SCSVED[27]提出一种提取目标句的句法变量和输入句语义变量的变分编码-解码模型。
实验预处理部分,本文首先过滤长度大于40个词的句子,然后选择词频高的前1.5×104个词作为词典,使用
模型实验参数具体设置如下:编码器和解码器中LSTM 的隐藏层大小设置为256 维,词向量维度设置为128 维。设置Batch 大小为64,采用Adam优化算法训练模型,Beam Size 设置为4,设置训练阶段学习率为1×10-3,微调阶段学习率为5×10-4。
我们采用ROUGE-1(R-1)、ROUGE-2(R-2)、ROUGE-L(R-L)[28]、BLEU、METEOR[29]和利用Stanford-corenlp 工具包计算句法编辑距离(Syn-TED)自动评测指标进行评测。
本实验以大量复述数据(1×105个句对)训练的复述生成模型作为基线模型,实验结果如表2所示。
表2 迭代式复述生成增强方法评测结果Table 2 Evaluation results of iterative paraphrase generation enhancement method
相较于基线模型,迭代1 轮的模型性能在各指标上已具有显著的提升,R-1 和R-2 指标分别提升了2.41 和2.46,但在BLEU 指标上提升效果不明显。随着迭代次数增加,当模型迭代3 轮时,单语数据利用率约达到70%,复述生成模型性能在所有评测指标上均有大幅度的提升,BLEU、R-1、R-2、R-L、METEOR 和Syn-TED 分别提升了3.29、4.23、4.00、4.38、2.70 和0.11,充分验证了迭代式复述生成增强方法对改进复述生成质量的有效性,生成句法结构更为丰富的句子。究其原因在于微调模型辅助增加了训练侧的数据语义信息和多样性,有利于模型发挥更为准确的预测能力。
进一步,表3 是我们与近年来经典的复述生成模型比较的实验结果,从中可以得出以下结论:
表3 复述生成模型评测结果Table 3 Evaluation results of paraphrase generation models
1) 从表中第6 行的数据可以看出,本方法在BLEU、R-1、R-2 指标数值虽然相较于最好模型有一定差距,但是结果在正常的数值范围内,说明其生成的复述句虽然语义一致性较低,但是能够生成没有句法和语法错误的正确句子,反映了本文设计的基于多机制融合的复述生成模型能够满足基本的复述要求,为后续迭代训练奠定基础。
2) 从表中第7 行的数据可以看出,随着迭代轮数的增加,复述生成模型性能有所提升。相较于性能较好的模型SCSVED 而言,本方法在BLEU、R-2 和R-L 指标上分别提升5.99、5.35 和6.84。与DNPG 模型相比,在R-2 指标上,本方法提升了1.37。以上实验结果表明本方法生成的句子能够与输入句保持较高的语义相近性,验证了所提方法的有效性。
为了更好的探究不同筛选计算方法对复述生成模型性能的影响,本文在3×104复述数据训练获得的初始复述生成模型M0上进行迭代一轮消融实验,没有进行预训练-微调阶段。此外,为验证筛选算法的有效性并非通过增加数据规模对模型影响,我们随机选取(*)与筛选算法同规模的复述伪数据进行迭代再训练,评测结果如表4所示,其中*表示随机选取。
表4 消融实验Table 4 Ablation experiments
当添加Fluency 筛选方法后,R-1、R-2 和RL 相对于基线模型分别提高1.35、1.36 和1.37。当添加Semantics 筛选方法后,在BLEU 和METEOR 指标上均超过基线模型。当添加Diversity筛选方法后,在Syn-TED 指标上超过基线模型,直观反映生成句式变化的多样性。与没有加入筛选方法(No)训练的模型相比,本方法在多样性指标Syn-TED 上表现较好。最后,当添加所有筛选方法后,各项评测指标相较于基线模型性能有所提升。
另外,由于本方法采用的单语数据是来自Quora 和WikiAnswers(记为Wiki)两个不同领域的数据集。对此,表5 比较分析了这些单语数据领域迭代一轮后模型的领域适应能力的影响。
表5 单语数据领域评测结果Table 5 Monolingual data domain evaluation results
以3×104句对的Quora 数据训练初始复述生成模型作为基线模型。与加入Quora 单语数据结果相比,加入Wiki 单语数据训练的模型在各项评测指标上均有显著提升,表明我们的方法具有较强的领域适应能力,并且在域外测试集上显现出较好的泛化性,使得模型跨领域能力有所增强。
此外,我们还对本方法所生成的实例进行了分析,具体如表6 所示,粗体为生成的最佳复述句。
表6 生成的复述实例Table 6 Examples of generated paraphrases
从表中可以看出,初始复述生成模型(N=0)生成的复述句“What happens to a question on quora if it is marked as needing further improvement ?”和原句相比,在句法和词汇上没有变化。然而,模型经过3 轮迭代训练后,所生成的复述句“Why does quora mark my questions as needing improvement ?”在表达结构上由“What happens to”转换为“Why does”,以及根据句法信息将动词的被动形式“marked”转为主动形式“mark”。
由此可见,本方法所生成的复述句在句子表达结构和词性转换上均有较大的变化,进一步表明本方法可以生成自然流畅、语义相近且表达丰富的复述句。
本文提出了一种探索低资源的迭代式复述生成增强方法,主要思想是最大化利用单语语料和小规模复述平行语料,迭代式训练复述生成模型并生成复述伪数据,以此扩充复述资源,进而增强模型性能。为了去除生成的复述伪数据中存在的噪声,本文设计了伪数据筛选算法,以获取高质量的复述伪数据参与每轮迭代的模型训练,从而渐进地提升模型性能。在公开数据集Quora 上的实验结果表明,本方法仅使用30%的复述数据集在语义和多样性指标上均超过基线模型,从而验证了所提方法的有效性。本方法的提出有利于在低资源环境下更容易构建出高质量的复述生成模型,减少对人工标注复述数据的依赖。在今后的工作中,如何利用丰富的外部复述知识进一步提升模型性能,将作为我们未来主要的研究方向。