码迷,mamicode.com
首页 > 其他好文 > 详细

Abstractive Summarization

时间:2018-07-25 14:27:36      阅读:566      评论:0      收藏:0      [点我收藏+]

标签:ring   2.0   ted   方法   max   selected   abi   mmu   ati   

Abstractive Summarization

A Neural Attention Model for Abstractive Sentence Summarization

  • Alexander M. Rush et al., Facebook AI Research/Harvard
  • EMNLP2015
  • sentence level
  • seq2seq模型在2014年提出,这篇论文是将seq2seq模型应用在abstractive summarization任务上比较早期的论文。同组的人还发表了一篇NAACL2016(Sumit Chopra, Facebook AI Research_Abstractive sentence summarization with attentive recurrent neural networks)(作者都差不多),在这篇的基础上做了更多的改进,效果也更好。这两篇都是在abstractive summarization任务上使用seq2seq模型的经典baseline。

  • 目标函数是negative log likelihood,使用mini-batch SGD优化
  • 本文提出了3种encoder,重点在于Attention-based encoder
    • bag-of-words encoder
    • Conv encoder: 参考TextCNN,没有做过多的其他改动
    • Attention-based encoder:
      x: 原始文本
      y_c: 上下文单词(已经输出的摘要内容)技术分享图片技术分享图片
  • 生成摘要使用Beam Search算法
  • 本模型效果并不让人满意
  • 性能(ABS)
    • DUC-2004: Rouge-1:26.55/Rouge-2:7.06/Rouge-L:22.05
    • Gigaword: Rouge-1:30.88/Rouge-2:12.65/Rouge-L:28.34

Abstractive Sentence Summarization with Attentive Recurrent Neural Networks

  • Sumit Chopra et al., Facebook AI Research
  • NAACL2016
  • sentence level
  • encoder: 使用了基于注意力的CNN
    • 先将词的原始embedding(x_i)和位置embedding(l_i)(可训练)相加,作为词的full embedding(a_i)
    • 然后使用size=5的一维卷积核做一个卷积操作,得到aggregate embedding(z_i)
    • 计算attention:
      技术分享图片
      h_t-1是t-1时刻的隐层状态(吧)
    • 计算t时刻encoder的输出c_t:
      技术分享图片
  • decoder: 普通的RNN和LSTM都试了
    • 状态更新:
      技术分享图片
  • 模型encoder的输入每次都是一个完整地句子,decoder每次要输出的时候,会将h_t-1给encoder,encoder根据句子和h_t-1计算attention生成c_t给decoder,然后decoder根据(y_t-1, h_t-1, c_t)计算要输出的单词。encoder还要更新position embedding(l_i)
  • 性能(RAS-Elman, k=10, k means beam size):
    • DUC-2004: Rouge-1:28.97/Rouge-2:8.26/Rouge-L:24.06
    • Gigaword: Rouge-1:33.78/Rouge-2:15.97/Rouge-L:31.15

Abstractive Text Summarization Using Sequence-to-Sequence RNNs and Beyond

  • Ramesh Nallapati, Bowen Zhou, Cicero dos Santos; IBM
  • CoNLL2016
  • 这篇文章除了seq2seq,还用了很多的tricks来提升性能,model部分看起来挺多的,LVT在网上搜不到,搜sampled softmax就能搜到了。
  • Models
    • LVT/sampled softmax: seq2seq输出的时候使用了softmax,计算V中的每个词的值并归一化,这一步非常耗时。sampled softmax对每个句子/文章单独采样了一个V‘,只对V‘中的词计算softmax并归一化,大幅减少了训练时的计算量。不过在测试的时候仍然需要计算所有词
    • Feature-rich encoder: 就是将POS、NER、TF、IDF等文本特征拼接在word embedding后面作为encoder的输入
    • Switching Generator-Pointer: 这个操作主要用于解决OOV和UNK问题,当碰到OOV时,g_i置为0,模型会从输入中寻找一个词作为输出和下一时间片的输入。测试时模型会自动决定采用decoder的输出还是从输入中挑选一个词作为输出。
    • Hierarchical Attention: 模型会对每个句子计算attention,并整合句子的权重计算每个词的权重。句子的的隐层状态后面还会拼接position embedding。
    • Hierarchical Attention效果没有预期的好,作者还使用了Temporary Attention(Sankaran et al., 2016, Temporal Attention Model for Neural Machine Translation),效果大幅提升。
  • DataSet: 本文提出了CNN/Daily Mail Corpus,每个摘要包含了多个句子(之前的DUC2004和Gigaword每个摘要只包含1个句子),后续被大量用于评测。
  • 性能
    • Gigaword: Rouge-1:35.30/Rouge-2:16.64/Rouge-L:32.62
    • CNN/Daily Mail Corpus: Rouge-1:35.46/Rouge-2:13.30/Rouge-L:32.65

