最近读了这本书,在思路上很有启发,对知识图谱有了初步的认识,以下是原书前5章的读书笔记,很多内容需要结合原书才更好理解。

知识图谱表示与建模、存储

知识表示

RDF:

RDF(Resource Description Framework),即资源描述框架,RDF由节点和边组成,

节点表示实体/资源、属性,边则表示了实体和实体之间的关系以及实体和属性的关系

例如,罗纳尔多----职业----足球运动员

OWL:

即“Web Ontology Language”,语义网技术栈的核心之一。

在rdf的基础上,可以进一步说明每一个属性的阈值、限制条件(例如这个属性是日期等数据属性,或者是否具有四级证书等对象属性)

例如下例,表明职业这个属性属于person,是一种DatatypeProperty,必须是字符串

career rdf:type owl:DatatypeProperty;

rdfs:domain :Person;

rdfs:range xsd:string.

知识图谱的建模

独热编码、词袋模型、词向量、词嵌入等

将实体映射到高维空间,即知识图谱嵌入或知识表示学习。 包括两种方法,距离转移模型TransE、PTransE和【文献1】,或语义匹配模型rescal, 前者主要描述首位实体的距离,后者主要挖掘实体之间的关系和潜在寓意。

【文献1】:Knowledge Graph and text jointly embedding,emnlp 2015,wang zheng

知识存储

三元组:

按照主语、谓语、宾语三列来存储

缺点是跨表查询太复杂

水平表:

以主语作为主键,把所有的关系和属性作为索引列

例如以ibm为主键,存储这家公司的雇员数量、创建年份、创立者、所属国家等

有点是查询方便,缺点是空值太多

属性表:

对水平表细化,将同类主语存入一张表,例如将ibm和微软存入一张表,将创始人比尔盖茨和相关属性(生卒年月、地址等)

缺点是属性太多,并且在跨表操作时仍有限制

垂直划分:

只包含两列,将水平表中的索引作为表名,例如将所属国家作为划分依据,那么就会得到“ibm-美国”、“微软-美国”等

缺点是不是和做表的连接操作

六重索引:

空间换时间,将三元组所需的主谓宾三种元素进行全排列,得到原来六倍体积的表

这样每一种单表查询都可以快速地完成,原来需要进行多个表的跨表操作,现在在六重索引中能减少连接的次数

缺点是体积大,并且更新索引、插入数据都更难

db2rdf:

主语对应的表中存多个值,

例如ibm属于硬件、互联网、软件三个企业,

那么在主语表就令ibm的“领域”字段为1,在主语外表中,将1作为主键,对应“硬件、互联网、软件”三个值(三个值可以存到一列或多列中)

宾语中也存放多个值

例如“硬件”领域中有ibm、中科曙光两家企业,

那么在谓语表中令“硬件”的对应字段为1,在谓语外表中,令1为主键,且对应“ibm、中科曙光”两个值(两个值可以存到一列或多列中)

以主语表为例,假设所有实体只有三个字段与外表对应,那么就好处理;当与外表对应的字段不确定时,可以按照下面的格式跨表存储:

主语 | spill | filed1 | val1 | filed2 | val2 |.........| filed k | val k

idm | 1 | 领域 | 外表1 | 地址 | 美国 |.........| 人数 | 50000

ibm | 1 | 营收 | 1亿 |

知识抽取与知识挖掘

知识抽取

非结构化数据的命名实体识别:

实体抽取的方法包括马尔可夫,最大熵、lstm-crf等

非结构化数据的关系抽取:

关系抽取的基本方法包括模板法,流水线深度学习(实体识别和关系抽取分开)、联合关系抽取(实体识别和关系抽取不分开)

基于弱监督学习的抽取方法包括远程监督(例如知识图谱中有乔布斯和苹果的关系,那么就把所有包含这两个词的句子作为数据去学习)、

bootstrapping方法(只用少量已标记数据,训练一个模型,把模型作用在未标记数据上,从中抽取新的关系并迭代这个过程)

