晋耀红作者

首席说|NLP场景应用中的可解释性


01

什么是NLP的可解释性

  NLP的可解释性,是NLP未来发展最重要的方向之一。

可解释性有两方面含义,一是NLP的输出结果符合业务的预期,是确定的结果,而不是一堆人看不懂的概率值。二是NLP的输出结果与业务知识之间有明确的因果关系,因为什么样的业务知识,所以得到这样的结果。

  可解释性,是指NLP系统输出的结果,应该符合基本的语言学规律,符合领域知识的预期,可以用语言学的术语和业务领域的语言进行解释,而不是让算法给出一堆杂乱无章的概率数据,让用户费尽洪荒之力从沙子里找金子,并从数据中解析出其业务价值。

  可解释性是存在于场景应用和NLP技术之间的最大的鸿沟。包括当前流行的深度学习算法,在场景应用下遇到的最大的尴尬也是可解释性差,即使业务人员看到一个明显的错误,也很难调整模型以更正。经常能听到这样的对话:

  可解释性也是场景应用和实验室环境之间的最大的区别。实验室环境下,有标准答案可以参考,处理对象是静态的,NLP技术的输出结果只要和标准答案进行比对,算出来得分就行,无需解释结果为什么是这样的。近几年各大AI公司刷榜的阅读理解评测(如斯坦福问答数据集SQuAD),其实都是实验室环境下的探索。而场景应用下,没有标准答案可以参考,处理对象是动态的,不断有新数据出现,这时候实验室得分已没有任何意义,需要的是明确的因果判断,对了能知道如何保持,错了能知道如何改进。

  NLP场景应用中的可解释性,可以直观的表述为,业务人员可以看懂的、符合业务知识预期的NLP处理结果。

02

NLP可解释性,从哪里来?

1.必须基于语言特征

当前对可解释性的工作,主要集中在深度学习模型的可视化上,希望打开深度学习的黑盒子,理解、解释计算的过程。我们认为,这可能没有触及到语言的本质,如果模型的输入是一个不可解释的巨大的向量的话,整个处理过程只是在做向量的各种变换,以求得与预训练模型的最优匹配解,并没有在语言方面有太多的增益。

  NLP的可解释性,应该与我们的语言直觉相一致,从模型、算法的输入,到每个处理环节,再到最终的输出,都可以用基本的语言特征和语言结构来解释。比如用词向量计算词语关联,计算“高兴”的关联词语时,给出“兴奋”、“嗨起来”这样的结果,是符合语言知识的,但如果给出“伤心”这样的结果,即使概率值再高,也是不合理的、不可解释的,因为“伤心”与“高兴”是反义词,虽然他们的上下文环境经常很类似。更进一步来说,“不伤心”这样的搭配,“不”作为否定词,在词向量中如何表示,是否和“高兴”有关联,这是基本常识的对错问题,而不仅仅是概率大小的解释问题。

2.必须与领域知识有明确的因果关系

可解释性和应用场景强相关。应用场景的知识,决定着NLP的需求边界、任务类型、结果预期等内容,与场景知识之间有明确的因果关系,才是可解释的。

  因果关系的简单表示就是“因为A,所以B”,比如在快递客服场景下,对这样的一段文字“等了2个小时还没有来取件”,因为其中有“等待时间长”(从“等了2个小时”这样的文字中得到)和“没有取件”这样的概念,所以这段文字的投诉分类是“取件延误”。与因果关系容易混淆的是相关性(或相似性),比如数据中发现,购买尿布的用户更容易购买啤酒,这说明“啤酒与尿布”之间有相关性,但是“啤酒与尿布”之间没有因果关系。目前常用的机器学习算法(包括深度学习),输出的都是相关性,对这些相关性所体现的领域知识进行解释,是当前可解释性的主流。但这种解释面临着“千人千面”的困境,在同样的应用场景下,针对不同的训练语料、采取不同的算法,其给出的结果差异很大,一致性很难保证。

  NLP的可解释性,最低的要求是,领域知识与输出结果之间的因果关系是一致的、稳定的。比如在快递客服场景中,针对“取件延误”的投诉分类,不管采用什么算法,也不管文字表达的多样性多么复杂(如“取件的人怎么还不来啊”、“2个小时都过了还没有来取件”等),只要文字表达的意义一样,都包含“等待时间长”“没有取件”这样的概念,都应该给出一致的结果(“取件延误”)。

3.应该追求处理结果的可解释性,而非NLP算法过程的可解释性

  当前的可解释性,更多的是对算法过程的去魅,希望通过揭示算法过程中的逻辑性,来证明输出结果的合理性。解释的重点主要在于中间过程所产生的特征的相关性、具体参数值对结果的影响等。这些工作对算法的改进无疑有帮助,但对不懂算法的业务人员来说,要从动辄上亿的参数中,找到与具体业务知识的因果性或相关性,真的只能是“雾里看花”了。

  应该将重点放到对输出结果的可解释性,承认算法过程是个黑盒子,对输出结果做好统筹规划。通过对训练语料的控制,尽可能的缩小每个模型的覆盖范围,把不确定性限制在每个模型内部。换句话说,不能追求对大模型的拟合过程和具体参数值的解释,而应该将一个问题,拆分成多个小模型来表示,提高小模型与领域知识之间的因果关系。

03

泰岳语义工厂,可解释的NLP服务

NLP的可解释性,目前还没有成熟的方法可以实现,只能在具体的应用场景下,面对具体的输入数据,因地制宜,选择正确的策略来面对。实际应用场景中,经典的符号系统、形式化规则的可解释性往往表现更好,而大多数人迷恋的深度学习,则因为可解释性差而经常被诟病。

