【论文精读】MemSum: 基于历史决策的多步长文本抽取式摘要方法

前言

论文分享 来自2022ACL的长文本抽取式摘要方法论文
MemSum: Extractive Summarization of Long Documents Using Multi-Step Episodic Markov Decision Processes

自动文本摘要抽取可以分为抽取式(extractive)和抽象性式(abstractive),抽取式方法将摘要抽取任务看成是一个二分类任务,给定 N N N个句子,从中选择 M ( M < = N ) M(M<=N) M(M<=N)个句子作为文本的摘要。

抽取式摘要可以分为两个步骤,1)句子打分,2)句子选择。在句子选择阶段,可以通过3种方式选择句子,i)根据分数给句子标签为0和1,选择标签为1的句子,ii)将句子按照分数进行排序,选择Top-k的句子作为摘要,iii)以剩余句子归一化后的分数作为可能性分布进行依次不放回采样

论文表明,上述传统方法计算句子分数的时候,通常没有根据当前已抽取的句子摘要进行更新,丢失了抽取历史知识(the knowledge of extraction history)。论文指出,现有抽取模型不根据历史抽取信息会更倾向于将一些可能重复的高ROUGE指标的句子重复选择,最终造成整体的指标下降。

论文将摘要抽取看作是多步情景马尔可夫决策过程(multi-step episodic Markov Decision Process),其与single-step的区别在于是否在每一步会更新状态,single-step根据输入一次输出所有句子分数,而multi-step在每一个时间节点,根据历史的抽取信息,更新剩余其他句子的分数。在NeuSum论文中,已经提出使用历史抽取信息,但是只能抽取固定数量的句子,这可能是次优的,论文在此基础上增加了终止机制(stop mechanism),可以抽取任意长度的句子,同时增加了对历史抽取信息的量化评判。

模型

模型的整体框架如下
在这里插入图片描述
其主要由3个部分组成,LSE(局部句子编码器),GCE(全局上下文编码器)和EHE(抽取历史编码器),LSE的输出为GCE的输入,GCE的输出为EHE的输入,EHE的输出为剩余句子的隐层向量,其和GCE的输出以及LSE的输出进行级联后分别输入MHP(multi-head pooling network)和全连接层得到停止概率和句子得分,根据停止概率与停止阈值的比较,选择是否将得分最高的句子作为抽取句子,在停止概率大于停止阈值后,将从第一次抽取到最后一次抽取的累计奖励作为指标对LSE,GCE,EHE和MHP网络进行更新。
论文优化的目标为最大化目标函数,我们希望 R 0 R_0 R0越大越好
J ( θ ) = E π θ [ R 0 ] J(\theta)=\mathbb{E}_{\pi_\theta}[R_0] J(θ)=Eπθ[R0]
每一步的reward计算公式由ROUGE-1,ROUGE-2和ROUGE-L的均值构成
在这里插入图片描述
从第一步到终止的reward计算公式为
R t = ∑ k = t + 1 T r k R_t=\sum_{k=t+1}^T r_k Rt=k=t+1Trk
根据强化学习算法,梯度下降的公式可以表达为
在这里插入图片描述
其中 π ( A t ∣ S t , θ ) \pi(A_t|S_t,\theta) π(AtSt,θ)代表在时间t下,给定参数 θ \theta θ和状态 S t S_t St的情况下,策略 π \pi π给出的行为 A t A_t At的可能性,其可以表示为
在这里插入图片描述
策略 π \pi π的行为可能性为当前步伐下停止的可能性乘以行为的可能性,行为的可能性有两种情况,第一当决策为终止时,行为的可能性为剩余所有句子的平均可能性,当决策不为终止时,行为的可能性为归一后的概率
在给定学习率的情况下,参数更新如下
在这里插入图片描述
LSE模块和GCE模块均为LSTM结构,EHE为多层transformer解码器结构,目的为将历史抽取信息融入到剩余未抽取的句子中,根据历史抽取信息进行重新打分,这里我有一个疑惑,论文是如何精准控制模型根据历史信息,不去抽取冗余句子,当然结果表明对于减少冗余的效果很好。

