KBP 2016 冠军背后,科大讯飞 NLP 实力几何?

KBP 2016 是由 NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)指导、美国国防部协办的赛事,主要任务为从自然书写的非结构化文本中抽取实体,以及实体之间的关系。

美国当地时间 2016 年 11 月 15 日,NIST 揭晓 KBP2016 EDL 大赛结果。其中,科大讯飞包揽了本届 EDL 比赛的冠亚军。

机器之心第一时间采访了科大讯飞研究院研究员刘丹,从 KBP2016 比赛情况、KBP 任务难点、以及讯飞的 NLP 方向进展展开话题。以下为采访实录。

机器之心:能请您介绍一下 KBP 这个任务的情况吗?


刘丹:本次我们参加的是 KBP 国际公开评测任务,比赛由 NIST 资助,从 2009 年起举办至今。

KBP(Knowledge base population)任务的主要目标是知识库扩展和填充,研究的主要内容是传统的结构化知识库如 Freebase,目前它的构建绝大多数都要依靠人的编辑工作。知识库中描述的信息是物理世界的命名实体和实体之间关系的抽取,如「克林顿和希拉里之间是夫妻关系」、「克林顿毕业于耶鲁法学院」这样一个个实体的关系。但人工编辑有两个问题,一是工作量较大,再就是可能出现错误和时效性的问题。

Snip20161122_12.png

KBP 任务框架,资料来自科大讯飞


很久以来大家都在思考,人可以通过阅读新闻和书本这样的文本语料获得相关知识,机器可不可以?KBP 公开任务的研究目标,是让机器可以自动从自然书写的非结构化文本中抽取实体,以及实体之间的关系。我们今年参加的 EDL(Entity Discovery and Linking)命名实体的发现和连接任务所做的事情,是从自然语言的文本中抽取命名实体,标注它们的类型及实体与已有知识库之间的对应关系。从 2015 年开始,这个任务采用了中文、英文、西班牙文三个语种,需要找到三个语种的文本语料中的实体,并连接在一起。中文的「克林顿」要与英文的「Clinton」、西班牙文的「Clinton」连接到 Freebase 的同一个实体上。

机器之心:参赛方都有哪些公司、学校或者企业?


刘丹:学校居多,也有一些公司的研究机构。今年的 KBP 比赛 EDL 任务中,参加的学校有卡耐基梅隆、UIUC、伦斯勒理工,还有很多其他的学校。以企业名义参加的有 IBM,国内的机构有国防科技大、北京邮电大学和浙江大学。

机器之心:讯飞在 KBP 任务的多个指标中获得了第一,这些指标指哪些?


刘丹:命名实体连接这个项目分为很多子项目,一个是将三个语种放在一同统计,需要将不同语言的相同实体连接在一起;一个是将三个语种各自统计的指标,统计指标包括命名实体发现的正确率和命名实体连接的正确率。最终我们在整个比赛任务中的绝大多数指标都是第一,其中三个语种总体的指标是最高的,与其他参赛系统相比有比较显著的优势。单独的三个语种指标中,命名实体发现的部分都是第一。连接这部分中文我们是最高的,英文和西班牙文是第二。

机器之心:命名实体发现和命名实体连接发现的难点在哪里?


刘丹:命名实体发现中部分是 NLP 传统的命名实体标注任务,但 KBP 任务同其有两个区别:

一个是传统命名实体标注不允许有嵌套关系,如提到「中国科学技术大学」时,「中国科学技术大学」就是一个命名实体;KBP 则需要在文本中抽取更多细节的关系,不仅要将「中国科学技术大学」的「中科大」标注出来,同时「中国」也要标注出来,命名实体有一定的嵌套关系。除此之外,名词性的实体如「中国科大」、「科大讯飞」、「机器之心」都是一个个独立的名字(专有名词),这样的名字更容易标注;名词性的普通名词短语如「中国人」、「美国人」、「中国的公司」,这样的名词性实体需要与一般的名词短语区分开。

另外 KBP 任务需要标注的是有意义的名词性实体,如「XX 作为一个中国人」,这里的「中国人」是有明确指代的,所以需要标注;泛指性的如「中国人可以发怒了」,这里的「中国人」是不允许标注的。

KPB 任务更符合人对于事物类别的区分判断,有的内容是无法从语言语法的角度区分的,这让命名实体发现具有了比较大的难度。


