本文是机器阅读理解系列的第六篇文章,paper的题目是Dynamic Entity Representation with Max-pooling Improves Machine Reading,作者是来自日本东北大学的老师Sosuke Kobayashi,文章发表在NAACL HLT 2016。本文的代码开源在Github。

本文模型之前的模型都是用一个静态的向量来表示一个entity,与上下文没有关系。而本文最大的贡献在于提出了一种动态表示entity(Dynamic Entity Representation)的模型,根据不同的上下文对同样的entity有不同的表示。

模型还是采用双向LSTM来构建,这时动态entity表示由四部分构成,包括两个方向上的hidden state,以及表示该entity所在句子的last hidden state,也就是该entity所在的上下文表示。如下图所示:

计算出entity的动态表示之后,通过attention mechanism计算得到query与每个entity之间的权重,然后计算每个entity在document和query条件下的概率,找到最终的answer。

query向量的计算与动态entity计算过程类似,这里需要填空的地方记作placeholder,也是包括四个部分,其中两个是表示placeholder上下文的last hidden state,另外两个是表示placeholder的hidden state。

模型的整个计算过程就是这样。如果遇到一个entity在document中出现多次的情况,该entity就会会有不同的表示,本文采用CNN中常用的max-pooling从各个表示中的每个维度获取最大的那一个组成该entity最终的表示,这个表示包括了该entity在document中各种context下的信息,具有最全面的信息,即原文中所说的accumulate information。如下图:

本文的实验在CNN数据上对模型进行了对比,效果比之前的Attentive Reader好很多,验证了本文的有效性。(当然结果没法和GA Reader比)

最后,作者给出了一个example,来说明用max-pooling的作用,见下图:

由于用了max-pooling模型比起不用它的话,可以关注到第二句和第三句话,因为本文模型可以捕捉到entity0(Downey)和entity2(Iron Man)是关联的(Robert Downey Jr.是Iron Man的扮演者),然后就会注意到entity2出现过的几个句子,而不仅仅是query中entity0出现过的几个句子,这一点帮助了模型找到了最终的正确答案entity26(在第二句中)。

本文模型的一个好玩之处在于用了一种变化的眼光和态度来审视每一个entity,不同的context会给同样的entity带来不同的意义,因此用一种动态的表示方法来捕捉原文中entity最准确的意思,才能更好地理解原文,找出正确答案。实际体会中,我们做阅读理解的时候,最简单的方法是从问题中找到关键词,然后从原文中找到同样的词所在的句子,然后仔细理解这个句子最终得到答案,这种难度的阅读理解可能是四、六级的水平,再往高一个level的题目,就需要你联系上下文,联系关键词相关联的词或者句子来理解原文,而不是简单地只找到一个句子就可以答对题目。本文的动态表示正是有意在更加复杂的阅读理解题目上做文章,是一个非常好的探索。

另外,如何衡量阅读理解语料中题目的难度?是否可以按难度分类进行对比测试?如果说现在最好的系统可以做到75%左右的正确率,是否可以给出一些更加有难度的题目来做?比如英语考试中真正的阅读理解或者完形填空。不同的模型具有不同的特点,可以考虑用不同难度的题目来验证模型的适用性。

本文是这个系列文章在本周的最后一篇单文,周末的时间会整理出本周分享的模型的思路、研究动机和实验结果等各个方面来写一篇综述文章,对机器阅读理解这个点进行一个较系统地总结,敬请期待!(后续还会继续关注这个方向,读更多的paper来分享)

来源:paperweekly

原文链接

