R-NET: 基于深度神经网络的端到端系统(微软亚洲研究院-阅读理解)

为了研究机器阅读理解的问题,包括韦福如和杨南等在内的研究团队试图去建模人做阅读理解的过程。他们采用了R-NET,一个多层的网络结构,分别从四个层面对整个阅读理解任务的算法进行了建模。

我们在做阅读理解的过程中,一个常见的顺序是这样的:首先阅读整篇文章,对文章有一个初步理解之后再去审题,从而对问题也有了一定认知。第二步,可能就需要将问题和文中的部分段落和内容做一些关联。例如题干中出现的某些关键已知信息(或证据)的,找出一些候选答案,举例来说:如果问题问的信息是时间,那么文中出现的与时间相关的信息就可能是候选答案。第三步,当我们将候选答案与问题进行对应之后,我们还需要综合全文去看待这些问题,进行证据的融合来辅证答案的正确性。最后一步,就是针对自己挑出的答案候选进行精筛,最终写下最正确的答案。

有鉴于此,研究组提出的模型也就分为这样的四层。最下面的一层做表示学习,就是给问题和文本中的每一个词做一个表示,即深度学习里的向量。这里研究组使用的是多层的双向循环神经网络。第二步,就是将问题中的向量和文本中的向量做一个比对,这样就能找出那些问题和哪些文字部分比较接近。接下来,将这些结果放在全局中进行比对。这些都是通过注意力机制(attention)达到的。最后一步,针对挑出的答案候选区中的每一个词汇进行预测,哪一个词是答案的开始,到哪个词是答案的结束。这样,系统会挑出可能性最高的一段文本,最后将答案输出出来。整个过程就是一个基于以上四个层面的神经网络的端到端系统(见下图)。

​微软亚洲研究院提出的R-NET算法的网络结构图。其中最为独特的部分是第三层文章的自匹配网络(Self-Matching Networks),更多细节请参考技术报告

关于这项研究的论文已经被ACL 2017录用,并获得审稿者的一致好评。

SQuAD数据集于2016年9月份发布了正式版。一经推出,微软亚洲研究院自然语言计算研究组就敏锐地判断这是一个非常重要的数据集,将会极大地推动机器阅读理解的研究,并将在研究界和工业界产生积极深远的影响。10月,研究团队就第一次提交了他们的研究成果,并且取得了第一名的好成绩,而后续几个月的数次提交,则是在不断地刷新着自己的成绩。对于研究团队来说,这其实是一个试错的过程,团队每天都会讨论总结当天的试错成果,有新的想法就不断尝试。

未来的方向

提及机器阅读理解未来值得探索的方向,韦福如分享了他的三点看法。他认为一方面基于深度学习的算法和模型还有很大的空间,适合机器阅读理解的网络结构值得在SQuAD类似的数据集上进一步尝试和验证。具体来说,通过对R-NET目前处理不好的问题的进一步分析,能否提出可以对复杂推理进行有效建模,以及能把常识和外部知识(比如知识库)有效利用起来的深度学习网络,是目前很有意义的研究课题。另外,目前基于深度学习的阅读理解模型都是黑盒的,很难直观地表示机器进行阅读理解的过程和结果,因而可解释性的深度学习模型也将是很有趣的研究方向。

其次,人类理解文本的能力是多维度的,结合多任务(尤其是阅读理解相关的任务,例如阅读理解之后进行摘要和问答)的模型非常值得关注和期待。更进一步,虽然SQuAD提供了比较大的人工标注数据集,如何有效且高效地使用未标注的数据也是非常值得期待的研究课题和方向。最后从任务上看,目前SQuAD的任务定义中答案是原文的某个子片段,而实际中人可能读完文章之后需要进行更复杂的推理、并组织新的文字表达出来。

“目前我们的算法基本都是抽取型的方式,未来生成型的算法也值得更多的探索和研究。另外,目前机器阅读理解关注的都是理解客观信息的能力,未来机器理解文字里面所表达出来的主观信息(例如情感)也是非常有趣并值得关注的方向。”韦福如说道。

推荐阅读更多精彩内容