知识谱基础(1)-什么是知识谱?

作者是一位离职的AI产品经理,主要兴趣是知识图谱和自然语言处理。我写这些文章是为了总结目前已经构建的知识体系,也是为了科普。有不对的地方请指正。

知识地图在中国是一个相对较新的概念。目前国内论文较少,应用主要集中在BAT等拥有海量数据的企业。这个概念是google在2012年提出的,当时主要是将传统的基于关键词的搜索模式升级为基于语义的搜索。知识图谱可以用来更好地查询复杂的相关信息,从语义层面理解用户意图,提高搜索质量。

个人认为,知识图谱最大的优势是有非常强的数据描述能力。虽然各种机器学习算法在预测能力上非常好,但是在描述能力上却非常弱,知识图谱正好填补了这一空白。

知识地图的定义有很多,我在这里提供一些自己的理解:

1.知识地图的主要目标是描述现实世界中存在的各种实体和概念及其强关系。我们用关系来描述两个实体之间的关系,比如姚明和火箭队的关系,以及他们的属性。我们用“属性-值对”来描述它的内部特征。比如我们的角色有年龄、身高、体重等属性。

2.知识图谱可以通过人工构建和定义来描述各种概念之间的弱关系,比如“忘记订单号”和“把订单号找回来”之间的关系

目前知识库可以分为两种类型:精选知识库和抽取知识库。

策划型KBs:以yago2和freebase为代表,他们从维基百科和WordNet中提取了大量的实体和实体关系,可以理解为结构化的维基百科。

抽取的KBs:主要基于开放信息抽取(openie),?以永无止境语言学习(Nell)为代表,他们直接从数以亿计的网页中提取实体关系三元组。与freebase相比,这种方式获得的实体知识更加多样,它们的实体关系和实体更多的是以自然语言的形式出现,比如“姚明出生在上海。”可以表述为(“姚明”、“也出生于”、“上海”)。直接从网页中提取的知识也会有一些噪音,其准确率低于经过策划的KBs。

a)“姚明出生在上海”

b)“姚明是一名篮球运动员”

c)“姚明是中国篮球协会的现任主席”

以上是一个个知识,当大量的知识聚集在一起,就成了知识库。我们可以从维基百科、百度百科等百科上获得很多知识。而这些百科全书的知识是用非结构化的自然语言组织起来的,适合人阅读但不适合计算机处理。

为了便于计算机处理和理解,我们需要一种更正式、更简洁的知识表达方式,即三元组。

“姚明出生于中国上海”可以用三连号表示为(姚明,出生地,上海)[1]。这里我们可以简单的把三元组理解为(实体,实体关系,实体实体)。如果我们把实体看作一个节点和实体的关系(包括属性、类别等。)作为一条边,那么包含大量三元组的知识库就变成了一个庞大的知识图。

有时实体被称为主题,如贾斯汀比伯。实体关系也可以分为两种,一种是属性性质,一种是关系。如下图所示,属性和关系最大的区别在于,属性所属的三元组对应的两个实体往往是一个主题和一个字符串,比如属性类型/性别和对应的三元组(贾斯汀比伯、类型、人),而关系所属的三元组对应的两个实体往往是两个主题。如关系Placeofbrith,对应三元组(贾斯汀比伯,PlaceOfBrith,伦敦)。

(图中蓝色方块代表topic,橙色椭圆包含属性值,两者都属于知识库的实体;蓝线代表关系,橙线代表属性,统称为知识库的实体关系,可以用三元组来描述。

这里只是简单介绍一下数据结构,知识表达会在《知识地图基础(二)——知识地图的知识表达系统》中详细讲解。

读者只需要记住freebase的基本知识表达:(实体)-[关系]-(实体),(实体)-[关系]-(值),参考图3,姚明和叶莉的关系。

通过知识图谱,不仅可以将互联网上的信息以更接近人类认知世界的形式表达出来,而且为组织、管理和利用海量信息提供了更好的方式。下图是笔者整理的与知识图谱相关的应用,后续文章将对以下应用进行分析。

从图4来看,知识图谱的应用主要集中在搜索和推荐领域。机器人(客服机器人,个人助理)是一个问答系统,本质上也是搜索和推荐的延伸。可能是因为知识图谱(尤其是freebase)的技术诞生就是为了解决搜索问题。知识存储这一块,可能是因为企业搜索、启信宝等企业发现,用图结构来清理和处理数据更好。

在语义搜索中,知识图谱的搜索不同于传统的搜索。常规的搜索是根据关键词找到对应的网页集合,然后通过页面排名等算法对网页集合中的网页进行排名,然后展现给用户。基于知识地图的搜索是在已有的地图知识库中遍历知识,然后将查询到的知识返回给用户。通常路径正确的话,查询到的知识只有1或者几,还是比较准确的。

在问答系统中,系统还会借助知识图谱,对用户使用自然语言提出的问题进行语义分析和语法分析,然后转化为结构化的查询语句,再在知识图谱中查询答案。