自然语言理解与行业知识图谱:概念、方法与工程落地
上QQ阅读APP看书,第一时间看更新

2.2.3 语用类任务

语用学的崛起是语义研究发展和延伸的结果,主要用于研究特定情景下,如何理解人的实际意图,如何运用语言和使用语言策略。迄今为止,语言学界对语用学的定义和范畴尚未形成统一的见解,因此本书中所说的语用概念不是学术意义上的语用,更多是在语法和语义之上的语言应用,接近于认知服务概念。我们发现越来越多的应用任务实际上就是语法和语义任务的组合和升级,且更贴近于人的需求和应用场景。在上述研究的基础上,结合实践提出了自然语言理解层面的语用学,这些应用任务被统称为语用类任务。语用类任务就是直接面向用户,提供自然语言处理产品服务,集成单任务或多任务算法模型。

为了满足语用目的,一方面搭建好语法、语义任务算法模型,另一方面,要深层挖掘可解释方法,满足交互理解的需要。从实际情况看,必须借助外源知识,比如知识图谱。对于像搜索、问答和客服等这样的应用,必须精确理解用户的意图,一般算法解决不了。目前,语用场景包括分级分类、情感分析、搜索推荐、机器翻译,摘要描述、问答、对话、阅读理解和图像视频描述等。

1.分级分类

分级分类任务是根据文本内容分析对文本进行粒度分类,包括主题归类、话题聚类、情感分类等形式;或者按照层级划分,进行用户信息过滤和文本挖掘等,更准确地筛选文本内容。如图2-10所示,专利文本(title)可以归为不同的大类(mainIpc1)和小类(mainIpc2)。

文档内容加工成文本特征,然后特征选择,再利用评估函数分析文本特征选择的效果,这部分内容将在第3章进行详细论述。常用的特征包括:词频、词频-逆向文档频率(Term Frequency-Inverse Document Frequency, TF-IDF)、交叉熵和互信息等。在不损伤核心信息的情况下降低特征向量空间的维数,可以提高对不同文档的区分能力。分级分类任务的基本思路为:

用映射或变换的方法把原始特征变换为较少的新特征

从新特征中挑选出一些最具代表性的特征

基于分类或聚类方法完成分级分类,评估模型和特征

迭代优化模型和特征,最后确定分类特征和模型

图2-10 分级分类示意图

对于分类问题,无论文本分类还是聚类,首先需要将文本通过形式化表示来建模。目前最常用的方法是把文本内容的处理简化为向量空间的向量运算,通过度量向量空间中距离的相似度,计算文档间的语义相似度。分类算法是通过监督学习来完成分类任务,再以一定标准来估计分类模型;聚类算法则是通过无监督学习完成文本分类任务。对于分级问题,可以建立一定的标准体系来区分文档层次,比如文本质量、文本重要性和文本价值等。

2.情感分析

情感分析又称为意见挖掘,是指对带有情感倾向的自然文本进行分析、处理、归纳和推理的过程[10]。目前,情感分析主要分为传统的粗粒度情感分析和细粒度情感分析。

粗粒度情感分析以篇章或者句子为单元,获得篇章或者句子整体的情感倾向分类,包括正向、负向和中立。如图2-11所示的情感分析结果为负面,既没有说明负面情感的对象是川餐厅的宫保鸡丁,也忽略了其中包含了对东北菜馆宫保鸡丁的正面情感。人们在表达自己的观点时,往往都有明确的情感指向,如果仅仅只在篇章或句子级进行情感分析,一方面可能由于文本中各种情感对象的信息混杂而引起整体情感的错误判断,另一方面也可能因为情感指向的缺失给具体应用带来一定的限制。

在粗粒度情感分析的基础上,对情感内容及指向对象进行划分。这种细粒度情感分析能够明确情感的指向,给出更加全面、具体的情感分析结果。在图2-11的例子中,细粒度情感分析对句子中的重要实体“川餐厅的宫保鸡丁”和“东北菜馆的宫保鸡丁”分别给出了正面和负面的情感倾向。

图2-11 情感分析的粗粒度分析和细粒度分析示例

情感分析具有非常广阔的应用场景,主要为:

①评论分析。评论分析具有重要的作用,一方面,消费者在选择商品时,用户的评论可以提供非常有价值的参考信息,另一方面,厂商本身可以通过用户评论分析了解自身产品的优缺点,以便对产品进行更新换代。再比如时事评论,重大国际事件发生时对各国态度进行分析可作为时事预测的重要依据等。

②舆情监控。以网络社交媒体为载体,以事件为核心,通过分析个体情感、态度、意见、观点的传播与互动,形成时间轴(Timeline)上的关键资讯。引入PageRank思想并进行权重游走,逐步获得资讯对应权重值,进而方便快速捕捉热点,方便对舆情进行严密监控和引导。因此,情感分析在股票预测、危机预警、事件演化、主题检测、专题聚焦等方面前景广阔。

