趙蘭枝,史欣沅
(1.河套學(xué)院 數(shù)學(xué)與計算機(jī)系,內(nèi)蒙古 巴彥淖爾015000;2.中國科學(xué)院大學(xué),北京101408)
在科學(xué)報告和公共出版物中,同一概念往往具有不同的表達(dá)方式。實體標(biāo)準(zhǔn)化,或者稱為實體鏈接,就是要將不同的表達(dá)形式對應(yīng)到相同的標(biāo)準(zhǔn)實體上。在生物醫(yī)學(xué)領(lǐng)域,每年要出版數(shù)十萬的文章。所以,自動的高效率信息檢索和知識處理是非常重要的。自然語言處理領(lǐng)域的幾大基本問題之一就是實體標(biāo)準(zhǔn)化。實體標(biāo)準(zhǔn)化要完成從模糊表達(dá)或者多樣化表達(dá)到標(biāo)準(zhǔn)表達(dá)的任務(wù)。
人們?yōu)榱送瓿蓪嶓w標(biāo)準(zhǔn)化的任務(wù)做了許多的嘗試。由于生物醫(yī)學(xué)領(lǐng)域概念的多樣性,生物醫(yī)學(xué)的實體標(biāo)準(zhǔn)化始終是研究中的前沿領(lǐng)域,許多致力于完成實體標(biāo)準(zhǔn)化的文章紛紛發(fā)表。然而僅僅依靠形式上的相似來判定鏈接關(guān)系是不恰當(dāng)?shù)?。要想?zhǔn)確地完成實體標(biāo)準(zhǔn)化,必須要從實體所蘊含的內(nèi)在含義出發(fā)來思考問題。由于深度學(xué)習(xí)的崛起,人們期望機(jī)器能夠自己學(xué)習(xí)到不同實體之間的鏈接關(guān)系,即使用機(jī)器學(xué)習(xí)的方法來完成實體標(biāo)準(zhǔn)化。
近些年來,以機(jī)器學(xué)習(xí)為代表的人工智能領(lǐng)域迅速崛起并且成為當(dāng)代學(xué)術(shù)界和工業(yè)界的熱點話題?,F(xiàn)在,人工智能技術(shù)遍布我們的生活。從手機(jī)語音助手、商品推薦系統(tǒng)、人臉識別系統(tǒng)到自動駕駛技術(shù),這些都或多或少地使用了人工智能技術(shù)。特別是近些年,隨著數(shù)據(jù)的爆炸式增長、機(jī)器計算能力的增強(qiáng)、機(jī)器學(xué)習(xí)算法的成熟以及其廣闊的應(yīng)用前景,越來越多的人開始關(guān)注“深度學(xué)習(xí)”這個全新的研究領(lǐng)域,深度學(xué)習(xí)也以其強(qiáng)大的能力被運用于各個研究領(lǐng)域。詞嵌入技術(shù)的出現(xiàn)使得自然語言轉(zhuǎn)變?yōu)樘卣飨蛄慨a(chǎn)生可能,也使得深度學(xué)習(xí)開始被運用于自然語言處理領(lǐng)域。然而深度學(xué)習(xí)需要大量的標(biāo)注數(shù)據(jù)作為訓(xùn)練集。當(dāng)可供訓(xùn)練的語料庫較小時,通過深度學(xué)習(xí)完成實體標(biāo)準(zhǔn)化就成為了挑戰(zhàn)。
本文從研究實體的語義含義出發(fā),通過使用預(yù)先訓(xùn)練好的詞向量所包含的語義信息來完成從通俗文本表達(dá)到標(biāo)準(zhǔn)實體的任務(wù)。通過整合完美匹配和淺層卷積神經(jīng)網(wǎng)絡(luò)的方法,本文模型能夠在可訓(xùn)練樣本較少的情況下達(dá)到非常好的性能表現(xiàn)。
通過將預(yù)先標(biāo)注好的文件整合并處理后生成廣域表,借由廣域表完成縮寫檢測和找到本文處理的實體類型產(chǎn)生數(shù)據(jù)集。首先將數(shù)據(jù)集經(jīng)過完美匹配模塊進(jìn)行部分匹配和剪枝,然后將目前還未被匹配的實體送入卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行實體標(biāo)準(zhǔn)化產(chǎn)生特征向量并與標(biāo)準(zhǔn)向量進(jìn)行對比,通過投票器獲得最終結(jié)果。
本文采用的輸入數(shù)據(jù)是經(jīng)過預(yù)先標(biāo)注好的文本數(shù)據(jù)。預(yù)標(biāo)注文本是由人工標(biāo)注的文本,并為每個實體標(biāo)記了類型。預(yù)標(biāo)注文件分為兩類,一類標(biāo)注文件標(biāo)記了每篇文章中出現(xiàn)的實體并為其編號,同時指明了該實體的其他具體信息;另一類標(biāo)注文件標(biāo)記了每篇文章中出現(xiàn)的標(biāo)準(zhǔn)實體并為其編號以及對應(yīng)的字典ID等具體信息。例如對于一篇如圖1所示的語段,其對應(yīng)標(biāo)注文件如圖2和圖3所示。
圖1 原始文本數(shù)據(jù)
圖2 預(yù)標(biāo)注文件一(截圖)
圖3 預(yù)標(biāo)注文件二(截圖)
由《Abbreviation definition identification based on automatic precision estimates》一文提出的縮寫檢測模型(以下簡稱Ab3P模型)是一種準(zhǔn)確率極高的,能將生物醫(yī)學(xué)領(lǐng)域的縮寫詞轉(zhuǎn)變成完整形式的模型。在各種各樣的出版物中,縮寫形式在通俗文本中是普遍存在的。例如CNS表示中樞神經(jīng)系統(tǒng)(central nervous system,CNS),這樣的用法經(jīng)常出現(xiàn)在有關(guān)神經(jīng)學(xué)科的研究文獻(xiàn)中。顯然,這樣的縮寫形式也應(yīng)該鏈接到相應(yīng)的實體上去。由于縮寫詞大部分來源于詞組,縮寫詞通常沒有預(yù)先訓(xùn)練好的詞向量,并且會對模型的訓(xùn)練產(chǎn)生干擾。本文通過Ab3P模型[1]來將通俗文本中的縮寫形式轉(zhuǎn)換其對應(yīng)的標(biāo)準(zhǔn)詞組。Ab3P是一個專門為生物醫(yī)學(xué)概念開發(fā)的縮寫檢測工具,其準(zhǔn)確率高達(dá)96.5%。Ab3P縮寫檢測模塊如圖4所示。
圖4 Ab3P縮寫檢測模塊
通過應(yīng)用Ab3P縮寫檢測模型可以生成每篇文章對應(yīng)的縮寫詞對照表。縮寫詞對照文件包含實體的縮寫形式和其對應(yīng)的完整形式等信息。一個縮寫詞對照文件如圖5所示。
圖5 縮寫詞對照(文件截圖)
對于神經(jīng)網(wǎng)絡(luò)所需要使用的輸入數(shù)據(jù),需要將通俗文本中的實體對應(yīng)到相應(yīng)的標(biāo)準(zhǔn)實體上。首先需要通過由Ab3P模型生成的縮寫詞對照表將縮寫形式用完整形式替換,再將所有數(shù)據(jù)合并到一張廣域表中以供模型之后使用。廣域表的部分?jǐn)?shù)據(jù)如圖6所示。
圖6 廣域表部分?jǐn)?shù)據(jù)(截圖)
輸入文件給出了標(biāo)準(zhǔn)詞典,標(biāo)準(zhǔn)詞典包含實體ID和標(biāo)準(zhǔn)實體名稱2部分?jǐn)?shù)據(jù)。部分標(biāo)準(zhǔn)詞典數(shù)據(jù)如圖7所示。
圖7 標(biāo)準(zhǔn)詞典部分?jǐn)?shù)據(jù)(截圖)
對于帶有連字符的實體,需要用空白字符取代連字符來保證模型的正確運行。同時,大小寫的不同也可能會對詞向量的生成產(chǎn)生影響。如果某個詞無法在詞向量模型中找到匹配項,則需要將其全部轉(zhuǎn)為小寫形式再進(jìn)行匹配。對于一個標(biāo)準(zhǔn)實體來說,使用預(yù)先訓(xùn)練好的Word2Vec模型,將實體中的每個詞轉(zhuǎn)變成相對應(yīng)的大小為(1,200)詞向量。每個詞對應(yīng)的詞向量為xi=[x1,x2,...,xk],其中k=200。然后對這n個詞向量做簡單平均處理得到該實體對應(yīng)的詞向量y=[y1,y2,...yk],其中k=200。
其中,xji表示第i個詞向量的第j個分量,ni表示詞向量的個數(shù)。
由于大小為(1,200)的詞向量處理起來開銷很大,并且包含許多次要信息,所以需要對詞向量進(jìn)行降維處理。本文使用主成分分析法對詞向量進(jìn)行降維,主要成分占比例不小于95%。經(jīng)過主成分分析法降維的向量大小為(1,139),大大提升了模型的效率。假設(shè)實體E的標(biāo)準(zhǔn)向量為z,則z=PCA(y,ncomponent=0.95)$,其中y表示實體E的大小為(1,200)的詞向量。最后將所有標(biāo)準(zhǔn)向量與標(biāo)準(zhǔn)詞典表合并得到標(biāo)準(zhǔn)向量表。生成標(biāo)準(zhǔn)向量如圖8所示。
圖8 生成標(biāo)準(zhǔn)向量
首先要將訓(xùn)練數(shù)據(jù)分割為訓(xùn)練集和驗證集,本文選擇從訓(xùn)練數(shù)據(jù)中隨機(jī)選擇17%作為驗證集數(shù)據(jù)。由于訓(xùn)練數(shù)據(jù)中包含許多未對齊實體(這些都是與本文所研究目標(biāo)無關(guān)的實體),第一步要從廣域表中去掉這些實體項。
同時本文的研究對象為phenotype和habitat,所以需要剔除其他類型的實體。然后將剩余的通俗實體通過詞向量模型轉(zhuǎn)化成大小為(8,200)的嵌入矩陣。由于98.8%的實體都是由不超過8個詞組成的,所以設(shè)置嵌入矩陣的行數(shù)為8。如果實體的詞向量個數(shù)不足8個,則需要用零向量填充至8個。若實體的詞向量個數(shù)超過8個,則需要進(jìn)行分組。每8個一組,組內(nèi)進(jìn)行簡單平均處理。若最終結(jié)果不足8個,則進(jìn)行0填充。經(jīng)過這樣的處理,每個通俗實體都是有大小為(8,200)的嵌入矩陣描述。令Xi表示第i個輸入的實體,xij表示第i個實體Xi第j個單詞的k維詞向量,本文中k=200。定義詞嵌入矩陣xi如下:
值得注意的是,自由文本中的某些實體能夠通過基于規(guī)則的處理與標(biāo)準(zhǔn)實體完成形態(tài)上的匹配。這些實體經(jīng)過形態(tài)上的比較即可快速地找到對應(yīng)標(biāo)準(zhǔn)實體,而不需要被送入神經(jīng)網(wǎng)絡(luò)模型來完成鏈接。并且根據(jù)我們的詞向量生成方式,形態(tài)上完全相同的實體之間,其特征向量一般也應(yīng)該是相同的。由于完美匹配模塊的貢獻(xiàn),本文的神經(jīng)網(wǎng)絡(luò)模型能夠更高效地利用數(shù)據(jù),收斂速度也會加快。完美匹配的規(guī)則如下:
(1)用空白符替代連字符;
(2)移除除去字母和空白符之外的所有字符;
(3)采用大小寫不敏感匹配模式。
完美匹配模塊如圖9所示。
圖9 完美匹配模塊
采用卷積神經(jīng)網(wǎng)絡(luò)的靈感來源于KIM[2]和LIMIMSOPATHAM與COLLIER[3]等人。由于卷積核相當(dāng)于特征提取器,使用卷積神經(jīng)網(wǎng)絡(luò)可以提取詞向量中內(nèi)在的本質(zhì)特征。不同的卷積核可以提取的不同的特征,通過增加卷積核的個數(shù)可以增加提取的特征數(shù)目。一般來說直接提取的特征過于細(xì)致,所以需要使用池化來提升來進(jìn)一步捕捉泛化特征和降低維度來提高收斂速度。使用全連接層可以學(xué)習(xí)到不同特征之間的相互聯(lián)系。所以卷積神經(jīng)網(wǎng)絡(luò)往往會在網(wǎng)絡(luò)尾端加入全連接層。
本文的卷積神經(jīng)網(wǎng)絡(luò)模塊由1個一維卷積層、1個池化層和2個全連接層構(gòu)成。神經(jīng)網(wǎng)絡(luò)的輸入為大小為(8,200)的嵌入矩陣,輸出為一個大小為(1,139)的特征向量。輸出的特征向量將與所有標(biāo)準(zhǔn)向量進(jìn)行比較,選擇在特征空間中余弦距離最小的向量作為該實體對應(yīng)的標(biāo)準(zhǔn)向量的得分。選擇得分最高的標(biāo)準(zhǔn)向量最為該實體對應(yīng)的標(biāo)準(zhǔn)向量。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖10所示。
圖10 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
為了減少過擬合,本文采用3個CNN模型同時訓(xùn)練的集成方法。3個CNN模型具有相同的結(jié)構(gòu),但是他們的初始權(quán)重卻是各自隨機(jī)初始化,并且具有不同的卷積核大小,不同大小的卷積核和可以抽取不同細(xì)粒度的特征。為了增強(qiáng)本文模型的泛化能力,CNN模型所使用的數(shù)據(jù)是經(jīng)過隨機(jī)bootstrap取樣的[4]。并且本文采用5-折交叉驗證的方法使用袋外數(shù)據(jù)來驗證。3個CNN模型產(chǎn)生的特征向量將被送入一個多數(shù)投票器中。如果沒有結(jié)果以多數(shù)優(yōu)勢勝出,則投票器會選取一個驗證過程中準(zhǔn)確率最高的模型產(chǎn)生的結(jié)果。結(jié)合集成機(jī)制的網(wǎng)絡(luò)模型如圖11所示。
圖11 結(jié)合集成機(jī)制的網(wǎng)絡(luò)模型
整個模型的輸入數(shù)據(jù)分為2種:預(yù)注釋通俗文本實體和標(biāo)注實體。
標(biāo)準(zhǔn)實體通過詞向量模型轉(zhuǎn)變成(n,200)的向量模型,再經(jīng)過簡單平均和PCA降維處理后變成大?。?,139)的標(biāo)準(zhǔn)向量。
預(yù)注釋文本中的實體首先經(jīng)過Ab3P模塊將縮寫詞還原到完整形式,然后通過詞向量模型成為(8,200)的嵌入矩陣。嵌入矩陣被送入3個結(jié)構(gòu)相同的CNN模型中,得到大小為(1,139)的特征向量。將特征向量與標(biāo)準(zhǔn)向量做比對,選取余弦相似度最高的標(biāo)準(zhǔn)向量送入投票器。投票器選擇得分最高的標(biāo)準(zhǔn)向量作為結(jié)果。數(shù)據(jù)流動方向如圖12所示。
圖12 數(shù)據(jù)流動方向
本文所使用的生物醫(yī)學(xué)語料庫和預(yù)先注釋的實體集由BioNLP-OS2019 task Bacteria Biotope提供。該任務(wù)中包含了2種實體類型:phenotype和habitat。實體phenotype描述了微生物的特性;實體habitat描述了可以觀察到微生物的物理環(huán)境。同時該任務(wù)還提供了包含了3 602個相關(guān)標(biāo)準(zhǔn)概念的標(biāo)準(zhǔn)詞典。在提供的原始詞典中,每個實體被分配了一個唯一的ID,同時提供了該實體的層級信息。在本文中,每個標(biāo)準(zhǔn)實體的層級信息被省略。Ab3P縮寫詞探測器由任務(wù)組織者們另外提供。預(yù)先編譯好的詞向量模型也需要單獨下載。本文所使用的實驗環(huán)境為windows 10專業(yè)版20H2。本文使用基于Tensorflow和Keras的深度學(xué)習(xí)框架設(shè)計模型和算法,使用python語言進(jìn)行編程。
本文的神經(jīng)網(wǎng)絡(luò)模型使用隨機(jī)梯度下降算法作為優(yōu)化方法,使用余弦相似度作為損失函數(shù)。在整個訓(xùn)練數(shù)據(jù)中,隨機(jī)選擇20%作為驗證集數(shù)據(jù)。同時使用提前停止法來決定訓(xùn)練輪數(shù)。設(shè)置學(xué)習(xí)率為0.01,batch size為2,三個模型的卷積核大小分別為4、5和6,卷積核數(shù)目為5 000,超參數(shù)的設(shè)置由網(wǎng)格搜索法決定。
本文所介紹的模型具有良好的性能。表1展示了本文模型各個組件的準(zhǔn)確率。通過分析表1可以看出,我們的完美匹配模塊起到了相當(dāng)?shù)淖饔?。在測試集中,CNN模塊的準(zhǔn)確率只有0.66,而整體的模型準(zhǔn)確度卻達(dá)到了0.71,這說明完美匹配模塊對整體模型準(zhǔn)確度的貢獻(xiàn)相當(dāng)可觀。
表1 模型各部分性能
由表2可知,通過與其他模型的比較,ABCNN[5]只有0.22的準(zhǔn)確率,而本文模型卻具有0.71的準(zhǔn)確率,顯示了本文模型的巨大優(yōu)勢。由于ABCNN模型比較復(fù)雜,在數(shù)據(jù)集比較充分時發(fā)揮出非常高的性能。但是在數(shù)據(jù)集較少時,ABCNN模型的訓(xùn)練不足,無法發(fā)揮很好的性能。得益于淺層卷積網(wǎng)絡(luò)的簡單結(jié)構(gòu),本文模型在數(shù)據(jù)集較少時能夠較快收斂并且達(dá)到非常高的精度?;鶞?zhǔn)模型[6]的準(zhǔn)確率為0.69,由于基準(zhǔn)模型只有一個全連接層,無法從數(shù)量眾多的特征中學(xué)習(xí)到各個特征和標(biāo)準(zhǔn)向量之間的關(guān)系。本文使用2個全連接層來捕捉特征和標(biāo)準(zhǔn)向量之間的對應(yīng)關(guān)系,使得模型準(zhǔn)確率上升到0.71。
表2 各模型性能比較
本文采用3個CNN模型同時訓(xùn)練的方法來提升模型準(zhǔn)確率。整合模型的準(zhǔn)確率略優(yōu)于單個模型,所以整合模型確實起到了提升模型準(zhǔn)確度的作用,但是整合模型訓(xùn)練比較費時。本文所使用的卷積核數(shù)目為5 000,改變卷積核的數(shù)目會導(dǎo)致CNN模型準(zhǔn)確度的變化。圖13給出了使用不同卷積核時CNN模塊的準(zhǔn)確度。
圖13 卷積核數(shù)目對準(zhǔn)確率的影響
當(dāng)卷積核過少時,CNN模型對特征的提取不足,導(dǎo)致模型在訓(xùn)練集和測試集的精確度都比較低;當(dāng)卷積核過多時,模型提取的特征太多太強(qiáng),導(dǎo)致模型泛化能力變差,即使在訓(xùn)練集上精確度較高,但在測試集上的精確度卻下降。同時,卷積核增多,訓(xùn)練時間也會呈現(xiàn)增加趨勢。
雖然本文模型的性能表現(xiàn)比較不錯,但是仍然存在許多不足。首先,在使用詞向量模型構(gòu)建標(biāo)準(zhǔn)實體的詞向量時,標(biāo)準(zhǔn)實體中的每個詞只是進(jìn)行簡單的加權(quán)平均。事實上,一個實體的詞語中有的包含更多的語義信息,有的攜帶較少的語義信息。一種合理的方式是考慮為實體中的每個單詞分配不同的權(quán)重,以使得生成的標(biāo)準(zhǔn)詞向量更能表示其語義特征。或者使用其他的詞嵌入模型,直接將實體轉(zhuǎn)化成對應(yīng)的詞向量。
其次,CNN模塊存在問題。通過分析CNN模塊的準(zhǔn)確率,CNN模塊在訓(xùn)練集的準(zhǔn)確率較高,但在測試集的準(zhǔn)確率卻相對較低。這說明CNN模塊的泛化能力有待提升。
本文介紹了一個基于卷積神經(jīng)網(wǎng)絡(luò)的整合模型用來將自由文本中的生物醫(yī)學(xué)實體標(biāo)準(zhǔn)化到其對應(yīng)的標(biāo)準(zhǔn)實體上。使用Ab3P縮寫詞檢測模塊完成對輸入文本中縮寫詞的處理。通過利用預(yù)先訓(xùn)練好的詞嵌入模型將自然語言轉(zhuǎn)變成機(jī)器可以處理的詞向量。利用完美匹配模塊來提升模型的精度和提高卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效率。3個具有不同大小卷積核的CNN模型同時訓(xùn)練提高了模型對詞向量的特征抽取能力。淺層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與完美匹配模塊的結(jié)合使模型在訓(xùn)練數(shù)據(jù)較少時達(dá)到了相當(dāng)?shù)臏?zhǔn)確率。與相關(guān)模型的對比也展示出本文模型的效率。但本文模型依然存在一些問題,想要達(dá)到更高的準(zhǔn)確率需要更加深入的研究。
模型性能的進(jìn)一步提升有可能通過將更多的語義信息納入模型而實現(xiàn),例如上下文環(huán)境信息,實體的層次信息等。由于缺乏語境信息而導(dǎo)致標(biāo)準(zhǔn)化過程中產(chǎn)生偏差,這種偏差不僅影響卷積神經(jīng)網(wǎng)絡(luò)模塊的性能,而且會影響完美匹配的性能。對于同一個文本中實體,標(biāo)準(zhǔn)詞典可能具有多個候選實體可以與之對應(yīng)。但是由于缺乏語境信息,本文模型只能將其對應(yīng)到一個固定的標(biāo)準(zhǔn)實體上。盡管已經(jīng)有人在研究如何在實體標(biāo)準(zhǔn)化時保留更多的語義信息,但是想要完成完美的實體標(biāo)準(zhǔn)化還有很長的路要走。