Google 宣布开源全球最精准自然语言解析器 AI 工具 SyntaxNet

Google Research今天宣布,世界准确度最高的自然语言解析器SyntaxNet开源。谷歌开源再进一步。据介绍,谷歌在该平台上训练的模型的语言理解准确率超过90%。近日,众多科技巨头人工智能相关平台开源步伐明显加快:谷歌和Facebook一直在领跑,马斯克的OpenAI欲打造一个完全公开的AI模型训练营,就连一直被批评“保守”的亚马逊也在尝试开源。这一股开源热潮背后,是人工智能研究者的福利,但同时也是一场激烈的数据和平台争夺战。

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

Google环境计算( Ambient computing) 架构师Yonatan Zunger说:事实上,语言理解被我们认为是“AI的终极任务”,要解决这一难题,前提是要能解决全部人类水平人工智能的问题。

机器对语言的理解过程,可以分为几个步骤,其中很多的不确定性是逐渐明晰的(语音识别的不确定性更多,因为还要解决从声音到词的转换)

第一步是要把词分开,放到依存树上,看哪一个词是动词,对名词有哪些影响等等。

随后,要理解每一个名字的含义。

再次,再加入许多先验知识,即对这个世界的理解,因为很多句子只有使用了这些信息才能真正理解。如果足够幸运的话,到这就能得到清晰的理解了。

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

谷歌资深研究科学家Slav Petrov在Google Research的博客上写到:在谷歌,我们花费了大量的时间在思考,计算机系统如何才能阅读和理解人类语言,以一种更加智能的方式处理这些语言?今天,我们激动地跟大家分享我们的研究,向更广阔的人群发布SyntaxNet。这是一个在TensoFlow中运行的开源神经网络框架,提供自然语言理解系统基础。我们所公开的包含了所有用你自己的数据训练新的SyntaxNet模型所需要的代码,以及Paesey McParseface——我们已经训练好的,可用于分析英语文本的模型。

Paesey McParseface 建立于强大的机器学习算法,可以学会分析句子的语言结构,能解释特定句子中每一个词的功能。此类模型中,Paesey McParseface是世界上最精确的,我们希望他能帮助对自动提取信息、翻译和其它自然语言理解(NLU)中的应用感兴趣的研究者和开放者。

SyntaxNet是怎么工作的?

SyntaxNet是一个框架,即学术圈所指的SyntacticParser,他是许多NLU系统中的关键组件。在这个系统中输入一个句子,他会自动给句子中的每一个单词打上POS(part-of-Speech)标签,用来描述这些词的句法功能,并在依存句法树中呈现。这些句法关系直接涉及句子的潜在含义。

举一个很简单的例子,看下面这个句子“Alice saw Bob”的依存句法树:

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

在这个结构中,Alice和Bob被编码为名词,Saw是动词。只要的动词saw 是句子的根,Alice是saw的主语,Bob是直接宾语(dobj)。和期待的一样,Paesey McParseface能正确地分析这一句子,也能理解下面这个更加复杂的例子:

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

句子:Alice, who had been reading about SynataxNet, saw Bob in the hallwayyesterday

在这个句子的编码中,Alice和 Bob的分别是saw的主语和宾语,Alice由一个带动词“reading”的关系从句来修饰,而saw则由时态“yesterday”来修饰。依存句法树中的语法关系让我们可以轻易地找到不同问题的答案,比如,Alice看见了谁?谁看到了Bob?Alice正在读的是什么?或者Alice是在什么时候看到Bob的。

为什么让计算机正确处理句法分析如此困难?

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

句法分析如此困难的一个主要问题是,人类语言具有显著的歧义性。包含 20 到 30 个单词的中等长度的句子会具有数百、数千甚至数万种可能的句法结构,这样的情况并不少见。一个自然语言句法分析器必须能够搜索所有这些结构选择,并找到给定语境下最合理的那个结构。作为一个非常简单的例子,“Alice drove down the streetin her car”这个句子就具有至少两种可能的依存分析:

第一种分析是对应这句话的(正确)解释,按照这种解释,爱丽丝在汽车里进行驾驶,而汽车位于街道上;第二种分析对应于一种对这句话的(荒诞但仍然可能的)解释,按照这种解释,爱丽丝在街道上驾驶,而街道位于汽车之内。之所以会产生这种歧义,是因为“in”这个介词既可以用来修饰“drove(驾驶)”也可以用来修饰“street(街道)”。上面这个例子是所谓的“介词短语附着歧义”的一个实例。

人类在处理歧义方面有超强的能力,以至于人们甚至注意不到句子有歧义。而这里的挑战是,如何能让计算机做到同样好。长句中的多重歧义会共同造成句子的可能结构数量的组合爆炸。通常,这些结构中的绝大多数都极其不合理,但它们仍然是可能的,句法分析器必须以某种方式来丢弃它们。

SyntaxNet 将神经网络运用于歧义问题。一个输入句子被从左到右地处理。当句子中的每个词被处理时,词与词之间的依存关系也会被逐步地添加进来。由于歧义的存在,在处理过程的每个时间点上都存在多种可能的决策,而神经网络会基于这些决策的合理性向这些彼此竞争的决策分配分数。出于这一原因,在该模型中使用 Beam Search (集束搜索)就变得十分重要。不是直接取每个时间点上的最优决定,而是在每一步都保留多个部分性假设。只有当存在多个得分更高的假设的时候,一个假设才会被抛弃。下图将展示的,是“I booked a ticket to Google”这句话经过从左到右的决策过程而产生的简单句法分析。

