2021-03-17

A Sentence-Based Circular Reasoning Model in Multi-Hop Reading Comprehension(基于句子的循环推理模型在多跳阅读理解中的应用)

论文下载

一、动机


 我们常用模型来挖掘和利用来自文档的相关信息来预测语义相关查询的答案。那么如果是用一个文档进行预测答案,文档信息过于片面。在提取文档信息时,文档有很多信息是无效的,这就对于预测答案做出了干扰。提取的信息很多,进行融合整合,也存在着一定难度。

在这里插入图片描述


图中是句子(path1)、文档(path2)与实体(path3)为节点的三种路径。

  1. 当使用文档作为节点时,虽然路径可能完全包含关键推理信息,但仍然有大量不相关的信息,会产生很大程度的冗余。
  2. 当使用实体作为节点时,虽然路径精确简洁,但由于丢失的信息太多,没有原始逻辑,从而不足以支持模型完成任务。
  3. 如果路径使用句子作为节点,它具有明显的逻辑和较少的信息冗余,不仅为获取答案提供了很大的帮助,而且很好地解释了推理过程。根据这些,提出了基于句子的循环推理模型(SCR)。

二、模型亮点

 由SentenceEncoder (SE), Path Generator (PG) and Path Evaluator (PE)三部分构成。本研究使用SE获取句子表示,然后使用PG在查询的指导下对多个文档的句子进行迭代推断,不断产生节点,并将节点组合形成一条路径。最后,PE评估获得的路径并预测答案。
 考虑到句子具有多方面的语义特征(多个含义),并且从一个分布中得到的句子向量不能完全表达各个方面的语义,因此,本研究提出了一种嵌套机制(NM)来为句子分配多个分布,每个分布代表一个方面。这样,加权向量可以合理地表达尽可能多的语义特征。

三、模型详解

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210317201925953.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pqajE5MTAwNjYwMjM=,size_16,color_FFFFFF,t_70#pic_center


 首先对文本的语义信息进行编码,以获得后续操作所需的向量表示,然后基于这些编码的文本构建推理路径。最后SCR将路径信息与查询编码进行交互,并加入候选集合以计算可用于选择答案的概率分布。

