DFGN-Dynamically Fused Graph Network for Multi-hop Reasoning 论文阅读

news2024/12/23 16:55:32

文章目录

  • 介绍
  • 相关工作
    • text-based QA
    • 多跳QA推理
  • 模型
    • 段落选择器
    • 构建实体图
    • 编码 Query 和 Context
    • Fusion Block 推理
      • Doc2Graph
      • Dynamic Graph Attention
      • Update Query
      • Graph2Doc
    • 预测

介绍

将 DFGN 模型用于HotpotQA (TBQA类型的公开数据集)

QA任务注重从单一的篇章中找到证据和答案,但是有一些不需要推理,只要抽取就可以了。针对这个问题,有了一些需要多跳理解任务的数据集,如 WikiHop, Complex Web Question, HotpotQA

多跳理解任务面临的两大挑战:

  1. 需要从多个篇章中过滤噪声,抽取出有用的信息。
    • 有文章提出从输入的篇章中建立实体图,通过实体图,用GNN来聚合信息
    • 问题:静态的全局实体图,是隐式的推理
    • 本文:根据query去构建动态的局部实体图,进行显式的推理
  2. 问题的答案可能并不存在于抽取得到的实体图的实体中
    • 本文:两个方向的信息集成
      • doc2graph:把文档信息集成到实体图中
      • graph2doc:把实体图的信息集成回文档表示

本文的贡献:

  • 提出 DFGN,解决基于文本(text-based)的多跳问答问题
  • 提出了一种方法来解释与评估 reasoning chains,解释 DFGN 预测的 entity graph masks
  • 在HotpotQA数据集上实验,验证了模型的有效性

相关工作

text-based QA

给予支持信息是否是结构化的,QA任务可以分为两类:

  • 基于知识的,knowledge-based QA (KBQA)
  • 基于文本的,text-based QA (TBQA)

基于推理的复杂度,可以分为两类:

  • 单跳:SQuAD
  • 多跳:HotpotQA

信息检索式(IR)的方法可以用于单跳QA,却很难用于多跳QA

多跳QA推理

  • GNN、GAN、GRN(Graph Recurrent Network)已经证明了QA任务中需要推理
  • Coref-GRN 利用 GRN

模型

请添加图片描述

  • 模型由五个部分组成:
    • a paragraph selection subnetwork,段落选择器
    • a module for entity graph construction,entity graph生成器
    • an encoding layer 编码模块
    • a fusion block for multi-hop reasoning 多跳预测所用的 Fusion Block
    • a final prediction layer 最后的预测层

段落选择器

hotpotQA 数据集中有 10 个段落

训练一个子网络来选择相关的段落,基于BERT模型做分类

  • 输入一个query 和一个段落,输出一个 0-1 的相关度打分
  • 对每个 Q&A 对来说,给有至少一个支持句子的段落赋值为1
  • 在推理阶段,选择预测分值大于 η \eta η 的段落,并且拼接为上下文 C C C

构建实体图

  • 用 Stanford corenlp toolkit 去识别命名实体 C C C,抽取得到 N N N 个实体
  • 实体图,以实体为点,边的添加规则如下:
    • 一对实体出现在 C C C 中的同一个句子中(sentence- level links)
    • 一对实体出现在 C C C 中(context-level links)
    • 一个中心实体与另外的实体在同一个段落中(paragraph-level links)
  • 在QA数据集中,title就是实体

编码 Query 和 Context

  • Q Q Q C C C 拼接,从BERT模型得到表示
    • Q = [ q 1 , … , q L ] ∈ R L × d 1 Q=[q_1,\ldots,q_L]\in R^{L\times d_1} Q=[q1,,qL]RL×d1
    • C T = [ c 1 , … , c M ] ∈ R M × d 1 C^T=[c_1,\ldots,c_M]\in R^{M\times d_1} CT=[c1,,cM]RM×d1
    • d 1 d_1 d1 是 BERT 的隐藏层大小
    • 实验发现:拼接后传入 BERT 比分别传入 BERT 效果要好
    • 把表示通过 bi-attention 层,的到 query 和 context 之间的表示,效果比只用 BERT 编码效果要好

Fusion Block 推理

请添加图片描述

Doc2Graph

  • 计算命名实体的嵌入
  • 01矩阵 M M M 表示一个实体的 text span(文本范围)
    • M i , j = 1 M_{i,j}=1 Mi,j=1 表示第 i i i 个token 是第 j j j 个实体的一部分
  • Tok2Ent
    • token embedding传到一个 mean-max 池化层,计算得到 entity embedding

Dynamic Graph Attention

  • 利用 GAT的方式计算两个实体间的注意力评分

