【论文阅读】Get to the point :summarization with pointer-generator networks

基于Python的自然语言处理系列(26):Get to the Point Summarization "Get to the Point" 模型结合了Pointer机制和覆盖率机制,解决了生成式摘要系统中的词汇外词(OOV)问题以及重复生成问题。该模型的核心思想是使用Pointer-Generator机制将生成器(Generator)和指针(Pointer)结合,从而在预测新词时可以选择从词汇表中生成词语,或者直接复制文章中的词。覆盖率机制则通过引入覆盖向量,帮助模型避免生成重复内容。《Get to the Point》论文为自然语言处理中的文本摘要生成任务提供了重要的解决方案。 阅读详情

 

摘要:

本文在原来的神经seq2seq模型上进行了两种改变,用混合的pointer-generator网络,既可以通过pointing直接从原文中copy单词又保留了通过generator生成新词的能力;另外,用coverage来记录已经总结出的内容,防止重复。

1 Introduction

生成摘要一般有两种方式,extractive和abstractive,前者是直接从原文中获取段落(通常是完整的句子)来汇总成摘要,而后者是生成新的单词或短语。前者相对较简单。seq2seq的出现使得abstractive的方式变得可能,但是有几个问题:产生不准确的事实类细节、生成重复的词,以及不能很好的处理OOV。本文提出的模型旨在解决这三个问题。

2 Model

2.1 baseline seq2seq model

 

一个单层双向的LSTM作为encoder,源文本(Germany emerge victorious..)中单词被一个一个喂进encoder中,然后生成encoder hidden state hi,也就是图片中红色的长方形。

输入源文本后,解码器decoder(单层单向LSTM)生成摘要。每一步中,decoder以已经生成的摘要来更新decoder hidden state,也就是图中右边黄色长方形的部分(第一步是以特定的开始符<start>作为开始的信号)。

而decoder hidden state被用来计算注意力分布,也就是图中由黄色长方形指向蓝色的那个箭头表示的。注意力分布会告诉我们现在应该重点看哪些输入,也即是source中的词的概率分布。

这个at就是计算出来的得分,也就是蓝色方框的概率大小

此刻图中的状态可以直观的看到应该更加关注得分更高的victorious 和win。这个单纯的蓝色的注意力分布被用来生成一个encoder hidden state 的加权和,也就是图中最上方红心蓝框的小长方形,它表示的就是此刻decoder从源输入中看到的东西,也被称为context vector也就是语境向量,文中用ht*表示,而且是fixed size的:

妥妥的加权和

有了语境向量和之前生成的摘要(decoder hidden state),就可以来计算词汇分布,通常是一个大的vocabulary固定词汇中的概率分布,可以看到图中绿色部分a----zoo表示大词汇表中从第一个词a到最后一个词zoo,然后里面概率最大的就是beat,也就是我们要的生成的词。

具体来说这个概率是用上面的加权和连接上这一步的状态st,然后经过两个线性层,最后一个softmax来生成:

 

 

2.2 pointer-generator network

这是上面的baseline模型和copy模型的结合。

语境向量ht*和attention机制at还是要计算的,与baseline模型不同之处在于每一步还计算了一个概率值Pgen,这代表从词表中生成单词的概率,这个Pgen用来给绿色的词汇分布和蓝色来自原文的attention进行加权,得到最最上面那个有绿有蓝的图,可以看到原来不在词表中的2-0也加进去了。

Pgen的计算方式如下:

其中ht*还是语境向量,st是这一步的decoder state   xt是这一步的decoder的输入,换成yi-1这种表达大家可能更习惯,就是已经生成的摘要嘛,最后外面是一层sigmoid

Pgen就可以用来决定是从词表中生成一个词还是拷贝一个词,具体见下面的公式

这个求和就是把输入中与当前词相同的attention加了起来,如果w没在源输入中出现过,那它的attention也为0

损失函数和上面的baseline是一样的,只不过最后的P(w)的计算方式不一样而已。这个模型相当于每次动态生成时,将源输入中词们加入到了词表vocabulary中

 