Dynamic Entity Representation with Max-pooling Improves Machine相关推荐

  1. 自然语言处理中CNN模型几种常见的Max Pooling操作

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 (想更系统地学习深度学习知识?请参考:深度学习枕边书) CNN是目前自然语言处理中和RNN并驾齐驱的两 ...

  2. 对Max Pooling的理解

    Max Pooling是什么 在卷积后还会有一个 pooling 的操作. max pooling 的操作如下图所示:整个图片被不重叠的分割成若干个同样大小的小块(pooling size).每个小块 ...

  3. CNNs中,什么是max pooling, 为什么需要max pooling

    max pooling是发生在卷积层与池化层的一种图片压缩方法. 而卷积层和池化层是CNNs中最重要的两部分,因为有卷积层, 所以叫做卷积神经网络. 假设一张2d, 一层的图片, 大小为4 * 4, ...

  4. CNN max pooling、Relu、round 等环节梯度如何反传?

    神经网络中,一个小的trick有可能让网络performance变得非常好.对于神经网络的理解,我们不应该停留在对于pytorch.tf等的依赖上,他们经常性的考虑到了我们可能出错的地方,并进行了修正 ...

  5. 【阅读笔记】Why Discard if You can Recycle?: A Recycling Max Pooling Module for 3D Point Cloud Analysis

    Why Discard if You can Recycle?:A Recycling Max Pooling Module for 3D Point Cloud Analysis 如果可以回收,为什 ...

  6. 人脸识别---Gabor特征(mean pooling和max pooling)

    Abstract-本文主要讲解Gabor特征在人脸识别中的使用.       在此不讲Gabor滤波器的原理,网上有很多博客已经介绍了大量关于Gabor滤波器.此文讲下提取出来后的Gabor滤波器的处 ...

  7. 【CV】图像分类中的max pooling和average pooling区别

    卷积神经网络中,经常采用池化操作,一般都会在卷积层后面接一个池化操作.近些年,比较主流的ImageNet的分类算法模型都是使用max pooling,很少使用average Pooling,这对我们平 ...

  8. Global Average Pooling与FC、Global Max Pooling的比较

    原文 Global Average Pooling(简称GAP,全局池化层)技术最早提出是在这篇论文(第3.2节)中,被认为是可以替代全连接层的一种新技术.在keras发布的经典模型中,可以看到不少模 ...

  9. 深度学习:使用卷积网络实现计算机图像识别,卷积和max pooling操作介绍

    深度学习在计算机图像识别上的应用非常成功.利用深度学习,我们能够对图片进行高精度识别,实现这一功能的,主要依靠神经网络中的一种分支,名为卷积网络.卷积网络与我们前面实现的网络不通之处在于,它可以直接接 ...

最新文章

  1. easyui的datagrid
  2. [E::fai_build_core] Different line length in sequence ‘kraken:taxid|436|NZ_CP062147.1‘
  3. environment variable
  4. 学 Python 最大的 1 个误区,看看你中招了吗?
  5. Powershell基本命令总结(更新中)
  6. [Python Study Notes]pandas.DataFrame.plot()函数绘图
  7. 漫剪AE插件丨一键分屏VE Super Grid插件
  8. 蒙特卡洛—赌博模型笔记
  9. python运行代码时标红_PyCharm 中写 Turtle代码没提示以及标黄问题
  10. PCShare流量检测报告
  11. Java基础回顾--jav集合1 集合的分类、解析
  12. dispatch_group_async
  13. CCF考试——201312-5I’m stuck!
  14. Linux 解压缩.xz
  15. 限制电脑使用指定的软件
  16. 基于Scala设计简易的会员卡管理系统
  17. 结对项目——最大联通子数组
  18. 适合刚起步的创业项目有哪些?
  19. Gartner:首席信息官能从IT支出中得到哪些收获?
  20. java word 模板_java通过word模板生成word文档

热门文章

  1. Linux专题_行编辑
  2. centos7实现Linux和Windows共享
  3. SQL优化-第二章-从解释计划层面让SQL飞
  4. 易观的大数据革命 分析师与机器人协同办公
  5. ios 中如何应对UIScrollView快速滑动(暴力用户,暴力测试)
  6. 性能为王:SQL标量子查询的优化案例分析
  7. 【读书笔记《Android游戏编程之从零开始》】11.游戏开发基础(SurfaceView 游戏框架、View 和 SurfaceView 的区别)...
  8. Android 使用SQLiteDatabase操作SQLite数据库(一)
  9. jquery选择器的总结
  10. android中include标签的使用