3.搜索推荐

搜索和推荐都是用户解决信息过载的有效手段。搜索任务起源于图书馆资料查询检索,目前已经从单纯的文本查询,扩展到对包含图片、音视频等多模态信息的检索,检索方式包括点对点检索、精确匹配和语义匹配等。如果说搜索任务是被动响应,那么推荐任务则是主动反馈。随着互联网平台精准推荐系统的使用,通过搜集用户感兴趣的实体,可解释地推荐与用户偏好相似的实体。如图2-12所示,搜索经过用户输入、意图理解、召回排序给出反馈。而推荐则针对用户个性化数据进行特征工程设计,以热启动方式结合召回策略为用户反馈信息。推荐的冷启动方式本质近似于搜索,解析用户数据以便召回。

图2-12 搜索和推荐任务基本流程图

(1)搜索任务

搜索任务不仅涉及语言处理,还包括信息索引、意图识别、相关性计算、召回排序等一系列子任务:

信息索引是指包括且不限于文本和文本索引保存,主要功能是高效提供可查的信息。有时相关内容会存放在内存中,有时也会通过倒排索引和并发集群机制来提高搜索效率。

意图识别的目的是尽可能理解用户当前检索意图,通常会加入查询语句(Query)意图理解模块,本质是完成一个文本分类任务,每个分类对应不同的搜索目的。

相关性计算涉及文本匹配算法。经过意图理解后,通常会得到当前搜索内容的主题或检索要素。对检索要素进行拓展,搜索引擎会根据输入特征选择匹配计算模型,给出相似度计算结果。

召回排序。对相关度计算结果召回,设计特定场景下的评分排序策略,对结果进行排序。最后可以以内存或索引形式存储结果。

(2)推荐任务

推荐任务不是仅限于语言处理,还需充分利用行为数据、历史数据、用户画像等数据。因此推荐任务可分为特征工程、召回策略、排序过程等子任务。

特征工程,以用户行为为基础,常用特征包括:①用户的基础信息,比如性别、年龄、身高、生日和注册时间等;②用户标签、描述信息、评论信息等;③用户的行为信息,比如登录名、登录时间、登录时长等。此外,还包括常用特征不断组合产生新特征。

召回策略,常用的算法包括基于用户的协同过滤法(User-based Collaborative Filtering, UserCF)和基于物品(比如文本)的协同过滤法(Item Collaborative Filtering, ItemCF)。UserCF算法基于用户行为来定义与其相似的用户,而ItemCF算法则通过计算文本间的相似度,推荐相似文本。

排序过程,即选择合适的模型和预测目标对数据进行排序,本质属于文本分类任务。首先需要明确一点,任何可以做二分类的模型都可以用作排序模型。模型的选取仍然需要综合考虑业务场景和可解释性等问题。

综上,进一步结合知识图谱含有的丰富语义信息,搜索推荐可以形成更智能的语用能力。基于知识图谱的查询处理不再只是拘泥于字面本身,而是抽象出其中的实体、查询意图等,直接提供用户需要的答案,而不只是简单召回排序结果,从而精准满足用户需求。

4.问答对话

问答对话的形式通常是给定文本和问题,返回答案。问答对话是结合了文本匹配、文本标注和文本分类的综合任务。对于多轮问答,要考虑更多的上下文信息,复杂度极高,这里我们仅对问答任务(Question-Answer,QA)进行论述,主要包括基于信息检索的问答(Information Retrival Question Answering, IRQA)、基于知识库的问答(Knowledge-based Question Answering, KBQA)和基于阅读理解的问答(Message Reading Comprehension, MRC)三种问答技术,不同QA技术擅长回答的问题不同,需要取长补短。

(1)基于信息检索的问答

基于信息检索的问答是从问答知识库中检索出最相关的问题对应的答案作为回复,其核心是进行问题-答案的文本匹配。简言之,就是用信息检索的方法找最佳答案。基于信息检索的问答分为三个子任务,即问题分类、篇章检索和答案处理。

问题分类属于文本分类任务,决定了信息检索的类型,即问题类型决定了答案类型。检索需要将问题形成合适的查询语句,其流程大致为:根据问题形成查询关键词列表,作为信息检索系统的输入。首先去除停用词,比如英语里“a”“the”“he”等,中文里“我”“它”“个”等使用频率非常高的无用词语,找出关键词列表中的名词短语,形成查询语句。有了查询语句,在检索系统中进行篇章检索,召回得到top N文档,这里的文档可以是章节、段落,也可以是句子。下一步通过排序策略从中得到候选答案。排序模型包括生成式模型和判别式模型。生成式模型目标是产生从“查询”→“文档”的关联度分布,利用这个分布对每个查询返回检索结果。而判别式模型更像是一个二类分类器,它的目标是尽可能地区分模型生成的查询对是有关联还是无关联的,并给出该查询对的关联程度。目前,基于文本表示的孪生网络和基于交互式匹配方法是信息检索中的两大主流方法。

