阿里数据要做的是:把数据真正打通,深度挖掘数据的价值,为业务创新应用提供数据决策基础和依据。
下面具体介绍我们在大规模分布式知识图谱上的技术实践。
为什么需要知识图谱?
大规模知识图谱抽象也是一种图计算。基于大规模分布式知识图谱做了哪些工作?我们为什么要做这样一件事情?
阿里巴巴的生态非常丰富,而丰富的业态背后给我们数据工作者带来的困难就是,我们常常需要接入各种数据,并将他们有效地管理和整合起来,传统的方法,我们可能需要花几个月,投入几十个人做这样一件事情,对数据进行打标。
但是,假设我们已经知道数据和数据之间的一些关系,而且也知道数据表中哪些表被调用的次数最多。
那么,如果我只是对调用次数最多的表进行非常精确地打标,然后用基于知识图谱的方法,对剩下的90%表进行推理式的Label打标,就能极大节约了人力成本。
所以这就是我们为什么要用知识图谱去做数据接入这样的事情。那么,对于数据管理也是同样的道理。
假如只有1G的数据,你可以很快地回答出数据分布的情况和质量。而我们的现状时,我们的数据达到ZB级别的规模。因此对数据管理来说,挑战不容小觑。
同样地来看看数据应用方面的情况。我们基于数据应用,实际上也有一款产品叫做“数据地图”。
数据地图是干什么呢?其实就是当你进行一个查询,在这个产品里会自动帮你反馈出一个最相关的表。
延伸开来的是我们想要做得下一步工作:当你下一次进行查询后,能直接返回出相应的SQL,再产生出相应的表和相应的结果——这是我们想做的智能取数。
下面介绍一下知识图谱在数据管理和数据应用方面的落地进展。
我们开发了一些基于几十万张、上百万张ODPS表的知识图谱。
说一下我们的结果。在数据资产管理中,有一项重要的工作就是判断数据的归属。我们有上百万张的线上表,其中可能有几万张到几十万张的表能够比较清楚判断是属于哪个团队,可以在数据版图上打标。但是,还有上百万张没有打标的表,因为这个表属于异构的。如果在之前,通过一些人工的规则,它的归属判断准确率大概是55%,而通过我介绍的整个知识图谱的框架,准确率可以提升到88%。所以,对数据资产管理其实是有一个非常显著性的准确性上的提高。
接下来讲一下知识图谱在数据应用当中的一个技术框架,其实也是比较类似的。
数据管理技术架构
首先,数据层。因为是一个知识图谱的构建,所以上面要加个辞典层和语义层。
再上面就是基于推理层。在推理上,用的方法有大家比较熟悉的像随机游走和延伸等。那基于标注的,我们其实尝试了很多种方法,比方说张量分解等。
目前为止比较成功的是PRA(pathranking algo),这个在知识图谱上面还是比较成功的一件事情。什么是PRA,其实是把这些路径抽象出来,然后就是学习一下再推荐这个路径,但是它对于我刚才说的很多文本信息并没有有效的利用起来,比如对于这些表的描述,在最原始的PRA当中路径本身的位置是有考虑进去的,当然我对于这些描述,可能会知道也许这个路径更有效。所以,后来我们看了一下这个Trans系列,其实类似word2vecvs tfidf。确实在我们整个的刚才说的案例当中也是有比较大的提高。
刚才说的这些可能都是比较抽象的,我们可以看一个具体的例子,在数据地图当中,知识图谱到底是怎么工作的。
你打出一个查询,首先就是基本的分词与分析,其实大家可以看到,我们这个场景也是相当于搜索反馈一个结果,但是其实它和传统的搜索是不一样的:传统的搜索像Google、百度,其实它关心的指标是你准确的那个值是不是在TOP5,或者TOP10。
但是,我们这个场合下一定要反馈唯一的、准确的表。所以,接下来我们会有一些模板匹配,所以这里非常重要的一部分是人机交互这一块,把人机交互的结果,就是人要告诉你说,这个结果是否是他想到的,然后知识图谱整个刚才的框架有效的结合在一起,然后产生出你真正想找到那张表,然后整个的这个过程,其实这些是一些抽象出来的模板,这些模板可能是不够的。因为随着人的查询越来越多,模板也需要慢慢的扩展。
现在我们还是基于一些规则判断一些模板,未来我们也会尝试,让这个机器自动产生一些模板。