自然语言处理中的知识获取问题

作者:我中心主任刘挺教授,博士生导师车万翔副教授。声明:本文转自 腾讯高校合作《【“犀牛鸟论道”特邀撰稿】自然语言处理中的知识获取问题》。

一. 引言

随着人工智能从感知智能向认知智能升级,自然语言处理(英文为Natural Language Processing,简称NLP)的重要性日益凸显。当前,一方面NLP受到大数据和深度学习的双轮驱动,在各项关键技术方面都有不同程度的进步,另一方面NLP渗透到各个行业,与教育、医疗、法律等知识服务型行业深度整合,同时以虚拟/实体机器人等新型应用模式与线下服务对接。本文聚焦前一话题,试图以知识获取方式的演进为主线,勾勒自然语言处理技术的发展脉络,进而探讨大数据怎样与深度学习密切配合,推动NLP的发展。

二.自然语言处理问题,需要利用知识的约束

自然语言处理中的各类问题都可以抽象为:如何从形式与意义的多对多映射中,根据语境选择一种正确的映射。譬如词义消歧,“打篮球”中的“打”是“玩”的意思,“打酱油”中的“打”是“买”的意思,在彼时彼刻的语境中,究竟是哪个意思,需要选择,需要消歧。再比如,在文本生成中,要表达“某某死了”这个意思,对于英雄人物应该用“牺牲”,对于皇帝可以用“驾崩”,对于犯罪分子用“毙命”。同一种语言形式可以表达多种意义,同一种意义又可以用多种语言形式来表达,这种形式与意义的多对多映射关系,使语言的表达既简洁又丰富,但给机器处理语言带来了巨大的障碍,也是NLP要克服的核心问题。

为什么人在读到“打篮球”这个语言片段时不需要停下来去推测“打”是“玩”的意思,还是“买”的意思呢?因为人有丰富的背景知识。同样,机器要破解形式与意义多对多映射的困局,也需要利用知识进行约束。而机器所拥有的知识是不足的,知识的不足是阻碍NLP发展的主要原因。

自然语言处理经过几十年的发展,研究者们一直在为机器提供知识,为什么仍然远远不够呢?这是因为:首先,语言是纷繁复杂的,又是动态演变的,要对其进行整理描绘,谈何容易;其次,要理解语言,仅有语言知识是不够的,需要常识知识和专业知识,不能了解语言所负载的这些非语言知识,就无法真正理解语言,而这些非语言知识,尤其是常识知识,最难获取,因为它们已经融入人们的潜意识中,在人与人的各种沟通中都是不言自明的,所以也不会在网络上直白地写出来;最后,知识是活的,即便机器拥有了全部人类知识,但在特定上下文中应该使用哪些知识,仍然是一个难题。

三.自然语言处理中知识获取的三要素

我们需要利用知识帮助机器去做“约束”,自然语言处理中的知识大体上可以分为两类:一类是显性知识,一类是隐性知识。显性知识主要是由领域专家提供的人类可以直观理解的知识,隐性知识是利用学习算法从数据中自动获取的,隐性知识主要以参数形式体现,以致于人类很难直观理解,数据和学习算法是隐性知识获取的关键。显性知识、数据和学习算法,是NLP中知识获取的三个要素。

(1)显性知识:是人类可以直观构建和解读的知识。显性知识中有一类独特的知识,叫作 “元知识”,元知识是关于知识的知识,比如一个NLP系统的分层结构,一个待识别的语言对象的特征,元知识在NLP系统中起到非常关键的作用。除了元知识以外,NLP系统还需要:语言知识,如英文的WordNet、中文的“大词林”、用于机器翻译的规则等;常识知识,如CYC;专业知识,如知识图谱(Knowledge Graph)。这些知识可以人工编撰,如WordNet和CYC,也可以自动采集构建,如大词林、知识图谱,自动构建的知识库中会有一定比例的错误,可以再经过人工校对得以完善。自动构建的知识库成本低、覆盖面广,便于动态更新,故而瑕不掩瑜,越来越受到青睐。