泰岳语义工厂,在场景化的自然语言处理上,已经耕耘了8年时间,积累了丰富的场景化的技术和经验,在NLP可解释性,积累了丰富的实践经验,已经在16个行业的上百个典型客户实现了落地应用。


1.语义与计算的结合,提高NLP技术的可解释性

泰岳语义工厂,将符号化语义表示与深度学习技术进行结合,形成了自主知识产权的智慧语义认知技术。智慧语义认知技术,能有效地识别多种语言结构,实现同一意思、不同结构的归一化处理;同时对语言结构的递归嵌套处理,也表现优异。

  下文的例子,包含着4层语言结构的嵌套关系。

    例句:

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

    第一层: 核心句

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

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

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

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

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

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

        从燃料电池排出的氢废气

  泰岳语义工厂对这种具有复杂结构的句子,除了利用词语组合、概率统计等表层特征和方法,还加入了远距离的语义约束计算,以及句子序列的切分和层级处理。目前我们已经可以识别出3层以上语言结构的递归嵌套。对复杂语言结构的有效处理,不仅可以提升NLP在归一化、递归处理等方面的能力,而且可以把包含在复杂语言现象下的语言特征,像剥洋葱一样,一层层打开,这将大大增强NLP的可解释性。

2.本体论的领域知识建模,提高因果关系的可解释性

泰岳语义工厂所使用的场景化NLP开发平台——DINFO-OEC,提供一个领域知识建模的IDE集成环境,在本体论的指导下,支持两种类型领域模型。一是支持场景化业务建模,可通过概念规则,来构建形式化的业务规则,二是通过数据标注,指定机器学习(包括深度学习)算法,来训练机器学习模型。

  建模工具的价值在于,将服务于业务人员的领域知识的表示,与服务于NLP算法人员的算法、语言资源等完全隔离,让业务人员聚焦在业务知识的因果关系上,从而提高应用的可解释性。业务人员只需要对业务知识进行分类,对业务规则中的因果关系进行形式化描述,即可完成建模。建模过程中,可以使用预定义概念资源来定义业务知识,一个预定义概念的引用,本质上是对底层的NLP算法模块的调用,对其输出结果的使用,建模人员不用考虑其背后复杂的NLP算法,建模工具已经对其做了封装。

  对下面的一段例子。业务人员只需要关注客服投诉分类,是应该分到“信用卡->额度->临时提额”,还是“信用卡->额度不够”,而不需要关心用到的NLP算法,如命名实体识别、情绪识别等。

3.面向场景的应用开发框架,通过结果驱动过程,提高应用输出的可解释性

泰岳语义工厂提供面向场景的应用开发框架,与NLP相关的所有工作,我们均已打包到框架中。与算法相关的,如基础的语义资源、文本数据的标注、算法的参数调优、深度学习预训练模型等;与应用场景相关的,如业务模型的构建、算法的迁移、效果的评估等;与运行部署相关的,如Spark内存计算、TensorFlow环境配置、服务器资源的购置等。我们致力于输出最专业、最全面、最便捷、性价比最高的NLP服务。

  面向场景的应用开发框架的价值在于,让应用开发者聚焦在应用逻辑的开发上,而无需关注NLP相关的数据标注、调参,训练等工作。以本文开始的业务人员与NLP开发人员的对话为例,在场景应用开发框架下,应用开发人员不用关心深度学习模型是否有2亿参数,而只需要关心如何把“态度不好”和“额度”的模型分开,给两个模型的训练数据更加细分,以增加模型的区分度。这两类区分度提高了,输出结果不容易混淆了,自然而然,结果的可解释性也就提高了。

可解释性,是NLP场景应用成功的关键。泰岳语义工厂,可以助力NLP场景应用提高可解释性。

泰岳语义工厂
泰岳语义工厂

泰岳语义工厂是神州泰岳推出的NLP服务的开放SaaS平台,旨在为企业客户和行业应用开发商提供最专业、最快捷、性价比最高的NLP技术和服务。该专栏聚焦于介绍神州泰岳智慧语义认知技术和泰岳语义工厂提供的NLP服务。

http://www.nlpai.cn/
专栏二维码
入门可解释性开发框架NLP
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

本体论技术

在计算机科学与信息科学领域,理论上,本体是指一种“形式化的,对于共享概念体系的明确而又详细的说明”。本体提供的是一种共享词表,也就是特定领域之中那些存在着的对象类型或概念及其属性和相互关系;或者说,本体就是一种特殊类型的术语集,具有结构化的特点,且更加适合于在计算机系统之中使用;或者说,本体实际上就是对特定领域之中某套概念及其相互之间关系的形式化表达(formal representation)。本体是人们以自己兴趣领域的知识为素材,运用信息科学的本体论原理而编写出来的作品。本体一般可以用来针对该领域的属性进行推理,亦可用于定义该领域(也就是对该领域进行建模)。此外,有时人们也会将“本体”称为“本体论”。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语言学技术

每种人类语言都是知识和能力的复合体,语言的使用者能够相互交流,表达想法,假设,情感,欲望以及所有其他需要表达的事物。语言学是对这些知识体系各方面的研究:如何构建这样的知识体系,如何获取,如何在消息的制作和理解中使用它,它是如何随时间变化的?语言学家因此关注语言本质的一些特殊问题。比如: 所有人类语言都有哪些共同属性?语言如何不同,系统的差异程度如何,我们能否在差异中找到模式?孩子如何在短时间内获得如此完整的语言知识?语言随时间变化的方式有哪些,语言变化的局限性是什么?当我们产生和理解语言时,认知过程的本质是什么?语言学研究的就是这些最本质的问题。

本体技术

在计算机科学和信息科学中,本体包括表示、正式命名和定义概念,数据,实体之间的类别,属性和关系,并在一个,多个或所有域实例中。

推荐文章
暂无评论
暂无评论~