通往认知智能的新途径:图数据库 原创
嘉宾| 王林
整理| 张锋
人工智能有两个比较大的派系:理性主义和经验主义。但在真实的工业级产品中这两种派系是相辅相成的。如何在这种模型黑盒里引入更多的可控性,更多的知识,需要将知识图谱这样一种承载了符号化的知识应用起来。
日前,在51CTO主办的在WOT全球技术创新大会上,泰凡科技CTO王林博士为广大参会者带来了专题演进《图数据库:通往认知智能的新途径》,重点介绍了图数据库模型的历史与演进;图数据库实现认知智能的重要途径,以及在OpenGauss上进行的图数据库设计与实践经验。
现将演讲内容整理如下,希望对诸君有所启发:
从一定的维度来看,人工智能可以分为两类,一类是联结主义,也就是我们熟悉的深度学习,模拟人脑的结构来做一些感知、识别、判断的事情。
另外一类则是符号主义,通常是模拟人的心智。认知过程是在符号表示上的一种运算。所以,它经常是用于进行一些思考与推理。典型代表的技术就是知识图谱。
图增强AI的4种途径
1、情景决策
知识图谱本质上是基于图的语义网络,表示了实体和实体之间的关系。从高层次上说,知识图谱也是互相关联知识的集合,以人类可以理解的形式描述现实世界和实体、事物相互的关系。
知识图谱可以为我们带来更多领域的知识、上下文的信息,帮助我们去做决策。从应用的角度来说,可以把知识图谱划分成三种类型:
一是领域相关知识图谱。将结构化、半结构化数据从中抽取出来的知识形成一个知识图谱,这是领域中相关的,最典型的应用就是Google的搜索引擎。
二是外部感知知识图谱。聚合外部的数据源,将其映射到我们感兴趣的内部的实体。典型应用是在供应链风险分析时,通过供应链能看到供应商,它的上下游、工厂等供应线的信息,这样就可以分析哪里存在问题,有没有中断的风险。
三是自然语言处理知识图谱。自然语言处理包含大量技术术语甚至是领域的关键词等,可以帮助我们去做自然语言的查询。
2、提高运行效率
机器学习的方法经常依赖于存储在表中的数据,而这些数据其实大部分是资源密集型的操作,知识图谱可以提供高效率领域的相关内容,把数据联结起来,在关系上实现多个分离度,有利于大规模快速分析。从这个角度来说,图本身就加速了机器学习的效果。
再者机器学习算法常常要针对所有的数据进行计算。通过简单的图查询,就可以返回所要数据的子图,以此来加速加速运行效率。
3、提高预测准确性
关系往往是行为最强的预测因素,关系的特征可以从图里很方便地获取到。
通过关联数据和关系图,可以更直接地提取关系的特征。但在传统的机器学习方法中,有时在抽象简化数据时其实会丢失很多重要的信息。因此,关系特性可以让我们在分析时不会丢失这些信息。此外,图算法简化了发现类似紧密社区的异常情况的过程。我们可以在紧密社区中对节点进行评分,并提取该信息以用于训练机器学习模型。最后,使用图算法进行特征选择,以将模型中使用的特征数量减少到一个最相关的子集。
4、可解释性
这几年我们经常能够听到“可解释性”,这也是应用人工智能过程中一个特别大的挑战,我们需要理解人工智能是怎么得出这个决策、这个结果的,同时在可解释方面有很多诉求,尤其是一些特定应用领域,比如医疗、金融和司法。
可解释性包含三方面的内容:
(1)可解释的数据。我们需要知道数据选择的原因,数据的来源是什么?数据是要有可解释性的。
(2)可解释的预测。可解释的预测意味着我们需要知道特定的预测使用了哪些特征,用了哪些权重。
(3)可解释的算法。可解释的算法目前前景很诱人,但还是有很长的路要走,目前在研究领域里提出了张量网络,引用这样的方法让算法能具备一定的可解释性。
主流图数据模型
既然图对于人工智能应用和发展如此重要,那么我们该如何将它用好呢?首先需要关注的是图的存储管理,也就是图数据模型。
目前最主流的图数据模型有两种:RDF图和属性图。
1、RDF图
RDF全称为资源描述框架,是由W3C制定的在语义万维网上用来表示交换机器可理解信息的一个标准数据模型。在RDF图中,每个资源有一个HTTP URL作为其中的一个唯一ID。RDF定义是一种三元组的形式,表示一个事实的陈述,S代表主语,P是谓语,O是宾语。图中Bob is interested in The MonoLisa,陈述了一个事实,这就是RDF图。
对应RDF图的数据模型,有着自己的查询语言——SPARQL。SPARQL是W3C制定的RDF知识图谱的标准查询语言。SPARQL语法上借鉴了SQL,是一种声明式的查询语言,查询的基本单元也是三元组的模式。
2、属性图
属性图模型中每一个顶点和边都具有一个唯一ID,顶点和边还有一个标签,作用相当于RDF图中的资源类型。此外,顶点和边上还具有一组属性,由属性名和属性值组成,这样就组成了一个属性图模型。
同样属性图模型也有一套查询语言——Cypher。Cypher也是一种声明式的查询语言,用户只需要声明要查什么,而不需要指出怎么查。Cypher有一个主要的特点,是使用ASCII 艺术的语法表达图模式匹配。
伴随人工智能的发展,认知智能的发展和知识图谱的应用越来越多。因此,图数据库近年来在市场中得到了越来越多的关注,但目前在图上面临的一个重要问题就是数据模型和查询语言的不统一,这是亟待解决的问题。
研究OpenGauss图数据库的动机
研究OpenGauss图数据库的出发点主要有两方面。
一方面想借助知识图谱本身的特性。例如在高性能、高可用、高安全和易运维几方面,能够将这些特性融入到图数据库中,对数据库而言这些非常重要。
另一方面从图数据模型考虑出发。目前有两种数据模型与两种查询语言,如果对齐这两种不同查询语言背后形式的语义运算符,好比关系型数据库里的投影、选择、连接等,如果对齐SPARQL和Cypher语言背后的语义,提供两种不同的语法视图,这样自然实现了一种互操作。也就是内部能够达到语义的一致,如此就能用Cypher查RDF的图,也能用SPARQL查属性图,这就形成了一个非常好的特性。
OpenGauss—Graph架构
底层使用OpenGauss,用关系模型看作图储存物理模型,思路是将RDF图和属性图的不一致,通过求最大公约数的方式,在底层物理存储上做一个统一。
基于这个思路,OpenGauss—Graph的架构最底层就是基础设施,依次往上是存取方法、统一的属性图和RDF图的处理和管理方式。紧接着是统一的查询处理执行引擎,用以支撑统一的语义算子,包含子图匹配算子、路径导航算子、图分析算子、关键字查询算子。再往上是统一的API接口,提供SPARQL的接口和Cypher的接口。此外还有统一的查询语言的语言标准以及交互查询的可视界面。
存储方案的设计
设计存储方案时主要考虑如下两点:
(1)不能太复杂,因为太复杂存储方案的效率不会太高。
(2)要能够很巧妙地容纳下两种不同知识图谱的数据类型。
因此,便有了点表和边表的存储方案。有一个公共的点表叫properties,针对不同的点,会有一个继承;边表也会有不同边表的继承。不同类型的点表、边表会有一份copy,这样就维护了一个点边表集合的存储方案。
如果是属性图,不同label的点找到不同的点表,例如professor就找到professor点表。点的属性就映射到点表中的属性列上;边表也是一样,authors就映射到authors边表,边就会映射到边表中的一行,带有起始节点和终止节点的ID。
通过这样一个看似简单实际上通用性很强的方式,可以将RDF图与属性图从物理层进行统一。但在实际应用当中有大量的没有类型的实体,这时我们采取了归类语义到最相近的有类型的表中的方法。
查询的处理实践
除了存储以外,重要的就是查询。在语义层面我们做到了操作的对齐,实现两种查询语言的互操作,SPARQL和Cypher互查。
在此情况下涉及到两个层面:语法和词法,还有它们的解析不能产生相互的矛盾。这里引用了一个关键字,例如查SPARQL就开启SPARQL的语法,查Cypher就开启Cypher的语法,避免冲突。
我们也实现了很多查询的算子。
(1)子图匹配查询,查询所有的作曲家和他作的曲子、作曲家的生日,是典型的子图匹配问题。可以分为属性图和RDF图,其大致的处理流程也是一致的。例如对应点加入join链表,然后添加properties列上的选择操作,接着对头尾两个点模式所对应的点表之间的连接实施约束。RDF图对边表的起始、终点进行重要操作,最后都是变量添加投影约束,输出最终结果,流程上是相近的。
子图匹配的查询,同样也支持一些内置的函数,例如FILTER函数,对变量形式进行限制、逻辑运算符、聚合、算术运算符都进行了支持,当然这部分也可以不断扩充。
(2)导航式查询,这在传统的关系型数据库中是没有的。下图种左边是一个小型的社会网络图,这是一个有向图,可以看到认识是单向的,Tom认识Pat,但Pat不认识Tom。导航式查询中如果进行一个二跳的查询,看谁认识Tom。如果是0跳,Tom就是自己认识自己。1跳就是Tom认识Pat,Tom认识Summer。2跳是Tom认识Pat,又认识Nikki,又认识回Tom。
(3)关键字查询,这里有两个例子,tsvector和tsquery。一个是将文档转成词条的列表;一个是查询向量中是否存在指定的单词或短语。当知识图谱中的文本比较长,有比较长的属性时,就利用这个功能为其提供关键字检索的功能,这也是非常好用的。
(4)分析型查询,对于图数据库有其特有的查询,例如最短路、Pagerank等都是基于图的查询算子,都可以在图数据库中进行实现。例如查从Tom开始到Nikki最短路径是多少,通过Cypher实现了最短路径的算子,可以把最短的路径输出出来,查到了结果。
除了上述提到的功能以外,我们还实现了一个可视交互的studio,在其中输入Cypher和SPARQL的查询语言,能得到可视的直观图,可以在上面做图的维护、管理以及应用,图上还可以进行很多交互,未来我们还会有更多的算子以及图查询、图搜索加进来,实现更多应用的方向和场景。
最后,欢迎大家访问OpenGauss?Graph社区,也欢迎对OpenGauss?Graph感兴趣的朋友们加入社区,作为新的contributor,一同把OpenGauss?Graph社区建设好。
嘉宾介绍
王林,工学博士、OpenGauss图数据库社区Maintainer、泰凡科技CTO、高级工程师、中国计算机协会 YOCSEF天津21-22副主席、CCF 信息系统专委会执委,入选天津市131人才项目。