知识图谱 | 基础篇
1 什么是知识图谱?
提及知识图谱,我们不妨从三个角度出发来进行理解:图形角度、数据角度和技术角度。
1.1 图形角度
先来看看下面这张图
上面这个图就是知识图谱的一种表示方式,C罗想必大家不陌生(咳咳,还认识梅西),具体展示了C罗各方面的信息,比如效力球队,获得的奖项等,同时除了展示C罗直接的信息之外,还会展示多层的内容:比如从足球运动员》运动员》人物,这也就使得上述图谱内容变得非常丰富。
1.2 数据角度
从数据的角度又该如何理解呢?还是来看上面这个图,其实它是由下述这种一个一个的三元组所构成:
- C罗(实体)-效力球队(属性)-皇家马德里(属性值)
- 足球运动员(实体)-属于(关系)-运动员
- …
这就是从数据的角度来进行描述知识图谱,即用多个三元组来进行表示。
知识图谱在逻辑上可分为模式层与数据层两个层次。比如上面括号内的内容就是模式层(主要有两种:实体-属性-属性值;实体-关系-实体),也被称为schema,而数据层主要是由一系列的事实组成,是schema的一个实现,即模式层分别的对应!
1.3 技术角度
知识图谱在技术角度来看实际上是一套工程技术,包括知识表示、知识抽取、知识存储、知识推理、知识融合、知识检索等。
说实话,笔者刚接触知识图谱时也觉得内容非常的庞大(当然现在也觉得是),每一个步骤其实都有很多的内容,不仅涉及理论上,还有很多工程层面的实现,所以真正想把知识图谱学好学精还是需要很多时间精力的,共勉之,一起加油~
2 知识图谱和机器学习的关系?
关系即分类区别和联系。
先说区别:主要就是逻辑思想不同。知识图谱的想法是构建三元组,先形成庞大的知识图谱体系,而机器学习则是利用已有的数据进行模型训练,然后再进行下游任务,比如分类,聚类,降维等等
表面来看,知识图谱和机器学习好像并无关联,但实际上还是有一些共通的思想和关联在的。
2.1 部分应用殊途同归
知识图谱一旦构建完毕之后,会进行很多的应用,有一类典型的应用就是【关系补全】,即两个节点之间的关系未知,能否利用已知的图谱关系类型信息进行补全?
熟悉机器学习的同学就会了解,这本质上可以理解为机器学习中的【分类】问题,已知了很多的标签样本(已知的关系类型),预测未知的样本标签(补全关系类型)。
2.2 部分应用相结合
除了一些殊途同归的应用之外,有些应用是可以互相结合的!比如说知识图谱构建完成后,下游任务很重要的一块内容就是:社团划分算法(比louvian、lpa标签传播等),以欺诈用户为例,如何判断根据社团划分得到的用户群体为欺诈用户呢?一种方法就是和机器学习的预测结果相结合!比如根据社团呼划分得到的100个用户,如果机器学习模型预测80人都是坏人,那么是不是就可以说明结果的有效性呢?当然仅仅是举一个例子,提供了一个方向,更多的需要在实践中不断探索,比如这个阈值如何设置更加合理?
2.3 过程中可以互为补充
比如机器学习模型很大的一块内容是特征工程,而一旦特征构建完成之后,是可以补充到知识图谱上的。比如通过特征工程得到张三的信用得分为500分,那么就可以构建如下三元组:【张三】-【信用得分】-【500】,加入到知识图谱中了。
反过来,机器学习模型也可以从知识图谱中抽取相应的特征,为自己的模型所用,而且由于知识图谱涵盖的信息较为全面,对于模型的预测也是非常有帮助~
3 知识图谱的分类
知识图谱的分类主要有两大类方法,
一种是根据知识图谱的适用范围来进行划分,可分为通用知识图谱和领域知识图谱。
一种是根据知识图谱的内容来进行划分的,可分为数据知识图谱和规范知识图谱。
3.1 通用知识图谱和领域知识图谱
3.1.1 通用知识图谱(GKG)
- 知识概况:以常识性知识为主,强调知识的广度
- 使用者:使用者为一般用户
- 构建方式:自底向上构建,很多基于维基百科
- 典型例子:
- 常识知识类:FreeBase,DBPedia,Wikidata,ConceptNet
- 语言知识类:WordNet
3.1.2 领域知识图谱(DKG)
- 知识概况:面向特定领域的知识,强调知识的深度
- 使用者:使用者为特定领域人员
- 构建方式:自顶向下构建,需要领域专业人员或专业资料
- 典型例子:医疗、金融、法律、生态环境、能源制造、情报。。。
3.1.3 两者比较
联系为:GKG对于DKG有着显著支撑作用。具体见下图:
区别见下:
3.2 数据知识图谱和规范知识图谱
3.2.1 数据知识图谱
- 传统知识图谱
- 面向通用领域或特定领域
- 事实数据之间的关联关系
比如下图:
3.2.2 规范知识图谱
- 新型知识图谱
- 面向特定领域
- 领域概念和规范之间的关联关系
- 金融审计规范,医学诊疗流程
- 可与数据知识图谱进行匹配(一致性检查),用于异常检测和预警
比如见下图:
4 知识图谱的表示
知识图谱的表示主要有两种方式,一种是符号化表示,另一种是分布式表示。
4.1 符号化表示(DKG)
比如文章一开始C罗的那个图谱即采用了符号化的表示。同样的例子见下图:
4.2 分布式表示(DR)
知识图谱的分布式表示即通过表示学习后,图谱上每一个节点都可以用指定维度的向量来进行表示。
下图中的h表示头实体,t表示尾实体,r表示关系类型,均用向量化进行表示。(具体的表示学习方法后续还会单独开一篇推文进行介绍,敬请期待~)
4.3 两者比较
5 知识图谱的构建
分为通用型的知识图谱构建和领域知识图谱的构建进行描述。
5.1 通用型知识图谱
一般采用自底向上的构建方法。
大致步骤包括:知识获取、知识存储、知识抽取、知识融合、知识计算和知识应用。
5.2 领域知识图谱
一般采用自上向下的构建方法。
- 人工构建
- 需要大量的领域专家,阅读大量的专业材料
- 需要与计算机专业人士配合,将知识表示为计算机可理解的形式
- 从结构化数据中自动抽取
- 从领域相关数据库的表名和字段名中提取
- 数据库表覆盖范围有限,只有基本概念及其关系
- 从非结构化数据(文本)中自动抽取
- 基于规则的方法:需要领域知识,扩展性差,发展变化快
- 数据驱动的方法:需要大量的标注数据,通常不易获取
- 需要结合计算机强大的计算能力和领域专业人员的认知能力与经验
6 知识图谱可以干嘛?
知识图谱一旦构建ok后,可以进行很多的下游任务,具体包括但不局限于下面这些内容:
7 参考
- 知识图谱与机器学习如何结合?:http://www.woshipm.com/ai/4091143.html
- 通俗易懂解释知识图谱(Knowledge Graph):https://www.cnblogs.com/huangyc/p/10043749.html