(2)数据:数据不是知识,而是知识源。数据可以分为带标注数据、无标注数据和伪数据。带标注数据是人工给原始数据打上标签(答案),典型如人工标注的分词、词性标注、句法分析语料库等;无标注数据不带标签,可以被无指导学习算法所利用;伪数据,是带标签的训练数据,但这些标签并不是通过针对待处理问题的人工标注而获得的,而是自然产生或自动构造的。伪数据中的标签是样本的近似答案(伪),而不是精确答案,虽然标签不够精确,但因为数据规模巨大,甚至是无限大,因此伪数据具有很高的使用价值。

(3)学习算法:NLP在算法方面极大地吸取机器学习的研究成果,同时也通过NLP的实际问题不断地推动机器学习的发展。在深度学习大潮到来之前,NLP普遍地利用人工定义的特征模板抽取特征及特征组合,并结合SVM、CRF等浅层学习模型;如今RNN、CNN等深度学习模型横扫NLP领域,这主要归功于其自动地学习有效特征及特征组合的能力。

表1:自然语言处理中知识获取的三要素


四.自然语言处理中知识获取方式的演进

我们画了以下四张图,以方便介绍自然语言处理中知识获取方式演进的几个阶段。从图中我们可以看到真正的知识源是人,有三种人在提供知识:领域专家、标注人员和广大网民,其中标注人员包括专职的数据标注人员,也包括兼职的学生,以及众包平台上的标注者。而计算机专家研制算法从数据中获取隐性知识。

图1:专家系统


图2:语料库方法


图3:基于大数据的深度学习


图4:基于伪数据的深度学习

图1是专家系统时期,领域专家(主要是语言学家)直接提供显性知识;图2是语料库方法占主导地位的时期,在语料库方法中领域专家提供的元知识仍然起到重要作用,比如决定NLP系统的分层结构,决定待识别对象的特征等,与专家通过内省方式编制的语言知识相比,标注人员标注的小规模数据中所蕴含的知识更全面、更精确、更量化。深度学习“端到端”的方法兴起后,有些简单问题,如果能够找到足够多的大数据,则会按照图3的模式获取知识,即显性知识完全退场,深度学习系统连领域专家提供的元知识也几乎不要,机器自己确定特征,自己分配各层的功能,尽管这些功能的划分是隐性的,难以解释的。但是,对很多问题而言,带标注数据是有限的,甚至是很有限的,因此图3所示的理想情况并不多,图4是比较现实的解决方案:将大规模“伪数据”与人工标注的小数据结合在一起,同时接受领域专家提供的部分元知识,如此,在数据不充分的情况下,借助人工的力量,追求最优的系统性能。

我们在回顾自然语言处理的发展历程时可以看到,知识的获取方式在不断地演进:从以专家内省方式获取的专家知识,到由专人标注的小规模数据集,这一步演进使NLP摆脱了对个别专家有限经验的依赖;从专人标注到吸引众多网民开展的“众包”,又使标注成本降低,范围拓展,规模扩大。但“众包”毕竟需要研究者主动地去找一些人来有意识地给一批数据打标签,由于成本的原因,数据规模还是受到限制,于是又有了“自然标注大数据”的出现,即利用人们在使用互联网时不自觉地留下的记录,获取数据的标签,例如:一个博客作者在提交一篇博文时,作者为了自己的博文更易于被读者检索而打上的标签,客观上可以被机器所利用,作为该博文分类或关键词抽取的答案。总之,在NLP领域,知识的获取就是沿着不断降低成本、扩大规模,从人工到自动,从专人标注到群体智慧的路线演进着,NLP可以利用的知识越来越丰富了。

五.大数据与深度学习相互配合,推动自然语言处理的发展

我们说一个自然语言处理系统的关键是知识的获取,而知识的三个要素:显性知识、数据、学习算法,至少要有一个要素有所提高有所突破,才能够带来NLP整体系统性能的提高。换句话说,没有新知识、新数据、新算法加入系统中,系统的能力是不会提升的。

