文本摘要-A Neural Attention Model for Abstractive Sentence Summarization

1. 总述

【论文名称】A Neural Attention Model for Abstractive Sentence Summarization
【论文地址】https://arxiv.org/pdf/1509.00685.pdf
【开源model代码】https://github.com/facebookarchive/NAMAS
【发表时间】2015-09
【主要内容】本文是采用的生成式的方式解决文本摘要任务,主要使用Attention+LM构建摘要提取模型。

2.文本摘要分类

文本摘要的目标是给定一段文本,有个词,输出文本摘要,长度为,。文本摘要有三种实现方式:

  • Abstractive: arbitary transformation
    生成式,从源文档中抽取句子并进行改写,形成摘要。

  • Extractive: deletion and reordering
    抽取式,摘要句子完全从源文档中抽取形成。
    ,其中

  • Compressive: deletion-only
    压缩,通过对源文本的删除操作产生目标文本。
    ,其中,且


虽然生成式的摘要提取方式较为困难,但缺乏硬约束,系统可以自由地生成语句,使得它适合更广泛的数据集。本文就是一篇生成式的文章,目标就是找到使得分函数最优的结果:

其中是一个窗口c内的上文内容:

3.模型结构

模型结构如a所示,红色框的部分可以当做Encoder模块,是一个NNLM(Neural Network Language Model),enc是含有Attention机制的Decoder模块,内部结构如图b所示。


ABS模型结构图

3.1Decoder

Decoder模块实质是一个Neural Language Model,其中是窗口c内Decoder已经得到的上下文,E是一个Embedding Matrix,计算过程如下所示:




其中可以理解为的向量形式,经过一层的非线性变换,激活函数为tanh函数得到h

3.2 Encoder

Encoder部分主要是为了编码输入文本,作者介绍了三种实现方式:

  • Bag-of-Words Encoder
    词袋模型是最简单的一个模型,这个方式将输入的句子用词袋模型降维到H,但是却忽略了词与词之间的顺序。公式表示为:


其中F是Embedding Matrix

  • Convolutional Encoder
    通过卷积来对输入进行编码,改善了Bag-of-Words的不足,允许单词之间相互影响,但是没有使用上下文

  • Attention-Based Encoder
    Bag-of-words缺少语序信息,Convolutional又需要编码整个序列(长序列不友好),所以根据Bahdanau Attention机制,提出一种Encoder方式,具体实现方式是:




这里的G和F都是分别是输入和输出的Embedding Matrix,P是需要训练的attention参数,p是attention得到的权重向量。
这里有个小处理, 是经过局部归一化后的向量,Q是一个平滑窗口,这里我理解的是窗口Q内的的词向量按位求平均。

4 训练及优化

4.1 数据处理

作者使用的是Gigaword数据作为训练集,测试集作者使用的是DUC-2014以及Gigaword随机保留的子集。
在训练之前,作者对数据进行了以下处理:

  • 删除没有结束符的文摘对
  • 删除标题署名和其他无关标志
  • 删除问号、冒号等标点符号
  • PTB词语拆分
  • 大写转小写
  • 数字替换成特殊符号
  • 出现次数小于5的词替换成
  • 移除DUC评价时用过的文章

4.2 优化

每篇文章的第一句话以及每篇文章的标题配对组成输入文摘对,对于给定的输入文摘对,优化函数为:

5.结论

最终的实验结果如下,作者提出的ABS模型在两个测试集上都获得了state of art的好成绩:


实验结果

总结:本文基于机器翻译的最新发展,Encoder-Decoder架构以及Attention的提出,提出了一种基于Attention的生成式模型。是神经网络用语生成式模型的开篇之作。文章的模型结构并不复杂,推荐阅读。

你可能感兴趣的:(文本摘要-A Neural Attention Model for Abstractive Sentence Summarization)