基于向量空间的知识图谱查询及结果解释

知识图谱是一个宏大的数据模型,可以构建庞大的“知识”网络,包含世间万物构成的“实体”以及它们之间的“关系”,图文并茂地展现知识方方面面地“属性”,让人们更便捷地获取信息、找到所求。为了让大家对知识图谱有更深入的认识,今天这篇文章将由东南大学计算机科学与工程学院王萌老师为我们讲解基于向量空间的知识图谱查询及结果解释。

以下为王萌老师的演讲实录

深度学习和知识图谱的结合,目前是整个AI最新、最热的一个方向,如百度也是将知识图谱作为AI的核心竞争力。它的主要内容包括五个方面,分别是知识图谱及SPARQL查询、查询空集问题、知识图谱表示学习、基于向量空间的近似查询和实际应用。

知识图谱及SPARQL查询

知识图谱是机器生成并为机器服务的,服务对象不是人类,需要追求机器可理解的东西。一个大规模的知识图谱本质上是通过实体相关联,以及实体的各种属性构成的网络。知识图谱的目的是将以前处于非结构化的数据,中间发现的非结构化的实体和他们之间的关联,强调的是net、实体、关系,以及描述这些实体和关系的类别,最终会把非结构化的文本变成网络。

图一:医疗领域知识图谱

下面以医疗知识图谱为例,知识图谱可以把药物、疾病、症状、基因、病毒各种信息关联起来,形成一个庞大的数据网络。病人有两种方式和知识图谱产生关联,服药或者治疗。可以想象虽然只吃了这个药,但其实背后和一个庞大的知识库相关联。因此在分析病人的一些药物推荐或者是病人症状的时候,就可以在上面进行搜索。

SPARQL查询是类似于关系数据库的SQL,W3C推荐,面向关联数据的标准结构化查询语言,主要基于图模式匹配来查询信息。

知识图谱的优势目前已经应用在医疗领域、在线搜索、电影娱乐等领域。

查询空集问题

Alexandra Meliou曾说过“输入查询,得到结果,是互联网时代用户获取信息系统中有关数据的重要方式。理解查询的异常结果,是人类获取知识的自然过程之一。”因此,当用户对于查询结果都有一定期望,但查询结果为空的时候,用户自然想知道为什么,怎么办。这类问题被称为查询空集问题。目前,可以通过总计557个SPARQL终端查询2969个知识图谱,然而其中393个终端(72.22%),涵盖2084数据集(70.09%)在查询过程中遇到空集问题,严重影响了数据查询的可用性。因此,我们解决用户的空集查询问题有以下优点:提高SPARQL查询系统的可用性和可信性;帮助用户明确信息需求,修改原始查询及快速获取期望结果。

知识图谱表示学习

知识图谱表示学习是在2014年左右的时候出现的一项新的技术,核心思想是词项的问题。做自然语言的深度学习,如何选择词项模型和训练方式是第一项基本任务。知识图谱的向量模型之前是通过关系数据库或者图数据库,采用传统的方式存储。但在2015年,谷歌的工程师就思考用向量表示网络和知识图谱。由此产生的概念是表示学习,如果看经典机器学习的书,第一就是介绍表示学习,即通过机器学习得到数据的表示形式,以及分布式表示和连续的向量的概念。

基于向量空间的近似查询

回到最初的问题,查询空集问题结果为空,传统的方法是不断修改查询,向量空间给了我们另一个角度。基于向量空间的近似查询旨在不修改用户初始查询的前提下,基于知识图谱连续向量空间,采用数据驱动的方式,计算近似答案和推荐查询,解决查询空集问题。

图二:基于连续向量空间的空集why-not解释模型

右侧是在向量空间中的视角,这个V1代表我们想发现的点,虽然在数据库中不存在,但是我们可以在通过其他的向量结点,在空间中的加减法算出他的坐标,这个方法其实是把一个解决空集问题转化成一个最近零搜索的问题,给另一个结点在空间中找到最近的结点。但这个空间必须要满足语义相似的实体在连续向量空间中分布紧密,且实体和实体之间的关系(谓词)可以使用翻译机制表达,所以这种传统的KGembedding学习方法有局限性,难以同时满足这两个条件。根据这两个条件,我们对现有的方法进行改良。第一个问题是通过概率的形式求解最大,使其优化最大。第二个问题,先把图进行切分,把复杂的图切割成每一个查询图只包含一个变量的图,对于只包含一个变量的查询图我们可以计算通过周围的结点计算大概的位置。这时候得到的数量是不同的,所以算权重的时候要考虑不同的影响。对于多个数据,可以进行迭代处理,直到稳定。这种情况是需要具体问题具体对待,如果通过一次迭代或者很少次数的迭代已经满足基本需求的时候,就不需要迭代到非常完美的数据。接着是可解释性,基于结点的坐标可以找到相似的答案,最后基于这个答案去传播,返回的不再是一个具体的值,而是把周围的信息都反馈给用户,这是一个很简单的基于最近名搜索以及查询图的功能。

实际应用

我们在实际应用中有两个案例,第一个是基于知识图谱查询的治疗和药物推荐,这是把所有病人和药物的知识图谱以及疾病的知识谱形成一个关联网络,关联网络中发现所有图的基本关系,然后形成查询图,之后放到更大规模,几乎涉及到所有病人里面去找相近的查询,所以可以提供两种,一种是精准的检索,完全匹配和用户一模一样的,可以直接对症下药。第二种是可以反馈近似的结果,最后告诉患者详细的治疗方案。整个过程并没有用到特别复杂的模型,也没有追求很花哨的神经网络,只是简单的基于图谱的功能。

