NLP需要回归语言本质,走向语义和计算的融合

深度学习推动NLP发展

 

近几年来,利用统计机器学习方法、端到端的深度学习方法,NLP取得了长足的发展。 尤其近三年来,深度学习给 NLP 带来了新的进步,包括 Word2Vec、ELMO、OpenAI GPT、Glove、Fasttext等主流模型也在这一段时间内涌现。最近Google公司AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:在全部两个衡量指标上全面超越人类,并且还在11种不同NLP测试中创出最佳成绩。可预见的是,BERT将为NLP带来里程碑式的改变,也是NLP领域近期最重要的进展。微软亚洲研究院开发的基于 神经机器翻译 的中英机器翻译系统,在 WMT2017 新闻领域测试数据集上的翻译质量达到了与人类专业翻译质量相媲美的水平。迁移学习等技术的应用,也使得NLP不同任务的训练模型可以迁移、共享,从而提高那些本身缺乏充足训练数据的自然语言处理任务的效果。

 

 

 NLP需要回归语言本质

 

毫无疑问,深度学习是NLP有力的工具,在一个个单独的NLP任务中,深度学习表现优异。但同时, 深度学习也有局限性 ,试图把所有的NLP任务当做端到端的序列学习, 学习的过程是个黑盒子,很难用语言学知识进行解释 。以机器阅读理解为例,其理解的过程是把潜在的答案和用户问题当做一个序列,与原始文本中的序列,进行匹配,将匹配度高的潜在答案作为结果输出,这个过程无法生成一个与阅读文本意思相关的答案,也无法给出其“中心思想”,就像小学考试中经常做的那样。提到“中心思想”,NLP研究者会说,这是另外一个任务–自动摘要,与回答问题不是一个任务,需要用到不同的算法和模型,进行不同的数据标注和训练。但是,从语言学的角度来说,它们都是对同一文本的理解,应该建立在某种共同的基础之上。这种基础应该与我们对语言的认识是符合的,也就是运用了语言的特征,符合语言的结构。

 

语言知识是NLP的“定海神针”,语言知识可以为算法提供基础的特征,可以为算法提供基本的数据资源,可以验证算法的合理性 。最重要的是,只有充分利用语言知识,才能获得NLP的可解释性。

 

01 需要重视基本的语言特征

 

深度学习大神Yoshua Bengio最近提到:“当我说小猫时,它不仅仅是一个抽象的概念,我脑海会有猫的图像,我能想起猫跳到腿上后的感觉。所有这些感受是不容易用语言形容的。但这些感受是我说话时随之而来的,所有这些对于理解句子来说是非常重要的。 单纯的字符是无法体现这些感受 ,这些问题还没有得到解决,BERT也没有解决这个问题,而且只针对文字的训练是不能解决这些问题的。”

 

显然, 语言的特征是抽象的 ,它不仅仅是我们看到的一个个字或词的形式(字形或词形),而 应该是一个词语所表达的全部内涵和外延 。

 

传统语言学从语法、语义、语用几个维度来描述。比如“飞翔”的词性是动词,可以做谓语(语法),可用于描述带翅膀的动物(语义),在“飞翔的教室”这样的描述中,就是修辞手法(语用)。传统语言学的表示,对基本语言特征的分类、定义是清晰、明确,可解释的,但其缺点是可计算性不强。机器学习和深度学习方法,则是把语言特征转换为频度、权值这样的数值化,并形成维度更大的向量来刻画。即使深度学习训练的层级达到几百层以上,其原始的特征也是基本的形式数值特征,很少涉及抽象概念表示。 机器学习的表示,优点是参数化、可计算性强,但缺点是可解释性差。 我们认为,NLP对语言特征的处理,特别是深度学习算法的输入和输出,都需要提高可解释性,至少要可以用语言学的术语来解释,以提高NLP的一致性。

 

02 需要利用语言知识构建标准的数据资源

 

语言的表述从字词,到短语,到句子,再到篇章,逐级叠加,语言的结构也从组词法,到短语结构(主谓结构、述补结构等),到句子结构(形容词谓语句、流水句等),再到篇章结构(三段论、总分总等)逐级聚合,下一级结构经常引用上一级结构的结果,比如述补结构的短语做谓语的句子。各层级的语言结构,以及结构中的关系,是相对稳定的,可以形成语言结构的本体。

 

对每一类语言结构,都可以给出一批典型语料的标注,形成一个所谓的“黄金标准”,也就是标准数据集。 标注的语料库可以用于各种机器学习算法来学习语言结构的知识。 如宾州大学的宾州树库,就是句法结构的标注集,几乎所有的基于机器学习算法的句法分析系统,都采用宾州树库进行学习训练。

 

03 需要重视语言结构对算法的影响

 

语言的结构是语言所固有的属性。比如中文是“SVO”型语言(指主语+谓语+宾语这样的句子结构),可以有主谓结构(如“花猫逮住了一只耗子”)、述补结构(如“他吃得越来越胖”)等句法结构,也可以有流水句(一个小句接一个小句,很多地方可断可连。如“营业员手一扳,转过柜台,竹壳热水瓶摆到绍兴酒坛旁边,漏斗插进瓶口”)、兼语句(如“我请他作报告”)、形容词谓语句(如“先别告诉他比较好”)等句子表达方式。

 

