奇点机智CTO林德康:详解2018机器阅读理解技术竞赛冠军模型

7月 28 日,第三届语言与智能高峰论坛在北京语言大学召开,论坛探讨了国际语言与智能及相关领域的前沿研究成果与观念。在下午的机器阅读理解评测论坛&颁奖仪式上,Naturali奇点机智联合创始人兼CTO林德康分享了该公司取得2018机器阅读理解技术竞赛第一名的系统。

Naturali奇点机智联合创始人兼CTO,国际计算语言学协会会士(ACL Fellow)、前Google研究院高级管理科学家、Google搜索问答系统创始人及技术负责人,在自然语言处理及理解领域发表90余篇论文,被引用14000余次。

大家好,我是Naturali奇点机智联合创始人兼CTO林德康,下面我代表Naturali冠军团队为大家分享2018机器阅读理解技术竞赛系统报告。在正式分享之前,先为大家简单介绍一下我们的团队。

我和另一位创始人邬霄云曾经是谷歌研究院的同事,我们在自然语言理解领域积累了很多年,在美国我们就聊过做语音交互产品的想法,我们都希望能做实实在在的、能真正对用户有用的产品,于是我们决定回国创业。Naturali创立于2014年11月,目前已经将业务聚焦在两个方面:一个是NI开放平台——“零编码、五分钟,创造属于你的语音技能”,为各类硬件、APP赋予AI语音交互能力。另一个是一款带有学习功能的第三方语音助手APP“布点语音”,已经在各大安卓商店上线,目前已经可以覆盖300+APP,支持12000+语音技能。

参与到本次竞赛的核心成员是刘家骅和韦婉两位,其他团队成员提供辅助支持。我们在比赛中用到的所有底层技术及工具都是自主研发。

一、DuReader阅读理解数据集的特点

现在有很多阅读理解问答数据集,百度数据集算是中文阅读理解数据集里最好的。百度数据集相比Stanford经典数据集SQuAD更真实、更具挑战性。SQuAD是从维基百科的信息来源集成问题,答案必定出现在文本里面,句法比较标准。而此次比赛的百度数据集都是用户的真实提问,不仅包括事实性的问题,还包括意见性的问题,部分问题在百度搜索里没有标准答案,并且问题的表达方式不一定很直接。

比如说意见性问题“iPhone X好不好用”,或现象描述“响一声就说正在通话中”,这类问题回答起来难度更高。

二、竞赛题目实例

问题: 昆特牌什么时候公测

