当前位置:   article > 正文

如何解决长对话摘要生成问题?_长文本摘要

长文本摘要

主要参考论文:《DYLE: Dynamic Latent Extraction for Abstractive Long-Input Summarization》

摘要:

        基于transformer的模型已经在短输入的摘要提取方面取得了先进的性能。但是也正是由于注意力机制交互的机制,在运算资源有限的情况下,提取长对话的摘要是十分困难的。

        DYLE这篇论文采用了先提取再生成的方案——即先由重要句子提取器提取对话集中的重要句子,再根据这些重要句子摘要生成器生成摘要。

        而这篇文章的创新点在于,作者设计了一个动态潜在提取(Dynamic Latent Extraction)方法,用于联合训练重要句子提取器和摘要生成器。同时这种方法还具有一定的可解释性

相关工作:

当前主要有四种方法处理长文本的摘要问题。

1、先提取再生成的方法。

一般的操作是先将文本转化为句子表示序列(一般是用bert),然后要么对这些句子表示做序列标注,要么依次对句子表示做文本分类。得到的重要句子再输入到摘要生产器中,进行摘要生成。

缺点:这种方法最大的问题是提取阶段和生成阶段是不可微的,需要通过一些技巧才能联合训练。比如通过强化学习。但是面对长对话摘要,强化学习奖励如果是基于句子级别的rouge分数之和的话,会导致选择内容重合的句子;奖励如果是基于摘要级别的rouge分数又会难以训练。

fast_abs_rl [4]

总之该论文的观点是以往的通过强化学习联合训练两阶段模型的方案是不适用于长文本场景下的长摘要生成。

此外此方法还有一个问题,重要句子提取器提取的往往不是连续的文本,离散的文本即使能生成出rouge分数高的摘要,但是这样的摘要真的可靠吗。论文只是假设信息完备且摘要可靠。当然提取重要句子的过程也是一个去噪的过程,毕竟对话不像文本,确确实实有很多废话,如果保留的话反而会影响摘要的生成质量。

2、使用稀疏注意力机制和分块的方法

通过使用稀疏注意力机制的编码器将整个对话集塞进去,当然即使是使用了稀疏注意力机制还是很难塞进如此长的文本(上万甚至几万的文本)。在实际应用时还会先将文本切块,块内做局部的注意力计算,再在块间做全局注意力计算。

这种方法确实是做到了对信息的最大利用,既有一种大算力和强算法的美。[3]

DialogLM [3]

缺点:从直观上来讲,总结如此长对话的摘要,是否真的需要一口气把整个对话集输入进去?主要是显存和计算开销确实大。

以及如果使用稀疏注意力机制感受野肯定有损失,而且减少了预训练模型的好处。(论文如是说)我认为:如果又要使用稀疏注意力又要只做块内注意力和块间注意力,那确实没有现成的预训练模型可用的。但是指责这种方法损失了部分感受野属于是有些牵强了,该论文的方法都把大部分文本抛弃了,属于是”50步笑100步“。

3、分治法

先将原输入切分为多个部分,然后各个部分的子摘要,并结合起来产生最终的摘要。很明显这种模式是建立在被切分的各个部分之间没有什么上下文依赖这个假设之上的。可能通过一些文本分割算法使上述假设尽量成立吧。

还有些方法会训练一个生成模型,对这些子摘要进行修饰操作。

Summ^N [5]

4、层次模型

一个文档它的信息天然就有层级结构,比如token级别的层次、句子级别的层次、段落级别的层次。层次模型通过整合利用这些层次信息来达到更好的摘要总结效果。

缺点:他们并不注重显存和计算开销。

HAT-BART  [6]

如图:HAT-BART是增强了句子层次信息的层次模型

论文的方法:

该论文的框架采用的是重要句子提取器+摘要生成器两阶段模型框架。

重要句子提取器采用的是bert系列模型,通过将每句话的cls作为该句话的句子表示并对其进行评分来筛选重要句子。我们一般选取top-k个重要句子。

摘要生成器采用了bart模型,通过将这top-k个重要句子输入到bart中生成摘要。
上文提到,这样的框架一直有一个问题,那就是提取器是通过top-k选取句子的,索引这个操作是不可微的。所以必须有一个结构使得提取器和生成器可以信息交互,从而达到联合训练的目的。之前一般是用强化学习的方法来解决。

而该论文实现联合训练的方法是通过对bart的改动实现的。

首先作者将batch_size调为1(batch_size小的问题通过梯度累积的方式来解决),这样每次就是输入一个样本了。显然每次输入bart的样本都有top-k句话。作者将每一句话作为一个独立的样本,如此将这些句子分隔开。也就是说此时输入bart的是batch_size为top-k,每一个样本为一句话的数据(同时也将摘要复制top-k份,对应每一个句子样本)。

如此每一个时间步我们会得到top-k个单词表,它们都是对应了同一个摘要的相应文字。那到底生成哪一个字呢?

作者添加了一个多层感知机,将bart的decoder的最后一个隐层输入mlp中,mlp对这top-k个句子进行打分,这个分数转化为概率来对这top-k个词表加权。

一方面这top-k个词表的概率求和就可以确定下究竟生成哪个词,另一方面mlp在每个时间步对句子的打分求和后可以作为生成器该句子重要性的评估。

前者可以用来训练生成器,后者可以用来训练重要句子提取器。

这种方法确实是可以很好地将句子提取器和摘要生成器连接起来进行联合训练。但是摘要生成器预测词的过程完全是没有句子与句子之间的信息交互的,只有句子内部的注意力机制。mlp的对句子的打分也只是根据decoder_input和该句子本身,并没有考虑其他句子信息对被打分句子的影响。

当然不做注意力机制当然是有保持句子独立性以保证mlp对句子评分是真的对原始输入评分的考虑。但是还是在逻辑上有些别扭,毕竟生成摘要的过程居然是只根据句子内部的局部注意力机制,加上一个加权投票机制实现的。生成模型至始至终都其实没有看到所有句子的全貌。

参考文献:

[1] Mao Z ,  Wu C H ,  Ni A , et al. DYLE: Dynamic Latent Extraction for Abstractive Long-Input Summarization[J].  2021.

[2]Long document summarization: 一文速览长文本摘要进展 - 知乎 (zhihu.com)

[3]Zhong, Ming et al. “DialogLM: Pre-trained Model for Long Dialogue Understanding and Summarization.” ArXiv abs/2109.02492 (2021): n. pag.

[4]Chen, Yen-Chun and Mohit Bansal. “Fast Abstractive Summarization with Reinforce-Selected Sentence Rewriting.” Annual Meeting of the Association for Computational Linguistics (2018).

[5] Summ^N: A Multi-Stage Summarization Framework for Long Input Dialogues and Documents

[6] Rohde, T. ,  X. Wu , and  Y. Liu . "Hierarchical Learning for Generation with Long Source Sequences." (2021).

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/473622
推荐阅读
相关标签
  

闽ICP备14008679号