(2)基于知识库的问答

基于知识库的问答又称为知识图谱问答,涉及的子任务包括实体识别与链接、问答选择以及结果评估。首先,实体识别与链接确定问句中提及的知识图谱中的实体,生成候选答案/关系路径,然后计算每个候选答案/关系路径为真的概率。从中筛选并评估答案准确度。以图2-13中的问题“Matebook制造厂商总部在哪里?”为例进行说明。

图2-13 关系路径识别示意图

①实体识别与链接。实体识别与链接的联合推断,识别出问句中提及的实体“Matebook”,通过与知识库中的“华为笔记本”链接,消除文本问答和知识图谱问答之间标注的不一致性;

②问答选择。从一组候选答案集中选择正确回答问题的候选答案,核心是对“问题-候选答案”计算语义匹配度。具体流程如下:

□问题意图识别。对问题意图关键字进行识别,将用户隐式的意图通过规则或分类模型转化为显式的识别指令,本质属于文本分类任务。常用的方法包括:基于规则模板的分类;基于历史日志匹配(适用于搜索引擎);基于学习模型的意图分类。

□问题关系路径识别。关系路径识别有两种思路,一方面基于规则从问题中抽取关系;另一方面通过问题表示学习方法,再通过信息检索产生候选答案,建立“问题-答案”映射路径,完成关系路径分类。这个过程包括关系分类或关系的槽位填充(Slot Filling)或标注,即同时结合了文本分类和文本标注任务。在上述例子中,根据图谱生成候选关系路径及答案,如表2-4所示,该问题正确的关系路径为“制造厂商-总部地点”。本例中“华为技术有限公司”和“华为”是同一实体的不同表述,知识图谱有效消除字面歧义,将两者成功链接。

表2-4 候选实体及候选答案

③结果评估(答案路径选择)。对于返回的答案,可以基于准确度(Accuracy)指标直接选择;对于候选集合利用排序指标,比如平均排序倒数(Mean Reciprocal Rank,MRR),为候选答案路径计算分数获得最佳结果。

上述逻辑也可以解决任务型对话问题。此类任务通常使用语义槽位表示用户的意图或需求,比如旅游行业输入的涉及“出发地、到达地、出发时间”等意图,那么就可以设计成槽位,根据上述类似流程,通过查询知识库返回答案填充槽位。

(3)基于阅读理解的问答

阅读理解问答(Message Reading Comprehension),又称为狭义文本问答,根据答案选择范围,又分为开放域和封闭域问答。由于广义文本问答涉及面复杂,本书不做论述,仅针对阅读理解问答进行介绍。根据给定文本或文本片段提出问题的答案形式可分为以下四种类型的任务:

①-②完形填空和多项选择任务。答案类型有多选一(选答案),多选多(多答案-答案整合或重排序),主要属于文本分类任务;

③片段预测任务,即从文档中抽取合理的片段作为回复内容,实际上包含文本分类和文本标注两类任务;

④自由回复任务,不仅要完成片段预测,还要生成回复文本,是包含了文本分类、文本标注和文本生成的综合任务。

阅读理解问答的主流方式是通过生成式模型(比如将在本书第3章论述的Encoder-Decoder端到端框架)利用编码器(Encoder)对用户问题进行编码,然后再用解码器(Decoder)生成回复内容。对于组合任务问题,采用串接级联(Pipeline)或多任务学习模型,通过注意力机制使“问题-文本”之间达到交互理解,通过端到端的方式来解决,相关算法可以参考一些开源项目,比如MatchZoo项目[1]

5.摘要描述

摘要描述是文本生成任务,根据模态数据的差别可分为图像/视频描述和文本摘要描述任务[12]。图像/视频描述属于多模态文本生成任务,综合了计算机视觉、信息编码解码、文本生成和图像描述等子任务[13]。本书将主要讨论文本摘要描述任务。文本摘要是为了解决信息过载问题,输出文本远远少于输入文本,但却蕴藏了非常多的有效信息。按照文档数量可分为单文档摘要和多文档摘要,按照实现方式又可分为抽取式摘要和生成式摘要。

(1)抽取式摘要

抽取式摘要是从文本内容中抽取摘要信息,一般是从文档中抽取重要性排序后的句子形成摘要,通过组合优化保证句子的可读性。其过程主要包括两个步骤:一是对文档中的句子进行重要性计算或排序;二是选择重要的句子组合并添加衔接词,输出最终摘要。

重要性排序可以采用如下几种方案:

①启发式规则排序。该种方案考虑了句子包含词语权重、句子位置、句子与主题相似度等几个因素,加权作为句子的打分,来判定句子的重要性。这种方法综合了句子多种特征实现对句子重要性的分类、回归或排序。

