1. 引言
互联网时代下,文本信息呈现爆炸式增长,信息过载问题日益严重,因此自动文本摘要成为当前一个热点研究课题。
随着机器学习技术在自然语言处理领域广泛应用,Rush等 [1] 首次将序列到序列(sequence to sequence, Seq2Seq)模型应用于文本摘要任务中,模型由编码器和解码器组成。针对生成摘要过程中出现语义表达偏差的问题,倪 [2] 和Ma [3] 等加入语义评价,以提高摘要的语义相关性。Devlin等 [4] 提出基于双向Transformer [5] 编码的预训练模型BERT,双向编码使得每个词向量都包含丰富的上下文语义信息。预训练语言模型在自动文本摘要领域的应用策略主要分为基于特征和基于微调的方法,如Wang [6] 等使用BERT提取文本的特征向量作为下游摘要任务的输入,BERT仅仅作为特征抽取器,参数不随训练过程改变。而Wei [7] 和Liu [8] 等使用微调的训练方法让BERT为摘要任务提供先验知识的同时也在训练过程中更新内部参数,后者同时提出BERTabs基础框架;大量实验结果证明微调的方法更能凸显预训练模型的作用。针对原BERT模型使用词掩码作为预训练任务的局限性,Cui [9] 等结合中文分词的特性,提出中文全词掩码预训练方法(Whole Word Masking, WWM)。百度提出ERNIE [10] 模型将字、词组和实体等知识引入到预训练过程中,目的都是使模型学习更多中文词组和实体信息。
受上述已有研究启发,本文提出一种融合分词和语义感知的中文文本摘要模型。模型以预训练语言模型为编码器,在文本输入阶段添加中文分词嵌入编码,极大程度地编码词组和上下文语义信息;使用多层Transformer解码单元作为解码器实现摘要的并行输出;在编解码器间引入语义感知模块,通过计算标准摘要和生成摘要之间的语义相关性,促使模型生成语义完整的内容。仿真结果表明该模型能有效提高摘要的可读性和语义准确性。
2. 预训练语言模型
语言模型能在海量语料的预训练中学习到通用的语言表示,带来更强的泛化性能并加快目标任务的收敛速度。BERT采用双向Transformer编码结构,共12层。其中Transformer编码单元包含两个子层:多头自注意力机制层(MultiHead Attention)和全连接前馈神经网络层(Feed Forward Neural Network),每个子层中都加入了残差连接 [11] 和层归一化操作(Layer normalization, LN)。以x作为输入,编码单元输出可写为:
(1)
全连接前馈神经网络包含两层全连接神经网络FFN,激活函数是ReLU,提供非线性变换。
(2)
多头自注意力机制MultiHead使每个词在编码时可以关注输入文本中的其他单词,它将输入向量x经过h组不同的线性变换矩阵
映射产生查询向量Q、键向量K和值向量V;其中i表示第i组线性变换矩阵;通过键向量维度dk的缩放计算出合适范围的注意力,最后将不同的注意力结果拼接起来与权重矩阵WO相乘作为多头注意力机制层的输出。
(3)
(4)
3. 融合分词和语义感知的中文文本摘要模型
本文提出一种融合分词和语义感知的中文文本摘要模型,该模型由三部分组成:1) 融合分词嵌入的BERT模型作为编码器;2) 多层Transformer解码单元组成的解码器;3) 语义感知模块。其中编码器分别对源文本src和标准摘要tgt*进行编码,产生相应的语义向量;解码器根据注意力机制配合源文本语义向量生成摘要;语义感知模块用于评估标准摘要与生成摘要的之间的语义相关性,鼓励模型生成高语义相关的摘要。模型的整体结构如图1所示。
3.1. 编码器
编码器使用BERT预训练语言模型,它能较好的解决长文本上下文依赖问题,极大程度地获取语义信息。Google发布的BERT模型使用WordPiece分词器,通过减小输入颗粒度实现缩减字典的目标。然而中文文本中多以词组为基本单位进行语义表达,部分词组样例在中文分词器和WordPiece分词器下对比,如表1所示。
可见以字为颗粒度作为输入必然会导致部分词组的语义信息丢失。为缓解这一问题,提出添加中文分词嵌入,使编码器学习到词组信息。

Table 1. Word segmentation comparison
表1. 分词器对比

Figure 2. Add word segmentation embedding
图2. 添加分词嵌入
如图2所示,为有效表示文本序列的开始和结束,在文本序列头部和尾部分别添加标签[CLS]和[SEP]。图中虚线为中文分词分割边界,交替使用EA和EB为各对词组分配分词嵌入编码,取值0和1。生成分词嵌入编码需使用中文分词器,但是它与WordPiece分词器的分割逻辑不同。为实现两个分词器的编码对齐,设计以下处理流程:

