李珍辉,贾任远,扈菲宇,孙嘉琦
(湖南工程学院1.计算机与通信学院,湘潭 411104;2.电气与信息工程学院,湘潭 411104)
近年来,国家提出“双碳”政策,风电作为最具开发规模的新能源之一,在我国发展迅速[1-2].随着社会的发展,风电技术不断更新迭代,网络上积累了大量有价值的风电资料和技术文献.风电文献具有专业性强、相对浏览速度慢、学习效率低的特点.如何利用自然语言处理技术在海量中文风电文献中自动获取有价值的信息生成文献摘要[3-4],成为一个重要课题.
英文单词和单词之间有空格,易于处理.但中文需对文本进行分词,语法复杂,处理难度较高.在统计机器学习领域,刘江鸣等[5]使用隐马尔可夫模型来生成自动摘要.在图模型领域,余珊珊等[6]提出将文本的多个统计特征引入图模型的构造中,提升摘要抽取的准确性.HU 等[7]收集了大量微博文本,并通过人工规则进行筛选,制作了大规模中文短文本摘要数据集,并利用RNN 建立生成式摘要模型,给出了ROUGE 评价指标的基线,为深度学习在中文文本摘要生成上做出了贡献.中文自动摘要生成技术起步晚、难度大、公开数据集少[8].且已发表的风电研究文献在内容上具有涉及范围广、专业词汇多、方法多元化等特点,这给摘要的自动生成造成了一定困难,导致摘要提取效果较差.大规模预训练模型在自动摘要生成任务上的应用较少,在风电领域的中文文献上的应用几乎没有.
目前,对于摘要的自动生成研究主要采用抽取式方法[9]和生成式方法[10].然而,抽取式方法存在摘要不够精简、语句不连贯[11]等问题.针对抽取式方法存在的问题,部分学者提出了基于深度学习的生成式摘要技术,例如,ZHANG 等[12]提出了一种新的基于预训练的编码器—解码器框架,首次将BERT 模型应用于文本生成任务;LIU 等[13]通过对比学习来弥补学习目标与评价指标之间的差距,提出了生成式摘要框架SimCLS;LIU 等[14]利用策略梯度,使用生成对抗网络模型生成摘要,在英文摘要数据集CNN/Daily Mail 上获得明显效果.但是基于生成对抗网络模型的生成器和判别器模型存在训练量大、难以收敛等问题[15].
为解决生成对抗网络的问题,本文提出一种基于BART 模型与观察者机制的中文风电文献摘要生成算法.首先采用BART 模型并将少量的风电文献数据集放入模型下游训练进行词向量权重的微调(fine-tune);其次,提出了一种观察者机制,即使用成熟的语言模型作为观察者模型,对生成摘要的通顺程度打分,加速生成器的收敛;最后,由生成器和判别器组成的生成对抗网络替换为由生成器和观察者组成的观察者机制模型.
BART[16]是一个BERT+GPT 的结构,但相对于BERT[17]中单一的noise 类型,BART 在encoder端尝试了多种noise.BERT 的这种简单替换导致encoder 端的输入携带了有关序列结构的一些信息,这些信息在文本生成任务中一般是不会提供给模型的.而BART 采用更加多样的noise 破坏掉这些有关序列结构的信息,防止模型“依赖”这类信息.
如图1 所示,BART 编码器的输入不需要与解码器的输出对齐,允许任意噪声变换.在这里,用掩码符号替换文本的跨度,从而损坏了文档.使用双向模型对损坏的文档(左)进行编码,然后使用自回归解码器计算原始文档(右)的可能性.
图1 BART编码-解码结构图
由于BART 具备自回归解码器,因此可以直接应用到序列生成任务(如生成式问答和文本摘要)进行微调.在这两项任务中,从输入复制经过处理的信息,与去噪预训练目标紧密相关.encoder(编码器)的输入是输入序列,decoder(解码器)以自回归的方式生成输出.
BART 模型的学习准则为交叉熵损失函数(Cross Entropy Loss Function),优化算法为梯度下降算法,训练方式为反向传播算法.交叉熵损失函数的计算公式如下:
其中:
M——类别的数量;
yic——符号函数(0 或1),如果样本i的真实类别等于c则取1,否则取0;
pic——观测样本i属于类别c的预测概率.
但BART 模型中针对中文语料训练的预训练模型并不常见,尤其是风电领域,没有公开的数据集,所以单纯使用BART 模型来做风电领域中文文献摘要生成任务时会由于缺少数据集而影响效果.
DNN 语言模型是基于Word2Vec[18]技术构建的词向量表示模型,中文DNN 语言模型用于输出切词结果并给出每个词在句子中的概率值,判断一句话是否符合语言表达习惯.
针对国内尚无完备的中文风电文献训练集,以及深度学习的生成式模型训练困难的问题,本文将中文风电文献摘要生成模型分为预处理、评估、训练三个模块.预处理模块是将风电文献特征词汇加入BART 模型的词表中,对模型进行微调,生成新词汇的词向量表示,得到损失函数Loss和摘要序列L.评估模块选用百度DNN 模型作为观察者模型,得到摘要序列的打分值S,并将量纲化的S与Loss 相乘,得到适应度F.训练模块将F作为目标函数进行反向传播,实现对生成器模型的训练,当F低于某个值或不再下降时,停止训练,得到风电文献摘要生成模型.如图2 所示.
图2 SG-BART-DNN模型图
使用Jieba 分词[19]对风电文献进行分词,将得到的风电文献特有词汇加入预训练模型的词表(Vocab)中.具体操作步骤如下:
(1)导入中文分词库Jieba.
(2)将数据集的风电文献使用Jieba 分词进行分词.
(3)统计出Vocab 中没有的词汇.
(4)把风电文献的特殊词汇添加进词表中.
(5)对模型进行微调,生成新词汇的词向量表示(word express).
将BART 的自回归解码器作为文本生成任务的生成模型,用于文本摘要生成.在这个任务中,信息都是从输入中复制出来的,但经过了处理,这与降噪预训练目标密切相关.在此,编码器输入是输入序列,而解码器自动生成输出.
在本文中,BART 作为中文风电文献摘要的生成器,输入为较长的风电文献源文本Yin,输出为较短的文本摘要Yout.那么只需把Yin作为BART 编码器的输入,把编码器的隐状态和文本摘要Yout共同作为解码器的输入,文本摘要Yout作为模型的输出进行自回归训练,即可实现BART 模型在中文文本摘要任务上的微调,如图3 所示.
图3 CPT微调过程
观察者模型的打分是一个在生成者训练过程之外的数值,如何把观察者打分值与生成者训练过程有机结合,成为本算法的关键问题.
百度DNN 的打分ppl 为大于0 的实数,经过测试,其范围在[0,+∞),如果将这个值与BART 训练过程中的损失函数直接相乘或者相加会导致梯度爆炸.使用sigmoid 函数压缩ppl 的取值范围可以有效避免这个问题.
sigmoid 函数由以下公式定义:
其对x的导数可以表示为:
sigmoid 函数的图形如图4.
图4 sigmoid函数图像
本文设计算法的学习准则如下:
将公式(4)作为新的学习准则对模型进行训练.实现观察者模型对生成者模型的影响.
使用PyTorch 深度学习框架搭建深度学习模型,调用CUDA 对模型进行并行加速.实验环境配置如表1 所示.
表1 硬件配置信息表
微软提出的ROUGE[20]评价指标,目前在自动文本摘要领域被广泛应用.ROUGE 通过计算生成摘要与人工摘要之间的重合程度来评价摘要的质量.
ROUGE 指标由一系列的评价方法组成,其中最常用的是ROUGE-N 和ROUGE-L.ROUGE-N基于摘要中N-gram 的共现信息来评价摘要,是一种面向N-gram 召回率的评价方法.ROUGE-N 定义如式(5).
其中,分母是参考摘要N-gram 的个数,分子是参考摘要和自动摘要共有的N-gram 的个数.常用的指标为ROUGE-1,ROUGE-2 和ROUGE-3.
ROUGE-L 通过最长公共子序列(Longest Common Subsequence,LCS)计算生成摘要与参考摘要的重叠度.ROUGE-L 计算式见式(6)~式(8).
其中,LCS(X,Y)是生成摘要X和参考摘要Y的最长公共子序列长度;M和N分别表示参考摘要和生成摘要的长度;RL和PL分别表示召回率和准确率;FL则表示召回率和准确率的调和均值.
文档理解协会(Document Understanding Conference,DUC)在使用ROUGE-L 时将β设置为一个很大的数,此时FL近似等于RL,所以ROUGLE-L一般只考虑召回率.由于缺少公开数据集,采用ROUGE-L 指标进行评价.
实验数据集共7 621 条数据,除521 条风电文献摘要任务的数据外,还引入了同样是科技学术文本摘要的公开数据集:CSL-json(3 600 条)和Wangfang-json(3 500 条).将三者拼接使用,弥补了下游任务数据样本不足的问题,也提高了模型的泛化能力.
为了保证对风电文献的敏感性,随机抽取100条风电文献文本摘要数据作为验证集,其余作为训练集,分别对单纯BART 生成模型和SG-BARTDNN 生成模型进行训练.
表2 展示了两种模型生成摘要的实例情况.结果分析表明,SG-BART-DNN 模型对段落的理解更加充分、全面,且较为简洁.
表2 数据集摘要样本实例
在人工标注的100 条风电文献摘要的测试集上,我们测试了SG-BART-DNN 摘要生成模型、BART 文本摘要生成模型、传统抽取式模型Text Rank[21]和预训练模型GPT 的ROUGE-L 指标.结果如表3 所示.
表3 摘要生成模型的ROUGE-L指标
基于实验的结果,得到以下结论.
(1)从ROUGE-L 指标结果来看,本文所提算法SG-BART-DNN 在风电文献摘要数据集上的得分明显高于传统的文本摘要模型如Text Rank 和GPT,也略高于BART 模型.
(2)与BART 生成的摘要相比,SG-BARTDNN 生成的摘要具备更多的多样性,对文献内容的理解也有一定程度的提升.
(3)观察者模型使用百度DNN 语义模型,既没有增加模型的复杂程度,又保证了训练效果,并有效解决了语法错误、词语重复、内容冗余的问题.
研究自动文本摘要技术在中文风电文献处理上的应用,基于中文风电文献内容的特点,提出一种基于BART 模型与观察者机制的中文风电文献摘要生成算法,将其与单纯的BART Fine-tune 模型、抽取式的Text Rank 模型及引入外部信息的GPT 模型进行对比,得到以下结论:
(1)引入BART 模型进行微调,既降低了对数据集体量的依赖,也降低了模型训练的难度.通过实验,验证该方法能够有效缓解OOV 问题[22]、罕见词(Rare words)问题与词义理解错误问题.
(2)选择观察者DNN 语言模型能够有效解决语法错误、词语重复、内容冗余的问题,且未增加模型的复杂程度.
(3)使用sigmoid 函数压缩ppl 的取值范围,能有效避免将观察者打分值与BART 训练过程中的损失函数直接相乘或者相加导致的梯度爆炸问题.
(4)在四种同类型模型的对比中,SG-BARTDNN 模型对原文的理解更充分,生成的语句更准确,在指标ROUGE-L 的得分上更高.
然而,由于数据集数量有限,模型生成的摘要水平还未达到人工摘要的平均水平,在接下来的工作中,将重点考虑增加数据集的数量和质量,进行更为全面的实验研究.