Selective Encoding for Abstractive Sentence Summarization

  • Qingyu Zhou, Nan Yang, Furu Wei, Ming Zhou; MSRA&HIT
  • ACL2017
  • sentence level again
  • Models
    • Encoder没什么好说的,单层BiGRU为每个词x_i生成一个2d维的hidden state(h_i)
    • Selective Mechanism是将词的h_i与句子的s拼接到一起,搁到一个前馈网络里生成输出h‘_i。行吧,但是你这s有点不讲道理啊,凭啥s=[h←_1, h→_n],凭啥这个就能代表整个句子。h←_1表示从右到左读取了整个句子, h→_n表示从左到右读取了整个句子,看起来还是比较合理的。
    • Decoder的不同在于maxout。GRU使用s_t-1, c_t-1, y_t-1更新s_t;s_t+h_i计算e_i然后归一化得到权重α_i,乘以h‘_i得到context向量c_t,和s_t、y_t-1一起放到一个maxout层(k=2)中得到output,然后使用softmax。这个maxout层有点意思,相当于不同层网络之间有2套互相独立的权重参数,输出z的时候选一个能让z大的参数。这里encoder使用了BiGRU,decoder得到的输出是2d,使用k=2的maxout合并相邻的两个数值,将输出降为d维(细细一想好像不是很有道理……把第i个和d+i个合并是不是好一点,毕竟在向量空间中是同一个维度)。
  • 性能: all are state-of-the-art
    • Gigaword(Rush et al., 2015): Rouge-1:36.15/Rouge-2:17.54/Rouge-L:33.63
    • Gigaword(ours): Rouge-1:46.86/Rouge-2:24.58/Rouge-L:43.53(sounds something strange??? why so high?)
    • DUC2004: Rouge-1:29.21/Rouge-2:9.56/Rouge-L:25.51

Incorporating copying mechanism in sequence-to-sequence learning

  • Jiatao GU et al.
  • ACL2016
  • using LCSTS Dataset
  • Models
    • 整体: 技术分享图片
    • Prediction: 相比上一个有个开关的方式,这篇论文则将概率相加再softmax得到输出。对于V中的每个词,计算generation模式的概率,对于X中的每个词,计算copy模式的概率,最后进行归一化,得到输出。
      技术分享图片
    • Decoder State Update: s_t=f(s_t-1, y_t-1, c_t)这个和常规的是一样的,但是这里的y_t-1=[e(y_t-1), C(y_t-1)]T,e就是y_t-1的embedding,C是输入单词的权重,对跟y_t-1相同的词进行计算,不相同的词直接置0,然后归一化。
  • Code: https://github.com/MultiPath/CopyNet
  • 性能:
    • LCSTS(Word Level): Rouge-1:35.0/Rouge-2:22.3/Rouge-L:32.0

Sequential Copying Networks

  • Qingyu Zhouy, Nan Yang, Furu Wei, Ming Zhou; HIT & MSRA
  • AAAI2018
  • 原先的CopyNet每次copy一个词,这篇文章一次可以copy多个词(词组),通过给每个copy的词打标签来判断是否结束
  • 性能
    • Gigaword: Rouge-1:35.93/Rouge-2:17.51/Rouge-L:33.35

