文章目录

  • 前言
  • 第一课 论文导读
    • 摘要简介
    • 抽取式文本摘要
      • 基于TextRank的抽取式摘要
      • 基于聚类的抽取式摘要
      • 基于序列标注的抽取式摘要
      • 文本摘要发展历史
    • 生成式摘要
      • 序列到序列结构
      • 两类方法对比
    • 前期知识储备
  • 第二课论文精读
    • 动机
    • 模型
      • 基线模型
      • 指针网络
      • 覆盖率机制Coverage mechanism
    • 实验结果
    • 讨论和总结
  • 作业

前言

Get To The Point:Summarization with Pointer-Generator Networks
融合seq2seq和pointer network的指针生成网络
作者:Abigail See
单位:Stanford University
发表会议及时间:ACL2017
在线LaTeX公式编辑器
a.Seq2seq
NLP中的一类任务就是序列生成,指的是让神经网络按序生成符合语法规则的自然语言文本。目前的序列生成任务大都基于seq2seq框架。掌握基础的seq2seq结构,以及在seq2seq中加入attention的改进版结构。
b. 文本摘要
文本摘要是目前很火热的研究方向,主要研究如何将长文本浓缩为短文本,涉及两类主要方法,第一类的抽取式摘要,第二类是生成式摘要。

第一课 论文导读

摘要简介

随着近几年文本信息的爆发式增长,人们每天接触到海量的文本信息,如新闻、博客、聊天、报告、论文、微博等。从大量文本信息中提取重要的内容,已成为我们的一个迫切需求,而自动文本摘要(automatic text summarization)则提供了一个高效的解决方案。
摘要是“一段从一份或多份文本中提取出来的文字,它包含了原文本中的重要信息,其长度不超过或远少于原文本的一半”。自动文本摘要旨在通过机器自动输出简洁、流畅、保留关键信息的摘要。
抽取式:抽取式摘要判断原文本中重要的句子,抽取这些句子成为一篇摘要。
生成式:应用先进的自然语言处理的算法,通过转述、同义替换、句子缩写等技术,生成更凝练简洁的摘要。
抽取必生成简单。

抽取式文本摘要

在抽取式摘要中,抽取一段文本中表示重点内容的单词子集,并结合起来生成摘要。我们可以将抽取式摘要看作是一支荧光笔-从源文本中抽取主要信息

基于TextRank的抽取式摘要

无监督
1.把所有文章整合成文本数据
2.把文本分割成单个句子
3.为每个句子生成向量表示
4.计算句子向量间的相似性并存放在矩阵中
5.将相似矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子TextRank计算
6.一定数量的排名最高的句子构成最后的摘要。

基于聚类的抽取式摘要

无监督式抽取
1.将文章中的句子视为一个点,按照聚类的方式完成摘要。
2.将文章中的句子使用Skip thought vectors 进行编码,得到句子级别的向量表示。
3.使用K均值聚类进行句子聚类,得到N个类别。
4.最后从每个类别中,选择距离质心最近的句子,得到N个句子,作为最终摘要。

基于序列标注的抽取式摘要

有监督式抽取
1.为原文中的每一个句子打一个二分类标签(0或1),0代表该句不属于摘要,1代表该句属于摘要。最终摘要由所有标签为1的句子构成。
2.使用双向GRU分别建模词语级别和句子级别的表示
3.蓝色部分为词语级别表示,红色部分为句子级别表示,对于每一个句子表示,有一个0、1标签输出,指示其是否是摘要。

文本摘要发展历史

趋势:语义连贯性、灵活性
保证语法、句法正确
内容浓缩性

生成式摘要

序列到序列结构

生成式摘要实际上就是seq2seq模型。
Sequence-to-sequence(seq2seq)模型,顾名思义,其输入是一个序列,输出也是一个序列,例如输入是英文句子,输出则是翻译的中文。seq2seq 可以用在很多方面:机器翻译、QA系统、文档摘要生成、Image Captioning(图片描述生成器)。
下面两个图是最早期最简单的seq2seq模型:


加入注意力的序列到序列(Attention in seq2seq)
这里的每一个时刻的c是不一样的。


1.未登录词问题(OOV)
2.生成重复

两类方法对比

抽取式的摘要:可以无监督学习,从原文中选择句子。
优点:无监督进行,成本低;从原文中选择句子、保证语法正确
缺点:很不灵活、内容不一定精简
生成式的摘要:有监督方法训练,自动生成
优点:灵活性高,内容精简
缺点:不能解决未登录词问题、语法不一定正确
Pointer:如何结合两种方法?