整体的实现流程伪代码:
在这里插入图片描述
对于给定文本和摘要,首先采用LSE编码局部句子向量,然后根据局部句子向量采用GCE编码全局句子向量,在文本中采样高ROUGE的场景,这个场景存在多个,每个场景选择的句子可能是不同的,但是ROUGE的数值是差不多的,其中 S t S_t St代表句子3种编码的级联, s a t s_{a_t} sat代表选择抽取的句子 a t a_t at, A s t o p A_stop Astop代表停止,r代表最终的ROUGE,在每一步,EHE和Extractor输出根据历史抽取信息进行调整的剩余句子的得分,根据得分按照公式4计算行为可能性,然后进行梯度下降。

实验

在这里插入图片描述
在这里插入图片描述

作者给出了在4个数据集,PubMed, arXiv, P u b M e d t r u n c PubMed_trunc PubMedtrunc和Gov Report上的实验结果,可以发现在PubMed,Gov Report和arXiv数据集上,MemSum都要比最好的摘要抽取方法NeuSum和摘要生成方法Hepos-LSH要好上1-2个点,同时可以看到Gov Report的GOUGE分数要明显高于其他数据集,这归因于政府数据的摘要为了保证其忠诚性,很难用其他摘要性语句进行概括,大部分保留了其原文的原因,从下方例子可以看出,真实摘要和抽取式摘要在文字重叠部分要明显多于摘要式方法
在这里插入图片描述
作者还给出了MatchSUm,ORACLE和MEMSUM在 P u b M e d t r u n c PubMed_trunc PubMedtrunc数据集上抽取的句子位置的分布图,ORACLE是采用贪婪算法抽取得到的最优ROUGE分数的摘要,MatchSUM是使用Bert预训练模型的抽取式方法,可以发现MEMSUM的曲线与ORACLE很像,MatchSum的曲线在句子15后为0,归因于Bert只能编码前512个字符
在这里插入图片描述

作者做了LSE,GCE和EHE模块的消融实验,并且增加了使用GRU的EHE模块,不使用stop停止,增加“STOP”字段,抽取到“STOP”就停止的方法,可以发现,GCE上下文模块的重要性要高于LSE,作者指出这与Extractive Summarization of Long Documents by Combining Global and Local Context的结论是相反的,EHE有效但是与GRU还是attention结构没很大的关系,stop是有效的,但是如果增加特殊的“STOP”字段则会影响模型过早的停止抽取
在这里插入图片描述
为了证明历史抽取信息能够避免重复抽取的假设,作者构建了一个冗余句子数据集,对PubMed数据集的每一个句子进行重复,例如原始文章为 s 1 , s 2 , . . . , s n s_1,s_2,...,s_n s1,s2,...,sn,构建的冗余句子数据集为 s 1 , s 1 , s 2 , s 2 , . . . , s n , s n s_1,s_1,s_2,s_2,...,s_n,s_n s1,s1,s2,s2,...,sn,sn,摘要保持不变,通过在这种冗余句子数据集上进行训练,没有历史抽取信息的模型重复率达到了41%,说明历史抽取信息能够有效的避免历史抽取的冗余,这种完全重复的方法简单有效的可以证明有去冗余的效果。采用Text Summarization with Pretrained Encoders中判断当前句子是否有3-gram重复的句子将其跳过的策略可以有效地避免冗余,但是其ROUGE score远远低于EHE模块
在这里插入图片描述
作者通过分步操作来解释了为什么MemSum可以去冗余,在第0步的时候,Memsum抽取了分数最高的句子10,在第1步的时候,冗余句子11的分数降为了0,后续的48,49和28,29都是同样的现象,说明了MemSum避免冗余比较了剩余句子和已抽取句子的相似度而非简单的记忆位置
在这里插入图片描述
作者在附录还给出了摘要抽取时间,最优stop阈值的选择方法,如何构建高GOUGE场景的方法等

总结与思考

作者给出了一种基于历史抽取信息的多步场景长文本抽取式摘要方法,不使用预训练模型,可以有效的应用于实际场景中,有几个点可以思考,1、作者认为去冗余和决定是否停止与位置信息的相关性很小,几乎可以忽略。2、完全重复的句子比较是否过于简单,3、作者给出的可重复性方法值得借鉴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/15419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Uniapp】支付链转二维码