第二个案例是华西第二医院线上分诊系统,这个系统中看似很高大上,其实是一个对话系统。给儿科和妇科的在线医生提问任何一个自然语言形成的问题,系统会进行一个关系的建立并形成查询图,然后构成知识图谱去匹配,得到相近的症状和疾病。同时也会生成一些侯选的症状,用户自己选择,再形成一个新的查询图,然后到知识图谱里进一步的匹配,更加区分开,最终基于结果推荐最合适的医生,直接挂号、问诊等。

提问环节

提问:训练过程中是如何量化训练过程的。

王萌:迭代是指位置,这个是训练的过程,前期要做实验分析。

提问:相当于整个过程初始向量都是适用的。还有一个问题,最后是出了论文,对这个论文做出的评判指标是什么指标?

王萌:首先我们第一部分是提出来一个全新的知识图谱表述模型,主要做两项改进,第一个是我们让语意相近的实体很近,传统方法是乱的,因此在上下文改进上有效果。另外还强调边的刻画也是要满足标准,而边的满足标准是有专门的评价指标,至少要达到传统的方法,如果满足了就说明方法可以。线上部分的评价,首先评价之一是用户的满意度,然后我们是让直接的用户去看结果是不是和查询接近,同时还要做一定的分析,看接近程度是否和真实的相似度之间有关联,最后效率评测的部分,模型一定是在有效性和效益上共同匹配。

提问:查询图的规模是什么规模?

王萌:比如说微机百科规模比较大,包含了将近60个实体。

提问:就是实验的时候。

王萌:这个规模很大,是整个BPP,但是是线下的过程。

提问:如果按照紧急联系人和朋友做参照,如何做区分。因为在向量空间中具体是不同的,但我们平时得到这个信息只有个人才能感知到紧急联系人和其他联系人的差别。

王萌:最简单的是给哪条边上加权重,每一条变量都有权重,并有相应的模型。另外一种方式,结点表示为概率分布,或者表示为范围,如果这个范围两个结点之间的范围重合面积越大说明关系越强,这个方式有相应的文章可以查询。权重是需要有一定的人为干预,如果基于机器学习很难把握。

提问:第二个问题是,您说的embedding这种模型,是一个同构网络,同构网络和知识图谱的区别,我理解知识图谱是异构的,我想问如果用同构网络算法,用我的embedding在同构网络上和知识图谱上,最后的结果会差多少?

王萌:用同构的网络去跑,它在意的是结点之间的距离,想要的是这些结点越相似的结点在空间中越近,但是他们之间距离的含义没有办法理解。

提问:比如我用一个知识图谱或者一个同构网络训练了一个模型,我有一个下游其他的任务,在机器学习的时候训练一个模型并得到图谱,用得到的向量进行模型训练,确定参数。当把参数传到预测的时候,可能不能直接训练这个模型,要把这个数据放回图谱里,然后重构这个图谱,再抽取向量,然后再到这个模型。这个过程相比经验式的训练更复杂吗?

王萌:现在已经有了动态的知识图谱的训练模型,可以解决这个问题。这个领域大家可以去纯模型关注清华大学,他们把知识图谱这个模型,所有的文章和所有的开源代码全部实现放在app上,随时下载和使用,而且都是统一的框架。

提问:您和您团队有没有考虑到其他任务,就像是问答APP。

王萌:这个已经有大量研究了。

提问:好多找到关系对应的词,把里面连接上,有没有图谱研究的角度,可以更好的用这个图谱。

王萌:其实大家可以把图谱理解成一个知识库,传统在做自然语言处理的时候,任何一个词本质上都是一个字符串,即使基于上下文只是带有少量的信息,图谱除了这个字符串后赋予了更多的额外信息,如果想要用还是和你相关,如何把图谱的信息加到你的训练任务里,可以参照他们做PDQA或者端到端的系统里。今年的杰出论文是清华大学朱老师提出的基于知识图谱的对话问题,是关于做对话的理念,如何把知识图谱应用。

提问:您这个模型训练的时候是哪些参数需要训练?

王萌:需要参数其实整个模型都是以向量维度,所有的向量都是随机,都会调整,通过这个函数让所有的向量趋于一个稳定的状态,所以他的参数很少,但向量是几乎所有的。

提问:医疗推荐的系统,病人提了问题会选一些可能问到的症状,比如说绿色字点进去会不会一直推荐出结果。

王萌:腾讯要求对话一共只能三轮,不想让病人漫无目的询问,要求三轮之后,必须要让医生达到99%的概率。因此我们的对话轮数被限定死,在这样的情况下怎么求这个问题。

提问:当算术数量比较大,但是可以运行的,类似这样的问题用一个决策树是否可以。

王萌:决策树我们也试过,达到80%多精度的时候已经不能再提升。刚开始第一版本是完全基于决策树,第二版本上CNN,上神经网络的方式,最后发现在85%-86%准确率就很难上升。但是这个项目要求是99%,甚至100%,因此只能上更准确的知识。

提问:最后的准确率是怎么评判的?是一个评分吗?

王萌:这是线上的系统,线下华西二院提供的所有病人的问诊记录,要在问诊记录上做评测,而且这个项目是三个团队一起做,最后放到一个公开的平台上PK。

实录结束

王萌,毕业于西安交通大学计算机系,获工学博士学位;澳大利亚昆士兰大学联合培养博士; 现为东南大学计算机科学与工程学院讲师,研究方向为知识图谱、人工智能。发表SCI 论文、顶级会议论文10余篇。

推荐阅读更多精彩内容