前期知识储备

文本摘要
掌握文本摘要的任务,熟悉其发展历程
抽取式摘要
掌握TextRank的基本思想(很重要,面试常用)
生成式摘要
掌握加入注意力机制的序列到序列模型

第二课论文精读

了解Pointer network
了解模型的设计动机,以及加入pointer和Coverage机制后对模型的影响

动机

就是上面对比抽取式的摘要和生成式的摘要方法中提出来的:
如何结合两种方法。

模型

基线模型

这个文章对比的基线模型实际上就是在导读中提到的基于Attention的seq2seq模型。左下角的Source Text就是输入文档,对其编码得到隐状态,还有一个解码端(右下角黄色部分),解码端会根据当前时刻的输出(图中是Germany)计算下一个时刻的输出是什么,是用当前时刻的输出隐状态当做query,来和输入的隐状态算一个attention,得到一个表示,这个表示就是输出对输入内容的一个感知,然后进行解码。具体公式如下:
eit=vTtanh(Whhi+Wsst+bt)e_i^t=v^Ttanh(W_hh_i+W_ss_t+b_t)eit​=vTtanh(Wh​hi​+Ws​st​+bt​)
at=softmax(et)a_t=softmax(e_t)at​=softmax(et​)
ht∗=∑iaithih_t^*=\sum_ia_i^th_iht∗​=i∑​ait​hi​
Pvocab=softmax(V′(V[st;ht∗]+b)+b′)P_{vocab}=softmax(V'(V[s_t;h_t^*]+b)+b')Pvocab​=softmax(V′(V[st​;ht∗​]+b)+b′)
P(w)=Pvocab(w)P(w)=P_{vocab}(w)P(w)=Pvocab​(w)
losst=−log(P(w∗))loss_t=-log(P(w^*))losst​=−log(P(w∗))
loss=1T∑t=0Tlosstloss=\frac{1}{T}\sum_{t=0}^{T}loss_tloss=T1​t=0∑T​losst​
其中sts_tst​是当前时刻要解码的隐状态
sis_isi​是输入端的第i个词的隐状态
需要计算的是当前时刻t的输入端的第i个词对当前时刻的贡献度为多少,计算方式是把sts_tst​和sis_isi​按第一个公式中的分别乘上一个矩阵然后相加,求tanh后结果是一个向量,然后再和vTv^TvT做点积得到一个值,这个值就是贡献值。
PvocabP_{vocab}Pvocab​维度是词表大小。

原文的基线模型提取摘要的实例:
Original Text(truncated): lagos, nigeria(cnn)a day after winning nigeria’s presidency, muhammadu buhari told cnn’s christiane amanpour that he plans to aggressively fight corruption that has long plagued nigeria and go after the root of the nation’s unrest. buhari said he’ ll"rapidly give attention"to curbing violence in the northeast part of nigeria, where the terrorist group boko haram operates. by cooperating with neighboring nations chad, cameroon and niger, he said his administration is confident it will be able to thwart criminals and others contributing to nigeria’s instability.for the first time in nigeria’s history, the opposition defeated the ruling party in democratic elections. buhari defeated incumbent goodluck jonathan by about 2 million votes, according to nigeria’s independent national electoral commission. the win comes after a long history of military rule, coups and botched attempts at democracy in africa’s most populous nation.

Baseline Seq2Seq +Attention: UNK UNK says his administration is confident it will be able to destabilize nigeria’s economy. UNK says his administration is confident it will be able to thwart criminals and other nigerians.he says the country has long nigeria and nigeria’s economy.

指针网络

解决未登录词问题,未登录词肯定在原文中出现过。作者就想把这些词从原文中copy过来,而不是从有限的词表中进行解码,具体做法如下,前面的计算三个小步骤都一样,然后计算一个生成器概率pgenp_{gen}pgen​,这个概率是指ht∗h_t^*ht∗​是从decoder端解码还是直接从原文输入把词拿过来。第四个公式中xtx_txt​表示的是当前时刻的输入词。
第五个公式中的1−pgen1-p_{gen}1−pgen​代表直接copy原文的概率,乘上的是attention的得分。
eit=vTtanh(Whhi+Wsst+bt)e_i^t=v^Ttanh(W_hh_i+W_ss_t+b_t)eit​=vTtanh(Wh​hi​+Ws​st​+bt​)
at=softmax(et)a_t=softmax(e_t)at​=softmax(et​)
ht∗=∑iaithih_t^*=\sum_ia_i^th_iht∗​=i∑​ait​hi​
pgen=σ(wh∗Tht∗+WsTst+WxTxt+bptr)p_{gen}=\sigma(w_{h^*}^Th_t^*+W_s^Ts_t+W_x^Tx_t+b_{ptr})pgen​=σ(wh∗T​ht∗​+WsT​st​+WxT​xt​+bptr​)
P(w)=pgenPvocab(w)+(1−pgen)∑i:wi=waitP(w)=p_{gen}P_{vocab}(w)+(1-p_{gen})\sum_{i:w_i=w}a_i^tP(w)=pgen​Pvocab​(w)+(1−pgen​)i:wi​=w∑​ait​
losst=−log(P(w∗))loss_t=-log(P(w^*))losst​=−log(P(w∗))
loss=1T∑t=0Tlosstloss=\frac{1}{T}\sum_{t=0}^{T}loss_tloss=T1​t=0∑T​losst​

