【每日一读】ICLR2017: 机器阅读理解中的双向注意力流

在这里插入图片描述

Paper: (ICLR2017) BI-DIRECTIONAL ATTENTION FLOW FOR MACHINE COMPREHENSION
Link: https://arxiv.org/pdf/1611.01603.pdf

大家在读MRC论文时可能都会频繁注意到Bi-attention Layer的使用,那么今天我们就来读一读提出Bi-attention Layer的这篇论文~

Bi-attention Flow提出于ICLR2017的一篇进行机器阅读任务(MRC)的论文中。MRC任务要求根据问题(query)在给定的文本中找出答案,因此, 对文本与问题query之间的交互进行建模 非常重要。本文提出了Bi-Directional Attention Flow (BIDAF) network 模型来进行MRC任务,并在总结以往Attention机制的特点后, 希望BIDAF中提出的Attention机制具有如下特点:

  • 本文提出第attention并不是把指定的段落/文本压缩成一个固定大小的向量,而是在每个时间步上都计算attention, 使得信息"流动(flow)"起来,避免信息的丢失;

  • Attention的计算不依赖于以往的"记忆"。具体来说,就是每一个时间步上attention的计算,只依赖于query和当前时间步上的context, 不依赖于在这一步之前attention计算的结果,从而使得attention的计算专注于query和context之间的关系;

  • Attention的计算是双向的,通过query-to-context和context-to-query双方向上的计算实现信息的互补。

本文提出的BIDAF网络结构如下图所示,具体由图左侧标注的六层结构组成。在这里,我们主要详细了解Attention Flow Layer, 也就是本文重点提出的BiAttention模块是如何实现的:
在这里插入图片描述

Attention Flow Layer 的作用是连结、融合query和context中的信息, 它以Context的表示 H 和Queyt的表示 U作为输入, 得到融合了Query信息的Context表示(query-aware)。具体的计算过程包括如下三步:

  • 计算Attention矩阵:
    在这里插入图片描述
    其中, S t j S_{tj} Stj 表示 context 中的第 t 个词与 query 中第 j 个词之间的相似度。

  • Contexe-to-query Attention: 计算哪个 query word 对哪个 context word 具有最大的相关性
    在这里插入图片描述
    其中 a t \bf{a}_t at 是 query words 对 context 中第 t t t 个word的attention权重。

  • Query-to-Context Attention: 计算哪个 context word 对哪个 query word 具有最大的相似性
    在这里插入图片描述

  • Query-Aware Context Representations: 将文本表示与前两部计算的attention向量进行融合,得到融合query知识后的context的表示:
    在这里插入图片描述
    最终,BIDAF 在 SQuAD 数据集上取得了当时的最佳效果 ,并通过消融实验验证了模型各个模块的作用:
    在这里插入图片描述
    在这里插入图片描述
    最后小编再提供一份ACL2019-Dynamically Fused Graph Network for Multi-hop Reasoning 一文中使用BiAttention的实现代码


了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值