Self-Attention Guided Copy Mechanism for Abstractive Summarization---ACL 2020
仅仅是记录一下最近阅读的论文,前段时间也没怎么记录,有些论文看过也忘记了!
这篇论文是文本摘要CNN/DM数据集上达到了SOTA的效果,发表于ACL 2020.
按照文章整体脉络整理信息,细节内容后面看有时间在仔细阅读整理一下吧。
论文链接:Self-Attention Guided Copy Mechanism for Abstractive Summarization
ps. 没找到论文源码,所以具体实现细节还有待了解,顺便蹲个论文源码链接。
1. 论文提出背景
复制模块是最近抽象式摘要模型里面广泛使用的模块,这个模块使得decoder可以从源文档中提取单词作为摘要。通常来说,encoder-decoder注意力分数作为复制分布,然而如何保证源句中的重要单词被复制仍然是一个主要的挑战。
本文主要需要解决的问题就是如何更加合理的确定源句中单词的copy distribution。复制分布就是源句中每个单词每个时间刻的概率分布大小。本文采用的基础模型还是指向生成器网络,看论文后面的内容也可以看出来,文中也计算了Pgen和Pvocab的概率。
2. 本文主要贡献
- 本文提出了基于文本摘要源句单词的中心度为指向的复制机制,中心度的获取通过入度和出度计算来度量。
- 本文提出了中心度感知( centrality-aware)的注意力,并且提出了一个以损失为导向的模型,使得模型可以对源句中重要的单词有更多的关注。
- 本文在公开的文本摘要数据集上达到了SOTA效果。
3. 本文解决方案
使用基于Transformer的模块增强复制机制(copy mechanism),具体地说:使用自注意力(self-transformer)来计算源句中单词的重要性。
自注意力部分:通过Q,K的点积来计算词汇的相关度,从而计算出词汇的重要性。这一部分就是transformer提出里面的一些理论,不是本文的创新内容。
中心度计算:引入了自注意力图之后,我们计算基于邻接矩阵计算每个单词的中心度。一个更直接的方法是使用TextRank算法来保证每个单词从其他单词获得更多的相关度得分。TextRank方法以入读为中心著称。这是本文的创新内容,中心度计算的结果最后作为重要信息用来确定源句单词的概率分布,进一步确定了复制分布(copy distribution)。
本文模型结构图放一张:
3.1 Transfomer-based 模型
论文也没咋详细介绍,这部分内容还是要参考Transformer提出的论文里面的细节。
3.2 单词中心度计算
本文介绍了两种基于transformer的单词中心度计算的方法:入度方法和出度方法。用自注意力层(self-attention layer)来计算源句单词的中心度分数。
其实就是分别将自注意力图中的每个节点(节点表示的是源句中的每个单词)的入度和出度,然后分别以入度和出度来计算了score,具体的计算就是根据图的邻接矩阵来算了每个节点i到j的入度(出度)数除以节点j的所有入度(这里的计算就是一个很简单的公式):
根据TextRank算法计算入度的公式:
出度score计算公式:
3.3 整合中心度到复制分布
得到上面的score,就用这个score来指导最终的复制分布的生成:
重新设计了损失函数:
损失函数这里简单的解释一下,引入损失函数的第二项是计算了中心度计算得分score和最终的复制分布计算了KL差异,对中心度预测出错的地方有一定的惩罚,督促模型对重要的词汇有更高的关注度。避免重要信息的遗漏。这也是本文的一个创新点。
4. 实验结果
一句话概括:自注意力图给复制分布提供了更有效地保证,模型在开放的摘要数据集上达到了SOTA的效果。实验结果数据在下面的两个表中展示出来了。
参考文献:
[1] Self-Attention Guided Copy Mechanism for Abstractive Summarization