命名实体连接发现最关键的部分是消歧的问题,普通的文本大多数时候不会提全名,如科大讯飞大家不会说「科大讯飞股份有限公司」,而会说「讯飞」。因为人们会使用缩写、昵称、绰号以及上下文指代的内容,使得命名实体连接时的消歧会非常难做。

还有一个比较有意思的事情是,去年 KBP 比赛时杰布•布什正在竞选美国总统,新闻中会出现很多「布什一家」,其中以杰布•布什居多。但是因为训练语料中老布什和小布什出现的频率更高,所以在去年的比赛中,大多数参与的系统都会将杰布•布什连接到乔治•布什上。

另外,在语料中的昵称缩写也很容易连接错误,或错标为非实体。除了这些,偏谈论性的语调中会出现「希拉里这个女人……」。这里的「这个女人」在实体发现中被标为实体会很难;其次把「这个女人」连接到希拉里是另外一个比较有难度的事情。

机器之心:这个任务更偏向于 NLP 中的语义理解方向吗?

刘丹:应该算语义理解。与之相似的是最近几年发展的「抽象语义表示」,希望将文本中的句子抽象出和语言无关的实体,以及实体关系、动作之间的图像表示。

机器之心:KBP 任务的评判标准是什么?

刘丹:评判标准是正确率与召回率两者兼顾的,采用的是 NLP 中常用的 f-score。

F-score 公式.gif

如果语料中出现了一百个实体,系统标出了 105 个,其中 80 个是正确的实体,另外 25 个是系统错标的,正确率就是标出的正确实体数除以系统标出数(80/105=0.7619);一共有 100 个实体,召回了 80 个,召回率就是召回数比总数(80/100=0.8)。

如果正确率和召回率只考虑一部分,往往可以做到很高,比如系统尽可能只找绝对有把握的(名词实体),或者文本中出现了 100 个实体,只找到 1 个实体并且是正确的,那么正确率总是 100%。

机器之心:因为 KBP 任务包含中文、英文、西班牙文,那么多语言之间连接部分的难点在那里?


刘丹:如果按照传统 NLP 做法,会根据每个语言精细定义比较复杂的规则,系统的调节也会倾向于抽取非常大的规模特征。做传统 NLP 中国人做中文是最好的,英文还能做得来,但是西班牙文是没办法做的。

我们在解决 KBP 任务是采用的是基于深度学习框架下发展的技术,特点是用比较复杂的神经网络和端到端的学习,尽可能多的靠数据驱动并尽量减少人工定义的规则和特征。我们参加本次比赛的模型结构很有自己的特色,在三个语种中使用的是同一个系统,取得的结果都不错。

虽然西班牙文我们完全看不懂,但在西班牙文命名实体发现的部分,最终结果是我们做得最好,领先第二名不少。命名实体连接部分我们是第二,比第一差了 1.9 分(讯飞成绩为 63.5,最优为 65.4)。

Snip20161121_5.png

KBP 任务可提交参赛系统可提交两次,该图表为第一次提交时的指标结果。其中,1 号系统为讯飞与 USTC 实验室联合提交的系统。Snip20161121_3.png

该图表为第二次提交的指标结果。其中,2 号系统为讯飞与约克大学联合实验室共同提交的系统。两个系统共同囊括了 EDL 任务的冠亚军。


机器之心:西班牙语比较难做的原因是因为训练语料较少吗?


刘丹:有两方面原因。一个是传统 NLP 依赖的规则资源在西班牙语方面比较少,我们中文做的比较多,至少对于人名判断有姓氏列表,中国所有的省份也有列表,想去做规则总是做得出来。西班牙文的类似列表做得少,相关资源也很少。

另外研究者不是母语使用者(Native Speaker),想要进一步调试系统都没有办法。

机器之心:比赛使用的输入语料是随机语料吗?


刘丹:是官方提供的。今年比赛和此前相比还有一点不同,前面几年的语料非常少,每个语种只有 500 篇。今年规则改为一共提供 90003 篇,每个语种平均 30001 篇。需要将 90003 篇中的实体都找出,并连接起来。

机器之心:我们在比赛中主要用到的技术有哪些?


刘丹:主要还是深度学习。讯飞在基于深度学习解决 NLP 问题方面已经做了很多年,在深度学习火起来但在 NLP 没有做出太多成果时,我们就已经有了思考和尝试。差不多在两年前,与我们合作的加拿大约克大学江辉教授提出基于神经网络的阅读机器(Neural Reading Machine)。对于阅读机器(Reading Machine)来说,先是将自然语言文本当作一个时序的单词序列,针对时序序列考虑各种建模方式,包括传统的卷积网络、循环神经网络,以及江辉教授提出的一种名为 FOFE 的特殊网络结构。这次比赛我们在这些基础上,用了最近两年比较流行的注意力模型(Attention)来做。