Figure 3. Word segmentation code alignment
图3. 分词器编码对齐
如图3,首先使用中文分词器分词获得词组块;将相邻的非汉字部分拼接成词组块;再输入WordPiece分词器分词;最后根据分词数量确定本词组块中EA或EB的编码数量。现编码器嵌入阶段可分成三个阶段:词嵌入(WordPrice Embedding, WE)、分词嵌入(Word Segmentation Embedding, WSE)和位置嵌入(Position Embedding, PE)。其中词嵌入和位置嵌入使用与BERT相同的方法。以文本序列x作为输入,嵌入阶段过程如下:
(5)
将嵌入阶段的输出向量Ex作为后续双向Transformer编码单元的输入,在内部经过多头注意力机制层MHAtt、全链接层FFN、层归一化LN以及残差连接等一系列处理。令初始隐藏状态h0 = Ex,hl表示第l层输出的隐藏状态。以最后一层编码单元的隐藏状态作为BERT最终输出的语义向量Tx = hlast。
(6)
(7)
3.2. 解码器
解码器是利用编码器产生的语义向量,根据自注意力机制,生成简要的摘要序列。解码器由两部分组成:多层Transformer解码单元和全连接网络。在训练过程使用Teacher Forcing [12] 训练方法,即每个时间步都使用标准摘要(Ground Truth)作为输入,可使训练过程更快收敛。Transformer解码单元比编码单元多一个编解码注意力层EDMHAtt,该层利用编码器输出的语义向量Tx完成对源文本语义的捕捉,则需在公式(6)、(7)之间添加以下过程:
(8)
最后一层解码单元的隐藏状态hend作为解码输出的特征向量,然后送入到全连接网络,W0和b0是需要学习的参数,激活函数为Logsoftmax。将特征向量映射成概率值,对应字典V中的每一个字,选择概率最高的词作为当前输出。
(9)
3.3. 语义感知模块
在模型训练过程中,解码过程的每个时间步以最大化似然估计作为训练目标。用
表示标准摘要中第t个单词,Tx表示编码器输出的语义向量,最大化似然估计等价于最小化下面的损失函数:
(10)
该损失函数要求模型生成的摘要与标准摘要对应位置的词尽可能相同。但是时常会出现生成摘要与标准摘要字面上相似,但表达不通顺、语义相关性较低的问题。为了解决这个问题,提出在编解码器间加入语义感知模块,如图1左上角模块。训练过程中编码器既要对文本src编码,也要对标准摘要tgt*进行编码。后者产生语义向量
过程中需固定归一化层参数、不进行随机舍弃神经元和参数梯度累积。解码器通过若干步解码后生成摘要序列tgt的特征向量Vtgt。使用余弦相似度函数来评估两个摘要序列的语义相关性。则损失函数定义为:
(11)
将生成摘要内容的可靠性和可读性作为最终的训练目标,本模型设计混合目标损失函数:
(12)
其中,λ是一个比例因子,用于表示Lossml和Losssim之间的幅度差异。此外,为提高模型的泛化能力,防止发生过拟合,在训练过程加入标签平滑技术(Label Smoothing) [13]。在测试过程为了扩大搜索空间,使用集束搜索(Beam Search) [14] 算法。
4. 实验
4.1. 数据集及预处理
实验仿真基于两个摘要数据集:大规模中文短文本摘要数据集(LCSTS) [15] 和中国科学文献数据(CSL)。前者采集于新浪微博,内容涉及多个领域,每个样本包含标题和正文分别对应摘要和源文本,该数据集在检验集和测试集上进行1~5分的手工评分,分数越高源文本与摘要相关性越高。CSL数据集选取计算机相关领域论文作为样本数据,以论文摘要作为源文本,标题作为摘要。如表2所示。

Table 2. LCSTS and CSL datasets
表2. LCSTS和CSL数据集
数据集预处理包括下列步骤:去除emoji表情符号及特殊符号;使用符号“-”拼接连续的英文单词;将文本中英文标点符号转成对应的中文符号;以中文标点符号“,”、“。”、“!”、“?”等进行分句;根据BERT最大输入长度512进行裁剪,舍弃少于3个字符的句子等。使用结巴中文分词工具完成中文分词操作。
4.2. 评价指标
本文使用内部评价指标ROUGE [16]。下列实验将使用以下几种常用方法。
1) ROUGE-N:
(13)
其中
,分子表示生成摘要与标准摘要共同出现的n-gram个数,分母表示标准摘要的n-gram总个数。
2) ROUGE-L:
(14)
(15)
(16)
其中LCS(X, Y)表示标准摘要X与生成摘要Y的最长公共子序列长度;m和n分别表示标准摘要和生成摘要的长度;Rlcs和Plcs分别表示召回率和准确率;参数
一般设为
。Flcs即所求的ROUGE-L。
下列仿真实验将使用ROUGE-1/2评价生成摘要的信息丰富性,ROUGE-L评价摘要的流畅性。
4.3. 实验与结果分析
4.3.1. 实验参数
本文模型使用PyTorch深度学习框架,在NVIDIA RTX 2060 SUPER GPU上进行实验。编码器使用BERT-wwm-ext预训练语言模型;解码器使用6层Transformer解码单元,其中隐藏层大小为768,多头注意力个数为8,前向神经网络大小为2048,各子层Dropout为0.1。因为编码器已进行预训练,而解码器采用随机初始化,为使编码器和解码器训练更加平稳,采用BERTabs相同的方法,分别为编解码器设置不同的Adam优化器及学习率。其中标签平滑因子为0.1,束搜索宽度为5,最短生成摘要长度为14。
4.3.2. 比例因子λ
为测试混合损失函数中比例因子λ对摘要质量的影响,设置以下实验。在完整CSL数据集上进行K折交叉验证,其中K取10,Batch size为4,计算测试结果的平均值,结果如图4。