那么,近年来,在NLP知识获取的三要素中,最主要的推动力量是谁呢?答案首先是数据,是用户在使用互联网、移动互联网的过程中贡献出来的富含群体智慧的大数据;其次是深度学习,深度学习使大数据的潜力被充分释放。可以说,是“大数据+深度学习”推动了这一波NLP的热潮。显性知识的贡献主要体现在元知识和知识图谱上,传统手工构造的语言知识近年来发挥的作用很有限。

大数据和深度学习是相互依赖的:一方面大数据需要复杂的学习模型,这一点之前是有争议的,有人认为有了大数据模型可以变得很简单,极端情况是有了全量数据后,就可以通过查表解决问题了。但我们看到的事实是:对大多数人工智能问题而言,数据量总是不够的,而且要细致地刻画大数据,尤其是长尾数据,需要复杂模型,只有复杂模型才能够把大数据的沟沟坎坎描绘清楚,才能够把大数据的潜力充分发挥出来。

另一方面深度学习需要大数据,深度学习不是万能的,在数据不足时,效果大打折扣。如表2所示,深度学习在能够获得大规模训练数据的简单问题上优势最明显,对于比较复杂的问题,如机器翻译,如果有充足的双语对齐语料(如中英之间)则能取得较为明显的进展,这两年神经网络机器翻译(NMT)已经迅速超越统计机器翻译(SMT)。但是,在人为定义的一些语言分析问题(如词性标注、深层语义分析)上,不可能获得充足的大数据,因而即便是针对简单问题,深度学习也没有明显超越传统方法,在复杂问题上甚至有劣势。问题复杂,而数据量不够时,越是强大的学习工具越容易形成过拟合,效果自然不好。

表2:深度学习用于自然语言处理问题的效果

从上述分析可以看出,一旦拥有了大规模训练数据,深度学习的威力是巨大的,可以在短时间内以摧枯拉朽的气势替代原有技术,这样的技术机会是必须高度重视,尽力捕捉的。需要强调的一点是,这里所谓“深度学习”的方法,关键在于“端到端”,即从输入到输出要全部交给机器去计算,而不再人为地分层。试以“信息抽取”为例加以说明,信息抽取有两种做法:一是先做句法分析,再做信息抽取;二是直接做信息抽取,后者就是所谓的“端到端”。在“端到端”的模型中,也是分层的,但那是由机器自己去分层处理,各层的含义不是直观可以理解的。当用于端到端的训练数据不足时,就需要人为的帮助,比如把信息抽取的过程分成两步去做,第一步先做出句法树(这一步增加了显性知识,但也引入了误差),第二步再实施信息抽取。当用于端到端的训练数据充足时,就可以直接一步到位直接做信息抽取,而且性能更好。与信息抽取类似的还有情感二元分类、句间关系分类、问答对匹配等问题。

“端到端”方法取得的进步,甚至让人质疑句法分析、语义分析这些人为定义的传统NLP核心问题是否还有价值,是不是伪命题。我们的看法是:很多问题是复杂的,而且很难找到足够多的训练数据,因此人工显性知识,尤其是元知识(对句法树的定义本身也是显性元知识)的介入仍然是必要的。

六. 结语

自然语言处理中的各类问题都可以抽象为:如何从形式与意义的多对多映射中,根据语境选择一种映射。机器要破解形式与意义的多对多映射的困局,也需要利用知识进行约束。知识获取的三要素是:显性知识、数据和学习算法,知识的获取正沿着不断降低成本、扩大规模,从手动到自动,从显性到隐性,从专人标注到伪数据的路线演进。

大数据的到来使深度神经网络有了用武之地,如果有足够多的大数据,端到端深度学习的方法能够取得明显的性能提升,但人工标注数据的成本很高,数据规模难以扩大。如何移植、采集、制造大规模“伪数据”,如何将大规模的伪数据与小规模的人工标注数据相结合,成为应用深度学习于自然语言处理问题的重要研究内容,这一方法论已经显示出强大的威力,限于篇幅,笔者将专门撰文介绍。


本文来源于哈工大SCIR

原文链接点击即可跳转

哈尔滨工业大学社会计算与信息检索研究中心

产业入门NLPSeq2Seq语义分析知识图谱