知识图谱技术路线
知识图谱
知识表示
含义
- 将知识用计算机可以理解的方式表示出来
分类
-
符号逻辑
- 命题逻辑
- 谓词逻辑
- 产生式表示
- 框架和语义网络
-
语义网
-
是一种用图来表示知识的结构化方式
-
属性图
-
节点
-
边
-
属性
- 键值对,属性只能有一个值
-
类型
- 关系类型/边的名称
-
标签
- 节点的类型
-
-
W3C
-
基于标签的半结构置标语言XML
-
基于万维网资源语义元数据描述框架 RDF
-
节点
-
边
-
属性
- 边也可称为属性(谓词),和属性指向的对象可以称为属性值,而所有属性值(文字或URI)都存储为节点
-
类型
- 节点使用rdf:type来链接到它的类型,另一个节点带有与其关联的附加信息
-
标签
- 标准谓词,所有节点均属于一个谓词
-
-
基于描述逻辑的本体描述语言OWL
-
-
-
-
链接数据
- 利用语义网技术在网上发布数据
-
知识图谱
-
描述各种概念、实体及其之间的关系
-
概念
- 通常反映的是一组实体的种类或对象的类型,如人、动物、气候、组织机构等
-
实体
- 是指客观世界中存在的、具有可区别性的具体事物
-
属性(值)
- 是指某个实体具有的特征及参数,不同属性对应不同的边
-
关系
- 是指连接不同实体的“边”,描述概念、实体之间客观存在的关联,可以是组成关系、隶属关系、因果关系、推论关系、相近关系等
-
-
表示学习
-
图嵌入(graph embedding)
- 相似度计算
- 链接预测/知识补全
- …
构建模式
架构
-
逻辑架构
-
模式层
- 模式层是知识图谱的逻辑基础和概念模型,通常采用本体库进行管理,引入本体是为了知识的复用和共享,涉及的本体包括概念、属性以及概念之间的关系,可以对知识结构进行描述
-
数据层
- 数据层是知识图谱的基础,是在模式层的规范和约束下,对本体库在实体层面的丰富和扩充。 数据层由一系列的事实组成,并以(实体⁃关系⁃实体) 或( 实体⁃属性⁃属性值)的三元组形式进行存储
-
-
技术架构
-
自底向上
- 先构建数据层,再构建模式层
-
自顶向下
- 先构建模式层,再构建数据层
-
分类
-
通用知识图谱
-
数据来源:开源数据
-
知识模型
- 难以构建
-
构建方式
- 自底向上
-
难点
- 构建知识模型
-
-
领域知识图谱
-
数据来源:领域数据
-
知识模型
- 基于需求构建
-
构建方式
- 自顶向下
-
难点
- 数据一致性和准确性
-
知识建模
开放型知识图谱
- 自底向上建模(对现有实体进行归纳,形成底层概念,逐步向上抽象成上层概念)
领域知识图谱
- 自顶向下建模(由领域专家进行人工编制,从顶层概念进行定义本体,逐步细化)
建模方法
-
手工建模
-
步骤
- 明确领域本体及任务
- 模型复用
- 列出本体涉及领域中的元素
- 明确分类体系
- 定义属性及关系
- 定义约束条件
-
-
半自动建模
-
结构化数据
-
半结构化数据
-
非结构化数据
- 序列标注+分类
-
知识抽取
结构化数据
-
D2R转换
-
ETL
-
难点:复杂表数据的处理
-
-
图映射
- 难点:数据对齐
半结构化数据
-
包装器
- 利用有监督学习方法从已标注的训练数据中学习抽取的规则,然后,对相同模板的其他网页进行信息抽取
非/半结构化数据
-
本体抽取
-
无监督
-
步骤
- 生成候选短语
- 计算统计特征
- 质量评分
- 排序输出
-
-
有监督
-
步骤
- 生成候选短语
- 统计特征计算+样本标注
- 分类器学习
- 质量评分
- 排序输出
-
-
-
实体抽取
-
序列标注方法
- IOB
- BIOES
-
命名实体识别(NER)
-
基于规则的抽取方法
- 字典
- 模板
- 正则表达式
-
基于统计模型的方法
- 最大熵(Maximum Entropy,ME)
- 条件马尔可夫(Conditional Markov Model,CMM)
- 隐马尔可夫(Hidden Markov Model,HMM)
- 最大熵马尔可夫模型 (MEMM)
- 条件随机场(ConditionalRandom Fields,CRF)
-
基于深度学习的方法
- 卷积神经网络 (CNN)
- 递归神经网络 (RNN)
-
-
工具
- HanLP
- CRF++
-
-
关系抽取
-
难点
- 关系表达的隐含性
- 关系的复杂性(二元或多元)
- 语言的多样性
-
限定域
-
文本分类任务
- 在一个或多个限定的领域内判别文本中所出现的实体指称之间是何种语义关系,且待判别的语义关系是预定义的
-
人工模板
- 基于规则的抽取方法
-
机器学习
-
基于特征工程的方法
- 特征提取
- 模型训练
- 关系抽取
-
基于核函数的方法
-
基于神经网络的方法
- 卷积神经网络 (CNN)
- 递归神经网络 (RNN)
- 注意力机制(ATTention mechanism,ATT)
- 基于图卷积网络(Graph Convolutional Network,GCN)
- 基 于 对 抗 训 练(Adversarial Training,AT)
- 基 于 强 化 学 习(Reinforcement Learning,RL)
- 实体-关系联合抽取(Joint Entity and Relation Extraction,JERE)
-
-
-
开放域
-
不需要预先定义关系,而是使用实体对上下文中的一些词语来描述实体之间的关系
- TextRunner
- Kylin
- WOE
- ReVerb
-
-
-
属性抽取
- 转换为关系抽取任务
知识融合
方法
- Pipeline方法
- Joint方法
单图谱
-
数据预处理
- 语法正规化
- 数据正规化
-
分块
-
业务角度
-
指定属性分块
- 指定属性相同,则进行相似度计算
-
根据关系分块
- 指定关系相同,则进行相似度计算
-
-
算法角度
-
基于hash函数分块
- 字符串前N个字
- n-grams
-
临近分块
- Canopy聚类
-
-
-
记录链接
-
属性相似度
-
无监督方法
-
编辑距离
- Levenstein
- Wagner and Fisher
- Edit Distance with Afine Gaps
-
集合相似度
- Jaccard系数
- Dice系数
-
向量相似度
- TF-IDF
-
-
有监督方法
- 图嵌入
- 二元分类器
-
-
实体相似度
-
聚合算法
-
加权平均
-
制定规则
- 为每一个相似度分量设置阈值
-
-
聚类算法
- 层次聚类
- kmeans
-
-
-
真值发现
- 通过冲突检测、真值推断等技术消除知识融合过程中的冲突,再对知识进行关联与合并,最终形成一个一致的结果
跨图谱
-
数据预处理
-
分块
-
实体对齐
-
概念
- 判断两个实体是否为同一个,包括多源实体信息的合并和补充
-
分类
- 成对对齐
- 集体对齐
-
方法
-
基于规则的方法
- 严格规定属性的对齐规则,例如人物=姓名+生日,歌曲=歌名+演唱者,影视=作品名+导演等,然后把属性一一比较,在属性都相等匹配的条件下才认为是同一个实体
- 好处是准确、高效;坏处是成本高、覆盖率低
-
基于相似度模型的方法
- 设定属性集合,利用相似度算法比较属性的相似性,也可以用文本相似性、分类模型等算法来比较
- 好处是覆盖率较高;坏处是准确率较低
-
基于图嵌入的方法
- 挖掘语义特征然后运用深度匹配模型等机器学习的技术
- 好处是覆盖面最广、准确率较高;坏处是通常缺少训练语料,过程也可能缺乏解释性、不可控等
-
-
-
真值发现
工具
-
本体对齐/匹配工具
- Falcon-AO
-
实体匹配工具
- Dedupe
- Limes
- Silk
- YAM++
知识存储
RDF三元组
- 优点:简单直观,通用性好
- 缺点:涉及关系的查询中存在自连接操作
水平存储
- 优点:设计简单,能够高效查询面向某单个实体的属性值
- 缺点:数据稀疏性;表的列数固定,该模式不适用于多属性的情况
属性存储
-
优点:
- 将属性重合度高的实体分成一类,每一类仍采用水平存储
-
缺点:
- 查询会涉及多表连接合并操作
垂直分割
-
优点:
- 以关系划分,将三元组重写为N张包含两列的表,N代表关系,两列分别代表实体和实体属性,该方式适用于实体在多个属性值的情况
-
缺点:
- 增加表的连接数量;增加数据更新难度
图存储
- 邻接表
- 邻接矩阵
知识推理
概念
知识推理是针对知识图谱中已有事实或关系的不完备性,挖掘或推断出未知或隐含的语义关系。一般而言,知识推理的对象可以为实体、关系和知识图谱的结构等
方法
-
基于逻辑规则
-
逻辑方法
- 基于一阶谓词逻辑的推理
- 基于描述逻辑的推理
-
统计方法
- 基于归纳逻辑编程的推理
- 基于关联规则挖掘的推理
-
图结构方法
- 基于全局结构的推理
- 引入局部结构的推理
-
-
基于图嵌入
-
张量分解方法
- 通过特定技术将关系张量分解为多个矩阵,利用这些矩阵可以构造出知识图谱的一个低维嵌入表示
-
距离模型
- 将知识图谱中的每个关系看作从主体向量到客体向量的一个平移变换。通过最小化平移转化的误差,将知识图谱中的实体和关系类型映射到低维空间
-
语义匹配模型
- 通过设计基于相似度的目标函数,在低维向量空间匹配不同实体和关系类型的潜在语义,定义基于相似性的评分函数,度量一个关系三元组的合理性
-
-
基于神经网络
-
卷积神经网络
- 基于实体文本描述的推理
- 基于实体关系交互的推理
-
循环神经网络
- 基于知识路径语义的推理
- 基于实体文本描述的推理
-
图神经网络
- 基于GCN的推理
- 基于GAT的推理
-
深度强化学习
-
应用
- 智能搜索
- 智能推荐
- 智能问答
知识统计与图挖掘
图查询检索
-
查询目标节点的n度关联方
-
子图查询
-
索引建立
- 基于路径的索引
- 基于子图的索引
-
索引匹配
- 筛选子图
-
子图同构判定
- Ullmann算法(也称枚举算法)
- VF2算法
-
近似子图查询
- 基于语义的近似查询
-
图特征统计
-
单主体图特征
-
出度
-
入度
-
介度
- 某节点桥接作用的重要性
-
中心度
- 某节点在当前子网中的重要性
-
关联分析
-
路径查询
-
一个节点到其他所有节点的最短路径
- 迪杰特斯拉算法
-
两个节点之间的最短路径
- A*算法
-
一个节点到多个其他目标节点的一般路径搜索
- 广度优先搜索
- 深度优先搜索
-
-
距离计算
社团检测、搜索
- louvain算法
节点分类
- 对节点根据图特征或者关联属性特征进行分类
异常检测
- 在全网内发现异常节点、异常子图子图模式
预测推理
- 从已有知识图谱中预测推理新的关系和信息
- 输出结果为新节点、新关系、新属性等信息
时序分析
- 指对单一关系、事件做时序分析,或者对网络拓扑结构的变化做时序分析
- 输出结果为时序异常、风险评分等
知识运维
基于增量数据的知识运维
- 数据从消息队列导入图谱
- 利用工作流引擎定时更新图谱
图谱内容统计监控
- 知识图谱的规模和状况
- 知识进行上传或者下载
- 图谱运行中间产生的各种异常情况进行集中的展示、问题提醒等功能
知识审核与修正
- 对新识别的实体、变更的实体属性、实体或关系冲突等,需要通过明确的列表的方式呈现并由有相关知识背景的专家来进行审核确认后方能入库,审核入库过程要有记录
- 对已经构建好的知识图谱需要有可以直接增、删、改的途径
- 构建和运维图谱的时候需要有套冲突检测以及多人协同编辑的功能
知识版本管理
- 历史的知识版本进行作废或者回滚处理
- 在新版本知识图谱上线出现问题情况下快速切换回原有版本