这里再解释一下pointer-network,这里以所有出现在input的词作为此时的小词表,对求attention进行了变化,上面图中可以看到,在attention模型中,是将softmax的结果作为权重,与hidden states求了加权和作为context vector来预测输出;而pointer中没有进行求和,是将softmax的结果作为预测input 中最有可能输出的元素。

具体来说,假如整个的词表有1000个词,输入有x1,x10,其中x1-x8是在这1000个词中的词,x9,x10不在词表中,那么单纯的generate模型就会认为x9,x10是unk,只考虑在词表中的1000个词的概率;而在pointer-generator中相当于计算的是x1-x10这10个位置上的词应当被输出的概率。然后将输入中的词映射到voc中

最终输出的时候,就像上图的是结合了pgen和1-pgen,来最终考虑输出的是哪个词(概率最大的)

但是这样也不会完全没有UNK,可能词表里没有,input里也没有

(这是couresera上的图,知识参数的表达有点区别,可能有人更习惯)

 

2.3 coverage mechanism

这个是为了解决重复输出的问题

在decoder的每一步,维护一个coverage vector ct

记录之前所有预测步中注意力分布的和,记录模型已经关注过原文中哪些词(也就是目前的生成已经覆盖到哪些词),并让这个向量影响attention的计算,c0是等于0的,因为一开始原文中没有任何词被覆盖

这与baseline中计算的方法相比,只是增加了一个wc cit 使这个coverage影响到当前attention的得分计算。

但是必须加上coverage loss惩罚关注同一位置才能使其发挥作用

最终,模型的整体损失函数为:

 

3 related work

4 dataset

CNN/Daily Mail dataset

这是多个句子的摘要

5 experiment

256d hidden state   128d word embedding 

learning rate 0.15

initial accumulator value 0.1

6 results

对结果的解释:

为什么下面的extractive方法得分更高?可能新闻类重要的信息就是集中在前几句。而且与ROUGE的评分机制有关。

【论文阅读】Get To The Point: Summarization with Pointer-Generator Networks 2017 ACL 指针生成网络 文章目录Abstract1 Introduction2 Our Models2.1 Sequence-to-sequence attentional model2.2 Pointer-generator network2.3 Coverage mechanism3 Related Work4 Dataset5 Experiments6 Results6.1 Preliminaries(准备工作)6.2 Observations7 Discussion7.1 Compariso 阅读详情

相关推荐

论文:Get To The Point Summarization with Pointer-Generator Networks解读

论文:Get To The Point: Summarization with Pointer-Generator Networks解读 Abstract类型的文本摘要存在的问题: 容易产生不准确的事实; 倾向于重复相同的内容。 注:如上面所示,作为基线的seq2seq+Attention这样的纯粹的生成式模型存在1.无法生成OOV词汇;2.歪曲事实两个问题。Pointer Generato...

Little Garden 1130

Get To The Point: Summarization with Pointer-Generator Networks

Get To The Point: Summarization with Pointer-Generator Networks paper:https://arxiv.org/pdf/1704.04368 code: http://www.github.com/abisee/pointer-generator 摘要 神经序列-序列模型为抽象文本摘要提供了一种可行的新方法(这意味着它们不局限于从原始文本中简单地选择和重新排列段落)。然而,这些模型有两个缺点:它们容易不准确地再现事实细节,而且它们往往重复。在

发呆的比目鱼的博客 1345

pointer network 用到的数据

https://github.com/devsisters/pointer-network-tensorflow 的 tsp_10_train.zip

get to the point:summarization with pointer-generator networks

模型介绍 baseline 方法存在两个大问题: 1.无法解决unk问题 2.有很多是重复的。 baseline model 是 seq-seq +attention 模型 encoder – 单层双向LSTM,产生了一个序列的隐藏状态hi decoder – 单层单向LSTM,训练时,输入是参考摘要的前一个词(使用教师机制) 测试时,使用decoder 的上个输出作为输入。decode...

真的是个瘦子 1037

深入解析DMR协议中的4-CPFSK调制技术与实现