640-17.jpeg

约克大学·讯飞联合实验室成立于 2015 年,专注神经计算与深度学习,图为实验室成立合影

机器之心:那么这些技术已经应用到我们的产品中了吗?


刘丹:应该说 KBP 的最终目标是知识图谱的扩展,知识图谱对于目前的讯飞来说并没有太多用处。

但其技术有非常大应用。首先是基于神经网络端到端的学习方案,在类似的 NLP 问题上都能发挥作用。例如我们在教育方面的自动阅卷、书面作文和口头作文的评分批改、试卷难度预测,我们用了各种各样的技术,但网络结构的总体思想是类似、相关的。大体上是将时序的文本序列进行某种基于神经网络获得的抽象表示,在这种抽象表示上面定义结构,来描述所要抽取的结构信息。

虽然说我们不做知识图谱,但 KBP 的研究是要在知识图谱上找到命名实体的对应连接,这一点对于讯飞的核心业务语音对话系统是非常重要的。

目前所有的对话系统都是功能引导式的对话,比如让语音助手订票、查餐馆之类。在业务范围外的百科知识和与用户闲聊的时候,往往只能利用人工规则和补资源的方式兜底,比如问对话系统「姚明身高有多少」、「奥巴马的妻子是谁」,多数情况下都表现不佳。基于刚才提到的命名实体抽取连接的相关技术,我们可以对于问题进行简单分析,将问题与维基百科、Freebase 知识库连接起来,从结构化的知识库中找到对应的答案,这是相对直接的应用。

机器之心:除此之外,在 NLP 方面讯飞还有哪些成果?


刘丹:首先是 NLP 中非常重大的部分——机器翻译,我们目前在机器翻译方面做得还不错,2014 年获得国际评测任务 IWSLT 的第一名,IWSLT 的特点是口语化演讲。去年 NIST 组织的 OpenMT(Open Machine Translation Evaluation)比赛,我们同样获得了第一名。目前我们在中-英语互译、中-维吾尔语互译、中-藏语互译做的还不错。

机器翻译之外,讯飞在教育方面做的比较多。我本人 4 年前一直在做教育相关的业务,包括给定主题自由表述的口语开放题型、自由书面作文的评分和批改。它们不仅牵扯到语音识别、手写识别技术,在识别正确的基础上,要在偏口语、噪音干扰的情况下,将整个考生的表述脉络理清,找出其中的病句、搭配不当。对中文作文的评分要难一些,因为中国人基本不会有语法错误,要给出前后语义搭配的连贯性等方面的评价和修改建议。

机器之心:在您看来,NLP 的下一步发展需要解决哪些问题?


刘丹:目前来看大家研究的比较多的是语义理解。最近一两年 Google、Facebook,当然我们也做了一些阅读理解的问题。还有文本产生,就是让机器自己去写东西。目前在文本产生这部分,机器能产生语法没有错误、比较顺滑的句子,但产生出的段落看上去没有什么意义。机器能够产生文本,但没做到「创造」。这方面 Google 也做了 DeepArtist,面临的也是同样的问题。

更偏实用的是虽然对话系统大家都在做、能做到「可用」,但和真人还是有显著差距,包括我们的语音助手和友商的产品都是这样。

从技术上看,目前我认为值得深入的是两部分:一个是无监督学习,自然语言有大规模的无标注数据,但针对任务的标注如对话系统的数据是非常有限的。怎样做到使用无监督数据和少量有监督数据将问题做到大规模标注数据效果,是目前我们比较感兴趣的内容。

另外从神经科学角度看,还有对人记忆的仿生。目前的神经网络,包括号称有记忆的循环神经网络,所描述的记忆还是短时记忆,只能理解人说的一句话的内容。人的智慧随着年龄不断增长,核心在于人的记忆。只有人有记忆,在看到新事物的时候,才能通过唤醒记忆的方式找到类似的解决方案和创新。

记忆机制在机器学习尤其是自然语言领域都是近两年大家非常关注的课题,Google、Facebook 都做了非常不错的工作,Google 也在前两个月发了一篇可微分的神经计算机,记忆机制会是后续比较重要的东西。

入门科大讯飞产业NLPKBP 2016