②图排序。典型的算法是基于PageRank思想的TextRank算法。基于图排序方法的具体流程如下:

为文本构建句子图结构G=(V, E),句子作为顶点(Vertice, V),句子之间有关系则构建边(Edges, E)(图结构将在3.3.6节中进行详细介绍);

基于图结构生成的顶点相似度矩阵,应用TextRank算法获得每个顶点的权重;

基于顶点权重排序结果选择句子形成摘要。

进一步考虑句子之间的相似性,避免选择重复的句子。这个过程一般包括了文本分类和文本匹配任务。通过文本匹配衡量相邻句子之间的关系,选择与摘要中已有句子冗余度小的句子。确定任何两句之间的先后顺序后,进一步通过分类任务判断句子是否属于摘要。接着对选择的摘要句子进行连贯性排列,从而获得最终摘要。

抽取式方法比较简单,只需从原文中找出相对比较重要的句子进行组合即可得到输出,一般是通过模型来选择信息量大的句子,然后按照自然序来组合。这种方法的缺点是摘要的连贯性、一致性很难保证,很多内容由于缺少上下文而丢失了语义信息,导致效果不佳。目前也有很多方案考虑端到端的文本生成,直接给出合乎要求的摘要,这就是下文介绍的生成式摘要。

(2)生成式摘要

生成式摘要目前主要是基于端到端模型(编码-解码框架)的单文档摘要,通过训练模型获得“输入-输出”经验,具体流程如下:

编码器先对句子编码,或配置注意力机制加强输入-输出之间的映射权重;

一种解码输出一个0/1序列,预测输出是维度为词库大小的概率分布,甄选出最大概率值对应的标签;

通过标签与词库对应,检索得出对应的单词(or字符),生成词序列;

另一种解码输出,结合指针网络从原文中直接生成文本[14]

生成式摘要面临的问题主要有以下几点:

①如何构建高质量语料。由于生成模型的训练依赖大型标注语料。目前,国内外有很多公开测评的语料,比如推动了自动文摘发展的CNN/Daily Mail语料[15]。但是基于这些语料训练的模型的迁移泛化能力还有待提高,另外就是针对中文的评测较少。

②未登录词(Out Of Vocabulary, OOV)问题。由于词表不可能涵盖所有待生成词,因此很多词的概率分布计算会出问题。可行的解决方案是选择top N个高频词组成词表[16]

③关于评价指标的客观性问题。目前人工评价主观性过强,缺少标准,因此常采用ROUGE指标[17]等自动化评价方案,不涉及语义层面的内容。如何从语义层面来评价摘要效果还需进一步研究,相关进展可以参考中文NLP模型定制的自然语言理解基准ChineseCLUE[2]

6.机器翻译

机器翻译是将专家经验、语法、语义融合进模型,完成跨语言的自动翻译,一直以来是自然语言处理的重要语用任务。机器翻译主要由两大类方法实现,一种是通过语言规则和语法约束进行翻译转换,另一种是通过统计学习实现[3]

规则语法机器翻译。这类方法通过制定规则让机器完成翻译,后来过渡为先对文本分词,然后通过双语词典映射获取对应翻译词,对翻译结果校正词汇形态,再协调句法得到结果。进一步将词翻译替换为短语实例翻译,同时结合句子语法结构,操作整个句法结构获得机器翻译结果。在面对复杂语句或复合语法结构时,上述方法常常出现难以估计的错误,因而难以推广。后来出现一种思路提供“中间语言”,中间语言遵循普适的规则,并且可以将翻译变成一种简单切换任务。这种方法对不同语种建立与中间语言对应的翻译规则或翻译模式,最后完成翻译。然而完美的中间语言是很难设计的。以上这些方法随着统计机器翻译的到来而逐渐消失。

统计机器翻译(Statistical Machine Translation, SMT)。1990年初,随着大规模平行语料库的建设,IBM研究中心首次展示了基于统计、排序和语言模型的机器翻译系统,显著提升了准确度。2016年,基于编码-解码框架的谷歌神经机器翻译系统(GNMT)取得了革命性进步。该系统对输入序列进行编码,然后根据输入编码生成输出序列,对于未识别词,GNMT会尝试将词分解为词片段再得到翻译结果[18]。随着2017年基于注意力机制的Transformer网络模型诞生,机器翻译逐渐成熟落地[19]

当然现有的机器翻译模型还存在迁移能力不足,专业适应性差的问题,需要进一步结合行业自身的特征,研究具有行业适应性的机器翻译方法。

[1] GitHub: https://github.com/faneshion/MatchZoo

[2] https://github.com/CLUEbenchmark/CLUE

[3] https://new.qq.com/omn/20191023/20191023A0BXBK00.html