本文深入解析了DMR协议中采用的4-CPFSK调制技术。该技术凭借其连续相位、恒包络的特性,在有限的12.5kHz信道带宽内实现了稳健的通信,有效对抗干扰并提升功放效率,是DMR数字对讲机清晰、稳定通信的核心保障。文章详细阐述了其原理、实现细节及在协议栈中的协同作用。

weixin_29306875的博客 229

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证 文章目录前言一、工程构架二、Xilinx IP的配置1.I2S Transmitter IP配置:2.I2S Receiver IP配置:3.WM8960的配置:总结 前言 本实验基于Xilinx ZU4EV平台,也适用于ZYNQ平台。音频验证完成,记录调过程。 ①Xilinx 音频IP只支持主模式,左对齐或右对齐方式,16bit或24bit字长。 ②WM8960器件作为从模式;24bit字长;数据传输格

weixin_45637597的博客 6814

论文阅读笔记《Get To The Point: Summarization with Pointer-Generator Networks》

文章目录摘要一 介绍二 模型2.1 序列->序列架构加上注意力机制模型(seq2seq+attention model) 这是一篇ACL2017的论文,偏工程性,模型实用性强,可以说是生成式摘要技术的里程碑(特别是对于标题生成任务来说),作者也都是大牛(大家如果上过cs224n的课,应该对Manning教授不陌生吧) 摘要 在生成式摘要任务中,对于传统的seq2seq+attention的模...

落尘 4110

Ubuntu 20.04 LTS下5分钟搞定ONLYOFFICE协作空间社区版(Docker版保姆级教程)

本文提供了一份在Ubuntu 20.04 LTS系统上,通过Docker快速部署ONLYOFFICE协作空间社区版的保姆级教程。内容涵盖从系统准备、Docker环境搭建,到执行自动化安装脚本、完成Web初始化的全流程,并详细说明了部署后的安全配置、数据备份及基本运维要点,帮助用户高效构建私有、安全、可控的团队文档协作平台。

weixin_28826961的博客 261

论文阅读笔记-Get To The Point: Summarization with Pointer-Generator Networks

本文模型改善了抽象文本摘要中存在的主要问题,但与具象摘要结果相比仍然存在差距,同时考虑到新闻文章重要信息普遍集中分布于前部分的特性,抽象摘要模型受到了一定影响,模型的普适性需要进一步地验证。

mohen_777的博客 1361

Zenoh:统一数据平面协议,重塑物联网与边缘计算架构

在分布式系统与物联网领域,数据通信与处理常面临协议割裂的挑战。传统方案如MQTT、Kafka、gRPC等,分别针对发布/订阅、流处理和RPC等不同场景,导致架构复杂、集成成本高。其核心问题在于未能统一处理“运动中数据”(Data in Motion)与“静止中数据”(Data at Rest)。Zenoh协议通过创新的“Key-Value”寻址与“Selector”查询语言,将发布/订阅、存储、查询和计算四种核心操作融合进单一协议,构建了统一的抽象层。这种设计实现了极低的协议开销(仅5字节头部)和地理分布式

weixin_29597551的博客 290

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE3.具体实现3.1数据预处理(data.py)(1)导入包(2)定义数据类3.2模型Generator,Discriminator,权重初始化(model.py)(1)导入包(2)Generator(3)Discriminator(4)权重初始化3.3网络训练(net.py)(1)导入包(2)创建类3.4 主函数(main.py)(1)导入文件(2)定义超参数(3)实例化(4)进行训练4.训练过程4.1

qq_44031210的博客 4917

指针生成网络 Pointer-Generator《Get To The Point: Summarization with Pointer-Generator Networks》论文阅读笔记

《Get To The Point: Summarization with Pointer-Generator Networks》 Introduction 上篇论文《(Copynet)Incorporating Copying Mechanism in Sequence-to-Sequence Learning》模型与此比较相似,主要用在摘要和对话系统,不过其网络结构比较复杂,混合概率是两者的和...

彭伟的博客 5272

汽车电子 静态电流