覆盖率机制Coverage mechanism

解决decoder产生重复的片段句子。之前已经关注过某个词,那么当前则少关注一点这个词,以形成语义的多样化。具体做法是用ct=∑t′=0t−1at′c^t=\sum_{t'=0}^{t-1}a^{t'}ct=∑t′=0t−1​at′来计算当前时刻的之前所有时刻(t-1)该词被关注过的权重(得分或次数),并把该权重作为decoder的计算的一个输入(即:wccitw_cc_i^twc​cit​),来隐含的实现该功能。
eit=vTtanh(Whhi+Wsst+wccit+bt)e_i^t=v^Ttanh(W_hh_i+W_ss_t+w_cc_i^t+b_t)eit​=vTtanh(Wh​hi​+Ws​st​+wc​cit​+bt​)
at=softmax(et)a^t=softmax(e^t)at=softmax(et)
ht∗=∑iaithih_t^*=\sum_ia_i^th_iht∗​=i∑​ait​hi​
pgen=σ(wh∗Tht∗+wsTst+wxTxt+bptr)p_{gen}=\sigma(w_{h^*}^Th_t^*+w_s^Ts_t+w_x^Tx_t+b_{ptr})pgen​=σ(wh∗T​ht∗​+wsT​st​+wxT​xt​+bptr​)
P(w)=pgenPvocab(w)+(1−pgen)∑i:wi=waitP(w)=p_{gen}P_{vocab}(w)+(1-p_{gen})\sum_{i:w_i=w}a_i^tP(w)=pgen​Pvocab​(w)+(1−pgen​)i:wi​=w∑​ait​
losst=−log(P(w∗))loss_t=-log(P(w^*))losst​=−log(P(w∗))
loss−1T∑t=0Tlosstloss-\frac{1}{T}\sum_{t=0}^{T}loss_tloss−T1​t=0∑T​losst​
以上两个机制:指针网络和覆盖率机制实际上是独立的。作者还发现,如果对loss加上约束,收敛得会更加好。
convlosst=∑imin(ait,cit)convloss_t=\sum_imin(a_i^t,c_i^t)convlosst​=i∑​min(ait​,cit​)
losst=−log(P(w∗))+λconvlosstloss_t=-log(P(w^*))+\lambda convloss_tlosst​=−log(P(w∗))+λconvlosst​

实验结果


其中的lead-3是新闻语料,新闻一般前面三句话是最重要的,最能概括新闻主旨的句子。

接前面抽取摘要的例子,用本文方法抽取的结果不在出现UNK词。而且第二抽取结果中出现了两处完全相同的短语,在最后的结果中也没有了(避免重复表达)
Pointer-Gen: muhammadu buhari says he plans to aggressively fight corruption in the northeast part of nigeria. he says he’ ll "rapidly give at-tention"to curbing violence in the northeast part of nigeria. he says his administration is confident it will be able to thwart criminals.
Pointer-Gen +Coverage: muhammadu buhari says he plans to aggressively fight corruption that has long plagued nigeria. he says his administration is confident it will be able to thwart criminals. the win comes after a long history of military rule, coups and botched attempts at democracy in africa’s most populous nation.

讨论和总结

A.提出一种新的摘要生成方法
1.指针网络解决未登陆词
2.覆盖率机制解决了词重复出现问题
B.性能提升十分明显
C.对后续工作有很大启发:实验分析十分详尽

作业

为了加入pointer,作者进行了哪些改进?
如果让你来设计pointer,你还有哪些设计方式?

