知识图谱(KnowledgeGraph)以结构化的形式描述客观世界中的概念实体及其关系,将互联网的信息表达成更接近人类认知世界的形式,提供了一种更好地组织,管理和理解互联网海量信息的能力。
知识图谱关注概念,实体及其关系,其中实体是客观世界中的事物,概念是对具有相同属性的事物的概括和抽象。本体是知识图谱的知识表示基础,可以形式化表示为O={C,H,P,A,I},C为概念集合,如事务性概念和事件类概念,Hshi概念的上下位关系集合,P是属性集合,描述概念所具有的特征,A是规则集合,描述领域规则,I是实例集合,描述实例-属性-值。
知识图谱的定义:“知识图谱本质上是语义网络(Semantic Network
)的知识库”。换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图(Multi-relational Graph
)。
什么是对关系图?
图(Graph)是由节点(Vertex)和边(Edge)来构成,但这些图通常只包含一种类型的节点和边。多关系图一般包含多种类型的节点和多种类型的边。
实体(Entity)
”来表达图中的节点,用“关系(Relation)
”来表达图中的边;李小龙的关系图谱:
从数据角度来看,知识图谱通过对结果化数据、非结构化数据、半结构化数据进行处理、抽取、整合,转化成“实体—关系—实体”的三元组。
这个问题的答案是非常宽泛的,如果从一个知识库或者数据库的角度来看,知识图谱可以是任何系统的基础工程,涉及到存储、记忆、分析和智能的东西,都可以应用知识图谱。知识图谱首先是一个规模庞大的数据库(或者说知识库),百万级、亿级的数据相互关联,可以从更多维度对事物进行更精确的分析。
知识图谱可以用于以下几个领域:
知识图谱有广泛的应用和巨大的应用价值,越来越多的企业也在着手进行知识图谱的构建。
按流程来说,知识图谱具有知识表示与建模、知识抽取、知识融合、知识图谱推理、知识统计与图挖掘、知识检索与知识分析等主要的几步。
构建知识图谱的生命周期:Schema 定义、知识抽取、知识融合、知识存储、知识推理这样的循环迭代的过程。
从各种数据源中进行实体识别、关系识别,从而抽取实体、关系、属性以及实体间的关系,属性的值,完成本体的知识表达,具体可以参照前文关于知识库的表达部分。对于知识图谱来说,数据源我们知道有结构化数据,非结构化数据和半结构化数据。
数据来源一般有:
信息的抽取是知识图谱构建的第一步,关键的点是:如何从数据源中自动抽取到实体、关系、以及属性等机构化技术。
实体抽取又称为实体识别,就是从文本中自动识别出来命名的实体,它是信息抽取中最基础的部分。
关系抽取就是进行语义的识别,抽取到实体间的关系,这个是信息抽取中最关键的部分,也是形成网状知识结构的基础。
关系的识别运用到各种算法模型以及机器学习的方法,属性抽取实现的是实体属性的完整勾勒。
主要是新知识的融合、整合、判别同义、近义、消除歧义、矛盾。
比如,某些实体数据在显示世界中有多种表达方式,公司的注册名称、公司的简称等,要对这些知识进行同义融合,再比如某些特定的称谓也许对应着多个不同的实体。
知识融合包括两部分:实体链接和知识合并。
知识图谱主要有两种存储方式:一种是基于 RDF 的存储;另一种是基于图数据库的存储。它们之间的区别如下图所示。RDF 一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF 以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。
知识存储,就是如何选择数据库,从选择层面,我们有图数据库,有NoSQL的数据库,也有关系型数据库,数据库有很多选择。具体什么样的情况下选择什么样的数据库?通常是如果说知识图谱的关系结构非常的复杂、关系非常的多,这时候建议使用这个图数据库,比如Neo4J这样的数据库。顺便了解一下目前主流的几款图数据库,Titan、Graph Engine、Neo4J这个三个分别都是开源的,然后Titan是Apache旗下的,Graph Engine是MIT的License,Neo4J是GPL开源的,既有商业版,也有也有开源免费版。然后它们的平台,像Titan是Linux,Graph是windows。而数据的支撑量级,像Titan是后端存储,基于Cassandra/Hbase/BDB这样的分布式存储引擎,可以支持更大的数据量,千亿级的数据量级;Neo4J商业版也可以支持到百亿级的,但是它的非商业版在数据量级比较大的时候,一般是在几千万级的时候就可能会出现一些问题。
知识推理这边有几种方法,基于符号的推理、基于 OWL 本体的推理、基于图的方法(PRA算法)、基于分布式知识语义 标识方法(Trans系列模型)、TransR 模型、基于深度学习的推理。
知识图谱不仅仅是根据关系的检索,更大的核心用途是推理,发现图谱中的隐藏关系,而不是发现新知识。
1)通过实体间的关系推理相关关系
通过多实体间的关系,可以推断其他的关系,比如张三和李四之间是夫妻关系,王五是张三的领导,王五居住在A城市,我们可以推论李四也居住在A城市。
2)通过实体间的关系推理相关属性
通过多实体间的关系,实体的属性值,可以推断其实体的属性值。这个与通过实体间的关系推论关系道理类似,也可以通过一个实体间的关系、根据实体的属性推断另一个实体的属性。
在AI中涉及到推理的方法有很多,有基于逻辑的推理,有基于深度学习的推——这个就是基于图谱的推理,也就是通过关系、属性的因素做的推理。
在知识图谱的应用阶段已经简要说明了通用领域知识图谱和专用领域知识图谱的应用,这里只聚焦其中三项技术:搜素、问答系统、推荐系统。
知识图谱依托庞大的数据和关系对,可以对搜索进行增强,不但针对搜索词展示出最接近的信息,还把相关的选项也展示出来,提高了查准率和查全率,另外可以通过图谱化的展现和互动让用户更加方便的了解信息。
一个语义搜索系统的基本框架包括查询构建、查询处理、结果展示、查询优化、语义模型、资源及文档等。
具体的应用中,如搜索“混凝土”,不仅搜索混凝土,还会找到其在知识图谱中的上位词,下位词,同义词等词集合,比如砼(同义词)、轻质混凝土(下位词)等等。
知识问答是用自然语言的方式与机器进行交互并得到答案,是知识图谱的重要应用。问答是一种典型的智能行为,图灵测试就是看机器能否做到人一样的问答效果。问答系统不但要求系统本身能够理解提问者的语义,还要求根据知识图谱进行知识搜索或知识推理以形成答案。可以说问答系统是信息检索系统的一种高级形式,因为问答系统中同样有查询式理解和知识检索这两个重要过程,且与智能搜索中相应过程中的相关细节是一致的。
一个问答系统应具备的四大要素:
(1)问题
是问答系统的输入,通常以问句的形式出现(问答题),也会采用选择题、多选题、列举答案题和填空题等形式。
(2)答案
是问答系统的输出,除了文本表示的答案(问答题或填空题),有时也需要输出一组答案(列举问答题)、候选答案的选择(选择题)、甚至是多媒体信息。
(3)智能体
是问答系统的执行者,需要理解问题的语义,掌握并使用知识库解答问题,并最终生成人可读的答案;
(4)知识库
存储了问答系统的知识,其形态可以是文本、数据库或知识图谱。
推荐系统是我们每天都能接触到的系统,如淘宝的千人千面,网易云音乐的个性化歌单,目前的个性化推荐算法中应用最广的是协同过滤算法。
协同过滤分为协同和过滤两个步骤,协同就是利用群体的行为来做推荐决策,而过滤就是从可行的推荐方案中将用户最喜欢的方案找出来。通过群体的协同和每个用户是否喜欢推荐的反馈不断迭代,最终的推荐会越来越准确。当前协同过滤算法主要包括基于用户的协同过滤和基于物品的协同过滤,其核心是怎么计算标的物之间的相似度以及用户之间的相似度。
将与当前用户最相似的用户喜欢的标的物推荐给该用户,这就是基于用户的协同过滤的核心思想;将用户操作过的标的物最相似的标的物推荐给用户,这就是基于标的物的协同过滤的核心思想。
推荐的过程可以简单理解为三个步骤:召回、过滤、排序。
基于协同过滤的推荐系统,主要有以下问题:
知识图谱可以针对这些问题进行改善,知识图谱可以用来表示实体之间的关系,如推荐系统中物品与物品、用户与物品、用户与用户之间的关系。
我们在知识图谱建设当中的一些经验: