文必龍,薛廣有
(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
油藏地質(zhì)領(lǐng)域歷經(jīng)多年的勘探,積累了豐富的勘探研究成果及地質(zhì)認識。長期以來,這些成果大多分散在檔案館存放的研究報告中、計算機內(nèi)個人文件夾以及油藏工程師的經(jīng)驗中。使這些分散的、零碎的地質(zhì)認識,轉(zhuǎn)化為專業(yè)的、規(guī)范化的油藏知識,并對其進行有效管理,指導(dǎo)后續(xù)的勘探工作,讓歷史勘探研究成果發(fā)揮出更大的價值。知識圖譜(knowledge graph)作為現(xiàn)階段知識管理的有效手段,通過它可以方便、快捷地管理知識。因此,建立油藏地質(zhì)領(lǐng)域知識圖譜具有很大的實際意義。
為了實現(xiàn)油藏地質(zhì)領(lǐng)域知識的共享、傳播以及對知識進行有效的管理,油藏地質(zhì)領(lǐng)域知識圖譜成為了一種必然的選擇。當前在油藏地質(zhì)領(lǐng)域知識圖譜構(gòu)建的過程中存在一些不足,具體有以下幾個方面。第一,現(xiàn)存的油藏地質(zhì)領(lǐng)域本體數(shù)量不足,不能表示油藏地質(zhì)領(lǐng)域的核心知識,即使是已經(jīng)存在的油藏地質(zhì)領(lǐng)域本體由于在構(gòu)建時沒有考慮到具體應(yīng)用狀況,導(dǎo)致最后得到的本體相差甚遠,不能直接用來構(gòu)建具有實用性的油藏地質(zhì)領(lǐng)域知識圖譜的模式層;第二,由于知識抽取所使用的數(shù)據(jù)源的多樣性,會導(dǎo)致抽取出來的多個指稱項對應(yīng)于現(xiàn)實世界中的同一個實體的歧義,增加了知識規(guī)范化的難度;第三,知識在抽取的過程中所用數(shù)據(jù)源的不同及油藏地質(zhì)領(lǐng)域?qū)嶓w屬性自身的特點,會出現(xiàn)同一個屬性抽取出多個屬性值的情況,并且難以從多個屬性值中選取出最優(yōu)的屬性值。
針對油藏地質(zhì)領(lǐng)域知識圖譜構(gòu)建過程中存在的問題,該文對領(lǐng)域知識圖譜構(gòu)建的相關(guān)方法和技術(shù)展開了研究,在傳統(tǒng)的領(lǐng)域本體構(gòu)建方法的基礎(chǔ)上,將實際的應(yīng)用場景和油藏地質(zhì)領(lǐng)域知識的特點等因素考慮進去,提出一種以領(lǐng)域業(yè)務(wù)活動為核心的領(lǐng)域本體構(gòu)建方法;對傳統(tǒng)的孿生循環(huán)神經(jīng)網(wǎng)絡(luò)模型進行了改進,使其適合油藏地質(zhì)領(lǐng)域?qū)嶓w的對齊任務(wù);針對不同類別的屬性設(shè)計了不同的屬性值融合方法,實現(xiàn)屬性值的最優(yōu)。
Google公司為了提高搜索引擎的檢索能力,使其能夠返回更加準確的檢索結(jié)果,以此來達到改善用戶使用體驗的目的。在此種背景下,知識圖譜的概念[1]于2012年5月17日被Google公司率先提出。經(jīng)過長期的發(fā)展,知識圖譜的概念也發(fā)生了改變。目前,人們廣泛接受的知識圖譜的概念如下:“知識圖譜(Knowledge Graph)是以圖形的方式來描述真實世界中的各種概念以及它們之間關(guān)系的知識庫[2]”。知識圖譜本質(zhì)上是一種刻畫實體之間關(guān)系的語義網(wǎng)絡(luò)[3],能夠形式化地描述現(xiàn)實世界中的實體及其相互關(guān)系?,F(xiàn)在的知識圖譜已被用來泛指各種大規(guī)模的知識庫。
目前國外的大型知識圖譜主要有谷歌公司的Knowledge Graph和微軟公司的Satori。國內(nèi)的中文知識圖譜主要有搜狗的“知立方”、百度的“知心”、王元卓等人[4]研發(fā)的可演化的Open KN以及上海復(fù)旦大學(xué)的中文知識圖譜等[5]。此外,人際知識圖譜的應(yīng)用較早,國外有Facebook公司以人際關(guān)系數(shù)據(jù)為基礎(chǔ)建立的實體搜索服務(wù),國內(nèi)有杜亞軍等人[6]以微博數(shù)據(jù)為基礎(chǔ)建立的微博社區(qū)知識圖譜。
在行業(yè)知識圖譜的研究上,周藍珺[7]采用各種方法從新浪網(wǎng)的海量數(shù)據(jù)中抽取了實體的關(guān)系,并實現(xiàn)了一個面向中文音樂領(lǐng)域的關(guān)系抽取平臺。Patrick Ernst等人[8]將從醫(yī)學(xué)網(wǎng)站中抽取出的數(shù)據(jù)進行融合,研發(fā)了一個面向醫(yī)學(xué)領(lǐng)域的知識圖譜系統(tǒng)。在通用知識圖譜的研究上,蔡鴻博[9]利用信息抽取技術(shù)從百科類網(wǎng)站中抽取了實體、關(guān)系等數(shù)據(jù),建立了包含75萬個實體和900萬條關(guān)系的中文知識圖譜。胡芳槐[10]研究了傳統(tǒng)的知識庫和在線百科類網(wǎng)站,提出了一種能夠?qū)牟煌瑪?shù)據(jù)源中抽取出的數(shù)據(jù)進行高度融合的知識圖譜構(gòu)建方法?;诖朔椒?gòu)建了大規(guī)模的中文知識圖譜,其中包含了700多萬個實體以及6 000多萬個句子。
在知識圖譜的構(gòu)建研究上,鄧小亞[11]提出了石油勘探開發(fā)領(lǐng)域本體的構(gòu)建方法,并以采油工程為例說明此方法的可行性。楊宇飛[12]實現(xiàn)了使用條件隨機場模型從互動百科中抽取實體的屬性關(guān)系。莊嚴等[13]對知識庫的實體對齊技術(shù)進行了總體概述。謝穎[14]通過對信息融合的方法進行研究,提出可以利用數(shù)學(xué)中的相關(guān)工具來解決知識圖譜的數(shù)據(jù)融合問題。
在知識圖譜的應(yīng)用領(lǐng)域,知識圖譜已被廣泛應(yīng)用于語義搜索、智能問答、個性化推薦等領(lǐng)域。Zhao Shi等人[15]以用戶的搜索日志為基礎(chǔ)數(shù)據(jù),采用無監(jiān)督的機器學(xué)習(xí)算法獲得數(shù)據(jù)的基本特征,并對其基本特征進行了綜合分析以達到理解用戶查詢意圖的目的。Bahareh Sarrafzadeh等人[16]提出了一個適用于知識圖譜的信息檢索框架,在該框架的幫助下用戶能夠在不同領(lǐng)域知識圖譜中進行復(fù)雜的信息檢索。
該文在傳統(tǒng)的七步法基礎(chǔ)上,結(jié)合油藏地質(zhì)領(lǐng)域?qū)嶋H的業(yè)務(wù)需求將本體構(gòu)建劃分為:規(guī)劃與設(shè)計、領(lǐng)域本體構(gòu)建、評價與進化三個階段。具體流程如圖1所示。
圖1 領(lǐng)域本體構(gòu)建流程
規(guī)劃與設(shè)計階段的主要任務(wù)是明確具體的領(lǐng)域以及應(yīng)用范圍、進行需求分析和信息收集、實現(xiàn)領(lǐng)域本體的頂層框架設(shè)計。
根據(jù)油藏地質(zhì)領(lǐng)域的業(yè)務(wù)模型和數(shù)據(jù)模型所提供的概念結(jié)合實際的業(yè)務(wù)需求,該文將油藏地質(zhì)領(lǐng)域本體劃分為活動(activity)、對象(object)、元信息(meta_class)三個一級本體,其中每個一級本體可以繼續(xù)向下劃分子本體。具體結(jié)構(gòu)如圖2所示,圖2在一級本體的基礎(chǔ)上,向下衍生了一層。
圖2 油藏地質(zhì)領(lǐng)域本體結(jié)構(gòu)
活動(activity)表示一種能夠被人們感知的可以讓物理世界發(fā)生變化的行為。對于某個活動,為了知道活動發(fā)生的時間、地點、人物等要素,建立起活動發(fā)生時的具體場景,需要對活動進行標準化的描述。通過對領(lǐng)域中多個業(yè)務(wù)活動進行標準化描述,就可以構(gòu)建起領(lǐng)域業(yè)務(wù)活動的流程。油藏開發(fā)評價、地質(zhì)油藏、剩余油價值研究等都是活動的子類。
對象(object)表示客觀世界中真實存在并可被人們感知到的任何事物。井、區(qū)塊、油氣藏、組織機構(gòu)、油田各種資源等都是對象的子類。
元信息(meta_class)表示描述信息的信息。在某些情況下,借助元信息來描述的內(nèi)容會比使用本體概念形式化地描述該內(nèi)容更加簡潔。數(shù)據(jù)元、數(shù)據(jù)庫等都是元的子類。
領(lǐng)域本體構(gòu)建階段的主要任務(wù)是描述領(lǐng)域內(nèi)的核心業(yè)務(wù)活動,梳理領(lǐng)域內(nèi)的核心概念,定義概念的屬性和相互關(guān)系,進行本體表示。
2.2.1 業(yè)務(wù)活動描述及領(lǐng)域概念梳理
首先,根據(jù)業(yè)務(wù)流程對業(yè)務(wù)進行逐級的劃分,直至業(yè)務(wù)活動為止。業(yè)務(wù)活動即不可再分的最小業(yè)務(wù)單元。然后,從六個方面對業(yè)務(wù)活動進行標準化的描述,即活動是由何人(Who)何時(When)何處(Where)發(fā)起的、發(fā)起活動的原因(Why)、涉及到哪些(Which)對象、產(chǎn)生了什么結(jié)果(What)。最后,某個業(yè)務(wù)活動中所包含的相關(guān)信息可以通過上述幾個方面的描述完全提取出來。
2.2.2 定義概念的屬性
根據(jù)實際的業(yè)務(wù)需求和數(shù)據(jù)需求,將油藏地質(zhì)領(lǐng)域本體劃分為activity、object、meta_class三個一級類,分別定義每個一級類及子類的屬性,其子類可直接繼承父類的屬性。
activity類的屬性:活動代碼、活動原因、活動時間、活動地點、操作者、操作對象、產(chǎn)生結(jié)果、描述。
油藏地質(zhì)領(lǐng)域的一級對象(object)類所包含的子類種類較多,而每個子類所含的屬性不同,因此分別定義每個子類的屬性。具體如下:井、區(qū)塊、油氣藏、盆地的屬性:名稱、代碼、位置、類型、條件;組織機構(gòu)的屬性:名稱、職能、崗位;信息系統(tǒng)的屬性:名稱、版本、供應(yīng)商、管理部門、訪問網(wǎng)址、部署時間;儀器設(shè)備的屬性:名稱、用途、編號、所屬部門。
meta_class類的屬性:名稱、代碼、類型、長度、精度、計量單位。
2.2.3 定義概念的關(guān)系
根據(jù)油藏地質(zhì)領(lǐng)域的業(yè)務(wù)模型和數(shù)據(jù)模型以及石油領(lǐng)域的相關(guān)書籍和字典,結(jié)合實際的需求,將油藏地質(zhì)領(lǐng)域本體概念間的關(guān)系定義為通用關(guān)系和自定義關(guān)系兩類。
(1)通用關(guān)系。
一般而言,領(lǐng)域本體都包含Kind-of、Part-of、Attribute-of、Instance-of四種基本關(guān)系,在此基礎(chǔ)上該文定義了五種基本的概念關(guān)系,見表1。
表1 油藏地質(zhì)領(lǐng)域概念間的基本關(guān)系
(2)自定義關(guān)系。
自定義關(guān)系是油藏地質(zhì)領(lǐng)域中為了滿足實際的業(yè)務(wù)需求而建立的概念間的特殊關(guān)系,見表2。
表2 油藏地質(zhì)領(lǐng)域概念間的自定義關(guān)系
2.2.4 油藏地質(zhì)領(lǐng)域本體構(gòu)建
使用protege本體編輯工具構(gòu)建油藏地質(zhì)領(lǐng)域本體,將預(yù)先定義好的概念、關(guān)系、屬性等利用軟件進行編輯,采用owl格式保存文件。部分本體的可視化效果如圖3所示。
圖3 本體可視化效果圖
評價與進化階段的主要任務(wù)就是針對所構(gòu)建的本體進行質(zhì)量評價以及對本體進行不斷的完善與進化。
本體構(gòu)建的質(zhì)量決定了知識圖譜的質(zhì)量,本體自身的缺陷會直接導(dǎo)致知識圖譜在檢索、推理等應(yīng)用方面使用能力的下降,從而失去了知識圖譜構(gòu)建的意義。因此在油藏地質(zhì)領(lǐng)域本體構(gòu)建的過程中,應(yīng)該及時地對所構(gòu)建的本體進行評價,發(fā)現(xiàn)其不足。此外,本體的構(gòu)建是一個長期的、反復(fù)的過程,需要不斷地對本體進行維護和完善。在初步建立油藏地質(zhì)領(lǐng)域的本體后,需要將本體應(yīng)用于實際并反復(fù)的進行評價、優(yōu)化和擴展。這個過程應(yīng)該始終存在于本體的生命周期之中。
通過信息抽取技術(shù)從不同數(shù)據(jù)源中抽取出的數(shù)據(jù)存在著大量的冗余、重復(fù)、錯誤等問題。為了保證知識圖譜數(shù)據(jù)層的質(zhì)量,需要將抽取出的數(shù)據(jù)利用實體對齊技術(shù)進行處理。一些傳統(tǒng)的實體對齊算法都存在著過度依賴屬性域的問題,并且它們都忽略了文本的語義特征。為了更好地利用文本中上下文的語義特征,該文以孿生循環(huán)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),對其進行改進,最終實現(xiàn)基于文本語義的相似度計算,解決油藏地質(zhì)領(lǐng)域的實體對齊問題。
孿生循環(huán)神經(jīng)網(wǎng)絡(luò)是由兩個bi LSTM組成并且這兩個神經(jīng)網(wǎng)絡(luò)彼此共享權(quán)重。它的基本原理如下:首先將待對齊的實體當作字符串輸入到Embedding層,Embedding層會將其映射為向量;然后bi LSTM模型會將輸入的向量編碼為固定的長度,選擇bi LSTM模型最后一次的輸出結(jié)果作為最終的向量;最后計算兩者的余弦相似度并與閾值進行比較,如果相似度超過閾值,就判定為匹配,反之,則不匹配。該模型的具體結(jié)構(gòu)如圖4所示。
圖4 孿生循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
模型訓(xùn)練的詳細步驟如下:
樣本構(gòu)造階段。首先根據(jù)業(yè)務(wù)活動將抽取得到的數(shù)據(jù)進行分類,得到業(yè)務(wù)活動字典D={activity1:[c1,c2,…],activity2:[c3,c4],…},那么每個activity下的數(shù)據(jù)都指向相同的業(yè)務(wù)活動;然后將同一個activity下的數(shù)據(jù)兩兩相互配對得到正樣本集合P,將不同activity下的數(shù)據(jù)兩兩相互配對得到負樣本集合N。經(jīng)過處理之后,數(shù)據(jù)集中共包含6 378條樣本,其中有4 658條正樣本和1 720條負樣本。訓(xùn)練樣本由“記錄對+標記”構(gòu)成,例如:((record1,record2,1),(record3,record4,0),…)。測試樣本由“記錄對”構(gòu)成,例如:((record1,record2),(record3,record4),…)。表3展示了構(gòu)造出的部分訓(xùn)練樣本。
表3 訓(xùn)練樣本示例
數(shù)據(jù)預(yù)處理階段。以字符為粒度對抽取得到的數(shù)據(jù)進行切分,去除重復(fù)無效的字符,得到新的字符序列。將不定長的字符序列通過設(shè)置max_sequence_length的值轉(zhuǎn)化為定長的字符序列,再使用字符串“UNK”填充長度不能達到固定長度的字符序列。文中參數(shù)max_sequence_length的值設(shè)置為60。
One-hot詞向量表示階段。將數(shù)據(jù)預(yù)處理階段得到的單詞表示成One-hot向量的形式。由于在LSTM模型之前添加了嵌入層(Embedding Layer),所以只需要用每個詞在詞表中的索引號來替換這個單詞即可,并不需要真的將每個單詞都表示成One-hot向量的形式。例如:{“斷”,“層”,“閉”,“合”,“解”,“釋”}數(shù)據(jù)集詞表,則用1替換“斷”,用3替換“閉”,用0替換填充字符串“UNK”即可。
訓(xùn)練樣本批量構(gòu)造階段。模型訓(xùn)練的次數(shù)由參數(shù)epochs決定。epoch即batch訓(xùn)練的次數(shù)。參數(shù)batch_size決定每批訓(xùn)練樣本的數(shù)量。模型采用mini-batch的方式進行訓(xùn)練。例如:樣本總量為512,batch_size的值為64,則模型需要進行8次batch訓(xùn)練。這8次的batch訓(xùn)練稱之為一次epoch。文中batch_size的值設(shè)置為128,epochs的值設(shè)為160。
模型訓(xùn)練階段。首先將訓(xùn)練樣本Ci和Cj輸入到共享權(quán)值的嵌入層得到新的詞向量Xi和Xj,然后將Xi和Xj輸入到對稱的LSTM模型中進行訓(xùn)練,取最后一次的計算結(jié)果作為輸出,得到Oi和Oj。將Oi和Oj向量看作為樣本Ci和Cj新的特征表示。最后通過計算Oi和Oj的余弦相似度來得到樣本Ci和Cj的相似度分值,并與預(yù)先設(shè)定的閾值進行比較,如果相似度分值大于閾值,則判定匹配,否則,則不匹配。文中的閾值設(shè)置為0.6,并且使用交叉熵作為損失函數(shù)來進行模型參數(shù)的訓(xùn)練,以及使用梯度下降進行參數(shù)優(yōu)化。
屬性值融合的主要任務(wù)是將從多個數(shù)據(jù)源中抽取得到的不同屬性值進行融合,得到最優(yōu)的屬性值結(jié)果。該文根據(jù)油藏地質(zhì)領(lǐng)域自身的數(shù)據(jù)特點將基本屬性劃分成兩大類,具體如下:
單值屬性:在抽取出的多個候選屬性值中只能有一個是正確的屬性值的屬性。例如:在抽取“井”這個實體的“代碼”屬性時,得到了“J00006”和“Y00008”這兩個屬性值。但由于“代碼”是單值屬性,只能有一個屬性值是正確的,需要經(jīng)過篩選得到最準確的結(jié)果。
多值屬性:在抽取出的多個候選屬性值中存在多個正確的屬性值的屬性。例如:在抽取“油氣成藏綜合研究”活動類實體的“產(chǎn)生結(jié)果”屬性時,得到了“成藏時間、成藏動力、成藏條件”三個正確的屬性值,則“油氣成藏綜合研究”實體的“產(chǎn)生結(jié)果”屬性含有三個屬性值。
該文將定義的基本屬性依據(jù)油藏地質(zhì)領(lǐng)域?qū)傩灾档奶攸c劃分為單值屬性和多值屬性兩類。單值屬性包含:活動時間、活動地點、活動原因、活動代碼、名稱、代碼、位置、類型、條件、版本、供應(yīng)商、管理部門、訪問網(wǎng)址、部署時間、用途、編號、所屬部門、長度、精度、計量單位;多值屬性包含:操作者、操作對象、產(chǎn)生結(jié)果、描述、職能、崗位。
為實現(xiàn)信任度計算,該文采用四元組<實體,屬性,屬性值,抽取來源>來存儲信息。例如:從勘探院提供的文件中抽取得到的三元組<沉積構(gòu)造特征描述,操作對象,沉積構(gòu)造>可擴展為四元組<沉積構(gòu)造特征描述,操作對象,沉積構(gòu)造,JD_EXP>。三元組抽取來源的詳細信息如表4所示。
表4 三元組抽取來源詳細信息
單值屬性只能存在一個正確的屬性值。因此,需要在多個候選屬性值中選出最準確的屬性值作為單值屬性的屬性值。該文采用計算屬性值信任度的方法來確定候選屬性值的準確性,候選屬性值的信任度越大說明其準確性越高,越有可能成為最終的屬性值。信任度con的計算公式:con =W1×L+W2×N+W3×S。參數(shù)的具體含義如下:L表示屬性值的長度,L值越大說明候選屬性值越詳細,它成為正確屬性值的可能性就越大;N表示屬性值被抽取的次數(shù),N值越大說明候選屬性值被抽取的次數(shù)越多,它越有可能成為正確的屬性值;S表示屬性值抽取來源的權(quán)重,S值越大說明抽取屬性值的文檔越可信,屬性值的準確性就會越高;W1、W2、W3分別表示L、N、S在信任度計算公式中所占的權(quán)重,是自定義的參數(shù)。文中參數(shù)設(shè)置為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
如上例所示,“井”實體的“代碼”屬性經(jīng)過抽取后得到了4個候選屬性值。通過對每個屬性值的信任度計算,取“J00006”作為“井”實體的“代碼”屬性的最終屬性值,得到三元組<井,代碼,J00006>。
多值屬性可以存在多個正確的屬性值。因此,多值屬性的屬性值融合只需將多個正確的候選屬性值去重后直接合并即可。針對多值屬性的特點,該文采用將抽取出的多個候選屬性值按照抽取來源的權(quán)重進行排序、刪除重復(fù)的屬性值后直接合并的方法得到多值屬性的屬性值。由于展示內(nèi)容有限,不能將所有的屬性值都保留。因此,該文規(guī)定多值屬性的屬性值最多為5個。
例如:
<油氣成藏綜合研究,產(chǎn)生結(jié)果,成藏時間,CN_PC>
<油氣成藏綜合研究,產(chǎn)生結(jié)果,成藏動力,CN_EXP>
<油氣成藏綜合研究,產(chǎn)生結(jié)果,成藏條件,CN_DEV>
<油氣成藏綜合研究,產(chǎn)生結(jié)果,成藏時間,JD_SUB>
如上例所示,四元組經(jīng)過排序、去重等步驟得到了“成藏時間、成藏動力、成藏條件”三個屬性值。由于滿足預(yù)先設(shè)定的閾值,所以這三個屬性值應(yīng)該全部被保留。最后,得到三元組<油氣成藏綜合研究,產(chǎn)生結(jié)果,成藏時間、成藏動力、成藏條件>。
該文以油藏地質(zhì)領(lǐng)域知識的共享、傳播以及對知識進行有效的管理為出發(fā)點,針對現(xiàn)階段油藏地質(zhì)領(lǐng)域知識圖譜構(gòu)建過程中存在的問題,對領(lǐng)域知識圖譜構(gòu)建的方法和技術(shù)進行研究:提出了以領(lǐng)域業(yè)務(wù)活動為核心的領(lǐng)域本體構(gòu)建方法,實現(xiàn)了油藏地質(zhì)領(lǐng)域本體的構(gòu)建,完成了油藏地質(zhì)領(lǐng)域知識圖譜模式層的構(gòu)建;改進了傳統(tǒng)的孿生循環(huán)神經(jīng)網(wǎng)絡(luò)模型,使其能夠滿足油藏地質(zhì)領(lǐng)域的實體對齊任務(wù);針對不同類別的屬性設(shè)計了不同的屬性值融合方法,實現(xiàn)屬性值的最優(yōu),完成了油藏地質(zhì)領(lǐng)域知識圖譜數(shù)據(jù)層的構(gòu)建。最終,實現(xiàn)了高質(zhì)量油藏地質(zhì)領(lǐng)域知識圖譜的構(gòu)建。