Figure 4. Results of different scaling factors λ
图4. 不同比例因子λ的结果
图4中以ROUGE-1和ROUGE-L指标作为参考,在比例因子λ取0.001附近对文本摘要任务产生较好的效果。
4.3.3. 分词嵌入实验
由于CSL数据集专业术语较多,词组普遍较长。为验证分词嵌入对模型生成词组数量和准确率的影响,因此设置以下仿真实验。在CSL的训练集上迭代训练15次,Batch size = 4,λ = 0.001;实验组添加分词嵌入,对照组不添加;使用测试集进行测试,实验结果如表3所示。
其中词组占比表示生成摘要中词组的字数与总字数的比值;词组准确率表示正确出现在生成摘要中的词组数量与标准摘要词组总数量的比值。从表3可知,添加分词嵌入的实验组词组占比提高了2.34%,且词组准确率提升了1.69%,证明添加分词嵌入能使模型产生更多高质量的词组块。样例如表4所示。

Table 4. Example of segmentation embedding experiment
表4. 分词嵌入实验样例
4.3.4. 模型对比实验
为验证本文模型的综合性能,从LCSTS数据集随机选择近60万条样本参与训练(占总样本量的1/4),Batch size = 8,λ = 0.001,每2步进行一次梯度更新,共计训练40万步。检验与测试选用评分3~5分的文本–摘要对。每2500步保存一个Checkpoint并在检验集上验证,最后选择效果最好的5个Checkpoint在测试集上测试并计算平均值作为最终结果。
选择以下对比模型参与评估:
· RNN-context:LCSTS数据集论文模型,以循环神经网络为编码器,组合所有编码器输出的隐状态作为解码器的输入。
· CopyNet [17]:通过指针网络直接从输入中复制词组作为输出。
· Global Encoding [18]:编解码器之间加入卷积门控单元执行全局编码,以提升词和全文之间的联系,解决词重复和语义无关的问题。
· BERTabs:使用BERT-base,Chinese为编码器,6层Transformer为解码器。
· ProphetNet-Zh [19]:每个时间步基于上下文编码同时预测未来的n个输出,防止模型对强局部相关过拟合。

Table 5. LCSTS dataset experimental results
表5. LCSTS数据集实验结果
表5模型均以词为颗粒度作为输入,数值为ROUGE评价体系中的F1。本文模型在ROUGE-2和ROUGE-L指标上均有较好的效果,很好地验证了本模型在产生精确的中文词组和文本连贯性方面带来积极影响。
其中模型ProphetNet-Zh在完整LCSTS数据集上训练30,000 GPU hours;本文模型使用通用语料训练的BERT-wwm-ext作为编码器,以生成式摘要为下游任务微调,消耗40 GPU hours;对比发现,本文模型在训练语料量及训练时长均小于ProphetNet-Zh的情况下,仍能在Rouge-2和Rouge-L上实现领先,体现了本模型在文本摘要任务中的高效性和泛化能力。与BERTabs模型相比,在Rouge-1、Rouge-2和Rouge-L上分别相对提高了3.45%、5.29%、4.82%。从表6样例可知,BERTabs产生的摘要存在表达不连贯和部分语义缺失的问题,本文模型及ProphetNet-Zh产生的摘要能较为连贯且全面地总结文本信息,能基本达到文本摘要要求。

Table 6. Experimental sample on LCSTS dataset
表6. LCSTS数据集实验样例
4.3.5. 消融实验
为验证本文模型不同组件对文本摘要任务的贡献度,本实验采用与实验4.3.4相同的参数和数据集,通过逐一添加组件进行对比实验,在测试集上实验结果如表7所示。

Table 7. Add different component results
表7. 添加不同组件结果
表7数据可知,单独添加分词嵌入(WS)或单独添加语义感知(SA)模块都能一定程度地提升文本摘要的质量,将两个组件融合能发挥出更好的效果,使得模型在Rouge-1、Rouge-2和Rouge-L上比基准模型相对提高2.64%、3.27%、2.25%。图5展示表7中四个模型训练过程中,在检验集上关于ROUGE-L的训练曲线。
5. 结束语
在文本摘要的研究中,针对中文摘要生成过程中词组搭配不当、语义表达偏差等问题,本文提出了一种融合分词和语义感知的中文文本摘要模型;提出在预训练语言模型中强化中文分词的先验知识;配合编解码器间的语义感知评估,使得模型产生更多合理词组并关注整体语义的契合度,有效提高摘要的
语言流畅性和语义完整性。使用ROUGE评价体系,分别在LCSTS和CSL数据集上的仿真实验结果表明,本文模型能有效提高文本摘要的质量。