目前的深度学习处理结构的手段,是采用Attention、LSTM等算法模型,对结构的层级、结构的反馈机制等进行处理。 这些算法模型,如何与语言中的类似述补结构进行融合,还没有看到很好的方法。 对结构信息的处理,或者说结构与深度学习的融合,目前学术界尚没有达成共识。 如深度学习大牛Yan LeCun将“结构”称为“必要的恶”,主张使用简单而强大的神经架构执行复杂任务,不需要大量针对特定任务的特征工程。而斯坦福教授Chris Manning则将“结构”(structure)称为“必要的善”,积极推动将更多的语言结构融入深度学习。

 

泰岳语义工厂——语义与深度学习技术的融合实践

 

01 语义的符号化

 

当前的深度学习算法主要利用频度这样的浅层特征进行计算,其根本原因在于 传统语言学的语法、语义的知识无法符号化 。如果能将语义符号化,将可大大丰富深度学习算法可使用的特征集,更大的发挥算法的威力。

 

基于概念层次网络理论,我们对词语、句子层面的语言特征进行了符号化描述。

 

词语的符号化表示, 对词语本身的语义符号化 ,如“方便”有多个词义,动词的符号化为“v632”(去卫生间方便一下),名词的符号化为“gu932”(去办事时能提供下方便)。同时,符号化中对词语之间的关系也进行了刻画,比如“胜利”对应的符号“b30e11”,“失败”对应的符号是“b30e12”,其中的“e11”和“e12”之间的符号差异表示了“反义关系”。“高兴”的符号是“7131”,符号中可以得到它是“情绪”(“713”)的下位。

 

 

句子结构的符号化,共有57个基本句类,3192个混合句类的结构。通过这样的句子结构,对同样意思的不同句子表达方式,可以有效地归一化处理。如下面这几个句子,都可以归一化到一个表关系的结构上“RB1(泰国队)+R(b30e11胜利)+RB2(中国队)”。

 

“泰国队大败中国队”、“中国队大败于泰国队”、“泰国队大胜中国队”、“中国队惜败泰国队”、“中国队惜败于泰国队”、“中国队被泰国队干掉了”、“泰国队把中国队干掉了”。

 

 

我们已经构建了中文、英文的基础语言特征集,其中包括80000多个常用词汇,覆盖了大部分常用词汇。据统计中文常用的5万个词可以覆盖人民日报新闻用词的99%。基础的语言特征集是分类的,比如针对情感计算的基础语言特征中包含了140多种情绪。

 

基础的语言特征集,必须通过人工方式构建。我们有30多人的语言学团队,经过长达10年的积累,已初步构建完善。

 

02 语言结构的深层处理

 

语言结构是可以递归嵌套的,在不同的语言中,嵌套的手段各不相同。在英文中,是用“which、that、where”等从句来引出嵌套。 但在中文,却没有这样明显的标记,处理起来也更为困难。

 

包含4层嵌套关系:

 

例:含有从燃料电池排出的氢废气的阳极废气向系统外排出的气体流路贯穿了整个通道。

 

第一层: 核心句

 

……气体流路贯穿了整个通道

 

第二层: “气体”的限定语也是一个句子

 

……阳极废气向系统外排出的气体[流路]

 

第三层: “阳极废气”的限定语也是一个句子

 

含有……氢废气的阳极废气

 

第四层: “氢废气”的限定语也是一个句子

 

从燃料电池排出的氢废气

 

这种复杂的语言结构嵌套,在书面语中很普遍,特别是在有专业背景的业务场景中,如公安、司法、专利、医疗等场景。 泰岳语义工厂对这种具有复杂结构的句子,除了利用词语组合、概率统计等表层特征和方法,还加入了远距离的语义约束计算,以及句子序列的切分和层级处理。目前我们已经可以识别出3层以上语言结构的递归嵌套。

 

03 与深度学习技术的融合

 

我们联合北京师范大学等机构的研究者开源了「中文词向量语料库」Chinese Word Vectors,目前最全的中文预训练词向量集合。 该库包含经过数十种用各领域语料(百度百科、维基百科、人民日报 1947-2017、知乎、微博、文学、金融、古汉语等)训练的词向量,涵盖各领域,且包含多种训练设置。该项目提供使用不同表征(稀疏和密集)、上下文特征(单词、n-gram、字符等)以及语料库训练的中文词向量(嵌入)。在这里,你可以轻松获得具有不同属性的预训练向量,并将它们用于各类下游任务。

 

我们研发了基于词的BERT模型。 BERT(BidirectionalEncoder Representations from Transformers)是谷歌AI语言研究人员在文本表示学习方面提出的模型。它在NLP任务中表现惊人,在11项任务呈现最先进的结果。虽然BERT模型提供的预训练字向量已有了很好的结果,但是考虑到在很多下游任务中(如分类任务、阅读理解等),词向量一般比字向量有着更好的结果,因此进行了迁徙学习字(Char)到词(Word)的尝试,并且通过实验证明尝试的方法有效。

 

NLP是处理语言的,NLP处理的结果和过程,都需要具备语言的可解释性。深度学习对语言结构的处理能力依然很弱。回归语言本质,将语言知识和深度学习技术深度融合,将是NLP未来的可行之路,泰岳语义工厂,已经在路上~

发表评论

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