A Deep Reinforced Model for Abstractive Summarization

  • Romain Paulus, Caiming Xiong & Richard Socher; Salesforce Research
  • ICLR2018
  • Renforcement Learning
  • Models(Attention Mechanism)
    • Intra-Temporal Attention: 普通的Attention都是依次计算当前decoder的状态s_t与每个encoder的隐层状态h_i的得分e_i,然后归一化得到权重α_i,再加权求和得到上下文向量c_t。这篇文章对e_i做了修改,对所有时间片t的e_ti做归一化,得到对应时间片的归一化时序得分e‘_ti,然后再对所有encoder的隐层状态做一次归一化得到权重并计算c_t。
      技术分享图片
      技术分享图片
    • Intra-Decoder Attention: 普通的Attention都是计算当前decoder状态与不同encoder之间的权重。然而,已经由decoder输出的词对decoder输出下一个词同样是有影响的,例如可以避免输出陷入循环。因此这篇文章设计了一个decoder当前隐层状态与decoder历史隐层状态的attention机制。先计算当前h_t与历史每个h_t‘的得分,然后归一化得到权重,最后加权求和得到decoder的上下文输出c_t_d。
      技术分享图片
    • Generation/Pointer: 这里的copy机制与CopyNet有稍许不同。CopyNet是计算Generation、Pointer模式下的得分,最后统一归一化得到概率。这里先计算使用Pointer模式的概率,然后求得y_t的期望,选择期望最大的值作为输出。模式概率计算如公式:
      技术分享图片
    Pointer模式下y_t=x_i的条件概率直接取Intra-Temporal Attention中计算出的权重α_i,Generation模式下的条件概率使用softmax得到,计算公式类似于上述公式(σ替换为softmax)
    • Weight Sharing: 输出的embedding matrix是由输入的embedding matrix之间加了一层非线性映射得到的。(参考Inan et al. (2017) and Press & Wolf (2016))
      技术分享图片

    • beam search的时候,对于已经出现过的trigram,直接将概率设为0避免重复。
  • Models(Hybrid Learning Objective)
    • Teacher Forcing算法。通常的目标函数都是NLL,然而即便达到最优,在使用离散评价方式(ROUGE, CIDEr, BLEU)进行评价的时候,往往得不到最好的效果,主要原因有俩:1. 训练的时候使用正确的单词作为下一时间片的输入,每一步的错误不会累积,但是测试的时候每一步的错误会累积到下一时间片。2. 输出文本的词序是灵活的,离散的评价方式也考虑到了这种灵活性,但是NLL没有。
    • Policy Learning: 强化学习的两种常用算法(Policy Gradient, Q-Learning)之一。本文使用self-critical policy gradient training algorithm (Rennie et al., 2016)。decoder生成2个输出序列,一个使用常规的方法生成y^,另一个基于p(ys_t|ys_t-1, ..., ys_1, x)概率分布抽样得到ys,r是评分函数,强化学习的目标函数如下:
      技术分享图片

    最终的混合目标函数如下:
    技术分享图片

  • 性能
    • CNN/Daily Mail(only ML): Rouge-1:38.30/Rouge-2:14.81/Rouge-L:35.49
    • CNN/Daily Mail(only RL): Rouge-1:41.16/Rouge-2:15.75/Rouge-L:39.08
    • CNN/Daily Mail(ML+RL): Rouge-1:39.87/Rouge-2:15.82/Rouge-L:36.90
  • 分析
    • 我们可以看到only RL的Rouge评分高于ML+RL不少,然而其可读性得不到保证。我们对每条摘要找了5个人从1-10分中打分,RL的得分是最低的,远低于ML。ML+RL的得分则最高。
      技术分享图片

Fast Abstractive Summarization with Reinforce-Selected Sentence Rewriting(了解)

  • Yen-Chun Chen, Mohit Bansal; UNC Chapel Hill
  • ACL2018
  • Extractor + Abstractor + Reinforcement Learning
  • 与我们的需求并不完全符合,没有深究
  • Models
    技术分享图片
    • : parallel decoding
    • decoder: CopyNet-like
    • 强化学习仅调整Extractor参数,不调整Abstractor参数,避免生成的句子可读性差,同样使用Policy Gradient学习算法。
  • 性能
    • CNN/Daily Mail: Rouge-1:40.88/Rouge-2:17.80/Rouge-L:38.54

