知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成,如图1.3所示。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。
图1.3 知识图谱
1.3.1 知识图谱的应用
从发展的过程来看,知识图谱是在自然语言处理的基础上发展而来的。关于知识图谱的概念,并没有严格的定义。一般来讲,知识图谱的主要目标是用来描述真实世界中存在的各种实体和概念,以及它们之间的关系,通过这种关系来描述实体之间的关联,比如父亲和母亲的关系、和女儿之间的关系、和儿子之间的关系等。知识图谱还可以通过人为构建和定义去描述各种概念之间弱的关系,比如“上学”和“结婚”。
简单的理解知识图谱就是一个知识库,我们能利用这个知识库给定用户要查询的内容,然后到知识库中去进行关联分析和推理,试图让机器了解用户的意图,反馈和查询相关内容的更多关联信息。
举一个简单的例子,当你用所有的菜谱构建知识图谱,然后问“夏天西红柿怎么做汤”时,知识图谱会查询“夏天”“西红柿”和“汤”在所有菜谱中的直接和间接关系,进而推荐几个最匹配的菜谱。
总体而已,知识图谱有两大类主要应用:
l 搜索和问答类型的场景。
l 自然语言理解类的场景。
知识图谱的典型应用场景如图1.4所示。
图1.4 知识图谱的典型应用场景
知识图谱的核心元素是知识库。简单来讲,知识库包含了所有规则的集合,通过这些规则将事实和数据联系起来,是一种基于知识的系统,具有智能性。目前常见的知识库很多,如图1.5所示。更通俗地理解,知识库就是大量知识的汇聚。例如,用户对一些问题感兴趣的时候,可以从维基百科、百度百科、搜狗百科等网站获取大量的知识。
图1.5 常见的知识库
1.3.2 知识图谱中的三元组
知识图谱虽然可以总结和提取自然语言,但提取到的这些知识是由非结构化的自然语言组合而来的,这样有助于人们阅读,却不适合计算机处理。为了让计算机方便处理和理解,我们需要更加形式化、简洁化的方式来表示知识。
针对于以上问题,知识图谱引入了三元组这一架构。三元组的模型简单地可以表示为(实体,实体关系,实体)。如果把实体看作结点,把实体关系(包括属性、特征、类别等)看作一条边,那么包含了大量三元组的知识库就成为一个庞大的知识图,如图1.6所示。
图1.6 由三元组构成的知识图
其中,中间的方块表示涉及的主体,四周的图形分表表示不同的属性值。实际上,无论是主体部分还是不同的属性值,这些都是知识库的实体内容。不同的箭头代表不同的关系。通过连线的部分可以用三元组刻画出实体和属性之间的关系。
知识图谱的构建可以由以下3个步骤完成:
l 数据采集。构建知识图谱是以大量的数据为基础的,需要进行大规模的数据采集。采集的数据来源一般是网络上的公开数据、学术领域已整理的开放数据、商业领域的共享和合作数据,这些数据可能是结构化、半结构化或者非结构化的,数据采集器要适应不同类型的数据。
l 知识抽取。对数据进行粗加工,将数据提取成实体-关系三元组。根据数据所在的问题领域,抽取方法可分成开放支持抽取和专有领域知识抽取。
l 知识链接和融合。由于表征知识的实体-关系三元组抽取自不同来源的数据,因此不同的实体可能进一步融合成新的实体,实现在抽象层面的融合。根据融合之后的新实体,三元组集合可以进一步学习和推理,将表达相同或相似含义的不同关系合并成相同关系、检测相同实体对之间的关系冲突等。
知识图谱构建完成之后,形成了一个无向图网络。可以运用一些图论方法进行网络关联分析,将其用于文档、检索以及智能决策等领域。例如,阿里的知识图谱以商品、标准产品、标准品牌、标准条码、标准分类为核心,利用实体识别、实体链指和语义分析技术整合关联了舆情、百科、国家行业标准等9大类一级本体,包含了百亿级别的三元组,形成了巨大的知识网,然后将商品知识图谱广泛地应用于搜索、前端导购、平台治理、智能问答、品牌商运营等核心、创新业务。