-
构建: 将众多的实体和关系需要从原始数据(可以是结构化也可以是非结构化)中被抽取出来,并以图的方式进行结构化存储
结构化数据:很容易转换为图结构
-
非结构化数据构建方法:
NLP
-
DL:
可用于抽取AVP(属性-值对)
端到端的NER:
* 从一段非结构化文本中找出相关实体(triplet中的主词和宾词),并标注出其位置以及类型 * 是 NLP领域中一些复杂任务(如关系抽取、信息检索等)的基础 * 实现技术: * 早期基于字典和规则的方法 * 传统ML的方法: * NER:一个序列标注问题, 不同于分类问题,序列标注问题中的预测标签不仅与输入特征有关,还与之前的预测标签有关,也就是预测标签之间存在相互依赖和影响 * HMM * MEMM * CRF: 条件随机场(Conditional Random Field,CRF)是序列标注的主流模型。它的目标函数不仅考虑输入的状态特征函数,还包含了标签转移特征函数。在训练的时候可以使用SGD学习参数。在预测时,可以使用Vertibi算法求解使目标函数最大化的最优序列 * DL: * BiLSTM-CNN-CRF: 主要由Embedding层(词向量、字向量等)、BiLSTM、tanh隐藏层以及CRF层组成(对于中文可以不需要CNN) * CNN-CRF * RNN-CRF: 实验表明BiLSTM-CRF可以获得较好的效果, 在特征方面,由于秉承了深度学习的优点,所以无需特征工作的铺垫,使用词向量及字向量就可以得到不错的效果 * Attention机制: * BiLSTM-CRF+Attention机制,将原来的字向量和词向量的拼接改进为按权重求和,使用两个隐藏层来学习Attention的权值,这样使得模型可以动态地利用词向量和字向量的信息。同时加入NE种类的特征,并在字向量上使用Attention来学习关注更有效的字符。实验效果优于BiLSTM-CRF的方法 * [仅需少量标注样本的半监督来进行相应的工作](https://www.cnblogs.com/robert-dlut/p/6847401.html](https://www.cnblogs.com/robert-dlut/p/6847401.html)
关系抽取:一个序列标注问题,采用模型与NER相同
-
关系补全:
* 通过现有知识图谱来预测实体之间的关系,是对关系抽取的重要补充 * 传统方法: * TransE和TransH: 假设实体和关系处于相同的语义空间,把关系作为从实体A到实体B的翻译来建立实体和关系嵌入 * 一个实体是由多种属性组成的综合体,不同关系关注实体的不同属性,所以仅仅在一个空间内对他们进行建模是不够的 * TransR: * 将实体和关系投影到不同的空间中,在实体空间和关系空间构建实体和关系嵌入 * 特定的关系投影能够使得两个实体在这个关系下真实地靠近彼此,使得不具有此关系的实体彼此远离
-
知识融合,
* 包含以下几部分: * 实体对齐 * 属性对齐 * 冲突消解 * 规范化等 * 对开放域很难,对特定领域 可以通过别名举证、领域知识等方法进行对齐和消解,从技术角度来看,这里会涉及较多的逻辑,所以偏传统机器学习方法,甚至利用业务逻辑即可覆盖大部分场景
没有统一的方法,因为其构建需要一整套知识工程的方法, 知识的更新也是不可避免的,所以一定要重视快速迭代和快速产出检验
-
查询:
RDF->OWL->SPARQL
postgresql
-
存储:
-
选关系数据库还是NoSQL 数据库(内存数据库、图数据库)?要不要用内存数据库(e.g.redis)?要不要用图数据库(Neo4J、graphsql、sparkgraphx(包含图计算引擎)、OrientDB、基于hbase的Titan、BlazeGraph等)?这些都需要根据数据场景慎重选择
-
nosql和传统关系型数据库的区别
* 优点: 灵活的数据模型,结构比后者更丰富、 更易扩展、 高可用,查询效率高,传统关系型数据库受限于磁盘io,所以在高并发的情况下,压力倍增,而像redis这种内存数据库每秒支持10w次读写、 nosql成本也比较低 * 缺点: 不支持sql这样的工业标准查询(学习成本高)、 大多数nosql都不支持事务、 nosql只能保证数据相对一致性,尤其是在数据同步的时候,主从服务器的状态是不一致的
-
CN-DBpedia 实际上是基于 mongo 数据库,参与开发的谢晨昊提到,一般只有在基于特定领域才可能会用到图数据库,就知识图谱而言,基于 json(bson) 的 mongo 就足够了。用到图查询的领域如征信,一般是需要要找两个公司之间的关联交易,会用到最短路径/社区计算等
-
-
知识图谱的推理, 将知识图谱表示为张量tensor形式,通过张量分解(tensor factorization)来实现对未知事实的判定:
-
用途:
* 链接预测(判断两个实体之间是否存在某种特定关系) * 实体分类(判断实体所属语义类别) * 实体解析(识别并合并指代同一实体的不同名称)
-
模型:
* RESCAL模型 * TRESCAL模型 * 路由排序算法(PRA算法) 常用来判断两个实体之间可能存在的关系
-
-
知识图谱的应用: 搜索、问答、推荐系统、反欺诈、不一致性验证、异常分析、客户管理等。以上场景在应用中出现越来越多的深度学习模型
知识图谱在深度学习模型中的应用, 利用大量先验知识,来大大降低模型对大规模标注语料的依赖
将知识图谱的语义信息输入到深度学习模型中,将离散化的知识表示为连续化的向量, 使得知识图谱的先验知识能够称为深度学习的输入[见Knowledge Graph Embedding相关文章]
利用知识作为优化目标的约束,指导深度学习模型的学习过程,通常是将知识图谱中的知识表示为优化目标的后验正则项
-
知识图谱的表示学习用于学习实体和关系的向量化表示,其关键是合理定义知识图谱中关于事实(三元组h,r,t)的损失函数fr(h,t),其总和是三元组的两个实体h和t的向量化表示。通常情况下,当事实h,r,t成立时,期望最小化fr(h,t),实现模型:
* 基于距离的模型: SE模型: 当两个实体属于同一个三元组时,它们的向量表示在投影后的空间中也应该彼此靠近。损失函数定义为向量投影后的距离 * 基于翻译的模型:TransE,TransH,TransR, 通过向量空间的向量翻译来描述实体与关系之间的相关性
干货 | 大规模知识图谱的构建、推理及应用【整理,转载】
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1 知识图谱构建技术 本节首先给出知识图谱的技术地图,然后介绍知识图谱构建的关键技术,包括关系抽取技术、知识融合技...
- 作者:刘知远(清华大学);整理:林颖(RPI) 本文来自Big Data Intelligence知识就是力量。—...