NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要

本文主要是介绍NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 0、论文摘要
  • 一、Introduction
    • 1.1目标问题
    • 1.2相关的尝试
    • 1.3本文贡献
  • 二.问题定义和解决问题的假设
    • 问题定义
    • 解决问题的假设
  • 三.本文方法
    • 3.1 总结为两阶段学习
      • 3.1.1 基础系统
    • 3.2 重构文本摘要
  • 四 实验效果
    • 4.1数据集
    • 4.2 对比模型
    • 4.3实施细节
    • 4.4评估指标
    • 4.5 实验结果
      • 4.6 细粒度分析
  • 五 总结
  • 思考


前言

在这里插入图片描述

Text summarization based on multi-head self-attention mechanism and pointer network(21)

0、论文摘要

现有的文本摘要方法主要依靠人工标记的标准摘要与原始文本之间的映射来进行特征提取,往往忽略了原始文档的内部结构和语义特征信息。因此,现有模型提取的文本摘要存在语法结构错误、语义偏离原文的问题。本文试图增强模型对源文本固有特征信息的关注,使模型能够更准确地识别文档的语法结构和语义信息。
因此,本文提出了一种基于多头自注意力机制和软注意力机制的模型。通过在模型编码阶段引入改进的多头自注意力机制,训练模型使正确的摘要语法和语义信息获得更高的权重,从而使生成的摘要更加连贯和准确。同时采用指针网络模型,改进覆盖机制,解决生成摘要时的词汇外和重复问题。本文使用CNN/DailyMail数据集来验证本文提出的模型,并使用ROUGE指标来评估模型。
实验结果表明,与其他模型相比,本文的模型提高了生成摘要的质量。

一、Introduction

1.1目标问题

当前,互联网时刻产生大量文本数据,文本信息过载问题日益严重。需要对各类文本进行降维,因此自动文本摘要的任务应运而生。自动文本摘要[1]是自然语言处理的一个重要研究领域。自动文本摘要从原文中提取一段内容或生成一段新内容来总结原文的主要信息。也就是说,对原始数据进行压缩和提炼最终文本为用户提供了简洁的内容描述。它帮助用户节省了大量的时间,用户可以从摘要中获取文本的所有关键信息点,而无需阅读整个文档。近年来,文本摘要已被应用于生活的许多方面,例如生成报告摘要和自动生成新闻标题[2-5]。目前,自动文本摘要的研究方向可分为抽取式文本摘要[6,7]和抽象式文本摘要[8]。提取文本摘要从原始文本中提取关键句子和关键词以生成摘要。这种方法可能会产生不连贯的摘要并且对字数的控制不佳。效果完全取决于原文的类型。抽象文本摘要是通过重写原始文本内容来生成的,使得生成的摘要能够包含新的词典或短语,更加灵活。因此,本文重点关注抽象文本摘要。
最近,有研究人员使用seq2seq(sequence-tosequence)模型进行抽象文本摘要研究[9-11],模拟人们阅读文档的思维过程,首先提取原文信息全局化,然后总结原文的主要思想。曹等人。 [12] 和 Sutskever 等人。 [13]提出了一种由编码器和解码器组成的序列到序列模型来解决机器翻译问题。巴达瑙等人。 [14]逐渐将序列到序列模型应用于抽象文本摘要。拉什等人。 [15]提出在DUC-2004[16]和Gigaword上使用序列到序列模型和注意力机制生成抽象文本摘要,并使用CNN对原始文本进行编码。该模型具有提取文本信息并生成文本摘要的能力。然而,生成的摘要有一些偏离原文的主要信息并且超出了词汇范围。然后,乔普拉等人。 [17]使用相同的编码器对原始文档进行编码,但他们使用循环神经网络作为解码器,该模型极大地提高了摘要生成的效果。纳拉帕蒂等人。 [18]提出使用关键词和注意力机制来提取原文并对原文进行编码。周等人。文献[19]提出采用选择性编码对原文进行编码,从而增强了原文的信息提取。
在使用序列到序列模型的过程中,研究人员发现该模型可以从原始文本中提取信息,但该模型生成的文本摘要存在词汇外和单词重复问题。为了解决生成摘要中的词汇外问题,Gu 等人。 [20]使用复制机制直接复制原文中的重要单词而不是词汇外的单词来生成摘要。参见等人。 [21]利用覆盖机制和指针生成网络模型为词汇外和单词重复提供了解决方案。覆盖机制可以避免在生成摘要时在同一位置给予多个高注意力权重值,并且可以有效减少摘要生成中的重复单词问题。指针生成网络在序列到序列模型的基础上引入了指针网络[22]。在指针生成网络中,生成摘要时会生成两个概率。即当前单词从词汇表中生成的概率以及在指针处被复制的概率。该网络用于学习两个概率之间的权重。指针生成网络可以有效地适应提取器和抽象网络[23],并已被用于许多抽象生成任务[24,25]。周等人。 [26]继续提出SeqCopyNet来增强生成摘要的可读性,并将完整的输入句子序列复制到摘要中。 [27]使用词义歧义来改进基于查询的文本摘要。王等人。 [28] 和梁等人。 [29]使用强化学习引入文本摘要。 [30]使用包括主编码器和辅助编码器的双编码模型。
一些研究者利用传统的软注意力机制提取原文的关键信息[31],但无法提取原文内部的各种语义和语法信息,导致语法结构错误和语义偏离原文的问题文本。瓦斯瓦尼等人。 [32]提出了一种变压器模型,其中使用新的自注意力机制模型来提取输入文本的信息。实验表明,自注意力机制可以快速提取稀疏数据的重要特征。它已广泛应用于自然语言处理任务中[33-35]。自注意力机制是注意力机制的改进,减少了对外部信息的依赖,更好地捕捉数据或特征的内部相关性。自注意力机制利用注意力机制来计算每个单词与所有其他单词之间的关联,以便模型能够学习不同表示子空间中的相关信息。文本摘要经历了如何提取原始文本信息,如何生成摘要,同时缓解生成摘要过程中出现的未登录词和重复问题。然而,在提取原文信息的过程中,学习原文本身的语义、语法结构和确定关键信息仍然需要研究。并进一步考虑降低单词重复率。因此,这是一个不完善的 Seq2Seq 模型的研究空白[36]。在该模型中,解决了序列到序列模型中出现的问题,并解决了研究的不足。表 1 详细阐述了先前作者的贡献。
本文的其余部分组织如下。第二部分介绍自动文本摘要的问题定义和假设。第三部分详细描述了文中提出的方法。第四部分介绍了本文的基线、数据集、实验和结果分析。最后,文章在第五部分结束。

