卢益清,严实莲,杜朋
(北京信息科技大学 信息管理学院,北京 100192)
互联网时代下,新闻更新速度快、时效性强,将文本自动生成技术应用于新闻编辑领域可以提高新闻撰写与发布的效率,为新闻网站吸引更多的用户[1]。本文针对汽车网站的新闻编辑需求,研究如何根据原始汽车新闻语句生成语义相同,但字面表达不同的新语句,使新闻不再千篇一律,以提升用户的阅读体验感。
文本自动生成方法主要有以下5种:①使用词典进行同/近义词替换,生成相似表达的句子[2],其缺点是句式单一且粗暴替换不适合所有语境[3];②使用基于规则的方法进行句法分析与词性标注等,对生成文本的词性和语法制定规则[4],缺点是需要消耗大量人力成本且广泛适用性差,不适合大范围使用[5-6],且在句子成分繁杂时,生成效果不佳[7];③使用模板把文本某些位置挖空,在空的位置处填入符合句意的词[8],其缺点是模板需要人为归纳,领域可适配性较差;④使用统计机器翻译的方式,向模型中输入原句,再输出翻译后的句子,构建成文本含义相同的双语平行语料[9]。现在语料库中大规模的高质量平行语料句较少,较多回翻句与原句的含义有很大的不同并且流畅度较差[10]。⑤使用神经网络的方法,目前最常使用的是序列到序列(sequence to sequence,Seq2Seq)架构[11]。有学者使用循环神经网络(recurrent neural network,RNN)与Seq2Seq架构解决文本序列生成问题[12],优点是能学习句法和语义,缺点是没有学习前后文的能力,且随着时间的推移,序列的依赖性增强产生梯度消失或爆炸的问题[13]。有学者把长短时记忆(long short-term memory,LSTM)网络或门控循环单元(gated recurrent unit,GRU)与Seq2Seq结合,使用门控机制解决梯度问题[14-15],但模型结构复杂,不能较好地处理长文本[16];因此注意力(attention)机制被加入到Seq2Seq中来解决无法关注文本重点的问题[17-18],但是模型参数复杂与无法并行训练的问题依旧没有解决。后来谷歌提出的基于完全注意力机制的Transformer模型[19]和预训练模型BERT(bidirectional encoder representation from transformers)[20]较好地解决了以上的问题。学者们又转向关注生成文本表达的丰富性,比如在集束搜索(beam search)算法上加入惩罚因子,并融入强化学习使文本生成更具多样性[21];将在图像生成领域取得较好结果的变分自编码器(variational auto-encoder,VAE)用在文本生成方面,增加文本表达的多样性[22]。
基于当前的研究现状,本文将Transformer与VAE相结合,验证其在汽车新闻的文本生成任务上的有效性。实验结果表明,该方法生成的句子在保持句意的同时文字表达差异度更大,并具有更好的流畅度,为基于特殊行业的文本生成提供可借鉴之处。
基于Seq2Seq架构的Transformer模型包含编码器与解码器,编码器将输入文本生成语义向量,解码器将语义向量解码为生成文本。模型加入注意力机制后,能够直接获取句子中每个词之间的关联,生成更合理通顺的句子[23]。在Seq2Seq结构中参数是不变的,编码器只能对输入文本进行固定编码,解码器只能生成唯一的文本。为了克服编码器对输入文本的语义表示有局限性这一不足,VAE被引入到文本生成任务中。与传统的编码方式不同,VAE引入隐变量刻画输入文本的语义分布,产生不同的语义变量。
本文的Transformer-VAE模型结构如图1所示。文本生成流程如下:①目标句编码与位置编码相加得到目标句序列矩阵X;②X经过Transformer编码器后生成编码信息矩阵C;③C输入到VAE结构中,经编码网络计算得到均值z_mean和方差z_var;④假设隐变量之间相互独立且服从高斯分布,从N(0,1)中随机选取s,通过计算z_mean+s×ez_var/2得到隐变量Z,将由Z转化的矩阵K和V传入Transformer中每一层解码器的多头自注意力层;⑤解码器的输入为前一时间步的生成句序列Y,由Y构造出Q矩阵,输入多头自注意力层;⑥最后一层解码器的输出经过线性层和归一化指数函数层后,得到概率分布向量P,根据概率选择对应词语;⑦重复执行⑤和⑥,直至输出结束符,得到最终生成句。
图1 Transformer-VAE模型
本研究任务是生成与目标句文字表达差异较大且语义相同的句子。因此,实验的基准评价指标需要能衡量目标句和生成句的语义相似程度,以及文字的变化差异是否符合自然语言的表达规范。根据以上的评测标准,使用Bleu4值、编辑距离和人工评测作为评测指标。
Bleu4是机器翻译常用的一种指标,以生成句和目标句的共现词对的概率来评估文本生成质量。Bleu4值越大,表明生成句与目标句语义越接近。Bleu4采用一种N-gram的带权重的几何平均,其中1-gram、2-gram、3-gram、4-gram的权重各占25%。
编辑距离是指将文本A编辑成文本B的最少变动次数。两个文本的编辑距离越小,它们就越相似,反之,文本越不相似。在本研究中,使用编辑距离衡量文本生成的多样性,在确保生成句与目标句语义一致的前提下,编辑距离越大越好。经过多次实验验证,当编辑距离的值超过17.18后,生成句与目标句的语义会相差较大,此时编辑距离越大,文本生成效果越差。
人工评测是从语言学的角度评判生成文本是否符合人类的自然语言表达,主要对句子是否通顺、语法是否正确、思想表达是否清楚等方面进行评价。
实验包括以下步骤:①构建语料并初步预处理;②确定基线模型初始参数;③对语料库进行扩增与清洗,提升基线模型的效果;④模型对比实验,证明此模型在汽车新闻文本生成任务上的可行性。
本实验的语料集包括两部分:一部分是使用Python爬取某汽车类网站的新闻文本(car_news),通过Google翻译器将其中句子翻译成英文,再回翻成中文,由此获取一对平行语料。回翻后的数据作为参考句,原始新闻句子作为目标句,共约105万条语料对;另一部分是来源用于机器翻译的高质量语料集(mt_data),约25万条语料对,语料集是中英对应语料对,需将英文回翻成中文,获取平行语料。
为了保持数据分布的一致性,对car_news和mt_data的文本长度进行统计,根据表1中的统计结果删除语料集中文本长度小于12或大于60的句子[24]后,剩下的集合即为训练集。
表1 语料库文本长度信息
从训练集中随机采样抽取出来语料对进行打分[25-26]:1分表示语义相关度最低,5分表示语义相关度最高,删除相关度低于2分的语料对,最终获得2 190条语料对作为测试集。验证集的来源分为两个部分:一部分是从某汽车新闻类网站选取最新发布的30篇新闻文本进行人工打分,将低于2分的语料对删除,得到1 190个语料对;另一部分是将mt_data语料对打乱,随机抽取1 000个语料对。上述2 190个语料对共同构成验证集。
文本数据形式的复杂程度对后续的实验结果会产生不同的影响。接下来进行语句的预处理流程,包括移除重复行,移除空格、其他非法符号和带有html标签的语料,移除含有大量英文的语料,将参考句与目标句一致的语料删除,将训练数据从原始格式转为平行语句对。
选取Transformer作为基线模型,探究文本生成的语料构造及模型设计的可能性。
实验参数如下:①编码端和解码端的token嵌入向量维数均设置为512;②编码器和解码器都堆叠6层注意力层,自注意力头的个数设置为4;③使用Adam优化器,初始学习率设为0.000 3;④Transformer模型将dropout机制应用到输入嵌入向量、各编码器的输入和各解码器的输入和输出,dropout_rate设为0.3;⑤设置一个批次的数据至多包含64个句子;⑥根据实验数据得出文本长度分布,两个语料库最大的长度分别是147和133,数据平均长度分别为60和63。因此将原文本的最大长度max_src设置成60,目标文本的最大长度max_tgt设置成60。
基线模型的性能表现和实例结果分别如表2、3所示。
表2 基线模型性能表现
表3 基线模型实例结果
从表3中的实例结果可以看出,与目标句相比,生成句缺少了动词“具有”,句子流畅度一般,但是完整度较高且句意大体相同。因此,选取Transformer模型作为文本生成的基线模型较为合理。接下来对语料库存在的普遍问题提出解决方法,提升语料库的质量,使得实验所需的语料库更加完善,生成句的变化更多。
在语料库中还存在着一些翻译不全、相似度过高和信息缺失的语料对,数据噪音过大对文本生成结果会产生一定的影响。因此,为了训练一个高质量的汽车新闻领域的文本生成模型,要对数据进行清洗以去除可控的影响因素。
首先,处理翻译不全的语料对。通过式(1)能够快速地计算出两个文本的差异,选取合适的阈值,删除D值大于阈值的语料对。
(1)
式中l(s)和l(t)分别表示参考句s和目标句t的长度。
从表4的结果可以得出,过滤翻译不全的数据对基线模型的Bleu4值有一定的提升,且阈值越大Bleu4值越大,而编辑距离减小。综合考虑阈值对Bleu4值和编辑距离的影响,确定数据清洗实验参数D为0.3。
表4 选取不同阈值过滤翻译不全语料对后的实验结果
然后,处理相似度过高的语料对。本研究的目标是在保持原意的情况下,生成句与目标句的表述差异度越大越好。当训练语料中出现大量相似度极高的平行语料对时,模型的编辑距离会很小,对文本生成的多样性会产生限制。如果仅通过编辑距离来设置阈值进行过滤,则长度较短的句子将被过滤掉,因此同时考虑了编辑距离和文本长度的影响,通过式(2)计算并选取合适的阈值去除语料库中相似度过高的语料对。
(2)
式中:e(s,t)表示参考句s与目标句t的编辑距离。
由表5可以看出,阈值设置较小时能把相似度较高的语料对过滤掉,编辑距离有一定的增大。考虑到阈值设置过大会影响句子的流畅度,根据实验结果将E值设置为0.05。
表5 选取不同阈值过滤相似度过高语料对后的实验结果
最后对信息缺失的数据对进行处理,信息缺失指的是一些特有名词的专有意义缺失,缺失后会造成句子意思改变。在本研究中这种特有名词主要是指除汽车相关外的名词、双引号下字符和数字等。信息缺失情况在语料库中仅出现200多条,直接人工处理过滤即可。
为了评估Transformer+VAE模型的文本生成效果,将其与LSTM+Attention模型[27-28]、Transformer模型进行对比实验。实验结果和文本生成实例如表6和7所示。
表6 文本生成模型实验结果
表7 文本生成实例
经过实验结果的统计得出,Bleu4值越大,生成句的流畅度越高,而编辑距离的值超过17.18后,生成句与目标句的语义相差较大。由表6的实验结果和表7的文本生成实例可知,LSTM+Attention模型的Bleu4的值较小,且编辑距离超过了17.18。表现为:“人们是贪婪的动物”生成为“人的胃口总是很大的”,两句句意相差较大,导致编辑距离过大;句子缺少连接词导致流畅度不高以至于Bleu4值偏小;疑问句生成为陈述句。Transformer模型中的Attention机制有助于生成较合理通顺的文本,可是过于关注上下文中的某些词语,使得生成句的表达过于单一,“购买汽车”变成“买车”、“高端”变成“高档”,生成句与目标句在句式和内容表达方面相差不大。
从表6可以看出,Transformer+VAE模型的编辑距离较大,但未超过17.18,并且Bleu4值最大,说明生成句更贴近目标句,且表达差异更大。从表7中该模型的两次生成结果可以看出,句中修饰词、量词和名词都发生了变化。与原句相比,生成句中量词“一种”、“一款”有助于提高表意的精确度;修饰词“贪心”、“宽敞”、“贪得无厌”、“奢华”等让描述更丰富;动词“考虑”、“思考”、“满足”、“具备”增强生动性;名词“轿车”、“通过性”、“车尾箱”和“后备箱”保持汽车领域词汇的专业性;句子仍然保持原来的疑问句语气。
通过对文本生成领域方法进行归纳,发现特殊领域的文本生成研究较少,因此本文选取汽车行业的新闻文本进行研究,实现汽车行业文本生成的丰富性,给读者带来多样的体验感。结果表明,基于Transformer+VAE的文本生成方法可以使生成句在保持句意的同时具有丰富的表达形式,对其他领域的文本生成具有一定的参考意义。未来研究会聚焦于不同领域的文本生成研究,实现跨风格的文本生成表达。