Update Query

  • 最近访问的 entity 会成为下一步的 start entity
  • 利用 bi-attention network 去更新 query embeddings
  • Q ( t ) = \mathbf{Q}^{(t)}= Q(t)= Bi-Attention ( Q ( t − 1 ) , E ( t ) ) \left(\mathbf{Q}^{(t-1)}, \mathbf{E}^{(t)}\right) (Q(t1),E(t))

Graph2Doc

  • 把实体信息复原回context中的token
  • 用同一个 01 矩阵 M M M
    • M M M 中每一行表示一个token
    • 用它从 E t E_t Et 中 选择一个实体嵌入 -> M E ME ME
  • 用 LSTM 去生成下一层的 context 表示
    • C ( t ) = LSTM ⁡ ( [ C ( t − 1 ) , M E ( t ) ⊤ ] ) \mathbf{C}^{(t)}=\operatorname{LSTM}\left(\left[\mathbf{C}^{(t-1)}, \mathbf{M} \mathbf{E}^{(t) \top}\right]\right) C(t)=LSTM([C(t1),ME(t)])

预测

  • 与 hotpotQA 的结构相同
  • 四个输出:
    1. 支持句子
    2. 回答的开始位置
    3. 回答的结束位置
    4. 回答的类型
  • 用一个级联网络解决输出的依赖性
    • 四个 LSTM F i \mathcal{F}_i Fi 一层层堆叠
    • 最后一个 fusion bloack 的上下文表示输入到第一个LSTM中
    • O sup  = F 0 ( C ( t ) ) O start  = F 1 ( [ C ( t ) , O sup  ] ) O end  = F 2 ( [ C ( t ) , O sup  , O start  ] ) O type  = F 3 ( [ C ( t ) , O sup  , O end  ] ) \begin{aligned} \mathbf{O}_{\text {sup }} &=\mathcal{F}_0\left(\mathbf{C}^{(t)}\right) \\ \mathbf{O}_{\text {start }} &=\mathcal{F}_1\left(\left[\mathbf{C}^{(t)}, \mathbf{O}_{\text {sup }}\right]\right) \\ \mathbf{O}_{\text {end }} &=\mathcal{F}_2\left(\left[\mathbf{C}^{(t)}, \mathbf{O}_{\text {sup }}, \mathbf{O}_{\text {start }}\right]\right) \\ \mathbf{O}_{\text {type }} &=\mathcal{F}_3\left(\left[\mathbf{C}^{(t)}, \mathbf{O}_{\text {sup }}, \mathbf{O}_{\text {end }}\right]\right) \end{aligned} Osup Ostart Oend Otype =F0(C(t))=F1([C(t),Osup ])=F2([C(t),Osup ,Ostart ])=F3([C(t),Osup ,Oend ])
    • 每一个输出的 logit O \mathbf{O} O 计算交叉熵损失
    • 把四个 loss 拼接起来,引入不同权重: L = L start  + L end  + λ s L sup  + λ t L type  \mathcal{L}=\mathcal{L}_{\text {start }}+\mathcal{L}_{\text {end }}+\lambda_s \mathcal{L}_{\text {sup }}+\lambda_t \mathcal{L}_{\text {type }} L=Lstart +Lend +λsLsup +λtLtype 

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

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

相关文章

