尚福華,金 泉,曹茂俊
(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
應(yīng)用地球物理方法主要包括重、磁、電、震、測井,其中測井主要是通過利用巖層的聲學(xué)、異電、電化學(xué)以及放射性等地球物理特性,作為測量地球物理參數(shù)的方法。測井?dāng)?shù)據(jù)處理與綜合解釋,則是指通過之前設(shè)定的地質(zhì)任務(wù),使用計算機技術(shù)來完成相關(guān)的測井資料自動處理操作,并結(jié)合錄井、地質(zhì)和開發(fā)相關(guān)的資料進(jìn)行綜合處理分析解釋,以解決有用礦藏、地層劃分和油氣儲集層的評價及其勘探開發(fā)中其他相關(guān)的地質(zhì)與工程技術(shù)問題[1]?,F(xiàn)有的機器學(xué)習(xí)算法抽取模型大多是針對句法和詞法等淺層特征,采用這些方式通常存在需要復(fù)雜的人工定義特征等問題。深度學(xué)習(xí)模型可以通過在簡單的網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上實現(xiàn)復(fù)雜函數(shù)的逼近,擁有從大規(guī)模數(shù)據(jù)集中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力,從而能夠大大減少工作量,減少人工定義特征的重復(fù)性工作。隨著數(shù)據(jù)量的迅速累積,大數(shù)據(jù)、深度學(xué)習(xí)等技術(shù)快速發(fā)展,知識圖譜與這些先進(jìn)的技術(shù)相結(jié)合,正在成為未來人工智能發(fā)展的熱門方向之一[2]。
知識抽取是構(gòu)建知識圖譜極其重要的步驟。知識抽取包含如下基本任務(wù):命名實體抽取、屬性抽取、關(guān)系抽取以及事件抽取等,主要任務(wù)是從一些非結(jié)構(gòu)化文本中抽取出需要的、有效的結(jié)構(gòu)化信息。知識抽取也是自然語言處理領(lǐng)域中的一個重要領(lǐng)域,而自然語言處理領(lǐng)域與深度學(xué)習(xí)是密不可分的,知識抽取也與深度學(xué)習(xí)有著密不可分的關(guān)系。命名實體抽取是知識抽取過程中的首要內(nèi)容,也是構(gòu)建知識圖譜必不可少的基礎(chǔ),其中抽取出來的實體的好壞將很大程度影響最終構(gòu)成的知識圖譜的質(zhì)量。研究測井實體抽取問題對于研究如何構(gòu)建測井領(lǐng)域知識圖譜有著非比尋常的意義。Zhao Yahui等人[3]構(gòu)建了一種基于知識庫的電影命名實體類型發(fā)現(xiàn)關(guān)聯(lián)系統(tǒng)。Yang Tao等人[4]研究了某些特定領(lǐng)域?qū)嶓w識別與實體連接的評估任務(wù)。Guo Shu等人[5]研究實現(xiàn)了一種在競賽中通過增強規(guī)則來實現(xiàn)關(guān)系學(xué)習(xí)的方法。Yilahun Hankiz等人[6]研究實現(xiàn)了一種將維吾爾語領(lǐng)域本體和漢語領(lǐng)域本體結(jié)合的混合構(gòu)建方法。Zhao Jiapeng等人[7]研究實現(xiàn)了一種在句法樹的基礎(chǔ)上進(jìn)行個人關(guān)系抽取的方法。李明浩等人[8]研究實現(xiàn)了一種基于LSTM-CRF模型的中醫(yī)醫(yī)案癥狀術(shù)語識別方法。張心怡等人[9]研究實現(xiàn)了一種面向煤礦的實體識別與關(guān)系抽取模型。張海楠等人[10]研究實現(xiàn)了一種基于深度學(xué)習(xí)的中文命名實體識別方法。
在測井解釋領(lǐng)域,尚福華等人研究了面向測井處理解釋領(lǐng)域的本體構(gòu)建方法,該文章提出了一種將領(lǐng)域本體與測井處理解釋的具體應(yīng)用需求相結(jié)合的領(lǐng)域本體構(gòu)建方法,具有非常高的參考價值[11]。但用本體方法來構(gòu)建領(lǐng)域性知識圖譜,通常有大量的非結(jié)構(gòu)化數(shù)據(jù)需要處理,用本體構(gòu)建方法很難進(jìn)行處理。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,采用深度學(xué)習(xí)來進(jìn)行實體抽取,降低了數(shù)據(jù)標(biāo)注的難度,提高了訓(xùn)練效率,并在其他領(lǐng)域取得了很好的效果,表明深度學(xué)習(xí)非常適合對非結(jié)構(gòu)化文本數(shù)據(jù)進(jìn)行抽取、分析。因此,文中提出一種基于Senna詞向量+BiLSTM+CRF的方法對測井非結(jié)構(gòu)文本數(shù)據(jù)中的命名實體進(jìn)行抽取。
循環(huán)神經(jīng)網(wǎng)絡(luò)( recurrent neural network,RNN)是一種廣泛應(yīng)用于自然語言處理(NLP)、圖像識別、語言認(rèn)知等相關(guān)的深度學(xué)習(xí)技術(shù)及其他相關(guān)領(lǐng)域的新型人工神經(jīng)網(wǎng)絡(luò),最早提出的時間要追溯到20世紀(jì)80年代[12]。RNN的主要目的就是識別大量數(shù)據(jù)運行時的先后次序特性,利用這種模式對未來各種可能發(fā)生的情形進(jìn)行預(yù)測。RNN可以處理從初始輸入到終始輸入的每一個數(shù)據(jù),這與前饋神經(jīng)網(wǎng)絡(luò)相當(dāng)類似。
從理論上看,RNN能夠在序列的整個歷史中對連續(xù)信息進(jìn)行建模,但是在序列長度比較長時,RNN可能會出現(xiàn)兩種情況,一種是梯度不斷地增長,無限趨近于無窮,這很容易產(chǎn)生梯度爆炸的問題。另一種情況則是前一種情況的反向極端,梯度不斷減小,無限趨近于零,很容易造成梯度消失的問題。針對上述兩種情況,有學(xué)者曾在20世紀(jì)90年代提出使用長短期記憶網(wǎng)絡(luò)(long-short term memory network,LSTM)來替代循環(huán)神經(jīng)網(wǎng)絡(luò),在經(jīng)過不斷改進(jìn)后被廣泛應(yīng)用,它是目前使用最多的RNN變體之一[13]。LSTM的神經(jīng)元通常由存儲器單元、輸入門、輸出門、忘記門四部分組成。
圖1 LSTM總體框架
通過與測井領(lǐng)域?qū)<覝贤ń涣骷安殚喆罅繙y井文獻(xiàn),最終筆者選定以下幾類實體來做測井實體抽取實驗分類標(biāo)準(zhǔn),分別為領(lǐng)域知識、區(qū)域知識、通用知識。通過這三大類別實體對樣本數(shù)據(jù)進(jìn)行人工標(biāo)注,文中采用BIO標(biāo)注。測井命名實體的抽取問題最終轉(zhuǎn)化為對已知文本中的三大類標(biāo)記實體進(jìn)行分類的問題。文中采用Senna詞向量方法對文本中的測井實體進(jìn)行描述,采用BiLSTM-CRF模型對實體進(jìn)行分類,實現(xiàn)測井命名實體抽取的方法,如表1所示。
表1 命名實體標(biāo)注方法
因為收集到的數(shù)據(jù)集,無法直接放入模型中參與訓(xùn)練,所以必須對語料進(jìn)行一些處理,讓收集到的文本數(shù)據(jù)變成能夠被機器識別的形式,才能放入到模型中進(jìn)行訓(xùn)練。首先對從語料庫中獲取到的語料進(jìn)行一系列預(yù)處理操作,之后進(jìn)行分詞,再對分詞后的語料文本進(jìn)行詞性標(biāo)注[15],得到詞性標(biāo)注后的語料文本,再將該語料文本轉(zhuǎn)化為Senna詞向量,作為BiLSTM網(wǎng)絡(luò)模型的輸入向量,通過BiLSTM網(wǎng)絡(luò)模型的訓(xùn)練,輸出發(fā)射分?jǐn)?shù),可表示BiLSTM將每個字符預(yù)測為某個標(biāo)簽的概率。再通過CRF層將BiLSTM的Emission_score作為輸入,輸出符合標(biāo)注轉(zhuǎn)移約束條件的、最大可能的預(yù)測標(biāo)注序列。實體抽取框架如圖2所示。
圖2 測井命名實體抽取框架
Senna詞向量+BiLSTM+CRF模型主要由模型輸入層、雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM)和條件隨機場(CRF)層組成。模型輸入的是字符特征,輸出的是每個字符對應(yīng)的預(yù)測標(biāo)簽。
2.3.1 模型輸入層
在模型輸入層,文中主要采用詞嵌入機制對輸入的非結(jié)構(gòu)化文本數(shù)據(jù)進(jìn)行處理,最開始使用的是字向量,但是效果不太好,所以改用Senna詞向量。Senna模型中不僅提出了使用word embedding作為構(gòu)建方法,同時還提出可以從神經(jīng)網(wǎng)絡(luò)語言模型的角度去解決自然語言處理領(lǐng)域任務(wù)。Senna中,每個詞可以從lookup table直接查找到對應(yīng)的向量,為保證訓(xùn)練效果,當(dāng)句子太長、超過設(shè)定的句子長度時要截斷,當(dāng)句子太短、未達(dá)到設(shè)定的句子長度時要填充,本項目使用O進(jìn)行填充。
2.3.2 BiLSTM層
BiLSTM接收每個字符的embedding,同時預(yù)測每個字符對5個標(biāo)注標(biāo)簽的概率。
BiLSTM是Bi-directional Long Short-Term Memory的縮寫,包括前向LSTM和后向LSTM[16],常常在自然語言處理、深度學(xué)習(xí)領(lǐng)域相關(guān)任務(wù)中用來建模上下文信息。
將詞的表示轉(zhuǎn)為句子的表示,可以采用迭代相加的方法,即將所有詞的表示相加在一起求和,也可以采用取平均值的方式,但是采用這些方法存在一個很大的問題,即忽視掉了詞語在句子中的前后位置,從而影響對整個句子意思的理解。比如句子“我并不認(rèn)為她有多么優(yōu)秀”?!安弧弊质菍竺嬖~語“優(yōu)秀”的否定修飾,即該句子的情感色彩是悲觀的,整個句子表達(dá)的意思是否定的,這與原來句子想要表達(dá)的意思截然不同,而使用LSTM模型則可以避免這種情況,因為LSTM模型可以更好地捕捉到較長一段距離詞語之間的依賴關(guān)系,LSTM在學(xué)習(xí)訓(xùn)練的過程中能夠?qū)W到需要記憶哪些信息和需要遺忘掉哪些信息。
但是使用LSTM對句子進(jìn)行建模的過程中還存在著一個比較嚴(yán)重的問題:LSTM是單向的,無法編碼當(dāng)前位置往后的信息,也就是只能學(xué)習(xí)到上文的信息,而學(xué)習(xí)不到下文的信息。比如,“這個賓館亂的不行”,這個句子中的“不行”是對“亂”這個形容詞的一種修飾,通過LSTM是獲取不到這個消息理解的,LSTM只能獲得單向的消息理解,要么是從前往后,要么是從后往前,而通過BiLSTM則可以更好地捕捉到雙向的語義依賴?yán)斫狻?/p>
前向的LSTM與后向的LSTM結(jié)合成BiLSTM。比如,對“測井是記錄鉆入地幔的過程”這句話進(jìn)行編碼:
前向的LSTML依次輸入“測井”,“是”,“記錄”,“鉆入地?!保暗摹?,“過程”,得到六個向量{hL0,hL1,hL2,hL3,hL4,hL5}。后向的LSTMR依次輸入“過程”,“的”,“鉆入地?!?,“記錄”,“是”,“測井”,得到六個向量{hR0,hR1,hR2,hR3,hR4,hR5}。最后將前向和后向的隱向量進(jìn)行拼接得到{[hL0,hR5],[hL1,hR4],[hL2,hR3],[hL3,hR2],[hL4,hR1],[hL5,hR0]},即{h0,h1,h2,h3,h4,h5}。
在BiLSTM-CRF中,一般使用一層的雙向LSTM就完全足夠了。因此,BiLSTM對輸入embeddings的特征提取過程如圖3所示。
圖3 BiLSTM對embeddings的特征提取過程
開頭就提到,BiLSTM接收每個字符的embedding,同時預(yù)測每個字符對5個標(biāo)注標(biāo)簽的概率。但是,應(yīng)該知道上述BiLSTM對輸入embeddings的特征提取得到的拼接向量維度大小為num_directions*hidden_size。為了將輸入表示為每個字符與其對應(yīng)各個類別的分?jǐn)?shù),則需要在BiLSTM層加入一個全連接層,通過softmax將向量映射為一個5維的分布概率,如圖4所示。
這一步,似乎已經(jīng)得到了最終結(jié)果,即通過BiLSTM已經(jīng)找到每個單詞對應(yīng)的最大標(biāo)簽類別,但實際上,通過直接選擇該步驟最大概率的標(biāo)簽類別得到的結(jié)果并不理想,最后的標(biāo)簽序列和想要的有不少出入。原因如下,雖然LSTM能夠通過前向加后向的設(shè)置學(xué)習(xí)到觀測序列之間的依賴,但softmax層的輸出是相互獨立的,輸出與其他層輸出并沒有影響,只是在每一步單純地挑選一個最大概率值的label輸出,這樣的模型顯然無法學(xué)習(xí)到輸出的標(biāo)注之間的轉(zhuǎn)移依賴關(guān)系(標(biāo)簽的概率轉(zhuǎn)移矩陣)以及序列標(biāo)注的約束條件,比如句子的開頭應(yīng)該是“B”或者“O”,絕不能是“I”。為此,非常有必要引入CRF層學(xué)習(xí)序列標(biāo)注的約束條件,通過學(xué)習(xí)轉(zhuǎn)移特征考慮輸出label之間的順序性,確保預(yù)測結(jié)果的有效性。
2.3.3 CRF層
CRF是一個序列化標(biāo)注算法,接收一個輸入序列如X=(x1,x2,…,xn)并且輸出目標(biāo)序列Y=(y1,y2,…,yn),也能被看作是一種seq2seq模型。
NER問題就是條件隨機場問題,即給定自然語言序列X,用最大概率的標(biāo)注序列Y用來表示NER標(biāo)注結(jié)果。設(shè)P(Y|X)為線性鏈條件隨機場,則在隨機變量X取值為x的條件下,隨機變量Y取值為y的條件概率具有如下形式:
(1)
其中:
(2)
式中,sl和tk是該條件概率的特征函數(shù),μl和λk是與其對應(yīng)的權(quán)值,Z(x)是規(guī)范化因子,求和是對所有可能的輸出序列進(jìn)行操作;tk是在邊上定義的特征函數(shù),被稱為特征轉(zhuǎn)移,通常依賴于前一個位置和當(dāng)前位置;sl是在節(jié)點上定義的特征函數(shù),被稱為狀態(tài)特征,通常只依賴于當(dāng)前位置,其中sl和tk二者皆依賴于位置,屬于局部特征函數(shù)。通常局部特征函數(shù)sl和tk可以取的值為1或0;當(dāng)特征函數(shù)滿足特征條件時則取值為1,否則取值為0。條件隨機場完全由特征函數(shù)tk,sl和對應(yīng)的權(quán)值λk,μl確定。
上述公式中有三個需要特別注意的部分:tk,sl和Z(x),理解這三個部分是理解BiLSTM-CRF模型中CRF的關(guān)鍵。
在該例子中,輸入x分別為c0,c1,c2,c3,c4,理想輸出y為B,I,O,O,B。
Z(x)稱規(guī)范化因子或配分函數(shù)。在公式(5)中,“Z(x)是規(guī)范化因子,求和是在所有可能的輸出序列上進(jìn)行的”。其本質(zhì)為所有可能的路徑組合,由于輸入序列長度為5,標(biāo)注類型個數(shù)也為5,因此該圖共有3 125條不同路徑。每條路徑通過exp(*)計算每條路徑的得分,加和得到Z(x)。
sl是節(jié)點上的狀態(tài)特征,取決于當(dāng)前節(jié)點;tk是邊上的轉(zhuǎn)移特征,取決于當(dāng)前節(jié)點和前一個節(jié)點。根據(jù)它們的定義,可以很自然地將它們與BiLSTM-CRF中的Emission Score和Transition Score匹配:Emission Score是由BiLSTM生成的、對當(dāng)前字符標(biāo)注的概率分布;Transition Score是加入CRF約束條件、字符標(biāo)注之間的概率轉(zhuǎn)移矩陣。從這個角度分析,BiLSTM-CRF本質(zhì)就是一個CRF模型,只不過用BiLSTM得到狀態(tài)特征值sl,用反向傳播算法更新轉(zhuǎn)移特征值tk。
在模型訓(xùn)練過程中,模型損失函數(shù)定義如下:
(3)
(4)
其中,Pi,yi和Ayi-1,yi分別表示標(biāo)注序列y中yi的Emission Score和Transition Score,通過查找上圖中BiLSTM的“Emission Score”和“序列標(biāo)注轉(zhuǎn)移矩陣”可以得到每個字符位置的得分,整個序列相加得到score(x,y)。
模型訓(xùn)練過程中最大化對數(shù)似然函數(shù):
(5)
2.3.4 真實路徑得分
∑EmissionScores=P0,START+P1,B+P2,I+P3,O+P4,O+P5,B+P6,END
(6)
∑TransitionScores=PSTART,B+PB,I+PI,O+PO,O+PO,B+PB,END
(7)
EmissionScores來自BiLSTM層的輸出,P0,START和P6,END的初始值設(shè)為0;TransitionScores來自CRF層;將真實路徑中這兩類數(shù)加和,即可得到真實路徑得分。
2.3.5 所有路徑得分
這種方式顯然效率非常低,在該例子中,僅有5個字符和5個標(biāo)注序列,就已經(jīng)有了3 125種路徑組合,在實際工作中,一定會有更長的序列和更多的標(biāo)注標(biāo)簽,因此提高計算效率是非常有必要的??梢酝ㄟ^分?jǐn)?shù)累積的方法來提高效率,即先計算出到達(dá)c0的所有路徑的總得分,然后計算c0→c1的所有路徑的得分,依此類推,直到計算出所有路徑的得分,這就是需要的結(jié)果。
最終Senna詞向量+BiLSTM+CRF的模型如圖5所示。
圖5 最終詞向量+BiLSTM+CRF模型
文中使用的語料為測井勘探院得到的測井解釋知識庫、測井資料處理解釋等相關(guān)測井領(lǐng)域非結(jié)構(gòu)化知識。經(jīng)過處理之后的文本數(shù)據(jù)大約為200 K,轉(zhuǎn)化為詞向量后的數(shù)據(jù)大小為17 M。其中12 M作為訓(xùn)練語料,5 M作為測試語料。
具體步驟如下:
(1)通過測井勘探院得到的測井解釋知識庫文檔資料以及收集到的測井資料處理解釋等測井領(lǐng)域的非結(jié)構(gòu)化知識,作為語料庫。
(2)對語料庫中的數(shù)據(jù)進(jìn)行預(yù)處理,首先利用Jieba分詞工具對語料庫中的數(shù)據(jù)進(jìn)行分詞處理,對處理后的樣本數(shù)據(jù)再通過Senna轉(zhuǎn)化為對應(yīng)的詞向量,最后作為文中所使用的深度神經(jīng)網(wǎng)絡(luò)模型的輸入向量。
(3)標(biāo)注數(shù)據(jù)。將數(shù)據(jù)集中的實體類型分為三類:領(lǐng)域名詞、區(qū)域知識、通用知識,代碼分別為LY、QY、TY。利用BIO標(biāo)注方法進(jìn)行標(biāo)記,具體標(biāo)注方法如表1所示。依據(jù)BIO標(biāo)注方法,“測井?dāng)?shù)據(jù)是油田勘探開發(fā)必不可少的寶貴資源,是建設(shè)數(shù)字油田的關(guān)鍵信息之一”。這句話應(yīng)該標(biāo)注為“測/B-LY 井/I-LY 數(shù)/I-LY 據(jù)/I-LY 是/O 油/B-LY 田/I-LY 勘/I-LY 探/I-LY 開/I-LY 發(fā)/I-LY 必/O 不/O 可/O 少/O 的/O 寶/O 貴/O 資/O 源/O,/O 是/O 建/O 設(shè)/O 數(shù)/B-TY 字/I-TY 油/I-TY 田/I-TY 的/O 關(guān)/O 鍵/O 信/O 息/O 之/O 一/O 。/O”。
(4)訓(xùn)練網(wǎng)絡(luò)模型。
測井命名實體識別需要對句子進(jìn)行分詞。句子分詞之后的詞向量作為BiLSTM網(wǎng)絡(luò)的輸入?yún)?shù),經(jīng)過BiLSTM網(wǎng)絡(luò)進(jìn)行特征提取,輸出的是每個單詞對應(yīng)的預(yù)測標(biāo)簽,最后經(jīng)過CRF約束,輸出最優(yōu)標(biāo)簽序列。
為了驗證文中提出的測井實體抽取模型的實際效果,本次實驗通過使用BiLSTM-CRF模型和詞向量-BiLSTM-CRF模型進(jìn)行對照實驗。
評估指標(biāo)主要采取召回率(R,Recall)、精確率(P,Precision)、F1三項指標(biāo)。它們各自的定義如下所示:
(8)
(9)
F1指標(biāo)是一種衡量分類總體效果的常用評估方法,其公式為:
(10)
文中一共進(jìn)行了3組實驗,分別使用如下所述的主要模型:BiLSTM-CRF模型、詞向量-BiLSTM-CRF模型和提出的Senna詞向量-BiLSTM-CRF模型,同時使用不同的詞向量維度來作為不同組的對比數(shù)據(jù),第一組的詞向量維度設(shè)置為100,第二組的詞向量維度設(shè)置為200,第三組的詞向量維度設(shè)置為250。實驗多組結(jié)果匯總?cè)绫?所示。
表2 不同方法在不同詞向量維度的評估指標(biāo)值比較
通過對比分析以上3組匯總實驗結(jié)果,當(dāng)詞向量維度設(shè)置為200時,精確率、召回率、F1值均達(dá)到三組最好效果,再繼續(xù)增加詞向量維度,設(shè)置為250時,效果并沒有提高,甚至比維度為200時的效果更差。從精確率、召回率、F1三者橫向?qū)Ρ鹊慕嵌瓤矗_率效果比召回率效果普遍好一些。詞向量-BiLSTM-CRF模型的精確率、召回率、F1對比單向的LSTM-CRF模型都有更好的效果,同時文中提出的Senna詞向量-BiLSTM-CRF比使用隨機生成的詞向量效果更好一些。綜上分析,文中使用的測井命名實體抽取模型取得了不錯的效果。
針對現(xiàn)有的BiLSTM-CRF模型以及詞向量-BiLSTM-CRF模型,文中使用了一種基于Senna詞向量-BiLSTM-CRF的測井命名實體抽取模型。通過將Senna詞向量嵌入到雙向長短期記憶網(wǎng)絡(luò)提取文本特征信息,通過雙向長短期記憶網(wǎng)絡(luò)模型的訓(xùn)練,輸出發(fā)射分?jǐn)?shù),可表示BiLSTM將每個字符預(yù)測為某個標(biāo)簽的概率。CRF層將BiLSTM的Emission Score作為輸入,輸出符合標(biāo)注轉(zhuǎn)移約束條件的、最大可能的預(yù)測標(biāo)注序列,在一定程度上提高了對測井實體的抽取效果。采用Senna詞向量比隨機生成詞向量訓(xùn)練效果更好。