点击上方,选择星标置顶,每天给你送干货

阅读大概需要7分钟

跟随小博主,每天进步一丢丢

来源:专知

【导读】本篇文章是由Salesforce Research团队发表在ICLR2017的一篇论文,文章中采用的方法在SQuAD比赛中排名第9。本文从模型和实验两部分介绍此论文。

作者:Salesforce Research

翻译:Ying wang

01

DCN模型

从结构图中可以看出,模型共有两部分,第一部分是编码部分,主要实现对文档-问题的语意表示,第二部分是动态解码,采用迭代方式对预测答案位置进行更新。

  • encoder

所谓编码,就是将输入的序列转变成一个固定长度的向量,具体实现的时候,编码器的选择不是固定不变的,可选的有CNN/RNN/GRU/LSTM等等,作者本文采用的是LSTM。

文中,作者用(x_1^Q,x_2^Q,…,x_n^Q) 表示问题中的词序列,(x_1^D,x_2^D,…,x_n^D)表示文档中的词序列。LSTM中当前时间的隐藏状态是由上一时间的状态和当前时间输入决定的,也就是d_t=LSTM_{enc}(d_{t-1},x_t^D) ,获得各个时间段的隐藏层之后,再将隐藏层的信息汇总,生成最后的文档信息编码矩阵(即文本的特征信息)D=[{d_1\quad d_2…d_m\quad d_\phi}]

对于question中的定义,换汤不换药,同样采用LSTM网络,q_t=LSTM_{enc}(q_{t-1},x_t^Q) ,并将隐藏层信息矩阵Q'=[{q_1\quad q_2…d_m\quad q_\phi}]定义为一个中间量,这样做是为了使问题的encode space能够变换成文本的encode space,并对 Q'作一个非线性变换,问题信息编码矩阵最后表示为

