随着互联网的高速发展, 网络世界中的数据量也在逐步加大, 如何从海量的数据中准确地提取出我们所需要的信息是目前自然语言处理中非常重要的一项任务. 文本摘要任务是从文本信息中提取出最重要的信息的过程[1], 即通过一段简短的话术准确地表达出原文的核心观点.
文本摘要有两种策略: 抽取策略和生成策略. 抽取策略通过从源文本中选择能显著表达文本含义的单词来创建摘要, 而生成策略则是通过对句子进行重叙或重构来形成摘要. 相比于生成式文本摘要方法, 抽取式文本摘要方法更加简单, 因为从原文中抽取一部分单词或句子保证了最基本的语法正确和准确率. 而生成式摘要则需要考验模型对原文档充分的理解, 包括词语与词语还有句子与句子之间的关系的理解, 因此, 抽取式摘要是文摘摘要生成任务中的一项非常大的挑战.
近些年来由于深度学习技术的发展, 神经网络被应用到了越来越多的领域, 在自然语言处理任务中, 由神经网络搭建的Sequence-to-Sequence模型实现了较好的效果, 被广泛应用到了诸如机器翻译和语音识别等任务, 且在文本摘要任务中的应用也取得了显著的效果.
本文基于Fastformer和指针生成网络(pointer generator network, PGN)提出了一种面向新闻文本的自动生成式文本摘要模型——Fastformer-PGN模型. 本论文的创新之处在于: 1)使用Fastformer线性复杂度下的注意力计算来实现高效的上下文语义建模, 使PGN模型获取更好的单词嵌入向量. 2)使用指针生成网络将抽取式方法和生成式方法进行融合, 使模型具有从源文档中复制文本的能力. 3)引入coverage机制来降低摘要中重复词的出现次数. 实验在百度AI Studio比赛中汽车大师提供的8万多条技师与用户的汽车诊断对话文本上进行训练与验证, 通过与其他几个模型进行对比实验, 实验表明本文提出的模型在ROUGE-1、ROUGE-2和ROUGE-L指标上都获得了提升.
1 相关工作过去一段时间内, 由于生成式摘要任务的困难性较大, 因此大部分的工作都是针对于解决抽取式文本任务, 在20世纪90年代, 随着机器学习技术的发展, 其在自然语言处理任务中也得到了广泛的应用, 其中一些研究通过使用统计技术来从目标文本中获取所需摘要. 1958年Luhn[2]提出了根据句子中实词的个数来计算句子的权值, 提出了第一个自动文本摘要系统. Kupiec等[3]提出将朴素贝叶斯技术应用在文本摘要生成任务之中, Paice[4]提出根据各种指示性短语(例如in this paper, the purpose of this paper)来选择摘要句子的方法. 然而, 这些传统的机器学习方法在文本摘要的准确性上表现得不尽人意.
Sutskever等[5]在2014年提出了极具影响的序列模型Sequence-to-Sequence, 由于递归神经网络(RNNs)具有能够自由生成文本的特征, 这使得解决抽象式摘要任务的性能得到了很大提升, 随后Chopra等[6]提出了一种基于注意力机制的以RNN作为编码器和解码器的Seq2Seq模型, 更够更好地提取到上下文中的信息. 同时 Nallapati等[7]提出了关键字建模方法, 以捕捉句子或单词结构的层次结构. 尽管这些研究都在当时获得了比较好的效果, 但是他们都有着不可避免的缺点, 比如对于原文的理解不够精准, 或者无法解决摘要任务中的未登录词(out-of-vocabulary, OVV)问题.
See等[8]在2017年基于指针网络(pointer net-work)[9]提出了指针生成网络模型(pointer generator net-work, PGN), 构造了一个新的架构来解决以上提到的问题, PGN模型具有从源文本中复制词语的能力, 因此提高了文本提取的准确度并且还能克服之前提到的OOV问题, 同时, 该模型还保留了生成单词的能力. PGN模型可以看作是一种融合了提取式摘要和抽象式摘要的模型, 这方面和2016年Gu等[10]提出的CopyNet相似. 模型还引入了覆盖(coverage)机制, 通过覆盖机制, 系统能追踪到过去时间步中对哪些词语赋予了较多的注意力, 转而能对被赋予较少注意力的词语较多的关注, 因此能有效地解决文本摘要生成中的重复词问题.
2017年, 来自谷歌实验室的Vaswani等[11]提出的Transformer模型, 完全摒弃了RNN和CNN等网络结构, 仅采用Attention机制来解决机器翻译任务, 并取得了显著的效果, 自此以来, 注意力机制变成了相关领域研究者们的研究热点. Transformer模型和之后研究者们提出的各类变体在相当多的领域都获得了极大的成功, 之后提出的BERT[12]和GPT[13]等预训练模型, 在各种任务中都达到了显著的效果. Transformer的核心是自注意力机制, 它允许模型对整个输入序列进行上下文环境建模, 但是Transformer需要对每个位置的单词都进行点乘操作, 导致其运算具有较大的复杂度[11], 当输入一段较长的文本时, 模型性能就会大幅降低[14].
近些年来, 为了提升Transformer自注意力机制运算的效率, 研究者们提出了许多新的方法. 一些方法采用稀疏注意机制来降低自我注意力计算过程的复杂度, 例如Longformer[15]使用一个滑动窗口注意力机制来获取上下文信息. Big bird[16]将局部注意力和特定位置的全局注意力进行融合. 然而这些方法往往需要生成较多的标识符, 因而只能达到有限的性能提升. 2021年Wu等[17]提出了一种Transformer的变体Fastformer, 该模型基于加性注意力机制(addictive attention), 实现了线性复杂度下的高效上下文建模, 在该模型中, 作者针对Transformer模型在计算注意力时不可避免地产生二次复杂度的问题, 提出了采用元素级乘积的方法, 在保证实现良好的上下文建模的情况下, 将模型计算的复杂度有效降低.
传统指针生成网络由于使用了具有时序性特点的RNN结构作为编码器, 无法有效地对文本上下文进行建模, 本文提出的模型通过使用Fastformer来对文本进行预编码, 在实现线性复杂度下的注意力计算的同时高效地对上下文文本进行建模, 使文本摘要的结果更加准确.
2 模型算法设计本文提出的Fastformer-PGN模型通过以下两个阶段构建: 第1阶段为Fastformer预编码阶段, 输入的文本经过Fastformer模型进行高效的特征提取, 然后将结果与输入进行残差连接后作为第2阶段的输入. 第2阶段为文本摘要生成阶段, 将上一阶段的结果输入到指针生成网络中, 结合生成式和抽象式摘要方法, 使模型具有从源文本中复制单词的能力, 同时也具有生成新单词的能力, 有效解决了未登录词(OOV)的问题, 并引入coverage机制解决重复单词问题. 模型的总体架构如图1所示.
2.1 基于Fastformer的预编码阶段
在本文提出的模型中, 为了对源文本进行充分的特征提取, 利用Fastformer作为指针生成网络模型的预编码器, 使模型能够更加充分的对上下文信息进行理解. 在传统的Transformer模型中, 注意力计算的复杂度为序列长度N的二次方, 当序列很长时, 计算机会消耗大量的计算资源. Fastformer是Transformer的一种变体, 采用元素级乘法使注意力计算的复杂度从序列长度N的二次方降为N, 从而使计算资源消耗大幅下降, 并能够有效地捕捉到文本的上下文信息.
Fastformer的模型架构如图2所示. 首先通过加性注意力机制将query序列转换成一条全局query向量, 将所得的query
将输入矩阵记为
Transformer[11]中, 计算Q, K, V之间的全局注意力使用的是点积操作, 点积操作所带来的二次复杂度将会导致长序列建模的性能大幅降低. 在Fastformer中, 为解决这个问题, 模型在计算Q, K, V之间注意力前先对矩阵内部进行总结, 形成一条全局q向量
$ {\alpha _i} = \frac{{\exp \left( {W_q^{\rm{T}}{q_i}/\sqrt d } \right)}}{{\displaystyle\sum\nolimits_{j = 1}^N {\exp \left( {W_q^{\rm{T}}{q_j}/\sqrt d } \right)} }} $ | (1) |
其中,
$ q = \sum\limits_{i = 1}^N {{\alpha _i}{q_i}} $ | (2) |
接下来, 需要将得到的全局q向量与K矩阵之间进行交互建模, Fastformer模型利用元素级乘积[18]来进行计算, 元素级乘积是对两个向量之间建模的一种有效的方式. 模型通过以上方式得到一个包含全局上下文信息的key矩阵, 并将矩阵中的每一条向量记为
$ {\beta _i} = \frac{{\exp \left( {W_k^{\rm{T}}{p_i}/\sqrt d } \right)}}{{\displaystyle\sum\nolimits_{j = 1}^N {\exp \left( {W_k^{\rm{T}}{p_j}/\sqrt d } \right)} }} $ | (3) |
其中,
$ k = \sum\limits_{i = 1}^N {{\beta _i}{p_i}} $ | (4) |
最后, 将得到的全局k向量与V矩阵之间进行交互建模. 模型使用与之前相似的方式, 将得到的k向量与V矩阵之间进行元素级乘法运算, k向量与V矩阵中的每一条向量
接下来将得到的输出和输入进行残差连接, 作为下一阶段指针生成网络模型的输入.
2.2 基于指针生成网络的摘要生成阶段在这个阶段, 我们将上一部分Fastformer计算得到的预编码结果传入指针生成多网络中的编码器(单层双向LSTM), 生成一个编码器隐藏状态
$ e_i^t = {v^t}\tanh \left( {{W_h}{h_i} + {W_s}{s_t} + {b_{{\rm{attn}}}}} \right) $ | (5) |
$ {a_t} = {\textit{Softmax}}\left( {{e^t}} \right) $ | (6) |
其中,
$ h_t^* = \sum\nolimits_i {a_i^t{h_i}} $ | (7) |
将
$ {P_{{\rm{vocab}}}} = {\textit{Softmax}}\left( {{V^{'}}\left( {V\left[ {{s_t}, h_t^*} \right] + b} \right) + {b^{'}}} \right) $ | (8) |
其中,
指针生成网络为了解决OOV单词问题, 允许模型通过直接复制源文本中的单词, 同时, 模型还具备从词汇表中选择单词生成摘要的功能. 对于每一个时间步t, 生成摘要的概率
$ {P_{{\rm{gen}}}} = \sigma \left( {w_{{h^*}}^{\rm{T}}h_t^* + w_s^{\rm{T}}{s_t} + w_x^{\rm{T}}{x_t} + {b_{ptr}}} \right) $ | (9) |
其中,
$ P\left( w \right) = {P_{{\rm{gen}}}}{P_{{\rm{vocab}}}}\left( w \right) + \left( {1 - {P_{{\rm{gen}}}}} \right)\sum\nolimits_{i:{w_i} = w} {a_i^t} $ | (10) |
值得注意的是, 在这个公式当中, 如果
$ los{s_t} = - \log P\left( {w_t^*} \right) $ | (11) |
整个序列的整体损失值为:
$ loss = \frac{1}{T}\sum\nolimits_{t = 0}^T {los{s_t}} $ | (12) |
针对文本摘要任务中常出现的重复词问题, 本文在PGN模型中引入覆盖机制(coverage mechanism)去惩罚重复的位置, 覆盖模型使用解码器过去所有时间步的注意力总和来定义一个覆盖向量
$ {c^t} = \sum\nolimits_{{t^{'}} = 0}^{t - 1} {{a^{{t^{'}}}}} $ | (13) |
其中,
$ e_i^t = {v^t}\tanh \left( {{W_h}{h_i} + {W_s}{s_t} + {w_c}c_i^t + {b_{{\rm{attn}}}}} \right) $ | (14) |
本文定义一个覆盖损失, 当关注到相同位置时, 将对其给予惩罚:
$ {{cov} _{los{s_t}}} = \sum\nolimits_i {\min \left( {a_i^t, c_i^t} \right)} $ | (15) |
其中,
$ los{s_t} = - \log P\left( {w_t^*} \right) + \lambda \sum\nolimits_i {\min \left( {a_i^t, c_i^t} \right)} $ | (16) |
本文实验在Windows 10操作系统上进行, 所用编程语言为Python 3.7, 使用PyTorch作为深度学习框架, GPU为NVIDIA Geforce RTX1080ti, 使用CUDA进行GPU加速.
3.2 数据集实验所用到的数据集来自Baidu AI Studio中汽车大师所提供的82 943条记录, 文本基于对话、用户问题、车型与车系, 输出包含摘要与推断的报告文本, 实验将数据集以8:1:1的比例划分为训练集、验证集和测试集.
3.3 数据预处理由于数据集中存在大量脏数据, 首先需要进行一系列的预处理操作将数据集中的无意义词、空值、停用词和特殊符号等进行清理, 预处理过程中使用jieba分词工具对句子进行中文分词, 预处理前后的数据样例如表1所示.
3.4 Beam Search优化
在文本摘要任务的模型生成过程中, 每一个时间步的输出都基于之前时间步的结果, 即基于历史生成结果的一个条件概率, 为了得到一个完整的摘要结果, 需要通过解码将多个时间步的输出进行融合, 使得最终的序列的每一步的条件概率连乘起来获得最大值.
在使用较多的贪心解码中, 每一个时间步都是选取神经网络输出层的最大值作为模型的解码结果, 再将之前所有时间步的结果作为下一个时间步的输入来获取输出结果, 最终得到想要的解码序列. 贪心解码虽然简单易用, 但是解码过程中的每一个时间步所得到的仅是局部最优解, 抛弃了绝大多数的可能解, 所以在本文所提出的模型中, 使用Beam Search算法[19]对解码过程进行优化.
Beam Search算法在当前级别的状态下计算所有的可能性, 并按照递增的顺序对它们进行排序, 但仅保留一定数量的可能结果, 后按照这个结果对其进行扩展, 直到迭代完所有的结果后返回最高概率的结果.
算法中定义一个超参数beam size, 将其设为k, 在每个时间步中, 我们按照概率进行排序, 选取前k个概率最大的词, 在下一个时间步中, 我们将当前的k个词与之前的k个词进行排列组合, 选择组合中概率最大的组合, 最终得到想要的摘要序列. Beam Search算法即放宽了解码范围, 使解码器能够考虑到全局最优解. Beam Search 算法的伪代码如算法1所示.
算法1. Beam Search
数据: Graph (G), start word (w), goal word (g), beam size
在模型训练过程中, 首先通过Fastformer模型对输入文本进行上下文特征提取, 其后将得到的输出进行残差连接输入给PGN模型, PGN模型的词向量嵌入维度为512, 隐藏层维度为256. PGN编码器使用单层双向LSTM网络, 实验采用Adam算法进行优化, 初始学习率为0.001.
将单词词汇表大小设置为30 000, 并限制源文本中最大词汇数量为300, 生成摘要的最大词汇数量被限制为50. Fastformer-PGN模型的主要参数如表2所示.
采用以上参数对本文模型进行训练, 得到的loss如图3所示, 本文模型采用Fastformer作为预编码器, 使用Beam Search解码算法强化模型解码能力, 由于Beam Search算法维护了一个大小为k的窗口, 所以前期loss降低速率较慢, 但最终本文模型的loss相较于PGN要小.
3.6 实验评价指标
实验采用ROUGE (recall-oriented understudy for gisting evaluation)[20]中的ROUGE-N和ROUGE-L作为评估标准, 其中ROUGE-N的计算公式为:
$ ROUGE{\textit{-}} N = \frac{{\displaystyle\sum\nolimits_{S \in Ref} {\displaystyle\sum\nolimits_{gra{m_n} \in S} {Coun{t_{match}}\left( {gra{m_n}} \right)} } }}{{\displaystyle\sum\nolimits_{S \in Ref} {\displaystyle\sum\nolimits_{gra{m_n} \in S} {Count\left( {gra{m_n}} \right)} } }} $ | (17) |
其中, 分母为统计在人工摘要中n-gram的数量, 分子则是统计模型摘要和人工摘要中共同的n-gram数量.
ROUGE-L指标比较人工摘要和模型摘要的最长公共子序列, 能够衡量摘要的流畅程度.
3.7 实验结果为了验证本文模型的有效性, 本文使用3种模型与本文提出的Fastformer-PGN模型进行对比.
ABS: Rush等[21]于2015年提出的基于Seq2Seq模型, 并将注意力机制应用于模型之中的一种模型, 应用于自动文本摘要任务的生成式文本摘要方法之中, 在本文中, 将ABS模型作为生成式摘要的基准模型与本文模型进行对比.
TextRank: 该模型通过计算文本中每个句子的重要性, 对不同的句子进行全新的排序组合形成最终的摘要, 将该模型作为抽取式摘要的基准模型与本文模型进行对比.
PGN: 指针生成网络通过使用指针网络来使模型具备从源文本中复制单词的能力, 并将覆盖机制融入到模型之中, 追踪过去时间步中对单词的注意力分配, 避免产生重复单词.
上述模型与本文提出的Fastformer-PGN模型在数据集中的对比实验结果如表3所示.
基于上述3种模型做对比实验, 针对ROUGE值做对比分析, 由表3中的实验结果可以得到:
1)本文提出的Fastformer-PGN模型在ROUGE值评估的各个指标上都达到了最好效果, ROUGE-1达到了38.37, ROUGE-2达到了13.42, ROUGE-L达到了30.43.
2)通过ABS和TextRank的对比实验可以看出, 抽取式摘要模型TextRank比生成式摘要模型ABS取得了更好的效果, 证明本文所用数据集上摘要结果更多的来自源文本中曾出现的词语.
3) PGN模型由于同时结合了生成式策略和抽取式策略的特点, 使得摘要生成的效果有了大幅提升, 而本文提出的Fastformer-PGN模型由于在PGN模型的基础上对输入文本做了预编码, 使得模型能够获取上下文信息, 以解决PGN模型使用LSTM而无法结合上下文语境的缺点.
4)最后在Fastformer-PGN模型基础上引入coverage机制, 有效地解决了文本摘要问题中经常出现的重复词问题, 使模型效果达到了所以模型中最好的效果.
3.8 实例分析
从测试集中抽取若干条数据, TextRank、PGN还有Fastformer-PGN这3种模型所生成的文本摘要如表4所示.
从表4中不同模型所生成的摘要内容可以看出抽取式模型TextRank模型由于倾向于将出现频率较高的句子作为摘要的内容, 导致生成的摘要篇幅过长, 并不能体现出摘要的特点, 而本文提出的模型跟其他模型相比, 由于采用了Fastformer对文本进行了预编码, 并利用PGN模型良好的摘要生成能力, 生成的摘要更加贴合上下文地总结出汽车诊断对话中的核心内容.
4 结论与展望本文提出了一种基于Fastformer和指针生成网络模型的中文文本摘要生成方法. 首先使用Fastformer对文本进行高效的上下文编码, 使模型能够更加充分地理解输入的文本, 并采用PGN模型使得模型在能够自动生成摘要的情况下还具备从源文本中复制单词的能力, 同时引入覆盖机制防止生成重复内容. 实验在百度AI Studio汽车大师数据集上进行了训练和测试, 结果表明, 该模型可以生成更加贴合源文本含义的文本摘要和取得更高的ROUGE评分. 后续工作将尝试引入更多的特征因素, 简化模型, 减少模型训练所需的时间.
[1] |
Carreras X, Màrquez L. Introduction to the CoNLL-2004 shared task: Semantic role labeling. Proceedings of the 8th Conference on Computational Natural Language Learning (CoNLL-2004) at HLT-NAACL 2004. Boston: Association for Computational Linguistics, 2004. 89–97.
|
[2] |
Luhn HP. The automatic creation of literature abstracts. IBM Journal of Research and Development, 1958, 2(2): 159-165. DOI:10.1147/rd.22.0159 |
[3] |
Kupiec J, Pedersen J, Chen F. A trainable document summarizer. Proceedings of the 18th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. Seattle: ACM, 1995. 68–73.
|
[4] |
Paice CD. Constructing literature abstracts by computer: Techniques and prospects. Information Processing & Management, 1990, 26(1): 171-186. |
[5] |
Sutskever I, Vinyals O, Le QV. Sequence to sequence learning with neural networks. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal: MIT Press, 2014. 3104–3112.
|
[6] |
Chopra S, Auli M, Rush AM. Abstractive sentence summarization with attentive recurrent neural networks. Proceedings of 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. San Diego: Association for Computational Linguistics, 2016. 93–98.
|
[7] |
Nallapati R, Zhou BW, dos Santos C, et al. Abstractive text summarization using sequence-to-sequence RNNs and beyond. Proceedings of the 20th SIGNLL Conference on Computational Natural Language Learning. Berlin: Association for Computational Linguistics, 2016. 280–290.
|
[8] |
See A, Liu PJ, Manning CD. Get to the point: Summarization with pointer-generator networks. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. Vancouver: Association for Computational Linguistics, 2017. 1073–1083.
|
[9] |
Vinyals O, Fortunato M, Jaitly N. Pointer networks. Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal: MIT Press, 2015. 2692–2700.
|
[10] |
Gu JT, Lu ZD, Li H, et al. Incorporating copying mechanism in sequence-to-sequence learning. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics. Berlin: Association for Computational Linguistics, 2016. 1631–1640.
|
[11] |
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: Curran Associates Inc., 2017. 6000–6010.
|
[12] |
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1. Minneapolis: Association for Computational Linguistics, 2019. 4171–4186.
|
[13] |
Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners. OpenAI Blog, 2019, 1(8): 9. |
[14] |
Tay Y, Dehghani M, Bahri D, et al. Efficient transformers: A survey. ACM Computing Surveys. 2022: 1–27.
|
[15] |
Beltagy I, Peters ME, Cohan A. Longformer: The long-document transformer. arXiv:2004.05150, 2020.
|
[16] |
Zaheer M, Guruganesh G, Dubey KA, et al. Big bird: Transformers for longer sequences. Advances in Neural Information Processing Systems, 2020, 33: 17283–17297.
|
[17] |
Wu CH, Wu FZ, Qi T, et al. Fastformer: Additive attention can be all you need. arXiv:2108.09084, 2021.
|
[18] |
Wang X, He XN, Nie LQ, et al. Item silk road: Recommending items from information domains to social users. Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval. Shinjuku: ACM, 2017. 185–194.
|
[19] |
Koehn P. Pharaoh: A beam search decoder for phrase-based statistical machine translation models. Proceedings of the 6th Conference of the Association for Machine Translation in the Americas. Washington: Springer, 2004. 115–124.
|
[20] |
Ng JP, Abrecht V. Better summarization evaluation with word embeddings for ROUGE. Proceedings of 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: Association for Computational Linguistics, 2015. 1925–1930.
|
[21] |
Rush AM, Chopra S, Weston J. A neural attention model for abstractive sentence summarization. Proceedings of 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: Association for Computational Linguistics, 2015. 379–389.
|