面向油藏地质领域的知识图谱构建研究
2022-01-09文必龙薛广有
文必龙,薛广有
(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)
0 引 言
油藏地质领域历经多年的勘探,积累了丰富的勘探研究成果及地质认识。长期以来,这些成果大多分散在档案馆存放的研究报告中、计算机内个人文件夹以及油藏工程师的经验中。使这些分散的、零碎的地质认识,转化为专业的、规范化的油藏知识,并对其进行有效管理,指导后续的勘探工作,让历史勘探研究成果发挥出更大的价值。知识图谱(knowledge graph)作为现阶段知识管理的有效手段,通过它可以方便、快捷地管理知识。因此,建立油藏地质领域知识图谱具有很大的实际意义。
为了实现油藏地质领域知识的共享、传播以及对知识进行有效的管理,油藏地质领域知识图谱成为了一种必然的选择。当前在油藏地质领域知识图谱构建的过程中存在一些不足,具体有以下几个方面。第一,现存的油藏地质领域本体数量不足,不能表示油藏地质领域的核心知识,即使是已经存在的油藏地质领域本体由于在构建时没有考虑到具体应用状况,导致最后得到的本体相差甚远,不能直接用来构建具有实用性的油藏地质领域知识图谱的模式层;第二,由于知识抽取所使用的数据源的多样性,会导致抽取出来的多个指称项对应于现实世界中的同一个实体的歧义,增加了知识规范化的难度;第三,知识在抽取的过程中所用数据源的不同及油藏地质领域实体属性自身的特点,会出现同一个属性抽取出多个属性值的情况,并且难以从多个属性值中选取出最优的属性值。
针对油藏地质领域知识图谱构建过程中存在的问题,该文对领域知识图谱构建的相关方法和技术展开了研究,在传统的领域本体构建方法的基础上,将实际的应用场景和油藏地质领域知识的特点等因素考虑进去,提出一种以领域业务活动为核心的领域本体构建方法;对传统的孪生循环神经网络模型进行了改进,使其适合油藏地质领域实体的对齐任务;针对不同类别的属性设计了不同的属性值融合方法,实现属性值的最优。
1 相关研究
Google公司为了提高搜索引擎的检索能力,使其能够返回更加准确的检索结果,以此来达到改善用户使用体验的目的。在此种背景下,知识图谱的概念[1]于2012年5月17日被Google公司率先提出。经过长期的发展,知识图谱的概念也发生了改变。目前,人们广泛接受的知识图谱的概念如下:“知识图谱(Knowledge Graph)是以图形的方式来描述真实世界中的各种概念以及它们之间关系的知识库[2]”。知识图谱本质上是一种刻画实体之间关系的语义网络[3],能够形式化地描述现实世界中的实体及其相互关系。现在的知识图谱已被用来泛指各种大规模的知识库。
目前国外的大型知识图谱主要有谷歌公司的Knowledge Graph和微软公司的Satori。国内的中文知识图谱主要有搜狗的“知立方”、百度的“知心”、王元卓等人[4]研发的可演化的Open KN以及上海复旦大学的中文知识图谱等[5]。此外,人际知识图谱的应用较早,国外有Facebook公司以人际关系数据为基础建立的实体搜索服务,国内有杜亚军等人[6]以微博数据为基础建立的微博社区知识图谱。
在行业知识图谱的研究上,周蓝珺[7]采用各种方法从新浪网的海量数据中抽取了实体的关系,并实现了一个面向中文音乐领域的关系抽取平台。Patrick Ernst等人[8]将从医学网站中抽取出的数据进行融合,研发了一个面向医学领域的知识图谱系统。在通用知识图谱的研究上,蔡鸿博[9]利用信息抽取技术从百科类网站中抽取了实体、关系等数据,建立了包含75万个实体和900万条关系的中文知识图谱。胡芳槐[10]研究了传统的知识库和在线百科类网站,提出了一种能够将从不同数据源中抽取出的数据进行高度融合的知识图谱构建方法。基于此方法构建了大规模的中文知识图谱,其中包含了700多万个实体以及6 000多万个句子。
在知识图谱的构建研究上,邓小亚[11]提出了石油勘探开发领域本体的构建方法,并以采油工程为例说明此方法的可行性。杨宇飞[12]实现了使用条件随机场模型从互动百科中抽取实体的属性关系。庄严等[13]对知识库的实体对齐技术进行了总体概述。谢颖[14]通过对信息融合的方法进行研究,提出可以利用数学中的相关工具来解决知识图谱的数据融合问题。
在知识图谱的应用领域,知识图谱已被广泛应用于语义搜索、智能问答、个性化推荐等领域。Zhao Shi等人[15]以用户的搜索日志为基础数据,采用无监督的机器学习算法获得数据的基本特征,并对其基本特征进行了综合分析以达到理解用户查询意图的目的。Bahareh Sarrafzadeh等人[16]提出了一个适用于知识图谱的信息检索框架,在该框架的帮助下用户能够在不同领域知识图谱中进行复杂的信息检索。
2 油藏地质领域本体构建
该文在传统的七步法基础上,结合油藏地质领域实际的业务需求将本体构建划分为:规划与设计、领域本体构建、评价与进化三个阶段。具体流程如图1所示。
图1 领域本体构建流程
2.1 规划与设计阶段
规划与设计阶段的主要任务是明确具体的领域以及应用范围、进行需求分析和信息收集、实现领域本体的顶层框架设计。
根据油藏地质领域的业务模型和数据模型所提供的概念结合实际的业务需求,该文将油藏地质领域本体划分为活动(activity)、对象(object)、元信息(meta_class)三个一级本体,其中每个一级本体可以继续向下划分子本体。具体结构如图2所示,图2在一级本体的基础上,向下衍生了一层。
图2 油藏地质领域本体结构
活动(activity)表示一种能够被人们感知的可以让物理世界发生变化的行为。对于某个活动,为了知道活动发生的时间、地点、人物等要素,建立起活动发生时的具体场景,需要对活动进行标准化的描述。通过对领域中多个业务活动进行标准化描述,就可以构建起领域业务活动的流程。油藏开发评价、地质油藏、剩余油价值研究等都是活动的子类。
对象(object)表示客观世界中真实存在并可被人们感知到的任何事物。井、区块、油气藏、组织机构、油田各种资源等都是对象的子类。
元信息(meta_class)表示描述信息的信息。在某些情况下,借助元信息来描述的内容会比使用本体概念形式化地描述该内容更加简洁。数据元、数据库等都是元的子类。
2.2 领域本体构建阶段
领域本体构建阶段的主要任务是描述领域内的核心业务活动,梳理领域内的核心概念,定义概念的属性和相互关系,进行本体表示。
2.2.1 业务活动描述及领域概念梳理
首先,根据业务流程对业务进行逐级的划分,直至业务活动为止。业务活动即不可再分的最小业务单元。然后,从六个方面对业务活动进行标准化的描述,即活动是由何人(Who)何时(When)何处(Where)发起的、发起活动的原因(Why)、涉及到哪些(Which)对象、产生了什么结果(What)。最后,某个业务活动中所包含的相关信息可以通过上述几个方面的描述完全提取出来。
2.2.2 定义概念的属性
根据实际的业务需求和数据需求,将油藏地质领域本体划分为activity、object、meta_class三个一级类,分别定义每个一级类及子类的属性,其子类可直接继承父类的属性。
activity类的属性:活动代码、活动原因、活动时间、活动地点、操作者、操作对象、产生结果、描述。
油藏地质领域的一级对象(object)类所包含的子类种类较多,而每个子类所含的属性不同,因此分别定义每个子类的属性。具体如下:井、区块、油气藏、盆地的属性:名称、代码、位置、类型、条件;组织机构的属性:名称、职能、岗位;信息系统的属性:名称、版本、供应商、管理部门、访问网址、部署时间;仪器设备的属性:名称、用途、编号、所属部门。
meta_class类的属性:名称、代码、类型、长度、精度、计量单位。
2.2.3 定义概念的关系
根据油藏地质领域的业务模型和数据模型以及石油领域的相关书籍和字典,结合实际的需求,将油藏地质领域本体概念间的关系定义为通用关系和自定义关系两类。
(1)通用关系。
一般而言,领域本体都包含Kind-of、Part-of、Attribute-of、Instance-of四种基本关系,在此基础上该文定义了五种基本的概念关系,见表1。
表1 油藏地质领域概念间的基本关系
(2)自定义关系。
自定义关系是油藏地质领域中为了满足实际的业务需求而建立的概念间的特殊关系,见表2。
表2 油藏地质领域概念间的自定义关系
2.2.4 油藏地质领域本体构建
使用protege本体编辑工具构建油藏地质领域本体,将预先定义好的概念、关系、属性等利用软件进行编辑,采用owl格式保存文件。部分本体的可视化效果如图3所示。
图3 本体可视化效果图
2.3 评价与进化阶段
评价与进化阶段的主要任务就是针对所构建的本体进行质量评价以及对本体进行不断的完善与进化。
本体构建的质量决定了知识图谱的质量,本体自身的缺陷会直接导致知识图谱在检索、推理等应用方面使用能力的下降,从而失去了知识图谱构建的意义。因此在油藏地质领域本体构建的过程中,应该及时地对所构建的本体进行评价,发现其不足。此外,本体的构建是一个长期的、反复的过程,需要不断地对本体进行维护和完善。在初步建立油藏地质领域的本体后,需要将本体应用于实际并反复的进行评价、优化和扩展。这个过程应该始终存在于本体的生命周期之中。
3 油藏地质领域实体对齐方法
通过信息抽取技术从不同数据源中抽取出的数据存在着大量的冗余、重复、错误等问题。为了保证知识图谱数据层的质量,需要将抽取出的数据利用实体对齐技术进行处理。一些传统的实体对齐算法都存在着过度依赖属性域的问题,并且它们都忽略了文本的语义特征。为了更好地利用文本中上下文的语义特征,该文以孪生循环神经网络为基础,对其进行改进,最终实现基于文本语义的相似度计算,解决油藏地质领域的实体对齐问题。
孪生循环神经网络是由两个bi LSTM组成并且这两个神经网络彼此共享权重。它的基本原理如下:首先将待对齐的实体当作字符串输入到Embedding层,Embedding层会将其映射为向量;然后bi LSTM模型会将输入的向量编码为固定的长度,选择bi LSTM模型最后一次的输出结果作为最终的向量;最后计算两者的余弦相似度并与阈值进行比较,如果相似度超过阈值,就判定为匹配,反之,则不匹配。该模型的具体结构如图4所示。
图4 孪生循环神经网络结构
模型训练的详细步骤如下:
样本构造阶段。首先根据业务活动将抽取得到的数据进行分类,得到业务活动字典D={activity1:[c1,c2,…],activity2:[c3,c4],…},那么每个activity下的数据都指向相同的业务活动;然后将同一个activity下的数据两两相互配对得到正样本集合P,将不同activity下的数据两两相互配对得到负样本集合N。经过处理之后,数据集中共包含6 378条样本,其中有4 658条正样本和1 720条负样本。训练样本由“记录对+标记”构成,例如:((record1,record2,1),(record3,record4,0),…)。测试样本由“记录对”构成,例如:((record1,record2),(record3,record4),…)。表3展示了构造出的部分训练样本。
表3 训练样本示例
数据预处理阶段。以字符为粒度对抽取得到的数据进行切分,去除重复无效的字符,得到新的字符序列。将不定长的字符序列通过设置max_sequence_length的值转化为定长的字符序列,再使用字符串“UNK”填充长度不能达到固定长度的字符序列。文中参数max_sequence_length的值设置为60。
One-hot词向量表示阶段。将数据预处理阶段得到的单词表示成One-hot向量的形式。由于在LSTM模型之前添加了嵌入层(Embedding Layer),所以只需要用每个词在词表中的索引号来替换这个单词即可,并不需要真的将每个单词都表示成One-hot向量的形式。例如:{“断”,“层”,“闭”,“合”,“解”,“释”}数据集词表,则用1替换“断”,用3替换“闭”,用0替换填充字符串“UNK”即可。
训练样本批量构造阶段。模型训练的次数由参数epochs决定。epoch即batch训练的次数。参数batch_size决定每批训练样本的数量。模型采用mini-batch的方式进行训练。例如:样本总量为512,batch_size的值为64,则模型需要进行8次batch训练。这8次的batch训练称之为一次epoch。文中batch_size的值设置为128,epochs的值设为160。
模型训练阶段。首先将训练样本Ci和Cj输入到共享权值的嵌入层得到新的词向量Xi和Xj,然后将Xi和Xj输入到对称的LSTM模型中进行训练,取最后一次的计算结果作为输出,得到Oi和Oj。将Oi和Oj向量看作为样本Ci和Cj新的特征表示。最后通过计算Oi和Oj的余弦相似度来得到样本Ci和Cj的相似度分值,并与预先设定的阈值进行比较,如果相似度分值大于阈值,则判定匹配,否则,则不匹配。文中的阈值设置为0.6,并且使用交叉熵作为损失函数来进行模型参数的训练,以及使用梯度下降进行参数优化。
4 油藏地质领域属性值融合方法
属性值融合的主要任务是将从多个数据源中抽取得到的不同属性值进行融合,得到最优的属性值结果。该文根据油藏地质领域自身的数据特点将基本属性划分成两大类,具体如下:
单值属性:在抽取出的多个候选属性值中只能有一个是正确的属性值的属性。例如:在抽取“井”这个实体的“代码”属性时,得到了“J00006”和“Y00008”这两个属性值。但由于“代码”是单值属性,只能有一个属性值是正确的,需要经过筛选得到最准确的结果。
多值属性:在抽取出的多个候选属性值中存在多个正确的属性值的属性。例如:在抽取“油气成藏综合研究”活动类实体的“产生结果”属性时,得到了“成藏时间、成藏动力、成藏条件”三个正确的属性值,则“油气成藏综合研究”实体的“产生结果”属性含有三个属性值。
该文将定义的基本属性依据油藏地质领域属性值的特点划分为单值属性和多值属性两类。单值属性包含:活动时间、活动地点、活动原因、活动代码、名称、代码、位置、类型、条件、版本、供应商、管理部门、访问网址、部署时间、用途、编号、所属部门、长度、精度、计量单位;多值属性包含:操作者、操作对象、产生结果、描述、职能、岗位。
为实现信任度计算,该文采用四元组<实体,属性,属性值,抽取来源>来存储信息。例如:从勘探院提供的文件中抽取得到的三元组<沉积构造特征描述,操作对象,沉积构造>可扩展为四元组<沉积构造特征描述,操作对象,沉积构造,JD_EXP>。三元组抽取来源的详细信息如表4所示。
表4 三元组抽取来源详细信息
单值属性只能存在一个正确的属性值。因此,需要在多个候选属性值中选出最准确的属性值作为单值属性的属性值。该文采用计算属性值信任度的方法来确定候选属性值的准确性,候选属性值的信任度越大说明其准确性越高,越有可能成为最终的属性值。信任度con的计算公式:con =W1×L+W2×N+W3×S。参数的具体含义如下:L表示属性值的长度,L值越大说明候选属性值越详细,它成为正确属性值的可能性就越大;N表示属性值被抽取的次数,N值越大说明候选属性值被抽取的次数越多,它越有可能成为正确的属性值;S表示属性值抽取来源的权重,S值越大说明抽取属性值的文档越可信,属性值的准确性就会越高;W1、W2、W3分别表示L、N、S在信任度计算公式中所占的权重,是自定义的参数。文中参数设置为W1=25%,W2=25%,W3=50%。对于某个实体的单值属性而言,如果抽取出多个候选属性值,则需要通过信任度计算,取信任度最大的候选属性值作为该属性的属性值。
例如:
<井,代码,J00006,CN_PC> con=5.75
<井,代码,J00006,JD_EXP> con=4.75
<井,代码,Y00008,JD_DEV> con=4.50
<井,代码,Z00006,JD_SUB> con=4.50
如上例所示,“井”实体的“代码”属性经过抽取后得到了4个候选属性值。通过对每个属性值的信任度计算,取“J00006”作为“井”实体的“代码”属性的最终属性值,得到三元组<井,代码,J00006>。
多值属性可以存在多个正确的属性值。因此,多值属性的属性值融合只需将多个正确的候选属性值去重后直接合并即可。针对多值属性的特点,该文采用将抽取出的多个候选属性值按照抽取来源的权重进行排序、删除重复的属性值后直接合并的方法得到多值属性的属性值。由于展示内容有限,不能将所有的属性值都保留。因此,该文规定多值属性的属性值最多为5个。
例如:
<油气成藏综合研究,产生结果,成藏时间,CN_PC>
<油气成藏综合研究,产生结果,成藏动力,CN_EXP>
<油气成藏综合研究,产生结果,成藏条件,CN_DEV>
<油气成藏综合研究,产生结果,成藏时间,JD_SUB>
如上例所示,四元组经过排序、去重等步骤得到了“成藏时间、成藏动力、成藏条件”三个属性值。由于满足预先设定的阈值,所以这三个属性值应该全部被保留。最后,得到三元组<油气成藏综合研究,产生结果,成藏时间、成藏动力、成藏条件>。
5 结束语
该文以油藏地质领域知识的共享、传播以及对知识进行有效的管理为出发点,针对现阶段油藏地质领域知识图谱构建过程中存在的问题,对领域知识图谱构建的方法和技术进行研究:提出了以领域业务活动为核心的领域本体构建方法,实现了油藏地质领域本体的构建,完成了油藏地质领域知识图谱模式层的构建;改进了传统的孪生循环神经网络模型,使其能够满足油藏地质领域的实体对齐任务;针对不同类别的属性设计了不同的属性值融合方法,实现属性值的最优,完成了油藏地质领域知识图谱数据层的构建。最终,实现了高质量油藏地质领域知识图谱的构建。