机器阅读理解首次超越人类!云从刷新自然语言处理新纪录
近日,云从科技和上海交通大学在自然语言处理领域取得重大突破,在卡内基-梅隆大学发起的大型深层阅读理解任务数据集RACE数据集上登顶第一,并成为世界首个超过人类排名的模型。
云从科技与上海交通大学首创了一种阅读信息匹配机制——DCMN模型,使机器的正确率达到72.1%,较之前最好结果(67.9%)提高了4.2个百分点,并在高中测试题部分首次超越人类69.4%的成绩。
有种题型叫“阅读理解”
不管是中文、英语还是任意其他语言,阅读理解都算得上是最难的题型之一,需要信息收集、知识储备、逻辑推理、甚至还要融会贯通的主观作答。
微软创始人比尔·盖茨曾经表示,“语言理解是人工智能领域皇冠上的明珠”。
机器阅读理解,是指机器通过阅读和理解大量文字,有效整理和总结出人类所需要的信息。
按照人工智能技术发展路径,在机器视觉、语音识别等智能感知技术在性能上趋于饱和之后,下一个人工智能的突破就是自然语言处理等认知决策技术。技术上形成从智能感知到认知决策的闭环,在机器上体现为会理解、会思考、会分析决策,人机交互方式更加便捷,将对各行各业将产生颠覆式创新。
例如为证券投资提供各种分析数据,进行金融风险分析、欺诈识别;在社交软件、搜索引擎辅助文字审阅和信息查找;还可以帮助医生检索和分析医学资料、辅助诊断等等。
RACE数据集
RACE数据集(ReAding Comprehension dataset collected from English Examinations)是一个来源于中学考试题目的大规模阅读理解数据集,包含了大约28000个文章以及近100000个问题。
它的形式类似于英语考试中的阅读理解(选择题),给定一篇文章,通过阅读并理解文章(Passage),针对提出的问题(Question)从选项中选择正确的答案(Answers)。
RACE数据集的难点在于,该题型的正确答案并不一定直接体现在文章中,只能从语义层面深入理解文章,通过分析文中线索并基于上下文推理,选出正确答案。
相对以往的抽取类阅读理解,算法要求更高,被认为是“深度阅读理解”。
DCMN模型
针对这种“深度阅读理解”,云从科技与上海交通大学首创了一种P、Q、与A之间的匹配机制,称为Dual Co-Matching Network(简称DCMN),并基于这种机制探索性的研究了P、Q、与A的各种组合下的匹配策略。
01 DCMN匹配机制
以P与Q之间的匹配为例:
本图为P与Q之间的DCMN匹配框架
云从科技和上海交大使用目前NLP最新的研究成果BERT分别为P和Q中的每一个Token进行编码。基于BERT的编码,可以得到的编码是一个包含了P和Q中各自上下文信息的编码,而不是一个固定的静态编码,如上图中Hp与Hq;
其次,通过Attention的方式,实现P和Q的匹配。具体来讲,是构建P中的每一个Token在Q中的Attendances,即Question-Aware的Passage,如上图中Mp。这样得到的每一个P的Token编码,包含了与Question的匹配信息;
为了充分利用BERT带来的上下文信息,以及P与Q匹配后的信息,将P中每个Token的BERT编码Hp,与P中每个Token与Q匹配后的编码Mp进行融合, 对Hp和Mp进行了元素减法及乘法操作,通过一个激活函数,得到了P与Q的最终融合表示,图中表示为Spq;
最后通过maxpooling操作得到Cpq,l维向量,用于最后的loss计算。
02 各种匹配策略研究
除了P与Q之间的匹配之外,还可以有Q与A、P与A之间的匹配,以及不同匹配得到的匹配向量间的组合,这些不同的匹配与组合构成了不同的匹配策略。对七种不同的匹配策略分别进行了试验,以找到更加合适的匹配策略,分别是:
[P_Q; P_A; Q_A], [P_Q; P_A], [P_Q; Q_A], [P_A; Q_A], [PQ_A], [P_QA], [PA_Q]
“PA”表示先将P和A连接为一个序列,再参与匹配,“PQ”与“QA”同理。符号“[ ; ]”表示将多种匹配的结果组合在一起。
[P_Q; P_A; Q_A]模式下的模型架构
7种不同策略经试验后,得出采用PQ_A的匹配策略,即先将P与Q连接,然后与A匹配,无论是在初中题目(RACE-M)、高中题目(RACE-H)还是整体(RACE),都得到了更优的结果。
虽然目前机器在一些阅读理解数据集上的水平已经超过了人类,但这并不能表明“机器打败了人类”,对于自然语言处理、对于人工智能,我们仍有一大步需要前进。
机器阅读理解(machine comprehension)
本篇博客主要参考了2017年的在ICLR会议上发表的论文《BI-DIRECTIONAL ATTENTION FLOW FOR MACHINE COMPREHENSION》。
所谓机器阅读理解任务,指的就是给一段context描述,然后对应的给一个query,然后机器通过阅读context后,给出对应query的答案。这里做了一个假设,就是query的答案必须是能够在context原文中找到的一段话(也可以理解为连续的几个单词),也就是说最终模型预测的目标是输出两个下标,分别对应于query回答在context的开始位置和结束位置。最后模型的损失函数为多分类的交叉熵softmax(因为从本质上来讲该问题等效为一个多分类问题,问题的类别数等于context中单词的数量,也就是每一个单词都有可能作为answer的开始)。
整体来看,基于神经网络架构的机器阅读理解算法整体框架可以划分为以下几个主要功能模块:
1 输入编码模块。
2 context内容和query内容交互模块
3 输出预测模块
由于第二个模块相对于其他模块来说更加复杂,对最终模型性能的影响力最大,也是最能够体现出计算机智能的地方,因此在学术界更多创新的论文都是来自对该模型的改进。
接下来我来说一下该论文在这三个模块所采用的策略,首先展示该模型的整体架构图:
1 输入模块:
从上图可以清楚的看出,在该模型中的输入编码模块,首先采用word Embedding 和character Embedding策略生成对应每个单词的词向量。其中,word Embedding使用的算法是Glove,而character Embedding采用的是类似于yoon kim提出的卷积神经网络架构,只不过输入时每一个character Embedding,然后通过卷积和max-pooling生成词向量。接下来,将Character embedding和word embedding进行拼接,一起输入到双向LSTM中,这个部分被称之为Contextual Embedding layer,假设原文本的长度为TT。
2 交互模块:
接下来在context内容和query内容交互模块部分,采用了context-to-query和query-to-context的double attention机制。假设context为HH是用来辅助context-to-query和query-to-context attention系数的生成。
context-to-query Attention:
简单来说,就是用query中所有的加权和来表征context中的每一个词向量,这个加权的系数就是通过对上述生成的SS则是维度为2d长度为T的矩阵。
query-to-context Attention:
这个就是针对context中的每一个词,把它和query词语中相似性最大的取出来作为其权重,然后针对context中每一个词语的权重进行softmax生成归一化的权重,然后使用这个归一化的权重对context中的词向量进行加权求和,生成唯一的query-to-context Attention机制下的词向量,把这个词向量复制T次,同样生成了维度为2d长度为T的矩阵H∗H∗。
接下来将生成的H∗H∗在原文中被描述为:“ encodes the query-aware representations of context words”。
接下来生成的矩阵G被输入到双向LSTM之中,这个在原文中被称之为“Modeling layer”,目的是“captures the interaction among the context words conditioned on the query”。生成的M矩阵维度为2d∗T2d∗T。
3 输出模块
输出模块是一个多分类问题,相当于每一个位置是正确位置的概率,首先预测的是开始下标的位置:
pstart=softmax(WTpstart[G;M])pstart=softmax(WpstartT[G;M])的向量,随着模型一起训练。
最终模型的损失函数如下:
L(θ)=−1N∑Nilog(pstartxi)+log(pendxi)L(θ)=−1N∑iNlog(pxistart)+log(pxiend)