百分点认知智能实验室:基于知识图谱的问答技术和实践

编者按

随着互联网软硬件相关技术的飞速发展,人们逐渐从信息时代进入智能时代。知识图谱作为承载底层海量知识并支持上层智能应用的重要载体,在智能时代中扮演了极其重要的角色。而利用知识图谱支撑上层应用仍存在诸多挑战,因此基于知识图谱的自然语言问答展开研究是十分有必要的。

时值2020年新型冠状病毒疫情爆发,2020年全国知识图谱与计算语义大会(China Conference onKnowledge Graph and Semantic Computing 2020)以新型冠状病毒为核心构建了包括新冠百科、健康、防控等多个高质量的知识图谱, 并于此针对知识图谱构建的关键技术及其核心应用提出四个评测子任务。

北京百分点信息科技有限公司认知智能实验室参加了该评测任务中的“知识图谱的自然语言问答”比赛,经过长达3个多月的激烈角逐,百分点认知智能实验室在比赛数据集上得分0.90106,位列A榜第三名。

本文主要介绍实验室在本次比赛和基于知识图谱问答业务的实践中使用的技术方案。

本文作者:易显维、苏海波

一、背景介绍

知识图谱的目的是给人工智能应用提供知识支撑,使得人工智能系统尤其是其中的决策算法在决策过程中能够参考到现实世界中丰富的知识。但是一直以来如何利用其中的知识是人工智能从感知走向认知的一个关键问题。在这个背景下,基于知识图谱的问答成为人工智能算法利用知识图谱的知识的一个突破点,解决了这个问题,意味着人机交互的重要变革,象征着计算机对于人类的自然语言理解产生了巨大进步。

相比于传统的搜索引擎获取知识的方式,智能问答系统基于自然语言交互的方式更符合人的习惯。随着人工智能的进一步发展,知识图谱在深度知识抽取、表示学习与机器推理、基于知识的可解释性人工智能、图谱挖掘与图神经网络等领域取得了一系列新的进展。这些进展让知识图谱问答系统需要面对的两个问题(问题的理解和问题到知识图谱的语义关联)得到了较好的解决,使得知识图谱智能问答工程应用成为现实。百分点认知智能实验室在多个行业积累了丰富的基于知识图谱问答的技术实践经验。

二、问题示例

数据集以自然语言问句和对应的SPARQL查询语句标记组成,这里简要介绍SPARQL查询语言:

SPARQL [1]  (SPARQLProtocol and RDF Query Language),是为RDF开发的一种查询语言和数据获取协议。其语法由三元组组成,其中?x所在where语句中的位置表示需要查询的是哪一个要素。

列举数据集中三种典型问题为例,这三种问题代表了数据集中三种不同的查询类型,查询类型见每个问题的查询路径图:

问题:武汉大学出了哪些科学家

查询语句:select ?x where {?x<职业><科学家_(从事科学研究的人群)>.?x<毕业院校><武汉大学>.}

答案:"<郭传杰><张贻明><刘西尧><石正丽><王小村>"

图1. 第一种问题的查询路径

问题:凯文·杜兰特得过哪些奖?

查询语句:select ?x where { <凯文·杜兰特> <主要奖项> ?x . }

答案:“7次全明星(2010-2016)”   “5次NBA最佳阵容一阵(2010-2014)”  “NBA得分王(2010-2012;2014)” “NBA全明星赛MVP(2012)” "NBA常规赛MVP(2014)"

图2. 第二种问题的查询路径

问题:获得性免疫缺陷综合征涉及哪些症状?

查询语句:select ?x where {<获得性免疫缺陷综合征><涉及症状>?x.}

答案:"<淋巴结肿大> <脾肿大> <心力衰竭> <肾源性水肿> <抑郁> <心源性呼吸困难> <低蛋白血症> <不明原因发热> <免疫缺陷> <高凝状态> <右下腹痛伴呕吐> "

问题:詹妮弗·安妮斯顿出演了一部1994年上映的美国情景剧,这部美剧共有多少集?       

查询语句:select ?y where {?x<主演><詹妮弗·安妮斯顿>.?x<上映时间>""1994"".?x<集数>?y.}

答案:"236"

图3. 第三种问题的查询路径

三、技术方案

图4. 技术方案框架图

技术方案如上图,下面以“莫妮卡·贝鲁奇的代表作?”这个问题举例说明该技术方案中的步骤。

第一步:我们将该问题进行命名实体识别(预处理模块:实体识别),得到名为“莫妮卡·贝鲁奇”的实体提及,将该实体提及输入别名词典和ES中,得到备选实体名称。