Q=tanh(W^{(Q)}Q'+b^{(Q)})

  • Coattention encoder

基于上述文档信息矩阵D与问题信息矩阵Q,结合两个矩阵的信息:

m为文档的长度,n为question的长度。对L矩阵分别按行(row-wise)和按列(column-wise)求Softmax,就可以得到对问题和文档的Attention矩阵:

这里矩阵A^Q对于文档中的每个单词,question中的每个单词都有对应的 normalized attention,矩阵A^D同理。然后,将attention应用到问题中:

同样,将attention应用到文档中,计算QA^D 。作者在论文中提到,[Cui et al.2016]论文中的思想,将问题信息attention之后的C^Q 对文档进行attention,即C^Q A^D,又因为这两部分是平行的,并且都要与A^D相乘,因此可以将两部分写成如下形式:

这里的是Co-attention信息结合的体现。最后,通过双向LSTM将时间融合到当前的内容中。

  • dynamic pointing decoder

此部分主要就是找出预测文档中的片段作为最终的答案,作者提出了动态迭代的方式,通过反复迭代来预测起始位置和终止位置,从而确定最终答案。整个迭代过程就是上一次预测的结果以及encoder的信息通过LSTM获得当前时刻的预测结果,其数学表达如下:

这里,h_{i-1}表示历史预测信息,下标s_{i-1},e_{i-1}分别表示上一次预测的起始位置和终止位置。作者将每次的预测结果都输入到LSTM中进行保存,得到当前的隐藏状态h_i,作者又提出采用Highway Maxout Networks(HMN)模型对文档中的每一个字,分别把它作为起始位置和终止位置两个方面进行打分获得\alpha_t,\beta_t,其数学表达如下:

上式为起始位置的打分公式,其中u_t表示文档中第t个字的encoder信息。终止位置的计算方式跟起始位置的计算方式相似,但是用的是另外一个HMN的模型(因为起始位置的模型与终止位置模型结构相同但参数不共享)。

获得所有字的scores之后,选取得分最高的\alpha_t位置作为起始位置,得分最高的\beta_t位置为终止位置。

什么是HMN呢?

它基于Highway Network和Maxout。

  • Highway Network其核心思想是将网络的某一层输出,跳着连到更后面的一层作为输入。

  • Maxout是一种可学习的激活函数,其思想在于对每一个神经元的输出,都通过参数进行加权变换,得到的最大值作为最终输出。

下图为HMN的结构图:

先将u_{s_{i-1}},u_{e_{i-1}},h_i拼接后通过MLP得到r,再将解码信息u_t和r拼接后通过maxout层输出m^{(1)},第二层的输出m^{(2)}是将第一层的输出作为输入并通过maxout激活,最后一层将第一层的输出与第二层的输出拼接,整个流程的公式如下:

02

实验

  • 实验细节

实验数据集为SQuAD,使用Stanford CoreNLP标记器对语料库进行预处理,使用在840B Common Crawl语料库上预训练的GloVe词向量。将词汇量限制为Common Crawl语料库中存在的单词,并将词汇表外单词的嵌入设置为零。在训练期间使用最大序列长度600,对于所有循环单元,maxout层和线性层使用隐藏状态大小200。所有LSTM都随机初始化参数,初始状态为零。Sentinel向量在训练期间随机初始化和优化。对于动态解码器,将最大迭代次数设置为4,maxout pool大小为16,并使用ADAM优化模型,所有模型都使用Chainer。

  • 实验结果

在数据集SQuAD上,有两个评估指标。EM计算模型预测的答案与真实答案之间确切字符串的匹配,F1计算预测答案中的单词与真实答案之间的重叠。因为一个文档-问题对可能对应几个真实答案,所以EM和F1被视为对应文档-问题对的所有真实答案中的最大值。

与其他模型相比,SQuAD数据集的DCN模型的性能如下表所示。从表中可以看出无论是单模型DCN还是整体DCN都排名第一。

DCN能够多次估计答案跨度的起点和终点,每次都以其先前的估计为条件,如下图所示的3个实例,问题1,其中模型最初有不正确的起点和正确的 。在随后的迭代中,模型调整起点,最终到达迭代3中的正确起点。类似地,模型逐渐将终点的概率质量移动到正确的单词。

作者在实验中使用2层MLP代替HMN来测试HMN maxout层的池的大小,实验数据显示(如下图)pool的大小为16时模型性能更好。

DCN的性能是如何随文档长度变化的?从下图的实验结果可以看出协同注意力编码器对于长文档很大程度上是不可知的,其性能并没有随着文档的长度呈骤降趋势。我们可以看到,答案越长,性能就会越低。

同时,作者从不同问题的角度也分析了模型性能,从下图的统计结果可以看出,DCN更擅长“when”的问题。


方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


让更多的人知道你“在看”

【QA】基于动态协同网络(DCN)的问答模型相关推荐

  1. MedicalGPT:基于LLaMA-13B的中英医疗问答模型(LoRA)、实现包括二次预训练、有监督微调、奖励建模、强化学习训练[LLM:含Ziya-LLaMA]。

    项目设计集合(人工智能方向):助力新人快速实战掌握技能.自主完成项目设计升级,提升自身的硬实力(不仅限NLP.知识图谱.计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户 ...

  2. 基于CNN的阅读理解式问答模型:DGCNN

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 早在年初的一文读懂「Attention is All You Need」| 附代码实现中就已经承诺 ...

  3. 对“动态多重网络”建模与目标选择方法的介绍

    对"动态多重网络"建模与目标选择方法的介绍 1.背景 对<基于动态多重网络的目标体系建模与分析>文中所提到的观点进行研究.分析.解释.提炼,有助于学习与研究. 2.动态 ...

  4. AAAI 2021 | 基于动态混合关系网络的对话式语义解析方法

    作者|惠彬原,耿瑞莹,黎槟华,李永彬,孙健 单位|阿里巴巴达摩院Conversational AI团队 引言 机器可以自己写 SQL 语句吗?当然可以~只需要用自然语言描述你的想法即可,甚至还能进行多 ...

  5. 【论文翻译】基于分层关注和时间RNN的动态异构网络链路预测建模

    基于分层关注和时间RNN的动态异构网络链路预测建模 摘要 网络嵌入的目的是在获取网络结构信息的同时学习节点的低维表示.它在链路预测.节点分类等网络分析任务中取得了巨大的成功.现有的网络嵌入算法大多集中 ...

  6. 南邮STITP 基于图挖掘的大规模动态交互网络热点区域识别及分布式处理 立项书

    本项目旨在利用图挖掘解决大规模动态交互网络的热点区域识别问题,并提供分布式处理方案. 具体研究目标是:建立适合于大规模动态交互网络.基于图挖掘算法的热点区域识别方法:利用分布式处理方案,提高大规模动态 ...

  7. 基于动态路由的胶囊网络在文本分类上的探索

    摘要 简介 模型 2.1 N-gram 卷积层 2.2 初级胶囊层 2.2.1 孩子-父母(部分-整体)关系 2.3 动态路由 孤立类别 Leaky-Softmax 参数修正 实验 3.1 实验数据集 ...

  8. 【工大SCIR】基于动态图交互网络的多意图口语语言理解框架

    论文名称:AGIF: An AdaptiveGraph-Interactive Framework for Joint Multiple Intent Detection and SlotFillin ...

  9. 分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析

    分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析 Hierarchical Conditional Relation Networks for Video Question ...

  10. 基于动态用户偏好和服务质量的推荐算法

    引用: Zhang Y, Qian Y, Wang Y. A RecommendationAlgorithm Based on Dynamic User Preference and Service ...

最新文章

  1. 一文详解PnP算法原理
  2. 【 MATLAB 】使用 filter 函数产生给定线性时不变系统的单位阶跃响应
  3. linux文件夹加密访问,技术|Linux系统上用encfs创建和管理加密文件夹
  4. 用python画花瓣-Python竟能画这么漂亮的花,帅呆了(代码分享)
  5. Centos 7 安装 Haproxy
  6. MATLAB中设置figure的边框
  7. 学计算机的八字,计算机教室八字格言
  8. Wayland 显示服务器,wayland 1.8.0 发布,显示服务器
  9. 条款4:确定对象在使用前已被初始化
  10. linux试密码3次则屏蔽ip,linux centos封锁多次ssh密码错误的主机IP
  11. java scanner构造函数_Java使用Scanner作为构造函数的参数
  12. 【相机标定系列】相机成像的理想模型原理,相机矩阵分解
  13. 解决 ThinkPad x270 安装 ubuntu 14.04 后的网络问题
  14. Oracle执行计划变更
  15. 惠普m227fdw引擎通信错误_惠普打印机HPM227提示耗材余量错误怎么办?
  16. css骨架图,【CSS】骨架屏 Skeleton 效果
  17. Android Studio之Activity简介
  18. android 进退分屏代码策略,Android的分屏模式开发注意事项
  19. 鸿蒙系统用的什么代码,鸿蒙系统是用什么语言开发的?
  20. ai星际探索 爪子_通过特征空间探索实现可解释的人工智能

热门文章

  1. 与你邂逅——软件工程
  2. UVa 11991 一道简单题
  3. VS2008引用webservice的奇怪BUG解决方案
  4. 测试管理中的一个问题—功能点覆盖还是功能测试点覆盖
  5. C#图解教程 第二十四章 反射和特性
  6. vue+element tree(树形控件)组件(1)
  7. Nginx-配置https虚拟服务(访问http时自动跳转https)
  8. linux之C编程学习——getchar()和getch()
  9. 创建全局SystemTray.ProgressIndicator
  10. 没有ajax以前的隐藏 iframe 技术