前言 提示&#xff1a;这个是一个很小的项目&#xff0c;大概30分钟就能搞定 实现方式&#xff1a;输入支付代码&#xff0c;存储到对应的数据库表中&#xff0c;二维码访问一个PHP文件通过id来进行重定向&#xff0c;这样就可以使每张二维码都是固定的&#xff0c;替换二维码…

11-矩阵的运算_加减法_数乘_转置

矩阵的运算 加法&#xff0c;数乘&#xff0c;减法&#xff0c;转置 矩阵的加减 矩阵的加法就是矩阵的对应位置相加&#xff0c;减法也是一样就是对应位置相减 数乘 转置 转置的操作和向量是一样的&#xff0c;就是把 aij 变成 aji&#xff0c;把行和列互换一下 对于矩阵而…

【Android常见问题(五)】- Flutter项目性能优化

文章目录 知识回顾前言源码分析1. 渲染过程2. 分析工具3. 优化方法合理使用const关键词合理使用组件管理着色器编译垃圾 知识回顾 前言 项目迭代开发一定程度后&#xff0c;性能优化是重中之重&#xff0c;其中包括了包体积&#xff0c;UI 渲染、交互等多个方面。 通过 Flutt…

Zotero ubuntu2023安装 关联 ubuntu文献翻译

一、准备下载的软件&#xff1a; Zotero | Downloads 1. Zotero-6.0.26_linux-x86_64.tar.bz2 下面是插件 zotfile-5.1.2-fx.xpi zotero-pdf-translate.xpi jasminum-v0.2.6.xpi 2.2.5 Tampermonkey 4.11.crx 所准备的文件&#xff0c;都已经在这个链接的压缩包下面 …

动态内存管理学习分享