半结构化面向web和百科的数据抽取:

web手工方法:找xpath路径

web包装器方法:在标注数据上找到不同的xpath集合,从中归纳若干子集,并使这些子集能覆盖尽可能多的夺得标注数据

web自动抽取:通过聚类找到xpath的共现模式并聚类,在每一类中再去寻找包装器并使用

百科数据抽取:利用各种属性分类信息、链接信息(同义词,反义词)、内部链接(例如张楚岚词条中有一个“战绩”的内部链接,

那么就可以把战绩作为新知识加到张楚岚的实体中)

事件抽取:

类似于关系抽取

指代歧义消除

例如提到了“乔丹”(m),判断指的是“篮球运动员乔丹”(e1)还是“大学教授乔丹”(e2)

真实所指的对象为e1的概率,等于e1自身的概率,乘以m出现的情况下e1出现的概率,再乘上下文环境(例如体育报道中)中e1出现的概率。

规则挖掘

1.例如预测 球员 和 所属职业联赛 的关系,比如 张稀哲 属于 中超,

那么连接 张稀哲 和 中超 之间的路径中, 球员效力于球队 和 球队属于联赛 这两个路径就很重要。

需要用到 路径排序算法(path ranking algorithm)

2.路径较多时,可以用随机游走算法计算 路径被选中 的概率,概率较大的路径具备更强解释性与置信度,可以作为规则。

例如 球员 和 所属职业联赛= 球员效力于球队的概率 乘 球队属于联赛的概率

知识图谱融合

本体映射与集成

本体映射:一般指概念间的映射,在异构本体中建立映射规则,以便信息传递,一般指概念间的映射,而不是实例间的映射。

本体集成:把这些本体融合成一个本体,例如把几个实例融合成一个,或者把几个概念融合到一起

本体映射方法

1.比较本体间字符串的相似程度、属于见的同义词关系等;

2.比较本体的结构,例如属性个数、属性的数据类型等;方法包括AnchorPROMPT、iPROMPT、MAFRA等方法。

3.基于实例的本体映射,看有多少实例是重复的、重复比例是多少;方法包括Jaccard和最特化双亲MSP方法。

实例匹配与融合

就是把不同实体融合到一起,例如 北京国安俱乐部 和 国安足球俱乐部 实际上是一个俱乐部。

方法1:

快速相似度计算,时间复杂度0(n^2t),n为实体个数,t为属性数量

方法2:

em挖掘匹配规则,可以参考论文 an effective rule miner for instance matching in a web of data,NIU X,RONG S

方法3:

分治法,把大规模知识图谱分解到k个小的类簇中,

例如,利用数据库中用户的邮编和姓名进行划分,在两个族中进行匹配,匹配之后再去融合。

方法4:

基于索引,可以将实例的名称,进行分词并保留关键词作为名称索引a(可以把邻居节点进行类似处理,得到虚拟索引b)

再根据名称索引a或虚拟索引b建立倒排索引,以便筛选出相似的实例;

筛选时,可以自行发挥以提升效率,例如针对每一个分词建立一个倒排索引,或者针对二项分词建立联合索引;

筛选结束后,再去进行相似度计算,进行最终融合。

方法5:

在论文作者融合中,首先对文本进行相似词汇处理,构造社群网络(合作关系图),将网络中相似的节点进行融合(此时网络是高度内聚的);

迭代结束之后,使用svm进行训练,训练数据由正例反例做差得来。(例如,作者A发表文献的年份是1、2、3,作者a发表的年份是1、2、3,

作者B发表的年份是3、4、5,那么在年份这一列上,a和A的区别是0,B和A的区别是2,构造出其他列之后再去训练svm)

也就是说整体分成两部分,首先使用社交网络发掘相似关系并进行合并,之后再从中选取正反例作差,训练svm

参见 A semi-supervised framework for author disambiguation in academic socialnetwork ,kdd2013,zhao j y,wang p

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: