笔者是一只已经离职的AI产品经理,主要擅长的方向是知识图谱与自然语言处理,写这些文章是为了总结归纳目前已经搭建的知识体系,也在于科普。如有不对,请指正。
知识图谱的定义
知识图谱在国内属于一个比较新兴的概念,国内目前paper都比较少,应用方主要集中在BAT这类手握海量数据的企业,这个概念是google在2012年提出的,当时主要是为了将传统的keyword-base搜索模型向基于语义的搜索升级。知识图谱可以用来更好的查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。
个人认为,知识图谱最大的优势是在于对数据的描述能力非常强大,各种机器学习算法虽然在预测能力上很不错,但是在描述能力上非常弱,知识图谱刚好填补了这部分空缺。
知识图谱的定义非常多,我这里提供一部分我自己的理解:
1.知识图谱主要目标是用来描述真实世界中存在的各种实体和概念,以及他们之间的强关系,我们用关系去描述两个实体之间的关联,例如姚明和火箭队之间的关系,他们的属性,我们就用“属性--值对“来刻画它的内在特性,比如说我们的人物,他有年龄、身高、体重属性。
2.知识图谱可以通过人为构建与定义,去描述各种概念之间的弱关系,例如:“忘了订单号”和“找回订单号”之间的关系
知识库的概念
知识库的种类
知识库目前可以分为两种类型:Curated KBs 和 Extracted KBs
Curated KBs:以yago2和freebase为代表,他们从维基百科和WordNet等知识库抽取了大量的实体及实体关系,可以把它理解城一种结构化的维基百科。
Extracted KBs:主要是以Open Information Extraction (Open IE), Never-Ending Language Learning (NELL)为代表,他们直接从上亿个网页中抽取实体关系三元组。与freebase相比,这样得到的实体知识更具有多样性,而它们的实体关系和实体更多的则是自然语言的形式,如“姚明出生于上海。” 可以被表示为(“Yao Ming”, “was also born in”, “Shanghai”)。直接从网页中抽取出来的知识,也会存在一定的噪声,其精确度低于Curated KBs。
目前行业内使用的比较多的还是Curated KBs,主要是因为Curated KBs比较简单,容易构建,噪音少。
什么是知识库
a)“姚明出生于上海”
b)“姚明是篮球运动员”
c)“姚明是现任中国篮协主席”
以上就是一条条知识,把大量的知识汇聚起来就成为了知识库(Knowledge Base)。我们可以从wikipedia,百度百科等百科全书获取到大量的知识。但是,这些百科全书的知识是由非结构化的自然语言组建而成的,这样的组织方式很适合人们阅读但并不适合计算机处理。
图1:知识图实例
知识库的表示形式
为了方便计算机的处理和理解,我们需要更加形式化、简洁化的方式去表示知识,那就是三元组(triple)。
“姚明出生于中国上海” 可以用三元组表示为(Yao Ming, PlaceOfBirth, Shanghai)[1]。这里我们可以简单的把三元组理解为(实体entity,实体关系relation,实体entity)。如果我们把实体看作是结点,把实体关系(包括属性,类别等等)看作是一条边,那么包含了大量三元组的知识库就成为了一个庞大的知识图。
有些时候会将实体称为topic,如Justin Bieber。实体关系也可分为两种,一种是属性property,一种是关系relation。如下图所示,属性和关系的最大区别在于,属性所在的三元组对应的两个实体,常常是一个topic和一个字符串,如属性Type/Gender,对应的三元组(Justin Bieber, Type, Person),而关系所在的三元组所对应的两个实体,常常是两个topic。如关系PlaceOfBrith,对应的三元组(Justin Bieber, PlaceOfBrith, London)。
图2:Justin Bieber知识图
(图中蓝色方块表示topic,橙色椭圆包括属性值,它们都属于知识库的实体;蓝色直线表示关系,橙色直线表示属性,它们都统称为知识库的实体关系,都可以用三元组刻画实体和实体关系)
知识库的数据结构
这里只是简单介绍一下数据结构,知识表达这一块会在《知识图谱基础(二)-知识图谱的知识表达系统》中详细讲解。
读者只要记住,freebase的基础知识表达形式:(实体)-[关系]-(实体),(实体)-[关系]-(值)即可,参考图3,姚明和叶莉的关系。
图3 知识表达
知识图谱的应用
通过知识图谱,不仅可以将互联网的信息表达成更接近人类认知世界的形式,而且提供了一种更好的组织、管理和利用海量信息的方式。下图是笔者整理的知识图谱有关的应用,接下来的一些文章笔者会对下面的应用进行剖析。
图4 知识图谱的应用
从图4上看,知识图谱的应用主要集中在搜索与推荐领域,robot(客服机器人,私人助理)是问答系统,本质上也是搜索与推荐的延伸。可能是因为知识图谱这项技术(特指freebase)诞生之初就是为了解决搜索问题的。知识存储这一块可能是企查查和启信宝这些企业发现使用图结构的数据比较好清洗加工。
在语义搜索这一块,知识图谱的搜索不同于常规的搜索,常规的搜索是根据keyword找到对应的网页集合,然后通过page rank等算法去给网页集合内的网页进行排名,然后展示给用户;基于知识图谱的搜索是在已有的图谱知识库中遍历知识,然后将查询到的知识返回给用户,通常如果路径正确,查询出来的知识只有1个或几个,相当精准。
问答系统这一块,系统同样会首先在知识图谱的帮助下对用户使用自然语言提出的问题进行语义分析和语法分析,进而将其转化成结构化形式的查询语句,然后在知识图谱中查询答案。