1.Sentence Encoder

  1. 首先,计算每个文档和查询的TF-IDF余弦相似度,以取出相似度最大的文档,然后,计算所有剩余文档和最后一层选择的文档的TF-IDF余弦相似度,并取出相似度最大的前N-1个文档。所有选定的文档组成一个新的支持文档集Z = {zn}N n=1。这样就过滤支持文档集,减少无关文档的数量,减少干扰。
  2. 过滤完文档集后,用预训练好的Glove和n-gram作为初始单词嵌入,依次输入到Highway Network 中,一个具有v个隐藏单元的双向LSTM网络中,就得到所有文本的单词编码。
  3. 自我注意力层。最后一层得到的编码X是基于word的。但是为了更真实地模拟人类的多跳推理,本研究需要计算句子级语义编码。句子集为:在这里插入图片描述
    I是文档集Z中的句子数,K是组成一个句子的单词数,I是文档集Z中的句子数,K是组成一个句子的单词数,dik是对应的单词编码。然后,自我注意机制被应用于实现句子的向量表示,并且该表示被表示为在这里插入图片描述
    公式为![在这里插入图片描述](https://img-blog.csdnimg.cn/20210317203731637.png

2.Path Generator

在这里插入图片描述

  1. Attention Module:由多头注意力层和位置前馈网络构成,即:在这里插入图片描述
    Q,K,V是输入,W是是权重矩阵。前馈网络由两个线性变换组成,中间有一个GELU激活函数。然后通过层归一化获得输出。为简单起见,将整个子层描述为FFN,其输入为H:E=FFN(H),。此Module用于更新每个循环中的路径表示。它的输入是由步骤t-1和le第一步生成的路径。Pt= {p1,p2,…,pt}用作模块的输出。

  2. Generation Module:是基于LSTM 单元的推理网络。在在第t步,将原始路径与查询相结合,计算出每句话的概率εt作为下一跳节点,然后利用εt对句子集进行加权平均。从而得到句子信息融合向量ηt。此外,本研究将ηt通过一个位置前馈网络,并将其拼接在当前原始路径的末端,形成一条新路径,从而完成步骤t的推理。

3.Path Evaluator

步骤如下:
在这里插入图片描述在这里插入图片描述

4.NM


 嵌套机制主要适用于将序列映射为向量。当序列需要加权平均时,它可以为不同特征空间中的序列提供多个概率分布。

在这里插入图片描述
使用NM后,Y的输出尺寸保持不变
在这里插入图片描述

四、实验部分

1、数据集

 WikiHop和MedHop数据集

2、参数设置

 LSTM和GRU在东南的隐藏单位数量为100。对于每个可训练层,我们使用概率为0.1的dropout。使用TF-IDF算法进行过滤,筛选出平均包含30个句子的前8名文档。对于多头注意力层,我们将head的值设置为8,将hop设置为6,并接收6跳推理路径。使用交叉熵损失来衡量模型训练的水平,并使用Adam优化器来训练我们的模型。我们将初始学习率设置为0.001,每隔2k步降低到原来的0.8。

3、实验结果

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

 值得注意的是,我们的模型没有使用预先训练过的语言模型,如ELMO和Bert,这两种语言模型在机器阅读理解和问题回答方面都有显著的提高。但为了公平起见,我们不会将SCR与那些使用预先训练过的语言模型的人进行比较。构建的路径会随着循环的增加而注意到更深层次的语义信息,基于语义的推理也会逐渐深化。与静态的编解码结构相比,我们的动态结构更适合于连续推理,更能满足多跳MRC任务的需要。

4、消融

在这里插入图片描述

 文字有很多特点。在将一个单词编码序列加权平均成一个向量时,我们希望突出每个单词中语义明显的强特征,弱化那些不明显的特征。如果整个序列只使用一个分布,我们就不能区分强特征和弱特征。显然,这是不合理的。然而,NM分配给每个功能的分布,从而缓解了这个问题。
在这里插入图片描述

总结


 本文提出了一种基于句子推理的多跳MRC模型,称为SCR,其中句子在构建信息路径中起着关键作用。此外,还创新性地提出了系统表示语义的嵌套机制,实验证明该机制能够显著提高模型的性能。在WikiHop和MedHop数据集上的高准确率验证了SCR的有效性。通过一个实例,说明了SCR的推理过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
embedcpp-2021-03是一个有关嵌入式C++编程的课程,于2021年3月举办。嵌入式C++编程是指在嵌入式系统中使用C++编程语言进行开发的一种方法。 在嵌入式系统中,资源通常是有限的,例如处理器速度、内存容量和存储空间等。因此,使用C++编程语言可以提供更高的灵活性和效率,帮助开发人员充分利用有限的资源。C++在嵌入式系统中的应用范围广泛,例如物联网设备、汽车电子和工业自动化等领域。 embedcpp-2021-03课程旨在向学员介绍嵌入式C++编程的基础知识和技巧。课程内容通常包括以下方面: 1. C++语法和特性:介绍C++的基本语法、面向对象编程和泛型编程等概念,以及C++11、C++14和C++17的一些新特性。 2. 嵌入式系统概述:了解嵌入式系统的基本特点、硬件和软件组成,以及与传统桌面开发的区别。 3. 低级编程:学习如何与硬件交互,包括使用寄存器、配置外设和处理中断等。还可以介绍使用汇编语言优化性能的技巧。 4. 内存管理:探讨嵌入式系统中的内存管理技术,包括堆栈和堆的使用、动态内存分配和对象生命周期管理等。 5. 实时操作系统(RTOS):介绍嵌入式系统中常用的实时操作系统,如FreeRTOS和µC/OS等,学习如何使用RTOS进行任务调度和资源管理。 除了理论知识,embedcpp-2021-03课程通常还包括实际的项目练习,以帮助学员将所学知识应用于实际场景。通过该课程,学员可以了解嵌入式C++编程的基础概念和实践技巧,为嵌入式系统开发提供了一定的基础。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值