自动文本摘要目的是生成一个包含原文主要信息且简洁的文本. 自动摘要主要分为抽取式和生成式. 提取式是选择原文一些重要的句子组成摘要, 生成式是计算机在理解原文主旨后生成含有创造性句子的摘要.
近些年随着计算机硬件的发展和大量数据集的出现, 为构建优秀的摘要生成模型提供了可能性. Google Brain 团队[1]在2014年提出的序列对序列模型被成功应用到自然语言处理任务中, 解决了自然语言处理中翻译的问题. 随后Rush等人[2]首次在生成式摘要方法中使用序列到序列模型将原文映射成摘要, 编码器将输入原文编码, 解码器使用编码器得到的上下文向量计算出最终的摘要, 结果表明, 该模型在DUC-2004[3]和Gigaword[4]数据集上取得了不错的成绩. 为了解决传递依赖, Chopra 等人[5]将序列到序列模型的解码器用循环神经网络替换, 提高原文词与词之间的依赖关系, 在 Gigaword 数据集上提高了模型的准确性. 以上方法表明了序列到序列模型在生成式文本摘要中的效果, 但生成的摘要存在许多未登录词和句子之间不连贯的问题. 为解决摘要中的未登录单词和可读性差的问题, Gu等人[6]提出了CopyNet 模型, 当生成单词为未登录词时可以通过拷贝机制来进行子序列的拷贝, 该模型在中文数据集 LCSTS[7]上有效地减少未登录词的数量, 提高了模型的可读性. See等人[8]改进了拷贝机制, 提出了使用指针来选择复制原文单词或者生成词汇表单词的指针-生成模型, 该模型减少了生成摘要的重复问题.
2 相关工作指针生成网络能够捕获文本生成的规律, 但生成过程存在不可控性, 导致生成的摘要不够专注于原文的主要信息, 最终摘要效果不理想. 在没有外界的引导的情况下, 指针很难识别原文的关键字. 为解决这些问题, 本文提出一种融入关键词信息的指针生成网络模型. 首先, 使用BERT预训练模型获取文章的多维语义特征的向量和使用提取模型进行关键词的提取, 我们将关键词提取模型看成原文到关键词的映射, 结合TextRank算法[9]进行关键词的提取. 然后, 我们使用提取的关键词信息与原文进行注意力的计算, 该注意力加入到指针生成网络的注意力机制里, 使得生成的摘要更加关注原文的信息. 此外, 使用双指针在关键词信息和原文中进行单词的复制, 提高了模型的准确性和可读性.
基于序列到序列的摘要生成方法会导致生成的摘要丢失关键信息. 为了突出关键词信息对摘要生成的重要性, 许多研究利用关键词信息来提高模型生成摘要的质量. 巴志超等人[10]通过论文属性加权进行关键词的选择, 用词模型的语义相关性度量方法来衡量关键词的重要性, 结果表明了关键词对生成摘要的有效性. Wan等人[11]在假设摘要和关键词可以相互增强的前提下, 从单个文档中同时提取摘要和关键词, 改善了摘要的质量. 近几年, Li 等人[12]提出了将抽取法和抽象法相结合的引导生成模型, 利用关键词计算注意分布来引导摘要的生成. Li等人[13]采用关键字引导的选择性编码策略, 通过研究输入句子和关键字之间的相互作用来过滤源信息, 在英文数据集上取得了很好的效果. 上述方法表明关键词在英文数据集有利于文本摘要的生成. 在本文中, 为了突出关键词的重要性, 我们提出了一种新的关键词信息与指针生成网络的融合策略, 让关键词信息引导指针生成网络进行摘要的生成.
3 KAP模型在本节中, 我们将描述关键词与指针生成网络(key words and pointer-generator, KAP). 图1是KAP的网络模型图, 它由关键词信息、编码器、解码器组成. 在KAP中我们把每一步的关键词信息融入到注意力机制中, 引导摘要生成, 同时使用双指针进行单词的复制, 提高单词复制的准确性.
3.1 指针生成网络
我们的基线模型是See 等人[8]提出的指针生成网络模型, 文章X={x1, x2, …, xn}输入到编码器中, 编码器将原文映射成隐藏状态hi={h1, h2, …, hn}, 解码器的输出状态为St和hi进行注意力的计算, 注意力机制计算公式为:
$ e_i^t = {V^{\rm{T}}}\tanh ({W_h}{h_i} + {W_s}{S_t} + {b_{{\rm{attn}}}}) $ | (1) |
$ {a^t} = {\textit{Softmax}} ({e^t}) $ | (2) |
其中, VT、Wh、Ws、battn为可学习参数. 之后注意力分布用于生成语义向量:
$ {{h}}_{{i}}^* = \sum\nolimits_i {a_{{i}}^t} {h_{{i}}} $ | (3) |
将式(3)得到的语义向量与解码器状态St连接, 通过线性层后生成词汇分布Pvocab:
$ {P_{{\text{vocab}}}} = {\textit{Softmax}} ({V^{'}}(V[{S_t}, h_t^*] + b) + {b^{'}}) $ | (4) |
其中, V'、V、b、b'是模型学习参数. 式(4)得到Pvocab为词汇表单词的概率, 我们通过式(6)计算单词w的最终分布:
$ P(w) = {P_{{\text{vocab}}}}(w) $ | (5) |
指针生成网络通过式(6)得到的指针来选择从原文中复制单词还是从词汇表生成单词. 根据式(3)计算的语义向量ht*计算指针, 计算公式为:
$ {P_{{\rm{gen}}}} = \sigma (w_{{{{h}}^{{*}}}}^{\rm{T}}h_t^* + w_s^{\rm{T}}{s_t} + w_x^{\rm{T}}{x_t} + {b_{ptr}}) $ | (6) |
其中, wh*、ws、wx、bptr是模型学习参数. 最终通过式(7)计算出预测单词w的分布:
$ {{P}}(w) = {P_{{\rm{gen}}}}{P_{{\rm{vocab}}}}(w) + (1 - {p_{{\rm{gen}}}})\sum\nolimits_{i:{w_i} = w} a _i^t $ | (7) |
指针生成网络的具体流程如图2所示. 原文与摘要的隐藏层计算注意力机制, 之后使用注意力机制计算出语义向量, 语义向量和摘要的隐藏层计算出Pgen, 使用Pgen来计算出最终词汇分布.
3.2 基于序列到序列的关键词提取模型
对于关键词提取任务, 传统的词频进行统计的方法不能很好地反应关键词的信息. 本文使用基于注意力机制的序列到序列模型, 将原文作为模型的输入, 关键词作为模型的输出. 关键词抽取模型如图3所示.
模型先把每个单词转化为词向量, 编码器通过LSTM (长短时记忆网络)接受每个单词的词向量和上个时刻的隐藏层状态, 计算出语义向量, 将得到的语义向量和解码器的隐藏层状态融合, 计算出关键词输出的概率. 使用基于注意力机制的序列到序列模型提取的关键词能够更好地反映原文的主要信息, 例如一些人名、地名等情况, 当这些词作为关键词时, 该模型也可以很好地提取到. 关键词提取流程如图4所示.
为提高关键词的质量, 我们使用TextRank算法[9]二次提取原文的关键词. TextRank是使用图模型的排序算法, 该算法先将原文中的每个单词形成图模型, 然后词与词之间进行投票选出重要的关键词. 我们结合TextRank算法与基于注意力机制的序列模型提取的关键词, 融合的基本思想: 优先选择两者提取的相同关键词, 其次选择基于序列到序列提取的关键词, 最后选择TextRank提取的关键词.
3.3 KAP网络模型KAP网络模型结合了关键词信息和指针生成网络, KAP网络流程图如图5所示. 基于编码器-解码器模型只是将原文作为输入, 摘要作为输出, 在摘要生成的过程中很难把握关键信息, 导致生成的摘要不够契合原文的信息. 我们从关键词出发, 在生成摘要的过程中凸显关键词信息的重要性, 达到关键词引导网络的目的, 以改善生成摘要的质量.
KAP网络模型首先使用BERT[14]来进行预训练, BERT的编码器为双向 Transformer 结构, 通过多头注意力机制提高了KAP网络模型的并行计算能力, 同时更好的表示上下文信息. 因此, 通过BERT预训练KAP网络模型能够更好地获取文本向量和词与词之间的关系.
我们使用第3.2节方法生成的关键词信息, 将关键词信息Kt={K1, K2, …, Kn}依次输入的网络的关键词信息模块中, 该模型通过式(8)使用LSTM依次接受每个单词的词向量和上个时刻的隐藏层状态, 得到当前时刻的隐藏层状态.
$ {S_{key\_t}} = {\textit{LSTM}}({ K_{t - 1}}, {S_{key\_t - 1}}) $ | (8) |
其中, Skey_t是当前关键词信息的输出信息, Skey_t–1为上一时刻的关键词信息输出信息, 利用当前关键词的输出信息与编码器的隐藏层状态进行注意力得分的计算, 该注意力可以表示当前关键词对原文单词的关注程度, 使用的公式为:
$ e_{key\_i}^t = {V^{\rm{T}}}\tanh ({W_h}{h_i} + {W_s}{S_{key\_t}} + {b_{{\rm{attn}}}}) $ | (9) |
其中, V、Wh、Ws、battn为可学习参数, hi为编码器的隐藏层状态. 每个时间步长得到的etkey_i和指针生成网络得到的eti进行相加, 公式如式(10):
$ {{e}}_s^t = {e_i^t} + e_{key\_i}^t $ | (10) |
得到的ets融合了关键词的信息, 能够引导注意力机制关注原文的主要内容. 最后模型使用ets进行注意力的计算, 公式为:
$ {{{a}}^t} = {\textit{Softmax}} (e_s^t) $ | (11) |
使注意力机制更能关注原文的关键信息, 达到关键词引导网络的效果, 以提高模型生成摘要的质量.
3.4 双指针指针生成网络使用单指针进行单词的复制, 在KAP网络模型中, 单指针不能充分利用关键词信息, 为了实现从关键词信息中进行单词的复制, 我们使用双指针代替指针生成网络的单指针.
在原指针基础上, 新增一个拷贝关键词信息的指针, 首先通过式(9)得到的etkey_i计算注意力得分atk–1.
$ {{a}}_{k\_i}^t = {\textit{Softmax}} (e_{key\_i}^t) $ | (12) |
通过得到在关键词上的注意力机制来计算在关键词上的拷贝概率.
$ {{{P}}_{c\_k}}(w) = \sum\nolimits_{i:{k_i} = w} {a_{k\_i}^t} $ | (13) |
其中,Pc_k(w)是在关键词集合复制单词的概率, 最终预测单词分布的公式为:
$ {{P}}(w) = {P_{{\rm{gen}}}}{P_{{\rm{vocab}}}}(w) + \frac{1}{2}(1 - {p_{{\rm{gen}}}})({p_{c\_s}}(w) + {p_{_{{{c}}{{}}{{k}}}}}(w)) $ | (14) |
其中, Pc_s(w)是在原文上复制单词的概率, Pvocab(w)是生成单词的概率. 最终KAP网络模型通过Pgen来判断是在词汇表上生成单词还是从原文和关键词上复制单词, 达到从关键词和原文中复制单词的目的, 提高指针使用效率.
在训练过程中, 时间步长t的损失是目标词
$ {{los}}{{{s}}_{{t}}} = {{ - {\rm{log}}}}(w_t^*) $ | (15) |
则输入序列的整体损失为:
$ {{loss}} = \frac{{{1}}}{{{T}}}\sum\limits_{{{t}} = 0}^{{T}} {{{los}}{{{s}}_{{t}}}} $ | (16) |
实验数据来源于LCSTS数据集[7]. 该数据集是哈工大在新浪新闻采集得到的, 该数据集包含了超过200万条新闻摘要数据对. 数据集的具体情况如表1所示. PART I的数据是没有被进行人工标注的, 而PART II和PART III的数据是被人工进行打分的. 分数从1到5, 分数高低表明短文本与参考摘要之间的相关性.
在实验过程中, 我们使用PART I作为训练集, PART II和PART III分别作为验证集和测试集.
4.2 实验环境及参数设置本实验在Ubuntu下进行, 实验算法使用Python 3.6、TensorFlow 2.2.0 、Torch 1.5.0进行实验, 实验参数设置如表2所示. 实验使用Adam算法[15]进行模型的优化, 模型每隔200步保存一次, 直到达到最优结果.
4.3 评价指标
本文使用Lin[16]提出的ROUGE指数进行模型的评估, 该ROUGE得分是计算模型生成的摘要与标准摘要的重叠数目来评价生成摘要的质量. 其中ROUGE-N计算公式为:
$ {{\textit{ROUGE-N}}} = \frac{{\displaystyle \sum _{{S}\in \left\{{\textit {ReferenceSummaries}}\right\}}{\displaystyle \sum _{{{gram}}_{{n}}\in {S}}{{Count}}_{\text{match}}\left({{gram}}_{{n}}\right)}}}{{\displaystyle \sum _{{S}\in \left\{{\textit {ReferenceSummaries}}\right\}}{\displaystyle \sum _{{{gram}}_{{n}}\in {S}}{Count}\left({{gram}}_{{n}}\right)}}} $ | (17) |
N的值经常采用1和2, 主要统计在N-gram上的召回率, 反映了生成摘要的准确性. ROUGE-L是最长公共子序列的重合率计算, 计算公式如下:
$ {{{R}}_{{\rm{LCS}}}} = \frac{{LCS({{S}}, {{C}})}}{{len({{C}})}} $ | (18) |
$ {{{P}}_{{\rm{LCS}}}}{{ = }}\frac{{LCS({{S}}, {{C}})}}{{len({{S}})}} $ | (19) |
$ {{{F}}_{{\rm{LCS}}}}{{ = }}\frac{{(1 + {\beta ^2}){R_{{\rm{LCS}}}}{P_{{\rm{LCS}}}}}}{{{R_{{\rm{LCS}}}} + {\beta ^2}{P_{{\rm{LCS}}}}}} $ | (20) |
其中, S表示模型生成摘要, C是原文摘要, RLCS表示召回率, PLCS表示精确率, FLCS为ROUGE-L得分. ROUGE-L使用最长公共子序列衡量, 在一定程度上能够体现生成摘要的可读性.
4.4 关键词抽取结果表3是关键词抽取结果, 该结果是由序列到序列模型和TextRank两部分组成, 由于序列到序列模型能够生成词汇表上的单词, 在一定情况可以生成新颖的关键词.
4.5 实验结果比较
将上述提取的关键词融入到指针生成网络中, 表4列出了KAP网络模型以及其他文本摘要模型在LCSTS数据集上的实验结果. 为了验证本文方法在摘要生成中的有效性, 我们选取了一些具有代表性的算法和指针生成网络进行比较.
(1) RNN[5]是基于RNN的Seq2Seq模型, 将编码器最后一个隐藏层作为解码器的输入, 没有加注意力机制.
(2) RNN-context[5]是基于RNN带有注意力机制的Seq2Seq模型.
(3) CopyNet[6]是基于注意力的具有复制机制的Seq2Seq模型, 在解码器阶段添加了生成和复制模式, 允许从源文本进行内容的复制.
(4) SRB[17] 是一种提高源文本和摘要之间语义相关性的模型, 通过引入了一个基于语义关联的神经模型来提高文本和摘要之间的语义的相似度.
(5) HAM[18]方法首先是要自我注意力机制发现原句之间的关系, 之后将复制机制加入到网络中.
(6) DRGD[19]是采用递归隐随机模型学习目标摘要中隐含的结构信息的深度循环模型.
(7) KIGN[13]是一种将抽取法和抽象法相结合的摘要生成模型, 该模型是关键词编码引导摘要进行生成.
(8) PGN[8]是我们使用的基线模型: 指针生成网络.
(9) BERT-PGN是基于BERT预训练的指针生成网络.
KAPO是在单指针生成网络上加入关键词信息. KAP是实验的最终模型, 在指针生成网络上融入关键词信息和加上双指针拷贝机制. 从表3看出, 最终模型与RNN和RNN-context相比都有很大程度的提升, 与CopyNet、SRB、HAM等算法比较有一定的提升. 在基线模型PGN比较上, 融入关键词信息的指针生成网络对比基线模型在ROUGE-1得分上高了2.67, 在ROUGE-2得分上高了2.4, 在ROUGE-L高了2.64. 融入关键词信息的指针生成网络和加入双指针拷贝机制对比基线模型在ROUGE-1得分上高了3.01, 在ROUGE-2得分上高了3.15, 在ROUGE-L高了3.03, 与BERT-PGN相比都有一定的提高. 结果表明, 与没有关键词信息的网络相比, 我们的结果得到了改进, 这也表明该模型对我们提取的关键字信息进行了学习.
图6折线图是表3各种模型 ROUGE 分数对比的另一种直观展示, KAP我们的最终模型. 可以看出我们的模型在ROUGE-2和ROUGE-3的得分是最高的.
我们对比KAP的单指针和双指针, 对比如图7所示. 从图中可以看出双指针下模型在ROUGE得分上都有一定的提高, 具体得到在ROUGE-1得分上高了0.34, 在ROUGE-2得分上高了0.75, 在ROUGE-L得分上高了0.39. 从数据看出将双指针代替原来的单指针是必要的.
在表5我们列出了两个摘要生成的案例, 其中PGN是我们的基线模型指针生成网络, 我们的模型是融入关键词信息和加入双指针拷贝机制. 从表中可以看出, 第1个示例我们的模型比基线模型多了“环比”一词, 第2个示例我们生成的摘要包含更多的原文信息. 可以看出PGN生成的内容不全面, 只生成摘要的一部分或者丢失信息. 在融入关键词信息后, 生成的摘要更加契合原文内容, 能够包含更多的原文信息.
为了进一步突出模型的可读性, 我们加入了李克特考量表来对文本摘要结果进行人工评估. 我们从最终生成的摘要中随机选择了200个摘要, 并邀请12名研究生对所选摘要进行评分. 分数从1到5, 分数越高表明生成摘要的可读性越好. 从表6中可以看出, 得分为1的有29个, 得分为2的有47个, 得分为3的有57个, 得分为4的有36个, 得分为5的31个. 可以得出, 得分高于3分有67个句子, 占33.5%, 得分高于2的有124个句子, 占62%. 因此, 从分析的数据可以得出结论, 所生成摘要的有一定的可读性的.
5 结论与展望
本文关键词引导指针生成网络进行摘要生成. 首先我们使用提取模型从输入文本获取关键信息. 然后, 将关键信息编码到指针生成网络的注意力机制中, 引导摘要的生成. 此外, 使用的双指针拷贝机制, 在输入的文本和关键词中进行单词的复制, 扩大了单词的复制范围. 实验表明, 我们的模型在ROUGE得分有明显的提高, 同时生成的摘要能够契合原文内容. 在未来, 我们可以改进模型的骨架, 通过使用Transformer能更好地捕获词与词之间的关系, 进一步提高模型的准确性和关联性.
[1] |
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: ACM, 2014. 3104–3112.
|
[2] |
Rush AM, Chopra S, Weston J. A neural attention model for abstractive sentence summarization. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: ACL, 2015. 379–389.
|
[3] |
Over P, Dang H, Harman D. DUC in context. Information Processing & Management, 2007, 43(6): 1506-1520. |
[4] |
Graff D, Kong JB, Chen K, et al. English gigaword. Linguistic Data Consortium, Philadelphia, 2003, 4(1): 34. |
[5] |
Chopra S, Auli M, Rush AM. Abstractive sentence summarization with attentive recurrent neural networks. Proceedings of the 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.
|
[6] |
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: ACL, 2016. 1631–1640.
|
[7] |
Hu BT, Chen QC, Zhu FZ. LCSTS: A large scale Chinese short text summarization dataset. Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. Lisbon: Association for Computational Linguistics, 2015. 1967–1972.
|
[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: ACL, 2017. 1073–1083.
|
[9] |
Mihalcea R, Tarau P. TextRank: Bringing order into text. Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing. Barcelona: ACL, 2004. 404–411.
|
[10] |
巴志超, 李纲, 朱世伟. 共现分析中的关键词选择与语义度量方法研究. 情报学报, 2016, 35(2): 197-207. DOI:10.3772/j.issn.1000-0135.2016.002.009 |
[11] |
Wan XJ, Yang JW, Xiao JG. Towards an iterative reinforcement approach for simultaneous document summarization and keyword extraction. Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics. Prague: ACL, 2007. 552–559.
|
[12] |
Li CL, Xu WR, Li S, et al. Guiding generation for abstractive text summarization based on key information guide network. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics. New Orleans: ACL, 2018. 55–60.
|
[13] |
Li HR, Zhu JN, Zhang JJ, et al. Keywords-guided abstractive sentence summarization. Proceedings of the 34th AAAI Conference on Artificial Intelligence. New York: AAAI, 2020. 8196–8203.
|
[14] |
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis: ACL, 2019. 4171–4186.
|
[15] |
Kingma DP, Ba J. Adam: A method for stochastic optimization. arXiv: 1412.6980, 2014.
|
[16] |
Lin CY. ROUGE: A package for automatic evaluation of summaries. Proceedings of Workshop on Text Summarization Branches Out. Barcelona: ACL, 2004. 74–81.
|
[17] |
Ma SM, Sun X, Xu JJ, et al. Improving semantic relevance for sequence-to-sequence learning of Chinese social media text summarization. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. Vancouver: ACL, 2017. 635–640.
|
[18] |
Yang WJ, Tang ZC, Tang XH. A hierarchical neural abstractive summarization with self-attention mechanism. Proceedings of the 2018 3rd International Conference on Automation, Mechanical Control and Computational Engineering. Atlantis Press, 2018. 514–518.
|
[19] |
Li PJ, Lam W, Bing LD, et al. Deep recurrent generative decoder for abstractive text summarization. Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen: ACL, 2017. 2091–2100.
|