2017年5月8日SQuAD排名和结果截图,其中微软亚洲研究院的集成模型(ensemble)和单模型(single model)分列各自排名首位
那么,SQuAD机器阅读理解挑战赛是怎样进行的呢?SQuAD通过众包的方式构建了一个大规模的机器阅读理解数据集(包含10万个问题),即将一篇几百(平均100,最多800)词左右的短文给标注者阅读,随后让标注人员提出最多5个基于文章内容的问题并提供正确答案。SQuAD向参赛者提供训练集用于模型训练,以及一个规模较小的数据集作为开发集,用于模型的测试和调优。与此同时,他们提供了一个开放平台供参赛者提交自己的算法,并利用测试集对其进行评分,评分结果将实时地在SQuAD官网上进行更新。
得益于SQuAD所提供的庞大数据规模,参与该项挑战赛的选手不断地对成绩进行刷新,SQuAD挑战赛也逐步成为行业内公认的机器阅读理解标准水平测试。在今年的ACL大会(自然语言处理领域最顶尖的会议之一)的投稿里,有非常多的论文就是关于这项挑战赛的研究,其影响力可见一斑。从ACL 2017论文主题的可视分析中可以看到,“reading comprehension(阅读理解)”是今年ACL录取论文中最热门的关键词和任务,广受自然语言处理领域研究人员的关注。
“虽然偶尔有一两天其它团队超过了我们的成绩,但我们也有最新的算法能够很快地进行更新,并取得更好的成绩,对于这一点我们的团队始终十分自信。”机器阅读理解研究的主要负责人、微软亚洲研究院自然语言计算研究组主管研究员韦福如表示。
自然语言计算领域皇冠上的明珠
如今,我们在图像识别、机器翻译和语音识别等研究领域已经看到了机器学习带来的显著成果。例如图像识别技术对
癌细胞病理切片
(
http://dwz.cn/601NC7
)
的识别能力已逐步超过人类,目前
机器围棋棋手
(
http://dwz.cn/601NtL
)
的棋力已经几乎无人能敌……在人工智能技术进步向人们展现了各种可喜的成果之后,大家将探寻的目光投向更远的未来,
下一个人工智能技术的增长点在哪里?
狂热过后,当我们重新审视人工智能这个问题时,一个最基本的问题可能尚未解决:
计算机能够理解多少我们的语言了?
(
http://dwz.cn/601MxR
)
一些人类学家认为,语言是构建人类文明的基石。在语言之上,我们构建了神话、宗教;构建了城邦,帝国;还构建了信任、信仰。计算机发明以来,层出不穷的编程语言都在教人们学会和计算机对话,而人们理想中的人工智能则是应该主动学习,掌握人类语言的奥义。为此微软提出了CaaP(Conversation as a Platform,对话即平台)战略,并将对话式人工智能作为微软在人工智能领域布局的重点。
计算语言学协会(ACL, Association for Computational Linguistics)候任主席,微软亚洲研究院副院长周明博士认为:“自然语言处理的基本研究包括分词、断句、句法语义分析等等。而机器阅读理解就是自然语言计算领域皇冠上的明珠。”
一般来说,人们在读完一篇文章之后就会在脑海里形成一定的印象,例如这篇文章讲的是什么人,做了什么事情,出现了什么,发生在哪里等等。人们能够很轻而易举地归纳出文章中的重点内容。机器阅读理解的研究就是赋予计算机与人类同等的阅读能力,即让计算机阅读一篇文章,随后让计算机解答与文中信息相关的问题。这种对人类而言轻而易举的能力,对计算机来说却并非如此。
很长一段时间以来,自然语言处理的研究都是基于句子级别的阅读理解。例如给计算机一句话,理解句子中的主谓宾、定状补,谁做了何事等等。但长文本的理解问题一直是研究的一个难点,因为这涉及到句子之间的连贯、上下文和推理等更高维的研究内容。
比如下面这段文本:
The Rhine (Romansh: Rein, German: Rhein, French: le Rhin, Dutch: Rijn) is a European river that begins in the Swiss canton of Graubünden in the southeastern Swiss Alps, forms part of the Swiss-Austrian, Swiss-Liechtenstein border, Swiss-German and then the Franco-German border, then flows through the Rhineland and eventually empties into the North Sea in the Netherlands. The biggest city on the river Rhine is Cologne, Germany with a population of more than 1,050,000 people. It is the second-longest river in Central and Western Europe (after the Danube), at about 1,230 km (760 mi), with an average discharge of about 2,900 m3/s (100,000 cu ft/s).
(大意:莱茵河是一条位于欧洲的著名河流,始于瑞士阿尔卑斯山,流经瑞士、 奥地利、列支敦士登、法国、德国、荷兰,最终在荷兰注入北海。莱茵河上最大的城市是德国科隆。它是中欧和西欧区域的第二长河流,位于多瑙河之后,约1230公里。)
若针对该段内容提问:What river is larger than the Rhine?(什么河比莱茵河长?)人们可以轻易地给出答案:Danube(多瑙河)。但目前即使是最佳的系统模型R-NET给出的输出也并不尽人意,它的回答是:科隆,可见要让计算机真正地理解文本内容并像人一样可以对文字进行推理的难度是如此之大。在回答该问题时,计算机除了要处理文中的指代“it”,还需要算法和模型进一步对“larger than”和“after”这两个表述进行推理,从而得知Danube是正确答案。此外,由于文中并没有显式提到Danube是“river”,所以又加大了系统的推理难度。
但大数据的发展让学者们看到了这一研究方向的曙光。可获取的越来越大的文本数据,加上深度学习的算法以及海量的云计算资源,使得研究者们可以针对长文本做点对点的学习,即对句子、短语、上下文进行建模,这其中就隐藏了一定的推理能力。所以,目前自然语言处理领域就把基于篇章的理解提上研究的议事日程,成为目前该领域的研究焦点之一。而针对上文提及的相关难点,微软亚洲研究院自然语言计算研究组正在进行下一步的研究和探索。
做顶尖的机器阅读理解研究
正如前文所说,机器阅读理解的研究之路始终充满着许多困难和挑战。
首先是
数据问题
。目前基于统计方法(尤其是深度学习模型)的机器阅读理解的研究离不开大量的、人工标注的数据。在SQuAD数据集推出之前,数据集常常面临规模较小,或是质量不佳(因为多是自动生成)的问题,而SQuAD无论是在数据规模还是数据质量上都有一个很大的提升。在基于深度学习方法的研究背景下,数据量不够就很难做出有效、或是有用的模型,更难对模型进行合理、标准的测试。
另一方面则是
算法问题
。之前自然语言处理在做阅读理解或者是自动问答研究的时候,会把这个研究问题视作一个系统的工程,因而把这个问题分成许多不同的部分。例如先去理解用户的问题;再去找答案的候选;再将候选答案进行精挑细选、互相比较;最后对候选答案进行排序打分,挑选出最可能的答案或者生成最终的答案。而这个繁复的过程中,似乎其中的每一步都是可以优化的。
但它相应地也会带来一些问题。第一,当你分步去优化这其中的每一个过程的时候,你会去研究如何更好地理解这个问题,或是研究如何更好地把答案做对,这些分目标研究结果的整合未必能和“如何将阅读理解的答案正确找出来”这个目标完全吻合。第二,如果想做局部的优化,就意味着每一个局部过程都需要相应的(标注)数据,这使得阅读理解的研究进展缓慢。如果只使用问题-答案作为训练数据,中间模块的优化得到的监督信息不那么直接,因而很难有效。
结合了上述问题,微软亚洲研究院自然语言计算研究组的机器阅读理解研究团队
采用的则是一个端到端的深度学习模型的解决方案
,区别于上述的每一个细化环节的具体优化过程,他们采取的方法是把中间环节尽可能的省去,使得整体的过程能够得到最优效果。
实际上,SQuAD的挑战赛形式就是让系统在阅读完一篇几百词左右的短文之后再回答5个基于文章内容的问题。这个问题可能比大家熟知的高考英文阅读理解,或是托福阅读考试都要难得多。人们参加的这些考试往往是一个答案被限定住范围的选择题。
但是在SQuAD的数据集中,问题和答案具有非常丰富的多样性。这五个问题中可能涉及文章中的某一个人,某一个地点,或是某一个时间等等实体;也有可能会问一些为什么(Why)、怎么样(How)的问题。后者的答案可能实际上是一句话,甚至是一小段话,因此解决这个问题只会更加棘手。
另外,在SQuAD数据集中,除了问题的多样性之外,研究员们发现还有更多的挑战。比如语言(包括词级别和句子级别)的歧义性,对于同一个意思,问题和短文会用不同的词语或者句型表述(在标注指南中就明确要求标注者尽可能使用不同的表述)。另一个很有难度的挑战是对于有些问题,找到正确答案需要用到整篇短文中的不同句子的信息,进而对这些信息进行聚合和比较才能最终得出正确的答案。当然,也有一部分问题需要用到比较复杂的推理、常识和世界知识,面对这类问题就更是难以处理。下表是发布SQuAD数据集一文中给出的总结。