2017-4-20

来源:互联网 发布:域名和空间费用 编辑:程序博客网 时间:2024/05/21 06:26

今天两部分工作:

一。阅读关于阅读理解(Reading Comprehension)两篇相关文献:

      1. Teaching Machines to Read and Comprehend.

      用神经网络做阅读理解的开山之作,来自于DeepMind的工作,主要提了两个数据集CNN, Daily News和两个基于注意力机制的神经网络:Attentive Reader 和 Impatient Reader. 其中两个数据集都是从相应的新闻网站上爬取得到的,而对于问题则来自于原始文本的摘要部分(Bullet Points),在设计问答的时候是采用完形填空的方式,删除了某个实体,让机器自动从文档的所有词汇中来进行选择答案。另外为了排除世界知识和语言模型的影响,将实体本身替换为随机生成的符号(Entity0)。两个模型的核心思想是计算词的向量和(问句文档组)之间的相关度,其中文档中的词向量用双向LSTM来建模得到,而问句文档组的表示则通过分别计算文档表示和问句表示后再通过两层网络组合得到,其中问句表示同样通过双向LSTM计算得到,而Attentive Reader和Impatient Reader在计算文档表示时则有所不同,其中Attentive Reader在计算问句与每个词的注意力权重后对所有词融合得到,而Impatient Reader则是有一个推导的过程考虑了问句中的每个词与文档的关系,进而综合得到了文档的表示。从实验结果看,两个Reader效果相差不大,甚至attentive Reader的结果要好些。

      2. Dynamic Entity Representation with Max-pooling Improves Machine Reading.

     此工作基于文献1的内容得来,主要的不同在于计算问句与词的相关性时的函数有所区别,此篇文献计算的是每个问句和每个实体之间的关联度,问句通过双向LSTM计算得到,而在计算实体时,则对包含该实体的所有句子分别来计算该实体在当前句子下的表示,之后通过注意力机制将这些表示加权求和。而在计算实体在具体句子下的表示时则同样通过双向LSTM来进行计算,需要说明的是,该文章与之前最大的不同是在表示随机生成的实体时(entity0)输入到LSTM时利用了之前所有实体表示的maxpooling来表示(可能第一个实体就是随机生成的),从结果来看,这一步很大地提升了效果,大概提了10个百分点左右。仔细想因为实体本身(entity0)在整个数据集上只出现一次,因此随机生成地向量表示可能会有影响,而且并不能有效地更新,所以如何对这些实体进行初始值设定看起来是一个瓶颈。另外该文献指出加入预训练词向量也有稍微提升。


总结:目前来看,初始实体词向量像是一个瓶颈,而是否可以利用卷积网络(找到注意力范围,再根据范围来得到最优答案)和循环网络结合来试试看效果。


二。阅读理解相关代码

上述的两篇文献都可以找到相关代码,特别第一篇有很多用Theano实现的版本,下一步考虑先能运行起来基本的版本,之后每一篇文献都找到对应的最优的相关代码。

目前看到需要关注的Chen danqi, Stanford组的,一直在做问答和文本立即方面的工作。

考虑继续在Windows下跑Theano, Tensorflow, Tensorlayer.

1 0
原创粉丝点击