人工标注答案: [‘时间为6月6日,暂定为期两周,即6月6日-6月19日。']

Naturali 答案: [‘巫师之昆特牌国服山丘试炼开启时间为6月6日,暂定为期两周,即6月6日-6月19日。’]

参考文档:

['文章 阅读', '巫师之昆特牌山丘试炼马上开启了,帅编来告诉大家开启时间。', '巫师之昆特牌国服山丘试炼开启时间为6月6日,暂定为期两周,即6月6日-6月19日。', '参与过“青草试炼”的玩家将直接获得本次测试的资格,无需激活码。', '国服公测时间暂未公布。', '声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。', '一款专为游戏动漫爱好者打造的app 全面的资讯福利,热门资讯图鉴攻略应有尽有。国内外热门手游推荐,精彩不容错过。', 'itmo爱萌游戏-二次元游戏第一门户 itmo爱萌游戏是国内第一二次元游戏门户网站,致力于打造全新型的手机游戏网站。']

['南方公园游戏在U2上放出了新的宣传片昆特牌公测日期发布南方公园游戏这都从去年4月延到今年10月不过动画21季今年9月开始播刚好可以衔接到游戏发售日期', '反正昆特牌打了一下午电脑一盘没赢我就放弃了', '我巫师3二周目开始玩昆特牌,毕竟一周目没钱,二周目也不继承。现在走到哪打到哪。', '下周就公测?好突然,这么快', '昆特盘看测试录像,氪金也是厉害啊。。。这南方公园竟然跳票到这个时候。。', '昆特牌国际服已经激活就是看不懂挺期待南方公园的', '期待spOktoberfest!另外希望昆特正式服早日上线', '南方公园一听就是垃圾游戏,大家千万别买', '应用吧活动,去领取', '活动截止:2100-01-01', '要不是川普赢了,也不至于这么跳票', '昆特牌还没公测啊,我都以为大家已经玩了好久了', '打牌才是正事 打牌打到十一月玩高清二战 美滋滋’]

解析说明:参考文档是从搜索引擎得到的排名靠前结果的网页全文,一个问题会对应多篇长文档;标注答案是人工根据文档总结撰写而成,一个问题可能对应多个答案,特别是对意见性的问题来说,有多个答案是很常见的。从以上案例可见,Naturali阅读理解系统给出的答案比人工答案甚至还要全面。

三、数据预处理

百度提供五个篇文章作为参考文档。由于文章没有长度限制,我们根据关键词密度,句子位置等信息将超过500词的文章压缩到500词以内。

以下是我们数据预处理的具体方法:

  1. 如果标题和各段内容中间插入特殊分割符号连接在一起,没有超过预设最大长度,则将得到结果作为预处理的结果;
  2. 否则,我们计算各段落和问题的BLEU-4分数,以衡量段落和问题的相关性;
  3. 在分数排名前k的段落中,选择最早出现的段落;
  4. 选取标题,这个段落以及下一个段落;
  5. 对于第3到第10个段落,选取每个段落的第一句话;
  6. 将所有选取的内容以特殊分隔符连接在一起,截取最前面不超过预设最大长度的内容,将得到的结果作为预处理的结果。

四、模型整体结构

我们使用的模型整体结构,是经典的端对端阅读理解模型结构,分为四层:

第一层:特征表示层(Representation)

第二层:编码层(Encoding)

第三层:匹配层(Matching)

第四层:答案片段抽取层(Answer Span Extraction)

下面我们对每一层进行简单介绍。

第一层:特征表示层

首先,给定一个问题的词序列和篇章的词序列,我们要对它进行特征抽取,将它变成一个特征向量序列。

我们是在搜狗互联网语料库上进行的预训练。这个数据集比百度数据集还要大好几个量级,所有中文网页都在里,每一词用什么向量表达就是在这里面训练的。 

第二层:编码层

得到问题和篇章的向量特征表示序列后,我们分别进行编码。

第三层:匹配层

匹配层是模型比较核心的部分,我们利用注意力机制融合问题和篇章信息。

经过了几种模型的测试,最后我们的系统里用到了Match-LSTM、BiDAF、DCA这三种集成模型,相比其他模型,这几种模型效果接近,训练速度较快。在单一模型中我们运用BiDAF,在集成模型中则会运用到不同的匹配层得到的结果进行集成。

第四层:答案片段抽取层

最终,我们利用指针网络进行答案抽取。

根据百度数据集特点,回答里面可能会包含多个答案,所以我们采用的是第二种利用多个参考答案的公式进行计算,即在多个答案上损失的平均数作为损失函数

  • 常用损失函数

  • 利用多个参考答案

五、最小风险训练

通常的RC系统是以提高标准答案概率作为训练的目标,但实际评测的标准是ROUGE。最小风险训练是拿评测的标准作为训练的目标,需要对每个片段都计算损失函数,所以优化的时间比较长。我们的系统首先用最大似然估计训练得到初始模型,然后直接优化ROUGE函数,让我们的ROUGE值达到最高。这里delta(y_i, y_i*) 是候选答案y_i与标准答案y_i*在ROUGE函数上的差

  • 最小风险训练

  • 最大似然估计训练得到的模型初始化继续训练

六、单一模型实验结果

我们的ROUGE分数最终能够远远超出基线系统分数,是通过篇章预处理、预训练词向量、其他特征、多个答案、联合训练、最小风险训练等方法综合累计得来的。

七、集成模型

我们提交的数据是通过集成模型计算出来的,最终根据不同种模型(BiDAF, MatchLSTM, DCA)和不同参数(Dropout:0.1, 0.15, 0.2,联合学习比率:4.0, 5.0)做成了一个集成模型,比单一模型的ROUGE分数又高出了1.5个点。

最终,Naturali的系统在正式测试集上ROUGE-L和BLEU-4分别达到了63.38和59.23,从800多支报名队伍、105支提交最终结果的队伍中脱颖而出,获得了本次阅读理解技术竞赛的冠军。

八、总结及展望

我们本次竞赛用的是神经网络端到端的系统,而我曾经在谷歌做搜索问答用的是模块化的系统。模块化系统会把问题分成几部分,首先识别答案类型,再根据类型和问题、文本的匹配度去计算分数。而神经网络系统把所有的步骤放到一个网络里面,虽然没有专门为不同的答案类型建模,但是训练完成后仍然能够覆盖到不同问题类型,比如问“什么时候......”,找的答案里就有日期。

相比模块化系统,神经网络端到端的系统代码简单很多,并且每次改动、优化都是全局的优化。然而模块化系统的优化,是优化某一个模块,模块之间已经适应了各自的缺陷,其中一个模块变好,其他模块不一定随之改善,使整个系统的优化会变得比较困难。

目前有很多问答系统已经上线了,但是背后的实现还是模块化的机制。很有可能神经网络系统现在的表现暂时还不及模块化系统,但到现阶段它的准确度已经可以有一些应用。比如我们做语音助手的时候,经常将搜索作为一个“兜底”的功能。比如在智能客服应用中,拿客服文档做关键词匹配,但用自动阅读理解就可以把阅读理解系统当做一个“兜底”,找到文档以后便可以把更精简、准确的答案找出来。

谢谢大家!

理论机器阅读理解奇点机智
1
相关数据
注意力机制技术
Attention mechanism

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

损失函数技术
Loss function

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

最大似然估计技术
Maximum Likelihood Estimation

极大似然估计是统计学中用来估计概率模型参数的一种方法

问答系统技术
Question Answering

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

特征抽取技术
feature extraction

机器之心
机器之心

机器之心是国内领先的前沿科技媒体和产业服务平台,关注人工智能、机器人和神经认知科学,坚持为从业者提供高质量内容和多项产业服务。

推荐文章
返回顶部