Google 开源全球最精准自然语言解析器 AI 工具 SyntaxNet

而且,正如我们在论文中所描述的,十分重要的一点是,要把学习和搜索紧密整合起来才能取得最高的预测准确度。Parsey McParseface 和其他 SyntaxNet 模型是我们用谷歌的 TensorFlow 框架训练过的最复杂的网络结构。通过利用谷歌支持的 Universal Treebanks 项目中的数据,你也可以在自己的机器上训练句法分析模型。

Parsey McParseface 的准确度到底有多高?

(从具有二十年历史的宾大树库Penn Treebank中)随机抽取的英语新闻句子构成的标准测试中,Parsey McParseface 在提取词之间的个体依存关系时的准确率超过 94%,这打败了我们自己先前的最高水平,也超过了任何以前的方法。

尽管在文献中并没有关于人类的句法分析成绩的明确研究,我们从我们内部的句法标注项目中了解到,那些在该任务上受过训练的语言学家在 96-97% 的情况下能达成一致。这说明,我们正在接近人类的水平——不过这仍然限于那些格式良好的文本。按照我们从 Google WebTreebank (谷歌网络树库,发布于 2011 年)中所学到的,那些从互联网上获得的句子要远远更难分析。在该网络数据集上,Parsey McParseface 只取得了略高于 90% 的句法分析准确率。

尽管准确率还不够完美,它已经足够高,能够用于许多应用程序了。目前,错误的主要来源是像上面描述过的介词短语附着歧义这样的情况,对这些情况的处理要求对现实世界的知识(例如,“街道不太可能位于汽车之内”)和深度语境推理。机器学习(特别是神经网络)已在解决这些歧义方面取得了显著的进展。不过我们仍想做进一步的工作:我们想要发展出一些方法,这些方法能够学习现实世界知识,也能够在所有语言和语境中都取得同样好的自然语言理解。

想试试吗,请阅读 SyntaxNet 的代码。并下载 Parsey McParseface 句法分析模型。主要研发者Chris Alberti, David Weiss, Daniel Andor, Michael Collins 和 Slav Petrov 祝你成功。

来源:Google Research ,由新智元(微信号:AI_era)胡祥杰 朱焕编译。

开源一定是未来的趋势,

Google就是这样做表率的。

开源一定是未来的趋势,  Google就是这样做表率的。

氧分子网(www.yangfenzi.com)是关注互联网生态圈的科技新媒体

·氧分子网(http://www.yangfenzi.com)延伸阅读:

分享给您的好友:

您可能还喜欢…

1 Response

  1. 哈尔滨工业大学教授刘挺:自然语言处理中的知识获取问题说道:

    来源:《中国计算机学会通讯》2017年第5期《专栏》

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

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

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

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

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

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

    1.显性知识:是人类可以直观构建和解读的知识。显性知识中有一类独特的知识,叫作“元知识”。元知识是关于知识的知识,比如一个自然语言处理系统的分层结构,一个待识别的语言对象的特征。元知识在自然语言处理系统中起到非常关键的作用。除了元知识以外,自然语言处理系统还需要以下知识:(1)语言知识,如英文的WordNet、中文的“大词林”、用于机器翻译的规则等;(2)常识知识,如CYC(注:CYC是一个致力于将各个领域的本体及常识知识综合地集成在一起,并在此基础上实现知识推理的人工智能项目。该项目始于1984年。);(3)专业知识,如知识图谱(knowledge graph)。这些知识可以人工编撰,也可以自动采集构建。自动构建的知识库中会有一定比例的错误,可以再经过人工校对得以完善。自动构建的知识库成本低、覆盖面广,便于动态更新,故瑕不掩瑜,越来越受到青睐。

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

    3.学习算法:自然语言处理在算法方面极大地吸取了机器学习的研究成果,同时也通过自然语言处理的实际问题不断地推动机器学习的发展。在深度学习大潮到来之前,自然语言处理普遍地利用人工定义的特征模板抽取特征及特征组合,并结合支持向量机(SVM)和条件随机场(CRF)等浅层学习模型;如今循环神经网络(RNN)和卷积神经网络(CNN)等深度学习模型横扫自然语言处理领域,这主要归功于其自动地学习有效特征及特征组合的能力。

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

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

    图1 专家系统

    图2 语料库方法

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

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

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

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

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

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

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

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

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

    “端到端”方法取得的进步,甚至让人质疑,句法分析、语义分析这些人为定义的传统自然语言处理核心问题是否还有价值,是不是伪命题?我们的看法是:很多问题是复杂的,而且很难找到足够多的训练数据,因此人工显性知识,尤其是元知识(对句法树的定义本身也是显性元知识)的介入仍然是必要的。
    结语
    自然语言处理中的各类问题都可以抽象为:如何从形式与意义的多对多映射中,根据语境选择一种映射。要让机器破解形式与意义的多对多映射的困局,需要利用知识进行约束。知识获取的三要素是:显性知识、数据和学习算法。知识的获取正沿着不断降低成本、扩大规模,从手动到自动,从显性到隐性,从专人标注到伪数据的路线演进。

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

    作者:

    刘挺
    CCF理事,哈尔滨工业大学教授。主要研究方向为自然语言处理和社会计算。

    车万翔
    CCF高级会员,哈尔滨工业大学副教授。主要研究方向为自然语言处理。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>