“机器的阅读理解与问答”一直以来被认为是“自然语言理解(NLU)”的核心问题之一,随着BERT等模型的兴起,单段落的简单阅读理解任务取得了重大突破;研究者将目光转向更能体现机器智能的“多跳”“复杂”情形。
本篇论文介绍了基于认知中“双过程理论(dual process theory)”的CogQA模型,文章提出一种新颖的迭代框架:算法模拟认知学中人类的两个认知系统,并维护一张认知图谱(Cognitive Graph),系统一在文本中抽取与问题相关的实体名称并扩展节点和汇总语义向量,系统二利用图神经网络在认知图谱上进行推理计算。文章在HotpotQA全维基百科数据集上持续占据第一近三个月之久,直到文章在被ACL高分接收后公开。
假设你手边有一个维基百科的搜索引擎,可以用来获取实体对应的文本段落,那么如何来回答下面这个复杂的问题呢?
“谁是某部在2003年取景于洛杉矶Quality cafe的电影的导演?”
很自然地,我们将会从例如Quality cafe这样的“相关实体”入手,通过维基百科查询相关介绍,并在其中讲到好莱坞电影的时候迅速定位到“Old School”“Gone in 60 Seconds”这两部电影,通过继续查询两部电影相关的介绍,我们找到他们的导演。最后一步是判断到底是哪位导演,这需要我们自己分析句子的语意和限定词,在了解到电影是2003年之后,我们可以做出最后判断——Todd Phillips是我们想要的答案。
事实上,“快速将注意力定位到相关实体”和“分析句子语意进行推断”是两种不同的思维过程。在认知学里,著名的“双过程理论(dual process theory)”[1]认为,人的认知分为两个系统,系统一(System 1)是基于直觉的、无知觉的思考系统,其运作依赖于经验和关联;而系统二(System 2)则是人类特有的逻辑推理能力,此系统利用工作记忆(working memory)中的知识进行慢速但是可靠的逻辑推理,系统二是显式的,需要意识控制的,是人类高级智能的体现。
01
引例
如果说上面的说法过于抽象, 我们来看下面的小例子[2]:
这里有四张卡片,每张一面是数字,另一面是颜色。这里有一个命题:
“如果一张卡片一面是棕色,它的反面是一定是偶数(例如2,4,6,8,10)”我们想判断这个命题的对错,需要翻动哪两张卡片?希望你能快速回答。
如果你的答案(像大多数人那样)是第二和第四张卡片,我们先不评价,再看下面的问题。
这里有四张卡片,每张一面是一个人的年龄,另一面是他在喝的饮料。这里有一个规定:
“如果一个人要喝酒,那么他必须要年满18岁”我们想判断这个规定是否被遵守,需要翻动哪两张卡片?希望你能快速回答。
我想你的答案(像大多数人那样)可能是第一和第四张卡片。但是,如果我们来对比这两个问题,会发现如果我们将啤酒和棕色对应,偶数和大于18岁对应,这两个问题从逻辑上完全相同,但是我们快速思考(系统一)的时候却容易得出了完全不同的结果。但是当我们将问题抽象化进行深入思考(系统二),则能发其中的相同之处。这是因为系统一往往依赖于经验,第一个问题会直观联系到偶数,第二个问题则会联系到日常生活中对未成年人禁令的各项检查。因此,仅仅依靠系统一是不够的。
02
多跳阅读理解的挑战
自从BERT[3]横空出世,单文本阅读理解问答的基准数据集SQuAD很快超过人类水平,但是同时,大家也在反思这些模型是否真的能够做到阅读“理解”。在2018年Percy Liang等人的文章中,他们展现了一个有趣的例子:
原文为:In January 1880, two of Tesla's uncles put together enough money to help him leave Gospić for Prague where he was to study.”
问题为:What city did Tesla move to in 1880?
大多数模型都能轻松回答对“Prague”。然而,一旦我们在原文后面增加一句“Tadakatsumoved to the city of Chicago in 1881.”则这些模型将会以很高的置信度回答“Chicago”——这仅仅是由于这句的形式与问题特别像,即使关键的信息都对不上。
这很像我们刚才举的卡片的例子(Wason Selection Test),也暗示了之前的基于深度学习的NLP模型,主要类似于认知中的系统一,我们如果要进一步进行推理,就必须考虑系统二。
另外,可解释性不足也是之前多层黑盒模型饱受诟病的弊端之一。这些模型往往只需要输入问题和文本,然后输入答案在文本中的位置;在多跳阅读理解中,每一跳都是有原因的,如果不能给出合理答案解释,则无法证明真的“理解”了文本。
问答系统很重要的一个问题是规模化。当语料不多时,面向单段阅读理解的NLP模型都可以直接处理但是真正的问答系统势必需要大规模语料并从中寻找答案。在陈丹琦等人的DrQA系统中使用的一个常见的权衡的方法是:
先根据问题在语料(维基百科)中检索出少量相关段落,再在这些段落中进行NLP的处理。
CogQA文章认为,这样的方法在多跳问答中存在“短视检索”的问题,即后几跳的文本和问题的相关性很低,很难被直接检索到,导致了效果不佳。
03
认知图谱问答(CogQA)框架
在该文章提出一种新颖的迭代框架:算法使用两个系统来维护一张认知图谱(Cognitive Graph),系统一在文本中抽取与问题相关的实体名称并扩展节点和汇总语义向量,系统二利用图神经网络在认知图谱上进行推理计算。
正如之前提到的,人类的系统一是无知觉(unconscious),CogQA中的系统一也是流行的NLP黑盒模型,例如BERT。在文章的实现中,系统一的输入分为三部分:
■ 问题本身
■ 从前面段落中找到的“线索(clues)”
■ 关于某个实体x(例如x=上文中的电影《old school》)的维基百科文档
系统一的目标是抽取文档中的“下一跳实体名称(hop span)”和“答案候选(ans span)”。比如上文例子中,从“quality cafe”的段落中抽取电影“old school”和“Gone in 60 seconds”作为下一跳的实体名称,在“old school”的段落中抽取其导演“Todd Phillips”作为答案候选之一。这些抽取的到的实体和答案候选将作为节点添加到认知图谱中。此外,系统一还将计算当前实体 x 的语意向量,这将在系统二中用作关系推理的初始值。
下图展示了系统一(BERT实现)的结构:
文章还有很多值得注意的细节,比如之所以将“下一跳实体名称”和“答案候选”分开,是因为前者更多关注语意相关性而后者则需要匹配疑问词;“下一跳实体名称”和“答案候选”是通过预测每个位置是开始或者结束的概率来确定的,这里与BERT原文做法相符;第0个位置的输出被用来产生一个阈值,判断段落内是否有有意义的“下一跳实体名称”或者“答案候选”……详情见论文。
接下来,每一个抽取出的“下一跳实体名称”或“答案候选”将在认知图谱中建立一个新的点,并进行下一步迭代。
同时系统二在认知图谱上进行推理计算,文中使用图神经网络(GNN)实现的隐式推理计算——每一步迭代,前续节点将变换过的信息传递(Graph MessagePassing)给下一跳节点,并更新目前的隐表示(Hidden Representation)。最终所有的“答案候选”点的隐表示将通过一个带有softmax函数的全连接网络来判断哪个是最终答案。
在认知图谱扩展过程中,如果某被访问节点出现新的父节点(环状结构或汇集状结构),表明此点获得新的线索信息(clues),需要重新扩展计算。最终算法流程借助前沿点(frontier nodes)队列形式实现,具体描述如下:
04
实验结果
文章使用了CMU、Stanford和Montréal大学共同提出的HotpotQA数据集[4],语料范围是全维基百科。HotpotQA的每个问题都涉及多个文本,并且不仅要求模型输出答案,而且要输出支持信息所在的句子,只有当答案和支持句都判断正确才被认为是正确的。CogQA显著超过了之前的方法和同时期的其他模型:
值得一提的是,由于作者发现之前baseline的检索部分方法有一定缺陷,为了排除检索部分的影响,还优化了其检索效果再比较(Yang et al.(2018)-IR)。
如果将问题按照提问类型分类,CogQA的效果随着必需跳数的增加而变好:
除了效果的提升,案例分析中的认知图谱也表明了其可解释性方面的优越性:
上图展现了几个问答中的认知图谱的实例。第一个树形图中,回答问题的关键在于判断Ken Pruitt所在的组织是“Senate”(参议院) 还是“House of Representatives”(众议院),模型通过判断“upper house”(上院,在美国是参议院的别称)和“Senate”的语意相似性做出回答;第二个是有向无环图,多条推理路径可以增强判断;第三个是模型得出“错误答案”的例子,数据集的标准答案是“Ten Walls”可是CogQA给出的是“Marijus Adomaitis”,但是如果检查认知图谱,会发现Ten Walls不过是Marijus Adomaitis的艺名,模型给出了一个更加准确的答案,这种可解释性带来的好处是传统黑盒模型不具有的。
05
图结构、认知与自然语言处理
在图灵奖得主Judea Pearl的新作《The Book of Why》中,他强调了图结构在认知和智能中的重要地位——智能不能拘泥于统计,更应该注重因果与逻辑链条,而后者则与图结构密不可分。认知图谱(Cognitive Graph)则是图结构在问答问题上的一次有意义的尝试,BERT、XLNet这样的预训练模型是否是认知理论中“系统一”的最终答案?图结构到底应该怎样服务于“系统二”的推理呢,比如如果能够对超长的文本进行注意力(attention)机制,那么象征着因果和逻辑的结构信息究竟是否必要?
自然语言处理正处在一个蓬勃发展的时期,希望这篇文章可以给大家更多的思考。
Paper : https://arxiv.org/abs/1905.05460
Codes : https://github.com/THUDM/CogQA
参考文献
[1] Evans, Jonathan St BT, and Keith E. Stanovich. "Dual-process theories of higher cognition: Advancing the debate." Perspectives on psychological science 8.3 (2013): 223-241.
[2] Cosmides, L. (1989). The logic of social exchange: Has natural selection shaped how humans reason? Studies with the Wason selection task. Cognition, 31(3), 187-276.
[3] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
[4] Yang, Z., Qi, P., Zhang, S., Bengio, Y., Cohen, W. W., Salakhutdinov, R., & Manning, C. D. (2018). Hotpotqa: A dataset for diverse, explainable multi-hop question answering. arXiv preprint arXiv:1809.09600.