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

编者按算法

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

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

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

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

本文做者:易显维、苏海波ide

1、背景介绍工具

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

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

2、问题示例测试

数据集以天然语言问句和对应的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. 第三种问题的查询路径

3、技术方案

百分点认知智能实验室:基于知识图谱的问答技术和实践
图4. 技术方案框架图

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

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

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

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

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

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

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

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

4、问题分类

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

(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,匹配中间节点<?x>,再根据中间点的“职业”获得链式答案。

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

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

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

4.1 问题类型的编码方法

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

百分点认知智能实验室:基于知识图谱的问答技术和实践
图6. 槽位示意图

其中每一位表示方法:

百分点认知智能实验室:基于知识图谱的问答技术和实践
图7. 每一位表示方法图

一跳问实体类型:

百分点认知智能实验室:基于知识图谱的问答技术和实践
图8. 一跳问实体槽位信息图

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

5、实体识别

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做为命名实体识别的辅助技术手段,并取得了良好的效果。

6、实体连接

下图中,“乔丹”、“美国”、“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)基于知识图的方法:利用知识图的结构来表示上下文和实体之间的关系。

7、查询构造

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

主要有两种不一样类型的问句被普遍研究:

(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的查询路径就能够做为咱们的最终选择路径。

8、评测效果

本评测任务所使用的是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

相关文章
相关标签/搜索