深度之眼Paper带读笔记NLP.19:指针生成网络相关推荐

  1. 深度之眼Paper带读笔记NLP.2:word2vec.baseline.1

    文章目录 前言 论文储备知识 语言模型 基于专家语法规则的语言模型 统计语言模型 统计语言模型中的平滑操作 基于马尔科夫假设 语言模型评价指标:困惑度(Perplexity) 论文背景知识 词的表示方 ...

  2. 深度之眼Paper带读笔记NLP.5:transformer

    文章目录 前言 第一课:论文导读 序列模型简介 序列问题 序列模型 多到多的序列转换模型Sequence To Sequence Models 带有注意力的循环神经网络RNNs With Attent ...

  3. 深度之眼Paper带读笔记NLP.30:BERT

    文章目录 前言 第一课 导读 语言模型与Word Embedding 语言模型 Language Model 神经网络语言模型Neural Network Language Model 词嵌入 Wor ...

  4. 深度之眼Paper带读笔记NLP.18:UMT

    文章目录 前言 第一课 论文导读 机器翻译简介 机器翻译研究意义 机器翻译的发展历史 基于规则的机器翻译 基于统计的机器翻译 基于实例的机器翻译 基于神经网络的机器翻译 端到端的神经机器翻译(Sequ ...

  5. 深度之眼Paper带读笔记NLP.22:双向Attention

    文章目录 前言 第一课 论文导读 阅读理解简介 多种阅读理解任务 人工合成问答 完形填空 选择题 前期知识储备 第二课 论文精读 论文整体框架 对比模型 注意力机制 Match-LSTM(一种阅读理解 ...

  6. 深度之眼Paper带读笔记目录

    文章目录 简介 图神经网络(已完结) NLP精读论文目录(已完结) NLP Baseline(已完结) CV目录(已太监) 简介 本次的Paper学习营分CV和NLP两个方向,每个方向又分精读.重点阅 ...

  7. GNN手写字体识别java_深度之眼Paper带读笔记GNN.09.GGNN

    文章目录 前言 本课程来自深度之眼,部分截图来自课程视频. 文章标题:Gated Graph Sequence Neural Networks 门控序列图神经网络(GGNN) 作者:Yujia Li∗ ...

  8. 深度之眼Paper带读笔记GNN.06.GAT

    文章目录 前言 导读 论文结构 学习目标 研究背景 图卷积 Notation 归纳式学习 空域与频域卷积 GAT模型多头注意力机制 意义 泛读 摘要 论文结构 精读 算法模型总览 GNN的结构 GAT ...

  9. 深度之眼Paper带读笔记GNN.09.GGNN

    文章目录 前言 论文结构 学习目标 泛读 研究背景 研究意义 摘要 章节 精读 细节一:GRU模型回顾 细节二:GGNN模型 Propagation Model output model 模型框架 G ...

最新文章

  1. docker klee tutorial_通过Docker使用KLEE
  2. Ubuntu 11.10中用xen-tools安装虚拟机(UbuntuCentOS)
  3. MD5算法 —— C语言实现(字符串的加密)
  4. PowerShell-2.解决禁止本地执行脚本
  5. 3.8 Softmax 回归-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  6. oracle 行送,Oracle 行专列
  7. 论文阅读——《Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM》
  8. “睡服”面试官系列第九篇之数值的扩展(建议收藏学习)
  9. laydate时间控件有时候无效_新角度,如何无效没用地听课
  10. 转载 Android入门学习_代码常用布局
  11. jdk-14.0.2_linux-x64_bin.tar.gz
  12. Psam_ISO7816
  13. 怎么实现两周联动加减速_猎魂觉醒与仁王开启联动,猎魂觉醒团队还与“仁王”制作人聊了聊...
  14. 测试图片真假软件,如何找出照片的PS痕迹__如何检测一张图片是否被PS过_飞翔教程...
  15. SaxReader解析xml文件--绕过多层for循环
  16. SM系列国密算法简介
  17. 如何下载网页中的视频?
  18. Linux下的Job Control
  19. PMP考试中常见的翻译问题
  20. 央企建筑公司数字化转型最大挑战是什么?如何破解?

热门文章

  1. Centos7安装kvm服务器
  2. 详解Linux系统CentOS的安装步骤
  3. 达芬奇无声音解决方案
  4. 币乎的弊端,primas不要重蹈覆辙
  5. jenkins实战系列
  6. python爬大众点评手机号_Python爬虫丨大众点评数据爬虫教程(1)
  7. c语言 打包成app,uni-app初体验及打包成apk
  8. 微信中如何做到访问app的下载链接直接跳到默认浏览器去执行下载
  9. WindTerm导出会话
  10. oracle数据库巡检内容