【论文笔记08】Dynamic Entity Representation with Max-pooling Improves Machine Reading

本文模型之前的模型都是用一个静态的向量来表示一个entity,与上下文没有关系。而本文最大的贡献在于提出了一种动态表示entity的模型,根据不同的上下文对同样的entity有不同的表示。
模型还是采用双向LSTM来构建,这时实体表示由四部分构成,包括两个方向上的隐层状态,,以及该实体所在句子的最后隐层状态,也就是该实体所在的上下文表示。如图所示。实体标识方法
问题向量的计算与动态实体计算过程类似,这里需要填空的地方用占位符表示。
如果遇到一个entity在document中出现多次的情况,该entity就会有不同的表示,论文中采用CNN中常用的max-pooling方法,从各个表示中的每个维度获取最大的那一个组成该实体的最终表示,这个表示包括了该实体在文章中各种上下文情况下的信息,具有最全面的信息,
动态实体标识
计算出实体的动态表示之后,通过注意力机制计算得到问题与每个实体之间的权重,根据语义相近程度选出最可能是答案的那个实体,找到最终的答案。
这里有一个maxpooling的例子,左边是示意图,右边是对应的解释。大家可以先看一下,主要是说明maxpooling的作用。
实验分析
实验分析
本文的实验在CNN数据上对模型进行了对比,效果比之前的Attentive Reader好很多,验证了本文的有效性。
实验结果对比
本文模型的一个好玩之处在于用了一种变化的眼光和态度来审视每一个实体,不同的context会给同样的entity带来不同的意义,因此用一种动态的表示方法来捕捉原文中entity最准确的意思,才能更好地理解原文,找出正确答案。实际生活中,我们做阅读理解的时候,最简单的方法是从问题中找到关键词,接着从原文中找到同样的词所在的句子,然后仔细理解这个句子最终得到答案,本文的动态表示正是有意在更加复杂的阅读理解题目上做文章,是一个非常好的探索。