1.2相关的尝试

1.3本文贡献

总之,我们的贡献如下:

二.问题定义和解决问题的假设

问题定义

随着近年来深度学习的快速发展,序列到序列模型被广泛应用于机器翻译、问答、文本摘要等序列问题。然而,序列到序列模型存在许多问题,例如词汇外问题,这会产生重复问题[15]。为了解决这些问题,See 等人。 [21]提出了指针生成网络,增加了指针网络以及基于注意力机制的对seq2seq模型的覆盖机制,以缓解使用seq2seq带来的问题。指针生成网络采用传统的软注意力机制,无法提取原文内部的各种语义和语法信息,导致生成的摘要中存在语法结构错误和与原文语义偏差的问题。因此,本文认为有必要学习原文的语义和语法结构,确定关键信息。由于长文本摘要的特殊性和多样性,输入的文章通常是具有多个子空间的多个句子。如果模型只关注一个空间,一些信息将会丢失。同时,人们注意到自注意力机制在提取原始文本的关键特征方面还不够。在重现指针生成网络时,发现随着预测摘要长度的增加,覆盖机制的效果逐渐减弱。因此,本研究试图增强原始文本的提取和编码。另外,进一步减少单词的重复率。

解决问题的假设

三.本文方法

3.1 总结为两阶段学习

3.1.1 基础系统

3.2 重构文本摘要

四 实验效果

4.1数据集

4.2 对比模型

4.3实施细节

4.4评估指标

4.5 实验结果

4.6 细粒度分析


五 总结

本文提出了两种基于注意力机制的模型,即MSAPN和MDAPN。两种模型都使用改进的多头自注意力机制来获取原始文本内部的语义和语法信息,从而使生成的摘要文本摘要与文本的语义和语法信息具有相似的含义。此外,这两个模型都使用指针网络和改进的覆盖机制来减少重复内容和词外问题。
实验结果表明,MSAPN模型在ROUGE Recall分数上优于传统的指针生成网络,但在ROUGE Precision分数上效果不佳。为此,提出的MDAPN模型结合门控机制,使得模型的ROUGE指标优于指针生成网络,能够有效包含更多的原始文本信息,生成的摘要更加完整。
然而,MDAPN模型的F1得分值低于现有模型。因此,未来可以通过考虑预训练[43]模型和强化学习[29]来扩展模型,从而提高模型的F1分数。
该模型引入预训练模型来提高文本信息的提取,并通过强化学习减少训练和预测中的暴露偏差,进一步提高摘要的生成。此外,希望未来提出的模型能够应用于不同领域[44]。

思考

这篇关于NLP论文阅读记录 - 2021 | WOS 基于多头自注意力机制和指针网络的文本摘要的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/628042

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件