知识图谱及其在安全领域的应用
关注微信公众号:人工智能技术与咨询。了解更多咨询!
本文作者作者:Toky,由 Seebug Paper 发布
1. 知识图谱是什么?
1.1 知识(Knowledge)是什么?
知识图谱(Knowledge Graph)正如其名,其本质是为了表示知识[1]。那么知识是该如何定义呢?我们来看一下维基百科中的定义:
知识是对某个主题确信的认识,并且这些认识拥有潜在的能力为特定目的而使用。意指透过经验或联想,而能够熟悉进而了解某件事情;这种事实或状态就称为知识,其包括认识或了解某种科学、艺术或技巧。此外,亦指透过研究、调查、观察或经验而获得的一整套知识或一系列资讯。
可以从这块相对抽象的定义里得到一个主观的感受,那就是知识是一种认知,其既是一种事实,也是一种状态。比如,“我会加减乘除”是一种事实也是在表述我通过学习和实践,使得现在已经掌握这项技能的一种状态。并且这种认知是相对复杂的,有从时间变化的纵向维度,也有涉及到关系、概念、实践等等横向维度的变化。但不变的是,知识是有一个主题的,以及由主题衍生出来的各个“属性”组成,类似于树状结构,这一棵树,就是一条知识。
如果用官方一点的定义呢,每条知识是表示为一个SPO三元组,即Subject(主体)——Predicate(谓语)——>Object(客体)[1]。
那个回到“表示知识”这个关键点,我们创造出知识图谱这个概念,就是为了帮助我们更快、更好地用来表示出多条独立的“知识”。更进一步说,知识图谱就是用来组织和描述SPO三元组的。
那么如何描述呢?请看下一部分
1.2 如何描述三元组?
前面我们介绍了知识的概念和SPO三元组,我们已经知道了,知识图谱是一条条知识组成的,一条条知识又是三元关系(Subject——Predicate——>Object)组成的,那么问题就来了,如何描述这个三元关系呢?
使用RDF来表示
在知识图谱中,我们用RDF形式化地表示这种三元关系。[1] 从定义上来看,RDF(Resource Description Framework),即资源描述框架,是W3C制定的,用于描述实体/资源的标准数据模型。[1] 为什么我们描述知识要用“Web”的形式去描述呢?因为网络、Web中的各项关系,其实和知识的抽象概念很像,这是一种即像树,又像网的东西。
有唯一确定主体、有连接属性的谓语、有明确属性值。
那么RDF框架下,对三元组是如何具体定义的呢?我们先来了解一下RDF图中定义的