ADI Blackfin DSP处理器-BF533的开发详解46:图像处理专题-Translation (图像平移处理)(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像平移处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

【爬虫实战项目】Python爬取Top100电影榜单数据并保存csv文件(附源码)

前言 今天给大家介绍的是Python爬取Top100电影榜单数据保存csv文件,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的…

(四)springcloud之Nacos注册服务与发现-1

前言:一段时间来忙忙碌碌,回头发现很多技术已经更新了很多,很长一段时间都在忙其他的事情,以至于没有太多关注于微服务更新,今天更新了下版本以便于后期使用,突然发现很多东西已经被删除或直接改变了&#…

TIA博途_序列化指令Serialize的具体使用方法示例

TIA博途_序列化指令Serialize的具体使用方法示例 序列化指令的基本用途: 首先,我们可以查看TIA博途中的帮助文件说明,如下图所示: 简单总结就是: 把复杂的数据或数据类型(例如UDT、STRUCT等)转换成BYTE或CHAR类型的数组,从而方便数据处理,通常在通信数据的处理中可以…

DBCO-PEG-amine,二苯并环辛炔PEG氨基 MV 1K、2K、3.4K、4K、5K、10K

1、试剂基团反应特点(Reagent group reaction characteristics): DBCO用于无铜点击化学。在没有铜催化剂的情况下,与叠氮化合物的反应非常迅速。这种反应是非常迅速,温和,和生物相容性,NH2和带N…

数据结构---KMP算法

一、KMP算法简介 KMP算法是一个字符串匹配算法,对暴力算法BF的一种优化,使得时间复杂度大量的降低。 基本概念: s[]是字符串,简单来说,就是比较长的字符串。p[]是模式串,简单来说,就是比较短的…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了,现在一直用来控制家里的家电。于…

selenium + python自动化测试环境搭建(有手就行)

selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: 免费,也不用再为破解QTP而大伤脑筋 小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装…

时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

LeetCode刷题日记之链表II

1.四数相加II 题目描述 解题思路 1.定义一个哈希Map,其中key存放两数之和,value存放两数和出现的次数。 2.遍历统计出nums1和nums元数相加和出现的次数(ab)。 3.遍历nums3和nums4,并求和(cd),统计出(0-(cd))在Map中出现的次数。 4.返回(0-(…

央企招聘:中国人民银行2023年度招聘启事

2023年中国外汇交易中心 博士后科研工作站招聘公告 中国外汇交易中心暨全国银行间同业拆借中心(以下简称“交易中心”)于1994年成立,是中国人民银行直属事业单位,为银行间外汇、货币、债券及其衍生产品提供交易、发行、基准及一线…

如何通过.exe文件控制一台电脑

CVE-2022-21999漏洞 如何实现发送一个.exe文件偷偷控制他人的电脑?这个想法很刑的,所以我只是说明我的实现方式,具体操作建议仅用于hvv等专业领域,请勿以身试法。 首先我们分析一下.exe文件的实际应用场景---windows系统的电脑&am…

11、setoolkit工具 构造钓鱼网站、powershell注入

靶机:192.168.11.105攻击机kail:192.168.11.1061.在kali中启动setoolkitsetoolkit2.利用SET构建钓鱼网站1)选择1 Social-Engineering Attacks (社会工程学攻击)2)选择2 Website Attack Vectors &#xff…

Spring Boot 概念、创建和运行 · Spring Boot 的优点 · 启动第一个 Spring Boot · Spring Boot 的注意事项

一、什么是 Spring Boot二、Spring Boot 优点三、Spring Boot 项目创建四、项目目录介绍和运行4.1 运行项目4.2 输出 Hello World五、注意事项5.1 包路径错误5.2 小结:约定大于配置六、总结一、什么是 Spring Boot Spring 的诞生是为了简化 Java 程序的开发的&…

GAMES101-现代计算机图形学入门-闫令琪 课程笔记 - 汇总(上)

一些前言与感慨: 学了再多的AI,终究还是没有办法拒绝计算机图形学的魅力。当初就不该一招不慎,踏入AI的坑。 可惜当年在学校里学计算机图形学的时候,还没有闫令琪这么好的课程,当时学得一知半解,云里雾里…

极市直播回放第106期丨阿里达摩院:兼顾速度与精度的高效目标检测框架DAMO-YOLO

阿里巴巴达摩院智能计算实验室团队设计并开源了一款兼顾速度与精度的目标检测框架DAMO-YOLO,其性能超越了目前的一众YOLO系列方法,在实现精度SOTA的同时,保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了MAE-NAS、efficient-RepGFPN…

cas:1628790-40-8|脂溶性Cyanine7-COOH|CY7-Carboxylic Acid

cas:1628790-40-8|脂溶性Cyanine7-COOH|CY7-Carboxylic Acid 名称:脂溶性Cyanine7-COOH|CY7-Carboxylic Acid cas:1628790-40-8 英文同义词: Cy7;Colpro;Prothil;R-13615;Cy7-COOH;CY7ACID;Cy7NHS;AY-62022;Cy7,>97%;Sulfo-Cyanine7 中文名称:磺基-CY7羧酸 …

【小甲鱼C语言】课后笔记第一章第四节——数据类型

目录 1、数据类型 2、short 和 long 3. sizeof 运算符 4. signed 和 unsigned 5、课后习题(编程题) 1、数据类型 在 C 语言里,所谓的数据类型就是坑的大小。我们说变量就是在内存里边挖一个坑,然后给这个坑命名。那么数据类型…

U盘格式化后能恢复数据吗?U盘删除的数据还能恢复吗

U盘格式化后能恢复数据吗?通常情况下,我们U盘里的数据丢失后,它们并没有立即消失,它们只是被系统做了一个标记,将数据存储的位置标记成可写入的状态,只有当新数据写入的时候,这个存储位置才会被…

USB转UART的桥接控制器 国产DPU02能不能软硬件兼容替换CP2102?

DPU02是一个高度集成的USB转UART的桥接控制器,可将RS-232设计更新为USB设计,并简化PCB组件空间。 该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数据总线(UART)控制器…