**静态电流(Static Current 或 Quiescent Current, IQ)** 是指汽车在 **熄火 / 关机 / 睡眠模式** 下,电子控制单元(ECU)或电子元件仍然保持基本功能(RTC、存储保持、Wake-up 监测、CAN/LIN 监听等)所消耗的微弱电流。

天赐好车的博客 759

【Pointer Networks】论文阅读笔记《Get To The Point: Summarization with Pointer-Generator Networks》

这是一篇ACL2017的论文,偏工程性,模型实用性强,容易复现同时性能也好,作者也都是大牛(大家如果上过cs224n的课,应该对Manning教授不陌生吧) 摘要 在生成式摘要任务中,对于传统的seq2seq+attention的模型架构,作者提出它们有以下缺点: 难以准确复述原文细节 无法处理原文中的未登录词(OOV) 在生成的摘要中存在一些重复的部分 此文提出了一种新颖的架构来增强标准的seq2seq+attention模型,采用了两种正交(互相之间不存在交集)的新颖手段: 使用指针生成器网络(p

devil_son1234的博客 652

Git下载与安装

一、Git下载 二、Git安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 6万+

跨越边界:用MessagePipe实现无缝的进程间通信

MessagePipe是一个用于.NET平台的消息传递库,它专注于简化异步消息处理和进程间通信。通过提供一系列易于使用的API,开发者可以快速搭建起稳定可靠的通信管道,支持多种传输协议(如TCP、Unix域套接字等),并内置了序列化/反序列化功能,使得跨语言和跨平台的数据交换变得轻而易举。为了方便序列化和反序列化操作,我们需要为每种消息定义对应的类或结构体,并标记属性。这样可以确保消息在发送方和接收方之间正确无误地传递。[Key0set;[Key1set;

墨夶的博客 816

论文阅读:Get to the point: summarization with pointer-generator networks

简介: 基于注意力机制的Seq2Seq模型,使用每一步解码的隐层状态与编码器的隐层状态计算权重,最终得到context向量,利用context向量和解码器隐层状态计算输出概率。这篇文章主要试图解决问题1、无法准确复述原文细节,无法处理不在词表中的词(oov问题) 2、生成的在摘要中存在重复的片段 Pointer-generator network模型结构图: 主要贡献点: ...

咕噜咕噜 408

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

论文阅读 (63):Get To The Point: Summarization with Pointer-Generator Networks

以两种正交方式提出了一种用以增强标准序列到序列模型的架构。1)使用混合指针生成器网络通过指针从源文本复制单词。这有助于准确复制信息,同时保留通过生成器产生新词的能力;2)使用覆盖 (Coverage) 来跟踪总结的内容,并在一定程度上限制重复。............

因吉的博客 774

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

文本生成论文阅读 Get To The Point: Summarization with Pointer-Generator Networks

本篇论文主要是用了copy机制,从输入中拷贝结果到输出,缓解OOV问题。本文提出一种新颖的架构:使用两种方式增强标准的seq2seq注意力模型。一,使用混合指针生成网络,利用指针从原文精确地复制单词,同时保留生成器产生新单词的能力。二,使用覆盖机制跟踪哪些单词已经被摘取,避免生成重复文本。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_43588670的博客 798

从论文到代码:Pointer Summarizer如何实现Get To The Point论文精髓

Pointer Summarizer是一个基于PyTorch实现的文本摘要工具,它完整复现了经典论文《Get To The Point: Summarization with Pointer-Generator Networks》中的核心技术。该项目通过创新的指针生成网络架构,有效解决了传统摘要模型中存在的词汇表外(OOV)问题和重复生成问题,为文本摘要任务提供了高效可靠的解决方案。 ## 论文

gitblog_00295的博客 959

[ACL2017] Get to The Point: Summarization with Pointer-Generator Networks

生成式的文档摘要,主要是提出了Coverage机制,为了解决seq2seq模型生成句子中经常有重复片段现象

Deep Learning and NLP Farm 2835
上一篇: 【论文阅读】Incorporating copying mechanisim in sequence-to-sequence learning
下一篇: 【论文阅读】Neural Machine Translation by Jointly Learning to Align and Translate
BeforeEasy
博客等级 码龄10年 92粉丝 207原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值