第二步:将问题输入我们的问题结构分类模型(预处理模块:问题分类),得到该问题属于一跳问实体的问题类型,得知该问题有一个实体槽位和一个关系槽位需要填充(预处理模块:槽位预测)。

第三步:将第一步中得到的实体通过语义特征和人工特征进行实体消歧,得到真正的实体为<莫妮卡·贝鲁奇>(实体分析模块:实体链接)。

第四步:根据第二步中预测的槽位,将实体填充到该查询语句中得到select ?xwhere {<莫妮卡·贝鲁奇><>?x.}(查询生成模块:槽位填充)。

第五步:搜索<莫妮卡·贝鲁奇>的所有关系名称,和原文进行语义匹配并排序,得到关系<代表作品>(查询生成模块:路径排序)。

第六步:将代表作品填入第二步所预测的关系槽位中,得到查询语句select ?xwhere {<莫妮卡·贝鲁奇><代表作品>?x.},并转化为图数据库查询语言(查询生成模块:槽位填充)。

第七步:将第六步中得到的查询语言在图数据库查询并得到答案,并进行答案校验(答案验证模块:验证答案的实体类型)。

四、问题分类

上面方案中的第二步需要对问题进行分类,问题的分类标准有如下几个考量:

(a)问题生成的知识图谱查询语句有几次查询,称为几跳问题;

(b)每一跳的查询中分为是问实体还是问关系;

(c)查询过程中是夹式还是链式。

夹式:为多个实体查询不同的关系之后求交集。

链式:多个实体依次求关系,再通过关系求实体。

图5. 问题类型示意图

根据上面的分类标准,问题可以具体划分为如下三类:

(a)一跳问实体类型:

莫妮卡·贝鲁奇的代表作?   select ?x where {<莫妮卡·贝鲁奇><代表作品>?x.}     select ?x where {<><>?x.}

其括号内结构为<主><谓><宾>,得到主语、谓语,问宾语。

(b)二跳链式问实体类型:

发明显微镜的人是什么职业?select ?y where {<显微镜><发明人>?x.?x<职业>?y.} select ?y where {<><>?x.?x<>?y.}

其括号内结构为<主1><谓1><宾1><主2><谓2><宾2>,得到主语1、谓语1,匹配中间节点<?x>,再根据中间点的“职业”得到链式答案。

(c)二跳夹式问实体类型:

我们会在哪个民俗节日里猜灯谜?select ?x where {?x<类别><民俗>.?x<节日活动><猜灯谜>.}  select ?x where{?x<><>.?x<><>.}

其括号内结构为<主1><谓1><宾1><主2><谓2><宾2>,得到主语1、谓语1、主语2、谓语2,最终得到宾语1、宾语2。将二者取交集,得到夹式答案。

4.1  问题类型的编码方法

为了能建立一种将自然语言到SPARQL语言的中间表达方式(见参考文献3、4),我们将问题根据上述分类标准,生成每种分类的序列式标签标记,每个标签表示问句中槽位要素的语法成分。我们若考虑二跳以内问题,则编码需要的槽位数量为:

图6. 槽位示意图

其中每一位表示方法:

图7. 每一位表示方法图

一跳问实体类型:

图8. 一跳问实体槽位信息图

采用Bert-Seq(见参考文献2)模型建模,测试集问题通过该模型预测后,得知问题的分类序列,即可得知有哪几个语义槽需要填充,比如一跳问实体需要填充一个实体和一个关系。

五、实体识别

5.1  常见的命名实体识别方法

目前为止,命名实体识别主流方法可概括为:基于词典和规则的方法、基于统计机器学习的方法、基于深度迁移学习的方法等。在项目实际应用中一般应结合词典或规则、深度迁移学习等多种方法,充分利用不同方法的优势抽取不同类型的实体,从而提高准确率和效率。在中文分词领域,国内科研机构推出多种分词工具(基于规则和词典为主)已被广泛使用,例如哈工大LTP、中科院计算所NLPIR、清华大学THULAC和jieba分词等。

在本数据集中主要采用了词向量+条件随机场的方法对自然语言问题中的命名实体进行识别:

 图9. Bert-Lstm-CRF结构图

(参考BioNerFlair:biomedical named entity recognition using flair embedding and sequence tagger)


5.2  检索在实体识别过程中的作用

2020年CCKS基于知识图谱的问答任务中有较多的和疫情相关的医学领域问题:

(a)新冠病毒肺炎有哪些别称?

(b)哪些是非传染性的胃炎?

(c)流感裂解疫苗的规定组织是?

(d)哪种检查项目能检测出耳廓腹侧面局限性囊肿、耳硬化症和耳骨外翻的症状?

(e)有什么样的检查项目能检测新生儿呼吸暂停、先天性肺动静脉瘘和老年人急性呼吸窘迫综合征这些疾病?

这类问题中出现的命名实体的特点是名称较长,组成字符较为生僻,用上文中提到的模型识别效果不理想,会出现少字、识别结果序列中断的现象。为了能够提高召回率,并加速匹配实体名称的过程,我们引入ELK作为命名实体识别的辅助技术手段,并取得了良好的效果。

六、实体链接

下图中,“乔丹”、“美国”、“NBA”这些片段都是mention,其箭头所指的方块就是它们在图谱里对应的entity。其中“NBA”和“联盟”虽然字面上不同,但是都指代了知识库中的同一种实体。实体链接(entitylinking)就是将一段文本中的某些字符串映射到知识库中对应的实体上。

图10. 实体链接示意图

中文短文本的实体链接存在很大的挑战,主要原因如下:

(a)名称变体:同一实体可能以不同的文本表示形式出现。这些变体的来源包括缩写(New York, NY),别名(New York, Big Apple),或拼写变体和错误(New yokr)。

(b)歧义性:根据上下文的不同,同一名称通常会涉及许多不同的实体,因为许多实体名称往往是多义词(即具有多重含义)。“巴黎”这个词可以指法国首都或帕丽斯·希尔顿。

(c)缺省:有时,一些命名实体可能在目标知识库中没有正确的实体链接。这种情况可能发生在处理非常特定或不寻常的实体时,或者在处理关于最近事件的文档时,另一种常见情况是在使用特定领域的知识库(例如,生物学知识库或电影数据库)时。

实体链接的方法大致分为以下几种:

(a)基于排序的方法:Point-wise、Pair-wise。由于实体链接任务ground truth只有一个实体,一般都是用point-wise来做。输入是文本的context、mention、和某个实体的特征,输出mention指向该entity的置信度,以此排序,选出最可信的实体,常用的方法有包括LR、GBDT、RankSVM等算法。

(b)基于文本的方法:利用从大型文本语料库中提取的文本特征(如词频-逆文档频率Tf-Idf,单词共现概率等)。

(c)基于知识图的方法:利用知识图的结构来表示上下文和实体之间的关系。

七、查询构造

知识图谱问答中,一个关键的步骤就是查询路径的构造。查询构造旨在根据问题,构造出问题的候选查询路径,通过路径排序筛选出正确的查询路径,根据此路径在知识图谱中查找相对应的实体目标,作为问题的最终答案。而在此过程中,提高查询路径的召回率是我们的根本目标。

主要有两种不同类型的问句被广泛研究:

(a)带约束的单关系问题。例如,在问题“谁是美国第一任总统?”中,答案实体和实体“美国”之间只有一个“总统”的关系,但是我们也有“首先”的约束需要被满足。针对这类复杂问题,我们提出了一种分阶段查询图生成方法,该方法首先确定单跳关系路径,然后对其添加约束,形成查询图。

(b)有多个关系跳跃的问题。例如“谁是Facebook创始人的妻子?”,答案与 “Facebook”有关,通过两种关系,即“妻子”和“创始人”。为了回答这类多跳问题,我们需要考虑更长的关系路径,以达到正确的答案。这里的主要挑战是如何限制搜索空间,即减少需要考虑的多跳关系路径的数量,因为搜索空间随着关系路径的长度呈指数级增长。一个基本的解决方法就是使用beam search,其次还可以根据数据构造特定的剪枝规则,减少产生的查询路径。

待候选查询路径产生后,须在候选路径中选择评分Top1的查询路径,作为最终选择的目标。其选择路径的方法基本是基于排序模型的,如深度模型 ESIM、BiMPM等算法。以下介绍一种基于计算句子相似度的排序方法,Siamese LSTM。Siamese Network 是指⽹络中包含两个或以上完全相同的⼦⽹络,多应⽤于语句相似度计算、⼈脸匹配、签名鉴别等任务上。下图是整个网络大致的计算过程,左右两个句子输入后,句子中的每个词对应一个数字,左右两句话分别映射成一个向量,各自经过一个LSTM网络抽取特征后,使用曼哈顿距离计算两边向量的差距,最终得出预测结果(见参考文献1)。