动态内存管理学习分享 1. 为什么存在动态内存分配2. 动态内存函数的介绍2.1 [malloc](https://legacy.cplusplus.com/reference/cstdlib/malloc/?kwmalloc)和[free](https://legacy.cplusplus.com/reference/cstdlib/free/?kwfree)2.1.1 实例 2.2 [calloc](https://legacy.cp…

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中&#xff0c;修改setting 下的 useCompilerPlugins 字段为 ["sass"]&#xff0c; 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件&#xff1a;typescript、less、sass 修改之后可以将原.w…

持续贡献开源力量,棱镜七彩加入openKylin

近日&#xff0c;棱镜七彩签署 openKylin 社区 CLA&#xff08;Contributor License Agreement 贡献者许可协议&#xff09;&#xff0c;正式加入openKylin 开源社区。 棱镜七彩成立于2016年&#xff0c;是一家专注于开源安全、软件供应链安全的创新型科技企业。自成立以来&…

【消息中间件】原生PHP对接Uni H5、APP、微信小程序实时通讯消息服务

文章目录 视频演示效果前言一、分析二、全局注入MQTT连接1.引入库2.写入全局连接代码 二、PHP环境建立总结 视频演示效果 【uniapp】实现买定离手小游戏 前言 Mqtt不同环境问题太多&#xff0c;新手可以看下 《【MQTT】Esp32数据上传采集&#xff1a;最新mqtt插件&#xff08;支…

使用3ds Max粒子系统创建飞天箭雨特效场景

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 设置箭头 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我使用多边形建模技术制作了一个简单的箭头&#xff0c;我将 在教程中使用。.max您可以从 下载部分。 箭头.max 步骤 3 将此箭头重命名为静态…

【计算复杂性理论】证明复杂性(八):命题鸽巢原理(Propositional Pigeonhole Principle)的指数级归结下界

往期文章&#xff1a; 【计算复杂性理论】证明复杂性&#xff08;Proof Complexity&#xff09;&#xff08;一&#xff09;&#xff1a;简介 【计算复杂性理论】证明复杂性&#xff08;二&#xff09;&#xff1a;归结&#xff08;Resolution&#xff09;与扩展归结&#xff…

CentOS 7.6使用yum安装stress,源码安装stree-ng 0.15.06,源码安装sysstat 12.7.2

cat /etc/redhat-release看到操作系统的版本是CentOS Linux release 7.6.1810 (Core)&#xff0c;uname -r可以看到内核版本是3.10.0-957.21.3.el7.x86_64 yum install stress sysstat -y安装stress和sysstat。 使用pidstat -u 5 1没有%wait项&#xff1a; 原因是CentOS 7仓…

13.7 CentOS 7 环境下大量创建帐号的方法

13.7.1 一些帐号相关的检查工具 pwck pwck 这个指令在检查 /etc/passwd 这个帐号配置文件内的信息&#xff0c;与实际的主文件夹是否存在等信息&#xff0c; 还可以比对 /etc/passwd /etc/shadow 的信息是否一致&#xff0c;另外&#xff0c;如果 /etc/passwd 内的数据字段错…

用C语言构建一个手写数字识别神经网络

(原理和程序基本框架请参见前一篇 "用C语言构建了一个简单的神经网路") &#xff11;&#xff0e;准备训练和测试数据集 从http://yann.lecun.com/exdb/mnist/下载手写数字训练数据集, 包括图像数据train-images-idx3-ubyte.gz 和标签数据 train-labels-idx1-ubyte.…

芯片制造详解.光刻技术与基本流程.学习笔记(四)

本篇文章是看了以下视频后的笔记提炼&#xff0c;欢迎各位观看原视频&#xff0c;这里附上地址 芯片制造详解04&#xff1a;光刻技术与基本流程&#xff5c;国产之路不容易 芯片制造详解.光刻技术与基本流程.学习笔记 四 一、引子二、光刻(1).光掩膜(2).光刻机(3).光刻胶(4).挖…

宝塔设置云服务器mysql端口转发,实现本地电脑访问云mysql

环境&#xff1a;centos系统使用宝塔面板 实现功能&#xff1a;宝塔设置云服务器mysql端口转发&#xff0c;实现本地电脑访问mysql 1.安装mysql、PHP-7.4.33、phpMyAdmin 5.0 软件商店》搜索 mysql安装即可 软件商店》搜索 PHP安装7.4.33即可&#xff08;只需要勾选快速安装&…

按键消抖(有/无状态机)

一&#xff0c;理论概念 按键抖动 按键抖动&#xff1a;按键抖动通常的按键所用开关为机械弹性开关&#xff0c;当机械触点断开、闭合时&#xff0c;由于机械触点的弹性作用&#xff0c;一个按键开关在闭合时不会马上稳定地接通&#xff0c;在断开时也不会一下子断开。因而在闭…

数据结构: 线性表(顺序表实现)

文章目录 1. 线性表的定义2. 线性表的顺序表示:顺序表2.1 概念及结构2.2 接口实现2.2.1 顺序表初始化 (SeqListInit)2.2.2 顺序表尾插 (SeqListPushBack)2.2.3 顺序表打印 (SeqListPrint)2.2.6 顺序表销毁 (SeqListDestroy)2.2.5 顺序表尾删 (SeqListPopBack)2.2.6 顺序表头插 …

安全学习DAY08_算法加密

算法加密 漏洞分析、漏洞勘测、漏洞探针、挖漏洞时要用到的技术知识 存储密码加密-应用对象传输加密编码-发送回显数据传输格式-统一格式代码特性混淆-开发语言 传输数据 – 加密型&编码型 安全测试时&#xff0c;通常会进行数据的修改增加提交测试 数据在传输的时候进行…

【Linux】关于Bad magic number in super-block 当尝试打开/dev/sda1 时找不到有效的文件系统超级块

每个区段与 superblock 的信息都可以使用 dumpe2fs 这个指令来查询的&#xff01; 不过可惜的是&#xff0c;我们的 CentOS 7 现在是以 xfs 为默认文件系统&#xff0c; 所以目前你的系统应该无法使用 dumpe2fs 去查询任何文件系统的。 因为目前两个版本系统的根目录使用的文…

IT职场笔记

MySQL笔记之一致性视图与MVCC实现 一致性读视图是InnoDB在实现MVCC用到的虚拟结构&#xff0c;用于读提交&#xff08;RC&#xff09;和可重复度&#xff08;RR&#xff09;隔离级别的实现。 一致性视图没有物理结构&#xff0c;主要是在事务执行期间用来定义该事物可以看到什…