美林数据
ABOUT US
美林数据技术股份有限公司(简称:美林数据,NEEQ:831546)是国内知名的数据治理和数据分析服务提供商。

美林新闻/NEWS

首页 美林数据 美林新闻

美林数据技术专家团队|智能问答技术及其应用、批注、修订、图源标注

2021-12-16 10:29:00
自Turing于1950年在其经典论文中提出“图灵测试”以来,问答机器人的发展蓝图和目标便得以明确。而作为问答机器人的核心,智能问答技术的发展一直备受人们关注。
早期的智能问答技术主要基于问答库中维护的模板,然后采用模糊匹配的方式给出问题的答案,对语义分析和用户意图理解的程度还不深。近年来,随着深度学习技术的快速发展,智能问答技术也取得了长足的进步,并在诸如搜索、智能客服、智能家居等领域落地应用,且取得了不错的效果。
本文首先简要介绍当前智能问答的技术架构,然后重点对其中涉及到的关键技术、适用场景与优缺点进行分析。
一、智能问答技术架构
智能问答,其核心任务是构建一个模型,对输入的问句进行理解并给出问题的答案。一般来说,可以将问答作为搜索的一个特例——其提供了一种更为精准(只有一个结果)的搜索服务,因此,本文中提到的搜索,都是指包含了问答的搜索。为了提升模型的准确性和智能性,有时也会根据输入来推荐可能的问题。其技术架构可以简单示意如下:
智能问答
自动问答架构
问题理解
模型接收到用户的输入后,需要对其进行判断与理解,例如,判断该输入是不是一个问题,该问题属于哪一个领域,该问题中的实体有哪些,需要填充的槽位有哪些,问题的类型是什么,问题是否明确等。对于意图不明确的问题,有时需要用到多轮对话技术对意图进行澄清。
问题解答
在理解问题后,需要从模型所连接的知识库和文档库获取答案,所采取的技术方案根据答案来源的不同而不同,本文后续内容重点对这部分技术进行介绍。
搜索推荐
根据输入,模型为用户推荐相似的搜索内容,其主要体现在两个方面,一是在用户输入的过程中根据已输入的内容联想其可能输入的内容,二是在搜索结束后,根据搜索的内容推荐相似的搜索。
二、两类典型的问答模型
1、Document QA:基于文档的阅读理解式自动问答
Document QA的核心任务为:给定一篇文档和与之有关的问题,模型自动找到该问题的答案。Document QA中最具代表性的片段式提取(Span-extraction),即从给定的文章中提取一段连续的字符串作为问题的答案。这种方式一般借助于机器阅读理解(Machine Reading Comprehension, MRC)技术,因此,有时也被称为基于阅读理解的自动问答。
目前,取得SOTA的MRC均采用预训练模型,如BERT、ERNIE-Gram等,它们大都通过Transformer加注意力机制等方式来获得文档与问题的向量表示,再通过边界预测的方式来确定答案片段的起止位置。
然而,在实际的问答系统中,往往无法要求用户在输入问题的时候同时输入一篇包含该答案的文档。较为合理的做法是,事先维护一个文档数据库,然后根据用户的提问,从文档库中找到该问题的答案。
要实现上述想法,一般有两种做法:一种是根据用户输入的问题,先找到最相关的一篇文档,再对该文档应用MRC模型,获取答案。这种做法对筛选最相关文档的算法要求比较高,如果选择错误,那么基本上无法得到正确答案。
为了缓解上述弊端,另一种做法是找到一批(比如,10篇)文档作为候选文档,再逐文档应用MRC模型,最后对获取得到的候选答案进行评分,选择分数最高的作为最终答案。
综上,一个Document QA模型的整体架构可以分为三层:文档提取(Retriever)、答案提取(Reader)、答案排序(Ranker)。
Document QA架构
Document QA架构
(如果采用的是做法1,则在Retriever阶段只保留一篇文档,取消Ranker模块。)