图11. 语义匹配方法网络结构图

(参考Siamese Recurrent Architectures for Learning Sentence Similarity)

通过Siamese LSTM的方法,我们可以计算待候选查询路径和查询问题的匹配得分,选出得分Top1的查询路径就可以作为我们的最终选择路径。

八、评测效果

本评测任务所使用的是2020CCKS(中国知识图谱与计算语义大会)新冠开放知识图谱,它来源于 (http://openkg.cn/group/coronavirus),其中包括健康、防控百科、临床等多个具体数据集。我们将这些数据集整合到一起,同开放领域知识库PKUBAS一起作为问答任务的依据。本任务的评价指标包括宏观准确率(MacroPrecision),宏观召回率(Macro Recall),AveragedF1 值,本文方法最终的实验效果指标如下:

(a)识别效果:Averaged F1=0.901

(b)识别性能:在NVIDIA 2080Ti GPU上,平均响应时间约200ms

总结

最后我们总结一下本方案的应用有效性和价值潜力。在应用有效性方面,通过今年2020年全国知识图谱与计算语义大会知识图谱问答任务数据集的评测得分,证明该方案在公开数据集上性能表现优秀,具有很好的应用效果;在价值潜力方面,本方案执行效率高,并且适合各种不同业务场景的问答需求,表现出良好的可扩展性,适合工程应用。百分点认知智能实验室已经将该套方案部署到了众多不同业务的知识图谱系统中,取得了不错的社会和经济效益。

参考资料

[1]Siamese Recurrent Architectures for Learning Sentence Similarity

[2]Learning Phrase Representations using RNNEncoder–Decoder for Statistical Machine Translation

[3]SEQ2SQL: GENERATING STRUCTURED QUERIES FROMNATURAL LANGUAGE USING REINFORCEMENT LEARNING

[4]Towards Complex Text-to-SQL in Cross-DomainDatabase with Intermediate Representation

[5]BioNerFlair: biomedical named entityrecognition using flair embedding and sequence tagger

百分点
百分点

百分点是中国领先的企业级大数据+AI产品与技术提供商,拥有完整的大数据及认知智能产品线。秉承“用数据推动社会进步”的理念,为业内分享大数据和AI技术在行业实践中的经验与思考。

理论知识图谱问答系统
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
自然语言理解技术

自然语言理解是人工智能的核心课题之一,也被广泛认为是最困难和最具标志性的任务。最经典的两个人工智能思想实验——图灵测试和中文房间,都是围绕自然语言理解来构建的。自然语言理解在人工智能技术体系中的重要性不言而喻,它一方面承载着机器和人的交流,另一方面直达知识和逻辑。自然语言理解也是人工智能学者孜孜以求的圣杯,机器学习的巨擘 Michael I. Jordan 就曾经在 Reddit 上的 AMA(Ask Me Anything)栏目中畅想用十亿美元建立一个专门用于自然语言理解的实验室。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

知识库技术

知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

命名实体识别技术

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

查询语言技术

查询语言泛指向数据库或信息系统查询的各种编程语言。 查询语言必须要能表达所有关系代数所能表达的查询,这样才被称为关系完整的。

条件随机场技术

条件随机场(conditional random field,简称 CRF),是一种鉴别式机率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列。 如同马尔可夫随机场,条件随机场为无向性之图模型,图中的顶点代表随机变量,顶点间的连线代表随机变量间的相依关系,在条件随机场当中,随机变量 Y 的分布为条件机率,给定的观察值则为随机变量 X。原则上,条件随机场的图模型布局是可以任意给定的,一般常用的布局是链接式的架构,链接式架构不论在训练(training)、推论(inference)、或是解码(decoding)上,都存在有效率的算法可供演算。 条件随机场跟隐马尔可夫模型常被一起提及,条件随机场对于输入和输出的机率分布,没有如隐马尔可夫模型那般强烈的假设存在。 线性链条件随机场应用于标注问题是由Lafferty等人与2001年提出的。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

人机交互技术

人机交互,是一门研究系统与用户之间的交互关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

实体链接技术

在自然语言处理中,实体链接,也称为命名实体链接(NEL)、命名实体消歧(NED)。实体链接的任务是为文本中提到的实体(例如着名的个人,地点或公司)分配唯一的身份。

深度迁移学习技术

在深度迁移学习中,首先在与需要解决问题的类似问题中训练神经网络模型,然后将来自训练模型的一个或多个层用于训练需要解决问题的新模型中。

暂无评论
暂无评论~