NLP中知识获取的三要素:
需要利用知识帮助机器去做“约束”,自然语言处理中的知识大体上可以分为两类:一类是显性知识,一类是隐性知识。显性知识主要是由领域专家提供的人类可以直观理解的知识,隐性知识是利用学习算法从数据中自动获取的,隐性知识主要以参数形式体现,以致于人类很难直观理解,数据和学习算法是隐性知识获取的关键。显性知识、数据和学习算法,是NLP中知识获取的三个要素。
(1)显性知识:是人类可以直观构建和解读的知识。显性知识中有一类独特的知识,叫作 “元知识”,元知识是关于知识的知识,比如一个NLP系统的分层结构,一个待识别的语言对象的特征,元知识在NLP系统中起到非常关键的作用。除了元知识以外,NLP系统还需要:语言知识,如英文的WordNet、中文的“大词林”、用于机器翻译的规则等;常识知识,如CYC;专业知识,如知识图谱(Knowledge Graph)。这些知识可以人工编撰,如WordNet和CYC,也可以自动采集构建,如大词林、知识图谱,自动构建的知识库中会有一定比例的错误,可以再经过人工校对得以完善。自动构建的知识库成本低、覆盖面广,便于动态更新,故而瑕不掩瑜,越来越受到青睐。
(2)数据:数据不是知识,而是知识源。数据可以分为带标注数据、无标注数据和伪数据。带标注数据是人工给原始数据打上标签(答案),典型如人工标注的分词、词性标注、句法分析语料库等;无标注数据不带标签,可以被无指导学习算法所利用;伪数据,是带标签的训练数据,但这些标签并不是通过针对待处理问题的人工标注而获得的,而是自然产生或自动构造的。伪数据中的标签是样本的近似答案(伪),而不是精确答案,虽然标签不够精确,但因为数据规模巨大,甚至是无限大,因此伪数据具有很高的使用价值。
(3)学习算法:NLP在算法方面极大地吸取机器学习的研究成果,同时也通过NLP的实际问题不断地推动机器学习的发展。在深度学习大潮到来之前,NLP普遍地利用人工定义的特征模板抽取特征及特征组合,并结合SVM、CRF等浅层学习模型;如今RNN、CNN等深度学习模型横扫NLP领域,这主要归功于其自动地学习有效特征及特征组合的能力。
大数据和深度学习的相互作用:
大数据和深度学习是相互依赖的:一方面大数据需要复杂的学习模型,这一点之前是有争议的,有人认为有了大数据模型可以变得很简单,极端情况是有了全量数据后,就可以通过查表解决问题了。但我们看到的事实是:对大多数人工智能问题而言,数据量总是不够的,而且要细致地刻画大数据,尤其是长尾数据,需要复杂模型,只有复杂模型才能够把大数据的沟沟坎坎描绘清楚,才能够把大数据的潜力充分发挥出来。
另一方面深度学习需要大数据,深度学习不是万能的,在数据不足时,效果大打折扣。如表2所示,深度学习在能够获得大规模训练数据的简单问题上优势最明显,对于比较复杂的问题,如机器翻译,如果有充足的双语对齐语料(如中英之间)则能取得较为明显的进展,这两年神经网络机器翻译(NMT)已经迅速超越统计机器翻译(SMT)。但是,在人为定义的一些语言分析问题(如词性标注、深层语义分析)上,不可能获得充足的大数据,因而即便是针对简单问题,深度学习也没有明显超越传统方法,在复杂问题上甚至有劣势。问题复杂,而数据量不够时,越是强大的学习工具越容易形成过拟合,效果自然不好。
结语:
自然语言处理中的各类问题都可以抽象为:如何从形式与意义的多对多映射中,根据语境选择一种映射。机器要破解形式与意义的多对多映射的困局,也需要利用知识进行约束。知识获取的三要素是:显性知识、数据和学习算法,知识的获取正沿着不断降低成本、扩大规模,从手动到自动,从显性到隐性,从专人标注到伪数据的路线演进。
大数据的到来使深度神经网络有了用武之地,如果有足够多的大数据,端到端深度学习的方法能够取得明显的性能提升,但人工标注数据的成本很高,数据规模难以扩大。如何移植、采集、制造大规模“伪数据”,如何将大规模的伪数据与小规模的人工标注数据相结合,成为应用深度学习于自然语言处理问题的重要研究内容,这一方法论已经显示出强大的威力。