A Reinforced Topic-Aware Convolutional Sequence-to-Sequence Model for Abstractive Text Summarization

  • Li Wang1, Junlin Yao2, Yunzhe Tao3, Li Zhong1, Wei Liu4, Qiang Du3
    • 1 Tencent Data Center of SNG
    • 2 ETH Zurich
    • 3 Columbia University
    • 4 Tencent AI Lab
  • IJCAI-ECAI2018
  • Conv Seq2seq + LDA + Reinforcement Learning
  • Models
    • Position Embedding: 每个词的输入=词向量+位置向量。词向量是随机初始化的,位置向量没说。
    • Gated Linear Unit: 每层的卷积操作做个线性变化到2d维,拆分成[A; B],然后两边残差连接喂入下一层
    • Multi-Step Attention: 先对隐层状态做个embedding再计算权重:
      技术分享图片
    W、b是参数,h是隐层状态,q_i是上一个输出的词。
    • Topic Embedding: 对于每个主题,抽取出前N个词出来构成词表K,预训练得到topic embedding。对于输入中的每个词,如果在K中,则使用topic embedding,否则使用word embedding。
    • Joint Attention: 在Topic-aware Conv过程中,计算Attention权重时,除了要计算当前decoder隐层状态与每个encoder输出的点积,还要计算当前decoder隐层状态与input ebmedding中每个encoder输出的点积,再求和并归一化作为权重。
    • Biased Probability Generation:
      技术分享图片
    Ψ是一个带偏置项的线性变换。
    • Reinforcement Learning: 策略和A Deep Reinforced Model for Abstractive Summarization一模一样,λ_RL=0.99
  • 性能
    • Gigawords: Rouge-1:36.92/Rouge-2:18.29/Rouge-L:34.58
    • DUC2004: Rouge-1:31.15/Rouge-2:10.85/Rouge-L:27.68
    • LCSTS(word): Rouge-1:39.93/Rouge-2:33.08/Rouge-L:42.68

Controllable Abstractive Summarization

  • Angela Fan, David Grangier, Michael Auli, Facebook
  • ACL2018
  • 之前的论文都忽视了用户的个人风格,包括摘要长度,行文风格,用词等。这篇论文可以按照用户的输入来生成类似风格的摘要。在无用户输入的情况下,模型也能达到State-of-the-art。

Deep Communicating Agents for Abstractive Summarization

  • Asli Celikyilmaz1, et al.; MSRA
  • NAACL2018
  • Models
    • 这篇文章想解决长文本的摘要问题,将文本划分成多个段落,对每个段落进行encode操作并计算内部的word attention,最后得到整个段落的embedding。之后将所有段落合并到一起计算Context Agent Attention,作为decoder的输入。
    • 改进了Pointer Network,可以从不同段落中抽取单词。
    • 同样使用了Reinforcement Learning,但是前面的RL目标函数都是采样得到一个y,再计算y与输出的y^之间Rouge得分差作为优化目标。这篇文章的每输出一个单词就计算一次当前Rouge得分,减去上一次的得分,作为优化目标。

Global Encoding for Abstractive Summarization

  • Junyang Lin, Xu Sun, Shuming Ma, Qi Su; PKU
  • ACL2018
  • Models
    • 这篇文章想解决的问题是decoder在输出时可能会不断重复已有的单词。在ICLR2018的A Deep Reinforced Model for Abstractive Summarization已经用过Intra-Decoder Attention尝试从已经输出过的内容上解决这个问题,这篇文章提出了Global Encoding方法使用源文本来尝试解决这个问题。

Abstractive Summarization

标签:ring   2.0   ted   方法   max   selected   abi   mmu   ati   

原文地址:https://www.cnblogs.com/dtblog/p/9365601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!