如果说人工智能是帮助机器感知这个世界,那么知识图谱就是帮助机器理解这个世界。
图谱图谱,首先是个图,那就必须要有节点和边。我们都知道计算机里的“图”,是由同种类型的节点和同种类型的边组成的。那么知识图谱呢?
可以将“知识图谱”看成是“多关系图Multi-relational Graph”,由不同类型的节点和不同类型的边组成。这种一种模拟人脑对知识的学习理解过程的关联网络。这些节点和边组成的结构化的语义知识库,抽象地描述了现实世界中各种实体及其之间的相互关系。
知识信息有2种来源:
知识信息抽取的难点在于:如何将非结构化的数据转换为结构化的数据:
Neo4j系统是目前使用率最高的图数据库,它拥有活跃的社区,而且系统本身的查询效率高,但唯一的不足就是不支持准分布式。
一般来说,知识图谱会应用在问答、搜索、个性化推荐等场景中。知识图谱的类型决定了其能够发挥作用的领域。总的来说,知识图谱分为通用型知识图谱(Open Domain)和领域型/垂直型/行业型知识图谱(Domain-Specific)。
通用型知识图谱,关注的是知识的宽度,一般是对常识性知识的沉淀,比如搜索引擎类的百度、Google等的知识图谱、维基百科等等。
领域型/专业型/垂直型知识图谱,关注的是知识的深度。通常沉淀的是专业领域内的知识,知识结构结构比较复杂,要求推理的准确性和可解释性。
1、智能搜索
传统的搜索,底层关键技术是关键词匹配技术,搜索的结果就是与关键词匹配得上的结果。
而运用知识图谱的智能搜索,底层关键技术是知识图谱技术,不仅可以输入关键词进行搜索,还可以输入更符合人脑思考的自然语言组成的语句,而智能搜索得到的结果也不只是与关键词匹配的上的结果,除此之外还有大量与核心结果相关的其他结果,共同组成这次搜索的最终结果。总结起来,就是在传统搜索的基础上,输入可以是更复杂的自然语言,输出的结果也更丰富。
2、智能推荐
可以采用知识图谱对用户进行用户画像,让不同的行销活动达到最合适的人群上去精准营销,获得最高的投入产出比。这其中就用到了基于大量知识图谱数据做的知识推理,现在的推荐算法中常用知识推理来帮助算法挖掘出更多的信息。算法就可以基于这些信息向用户推荐其从未接触过或从未见到过的东西,用户对这些东西的反应有2种。第1种就是显式反馈,好比推荐给你一部新电影,你的评分就显式地反映了你的喜好;第2种就是隐式反馈,好比推荐给你一些衣服,你对这些衣服的不同行为就隐式地反映了你对这些衣服的喜好程度。
3、智能问答
传统方式大多采用配置问答对的方式实现各种问答场景,这种方式适用于比较简单的场景,在关联关系特别复杂或海量数据中还存在着大量多跳关系的场景中就不行了,这时候知识图谱就派的上用场了,智能搜索将加快数据搜索的速度与搜索结果的丰富度。
4、智能专家
知识图谱技术里面本身就包含了“知识抽取”“知识表示”“知识融合”“知识存储”“知识推理”等技术,可以进行领域知识的构建与关联。
好比一个业务系统的设计,关键在于数据库表的设计一样。知识图谱系统的设计,一个是要对业务有深入的了解,另一个就是要对业务未来的变化有充分的预估。因此,有大神总结出知识图谱的构建有以下几个步骤:
1、具体业务问题的定义
在具体情境下,不是为了使用知识图谱而使用知识图谱,而是确实有以下强烈的需求和条件需要使用知识图谱,才可以选择构建一个知识图谱系统:
2、数据的收集&预处理
比如数据源的确认、把非结构化的数据处理成结构化的数据,这个过程中可能会用到自然语言处理技术(NLP)等等。
3、知识图谱的设计
通常要考虑的因素包括:实体,实体的属性,实体间的关系,可以作为属性的实体,可以作为实体的属性。知识图谱的设计要遵循“BEAF”原则:
4、知识图谱数据的存入
要根据不同的业务情况使用不同的图数据库:
5、上层应用的开发
使用知识图谱来解决实际问题。从算法的角度看,知识图谱有2种不同的使用方式:①基于规则的方式,②基于概率统计的方式,③基于动态网络的分析。
在数据量不大时或者专业性较强的领域,通常会基于规则进行。因为一来数据量不大,基于概率统计会使得知识图谱变得稀疏(Sparse),二来专业性较强的领域规则的制定会相对容易一些。
在数据量很大的时候,通常会基于概率统计进行。一来是因为数据量大,概率统计不会使知识图谱很稀疏,二来是因为在大量数据中进行规则制定也是一件成本极高的事情。
5.1基于规则的方式:
5.2基于概率统计的方式:
5.3基于动态网络的分析:
上述2种方式是基于静态的知识图谱进行分析的,也就是说,关注点只在当前的图谱形状,并未考虑到图谱结构未来的变化。但往往图谱结构的变化中是蕴藏着一些隐含信息的。
6、开发工具
本体/实体开发工具:protege,基于Jena开发的本体设计编辑工具。