Retriever
给定用户输入的query,采用算法(如tf-idf)从documents中筛选出topN最相关的文档。此过程实际上就是传统搜索引擎的计算过程,即计算query与各document相似度的过程,因此,也可以利用tf-idf算法来快速实现。
Reader
此阶段采用MRC模型对输入的query和document进行计算,并从document中找到连续的字符串作为答案。例如基于BERT的MRC模型结构如下:
基于BERT的MRC模型
基于BERT的MRC模型
首先将query和document连接起来作为输入,经过BERT模型计算后,得到document中每个词作为答案起始位置的概率、 作为答案结束位置的概率,根据概率大小得到候选答案在document中的起止位置Start和End,候选答案的得分一般由起止位置概率的乘积得到。
Ranker
通过上一步,可以分别从topN相关文档中得到对应的N个候选答案和得分,在这一阶段将答案按照得分从高到底排序,返回得分最高的作为最终答案。
Answer packaging
上述三步实际上已经完成了Document QA的主要功能,但在某些条件下该答案过于简略,而且没有对回答不出来的问题做处理。对于未抽取到答案的情况,可以根据具体要求输出“未查询到答案”、“超出知识库范围”、或其它约定好的内容;对于特定类型问题,可以用问题和答案的组合进行包装,使其显得更加智能,例如:问题“呼和浩特到北戴河多少公里”,模型抽取到的答案是“约763.0公里”,这里可以将答案包装成“呼和浩特到北戴河763公里”。
Document QA相较于传统的通过维护问答对实现自动问答的方案,一个显著的优点就是不需要人工维护问答对和意图模板,但在实际应用中,Document QA还存在一些短板待完善:
Document QA的计算过程是一个典型的“黑盒“,人们无法分析其得到答案的具体计算是如何进行的。
由于答案只能从原文截取,因此无法回答一些复杂的推理类问题,例如,给定一篇介绍姚明的文章,尽管文中出现“姚明出生于上海“之类的信息,但模型可能仍无法回答诸如”姚明的国籍是什么“的问题。
Retriever算法的效果直接影响后续答案的提取,特别是在针对某些特殊领域开发问答模型时,需要投入非常多的精力来使模型学习到该领域的语言特点。
需要标注一定规模的document-query-answer语料来训练Reader模型。
2、KBQA基于知识库的自动问答
KBQA,即Knowledge Base Question Answering,基于知识库的自动问答(本文不区分知识库与知识图谱的概念,认为它们的含义相同),它的核心任务,是将以自然语言描述的问题转化为可执行的结构化查询语言(NQL),执行该查询语句,得到问题的答案。根据存储知识库的数据库种类不同,查询语言一般有SPARQL、Cypher等。由于答案来源是质量较高的结构化知识,因此其最显著的优势,就是可以深入“理解“用户的问题,并支持更多复杂的推理。
比较流行的KBQA方案有两种,一是基于语义解析的方法,一种是基于搜索排序的方法。基于语义解析的方法的核心过程就是先将自然语言问题转化为语义表示,然后再将语义表示转化为可执行的查询语言,这种方法的优势之一,就是可解释性强,能够展示获取答案的全过程。基于搜索排序的方法首先根据自然语言问题获取知识库中相关的实体,然后获取与该实体有一步或多步关系的实体,并将其视为子图提取出来作为候选答案集合,最后对候选实体进行匹配和排序,选择最终答案。
语义解析的方法
语义解析的一个典型任务是给定一张表格,用户用自然语言提出问题,模型自动生成相应SQL查询逻辑,然后在表格中执行查询得到答案。
语义解析方法
用户输入问题:“新浪和人人网的周涨跌幅分别是多少?”
模型会根据数据表格的内容,将该问题转化成sql语句:“select 周涨跌幅 from 表_1 where 名称=‘新浪’ or 名称=‘人人网’”
这样就可以从表中得到查询结果:“-4.52 和 -9.55”
语义解析的方法可以分为基于训练数据的有监督方法和基于规则的无监督方法两类。
基于训练数据的有监督方法需要事先准备标注的数据用于训练,在KBQA这个任务里,标注数据的格式为:,其中,query就是自然语言问句,nql是结构化的查询语句。这实际上也是NLP技术中的一个研究方向,叫作text2sql。在深度学习的背景下,text2sql一些效果比较好的解决方案大都采用基于「编码器-解码器」结构的seq2seq的方法,目前,相关的研究方向主要聚焦于以下几个方面:研究更强的语义表示(BERT)和结构来增强Encoder端对语义信息的利用程度;研究不同的解码方式(树形结构解码、填槽类解码)来减小解空间的搜索范围;研究提高SQL(或者其他结构化查询语句)语言的抽象性的技术;研究利用搜索、重排技术等对多条候选结果进行正确答案的筛选。对text2sql模型进行评价的方法主要有两种:一种是精确匹配率,指的是生成的SQL与正确的SQL在select、where、from等模块达到字符串级别的完全匹配的比例;另一种是执行正确率,指的是生成的SQL能够在数据库执行并返回正确的答案的比例。
基于规则的无监督方法的典型过程包括以下步骤:
(1)问句分析:
把自然语言问句转化成查询语义三元组的形式;
(2)资源映射:
将三元组中的每个短语,确定其在知识库中的对应资源;
(3)查询语句的生成:
对不同类型的问题依据不同的模板生成对应的查询语句。
搜索排序的方法
知识图谱是以实体为节点的网络,一般处理与实体相关的事实内容,比如答案为人名、机构名、地名的问题,这种类型的问答任务称为事实型问答,在问句中都包含至少一个实体词,问题所涉及的知识也就是该词对应实体的事实,那么答案就是这些事实中的实体。
例如用户输入问题:“姚明的妻子是谁?”该问题的核心实体是“姚明”,从知识图谱中查询到实体“姚明”,并将该实体相关联的实体提取出来作为候选答案。
知识图谱
在本例中与实体“姚明”相关联的实体及其关系为:
“姚明”--“国籍”-->“中国”
“姚明”--“配偶”-->“叶莉”
“姚明”--“出生地”-->“上海”
再通过计算每个相关联实体与问题匹配程度,会得到与问题最匹配的答案是“姚明”--“配偶”-->“叶莉”,输出答案“叶莉”。
基于搜索排序的知识问答就类似于人工回答的过程:首先,确定问句中的主题词;然后,根据主题词链接到知识库中的实体,得到主题实体;其次,将主题实体以及知识库中与主题实体相关的实体提取出来作为候选答案;最后,从候选答案中选择出正确的答案。
找到主题词并找到知识库中与之对应的实体,是实体识别与实体链接的任务,这里主要介绍如何从问句和答案中提取特征,并对它们的匹配程度进行计算。
从问句中提取特征首先需要对问句进行句法分析,得到其依存句法树。基于依存句法树,可以进一步抽象得到许多有用的信息,主要包括:
(1)问题词:
         例如,谁,哪,什么等;
(2)问句焦点词:
        这个词暗示了答案的类型;
        例如:名字,时间,地点等;
(3)主题词:
       用于帮助找到知识库中相关的知识点;
(4)中心动词
作为候选答案的知识库中的节点,都可以抽取出以下特征:节点的所有关系;节点的所有属性及属性值;节点与主题实体的路径。
在提取了问句和候选答案的特征之后,接下来就是对其进行匹配。为此,可以将问句中的特征和候选答案的特征进行组合,并将关联度较高的问题-候选答案赋予较高的权重。这种赋权过程可以通过机器学习模型来实现,具体地,将从候选答案中选出正确答案视为一个二分类问题,从而可以使用<问题-答案>的标注数据来训练一个分类模型。
三、总结
本文主要介绍了两类常用的自动问答技术的实现原理,纵观整个自动问答的研究成果和技术现状,仍需要对以下问题进行深入研究:
计算机能够直接处理的只有数字,如何把自然语言包含的语义信息准确、无遗漏地映射成数字,是所有NLP任务面临的挑战。尽管基于预训练模型的方法横扫了各大NLP任务的榜单,但是在自动问答的任务上,此方法衍生出的模型所取得的效果仍然无法令人满意。这类方法试图通过庞大的参数和复杂的结构来对自然语言问句进行解析、推理、查询和回答,随着问句复杂程度的提升,该方法的推理能力会显著地降低,从而导致回答错误或无法回答;此外,正如所有NLP任务所面临的挑战一样,对跨领域的模型进行二次训练所消耗的高额资源是阻碍其大规模应用的重要原因。
KBQA由于有高质量的知识库作为底层支撑,往往具有较好表现效果。但是,抛开维护知识库所需要投入的巨大资源之外,如何正确解析问句、从大规模的知识库中快速定位到关键实体并根据关键实体找到对应的属性(关系)作为答案,对于数据结构、硬件资源以及解析模型的要求仍是非常高的。

服务热线
400-608-2558
咨询热线
15502965860
美林数据
微信扫描二维码,立即在线咨询