戴佩娟, 賀春林, 山岳玉蓉
(西華師范大學(xué) 計算機學(xué)院, 四川 南充 637000)
在大數(shù)據(jù)時代,對專利數(shù)據(jù)的有效利用,能夠為企業(yè)單位研發(fā)人員提供極大的幫助.專利信息資源是一種重要的科技信息源,是科研人員和科技情報工作者在實際工作中經(jīng)常需要檢索的重要參考資源,加之醫(yī)藥行業(yè)的特殊性,醫(yī)藥專利數(shù)據(jù)是藥物信息分析的重點與難點.
文本分類在國內(nèi)外的研究已基本趨于成熟,只是在不同的文本分類中不同的模型和算法表現(xiàn)得效果不同.而對于專利文本分類的研究,在深度學(xué)習上很少.目前,在對專利的標引工作中,大多只運用了強約束策略式標引、人工標引兩種,而前者是其領(lǐng)域的權(quán)威者由自己所積累的行業(yè)知識來確定匹配規(guī)則,缺點是領(lǐng)域權(quán)威者自身意識的限制,對知識的了解和掌握也無法保證全面,準確率和查全率無法滿足需求;后者效率低,對人力資源消耗巨大.這兩種方式都不適合大數(shù)據(jù)專利知識下的標引分類工作.
文本分類技術(shù)發(fā)展過程從最開始的專家系統(tǒng)、慢慢發(fā)展到后來的機器學(xué)習、到現(xiàn)在還將深度學(xué)習應(yīng)用到了這個領(lǐng)域.專利數(shù)據(jù)分類進一步利用了基于自然語言處理(NLP)的方法[7]、基于語義分析的方法[8]、基于規(guī)則的方法[9]、基于屬性函數(shù)的方法[10]和基于神經(jīng)網(wǎng)絡(luò)的方法[11].所以本文的研究內(nèi)容和創(chuàng)新點是提供一種基于XGBoost模型進行專利自動分類的方法,通過理論和實驗結(jié)果證明XGBoost模型對醫(yī)藥專利標簽的分類相比于其他深度學(xué)習模型準確率更高.
本實驗設(shè)計了一種醫(yī)藥專利大數(shù)據(jù)自動分類方法,使用NLP方式,在醫(yī)藥技術(shù)方面構(gòu)造了詞典,并且利用計算機來提取醫(yī)藥專利特征,使模型以高準確率、高速率地完成醫(yī)藥專利自動分類工作,對醫(yī)藥專利信息做到了有效利用、整合研究和應(yīng)用創(chuàng)新,擁有滿足需求的高查全率和高查準率.針對醫(yī)藥專利大數(shù)據(jù)分別設(shè)計了下列三種模型,第一種基于XGBoost的模型,在模型中使用sklearn中的TfidfVectorizer這個類來提取文本特征,使用TF-IDF對數(shù)據(jù)進行分詞,XGBoost用'binary:logistic'參數(shù)選擇二分類,并用OneVsRest -Classifier將其轉(zhuǎn)換為多標簽分類.調(diào)整參數(shù)訓(xùn)練模型使訓(xùn)練所得的模型效果最佳,最終查準率可以達到0.970219,查全率可達0.832452.第二種設(shè)計了添加注意力機制的雙向長短時記憶網(wǎng)絡(luò)模型.在數(shù)據(jù)預(yù)處理時,對比了三種詞干化技術(shù),最終采用了NLTK的ISRI來數(shù)據(jù)詞干化,再對比GloVe(Global vectors for word representation)、Word2Vec(Word to Vector)進行數(shù)據(jù)向量化,選擇對于此實驗更優(yōu)的GloVe詞向量方式,并使用keras中的Tokenizer進行分詞,將雙向LSTM和Attention機制相結(jié)合,用深度學(xué)習方法解決標簽分類問題,調(diào)整模型結(jié)構(gòu)和參數(shù),最終訓(xùn)練所得效果優(yōu)秀,查準率可達到0.8951,查全率可達到0.8898,基本接近百分之九十,但比XGBoost的模型差.第三設(shè)計了一種基于文本卷積神經(jīng)網(wǎng)絡(luò)TextCNN的模型.在數(shù)據(jù)預(yù)處理方式上與第2種模型相同,使用GloVe進行詞向量化,再加embedding層,然后將數(shù)據(jù)傳入模型中,模型中選取維度為3、4、5的不同卷積并行操作,其中有兩次卷積,一次池化操作、6次全連接層壓縮維度,最后由softmax激活函數(shù)進行分類.在訓(xùn)練過程中不斷調(diào)整模型,選取Adam優(yōu)化器對模型進行優(yōu)化,訓(xùn)練效果趨于穩(wěn)定,但效果一般,查準率只能達到0.82897,查全率只有0.669222.
XGBoost(extreme gradient boosting decision tree)是由陳天奇等[14]研發(fā)的一個開源機器學(xué)習項目,它本質(zhì)上是一個梯度提升決策樹(gradient boosting decision tree,GBDT),采用了boosting思想,基本思路是將基分類器層層疊加,每一層在訓(xùn)練的時候,對前一層基分類器分錯的樣本,給予更高的權(quán)重.
XGBoost的目標函數(shù)為:
(1)
XGBoost樹的構(gòu)造方法是將一個節(jié)點延伸出兩個分支,一層層的節(jié)點不斷分裂最終就形成了整棵樹.樹節(jié)點的分裂方式有兩種,枚舉所有不同樹結(jié)構(gòu)的貪心算法、近似算法.貪心算法是從樹深度0開始,每一節(jié)點都遍歷所有的特征,對于某個特征,先按照該特征的值排序,再線性掃描該特征來確定最好的分割點,最后對所有特征進行分割后,選擇增益最高的特征.計算Gain增益的方式:
(2)
近似算法針對大數(shù)據(jù),通過特征的分布,按照百分比確定一組候選分裂點,遍歷所有的候選分裂點來找到最佳的分裂點,這時遍歷的范圍便變小了.
由于醫(yī)藥專利文本說明性較長,長文本較多,為解決在文本處理中長文本的梯度消失的問題,引入了LSTM的模型,它比起普通的循環(huán)神經(jīng)網(wǎng)絡(luò),多了三個門的概念:遺忘控制門、輸入控制門、輸出控制門.遺忘控制門用來確定上一個隱藏層狀態(tài)的信息哪些是重要的,輸入控制門用來確定當前狀態(tài)的哪些信息是重要的,輸出控制門用來確定下一個隱藏層狀態(tài).
LSTM的細胞結(jié)構(gòu)圖1如下:
圖1 LSTM細胞結(jié)構(gòu)
LSTM就是為了解決長期依賴問題而生的,LSTM通過刻意的設(shè)計來避免長期依賴問題.圖1中最上方平行的一條線可稱為“主線”,貫穿整個鏈,只進行少量的信息交互,信息流保持不變會很容易.但LSTM卻還無法解決上下文關(guān)聯(lián)的問題,有些預(yù)測可能需要由前面若干輸入和后面若干輸入共同決定,這樣會更加準確.因此提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 Bi-LSTM結(jié)構(gòu)
注意力機制是從序列數(shù)據(jù)中學(xué)習到每一個節(jié)點的權(quán)重,并按權(quán)重將節(jié)點合并.是為了將專業(yè)有辨別性的詞語賦予更高的權(quán)重值,提高分類效果.Attention機制加入了三個新變量,查詢(query),鍵值對(keys,value).計算時,首先是將向量query和向量key來進行點積,向量拼接,感知機等方式獲取相似度,計算結(jié)果當作權(quán)重;其次使用一個激活函數(shù)來對權(quán)重歸一化;最后將鍵值value和計算出來的權(quán)重一一對應(yīng)求和,這就是Attention的值.
由于訓(xùn)練數(shù)據(jù)過大,在前兩次模型訓(xùn)練過程中,訓(xùn)練時間過長,選擇訓(xùn)練速度快的TextCNN作為第三種模型.TextCNN(文本卷積神經(jīng)網(wǎng)絡(luò),Text Convolutional Neural Network),是專門用來解決文本任務(wù)的卷積神經(jīng)網(wǎng)絡(luò),它同多窗口大小的n-gram方式相似,使用多個不同尺寸窗口來提取文本關(guān)鍵信息,具有很好的局部相關(guān)性,能夠解決文本之間上下文聯(lián)系性無法在卷積神經(jīng)網(wǎng)絡(luò)中獲得很好的表示方式的問題.
TextCNN的一個很大的優(yōu)點就是訓(xùn)練速度極快,實際上可以將它看作是使用一維卷積的方式獲取句子中多窗口的言語特征.它在短文本領(lǐng)域的效果很優(yōu)秀,因為它對于淺層特征的提取效果非常好,例如搜索、對話等方面應(yīng)用時效果很好;而對于長文本領(lǐng)域,由于它依賴多窗口來獲取文本之間的聯(lián)系,在長文本關(guān)系獲取的方面能力不足,還不能很好地獲取語言先后順序、時態(tài)等特征,不能很好地發(fā)揮自己的作用.
本實驗使用TF-IDF算法提取文本特征,主要思想是,如果某個詞或短語在一篇文章中出現(xiàn)的頻率高,并且在其他文章中很少出現(xiàn),則認為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類.再采用OneVsRestClassifier進行包裝.它使用OnevsRest算法,也是一個評價器.它的原理是使用多個基分類器,其中每一個都是一個二分類,那么就可以由此組成一個多分類器.例如,對于一個特定類,其中一個二分類器一共有兩個值,若測試類屬于該類為1,不屬于為0,就可以將該類和其他類區(qū)分開來,通過依次對多個二分類分類器執(zhí)行上述操作,以此將多分類轉(zhuǎn)為二分類任務(wù).醫(yī)藥大數(shù)據(jù)專利的技術(shù)類型共有12個類,每個類由此算法劃分成為12個訓(xùn)練集數(shù)據(jù),將12分類變成12個二分類喂入XGBoost模型中.XGBoost模型結(jié)構(gòu)如圖3所示:
圖3 XGBoost模型結(jié)構(gòu)
基于Bi-LSTM+Attention模型結(jié)構(gòu)如圖4所示.在模型中,使用了兩個雙向LSTM層,在訓(xùn)練時選擇了兩個和三個雙向LSTM層,但最終結(jié)果顯示,兩個雙向LSTM層的效果更好.整個訓(xùn)練過程包括GloVe方法所訓(xùn)練的詞向量、文本分詞、訓(xùn)練模型.
圖4 Bi- LSTM+Attention模型結(jié)構(gòu)
TextCNN模型結(jié)構(gòu)如下圖5,該實驗中filter_window_size=3,4,5,第一次卷積操作每個size下有num_filters = 256個卷積核,第二次卷積核操作每個size下有num_filters = 128個卷積核.在卷積操作后用BN進行數(shù)據(jù)歸一化,使用relu激活函數(shù).在兩次操作之后進行最大池化,池化尺寸為4.最后將三個數(shù)據(jù)拼接起來,經(jīng)過全連接層,dropout防止過擬合,最后壓縮維度,使用softmax進行多分類.其中優(yōu)化器使用的是Adam優(yōu)化器,數(shù)據(jù)的度量方法為MSE,自定義了loss函數(shù)binary_focal_loss.
圖5 TextCNN模型結(jié)構(gòu)
本文數(shù)據(jù)集選取的是歐洲專利局的湯森路透醫(yī)藥專利數(shù)據(jù),使用十七萬標引數(shù)據(jù)用來訓(xùn)練模型,將其按照8∶2劃分為訓(xùn)練集和測試集.通過人工標引將其劃分為十二類醫(yī)藥專利類型.本實驗要做的是將醫(yī)藥數(shù)據(jù)標引完成后針對專利技術(shù)類型對醫(yī)藥專利分類,醫(yī)藥大數(shù)據(jù)總字段數(shù)據(jù)說明專利公開號(openno)、專利技術(shù)類型(class)、標題(title)、摘要(abstract)、IPC分類號、權(quán)利要求(claim).實驗主要是通過專利文字說明是否包含關(guān)鍵詞來判斷其為某一個技術(shù)類型.將數(shù)據(jù)分為三個部分,序列,文本說明,標簽,訓(xùn)練時文本說明為X,標簽為Y.源數(shù)據(jù)中專利技術(shù)類型組成如下:
表1 專利類型組成中英文對照表
查準率:
Percision=TP/(TP+FP),
(3)
查全率:
Recall=TP/(TP+FP),
(4)
平衡因子F1:
(5)
查全率和查準率之間是互相影響的,理想狀態(tài)下應(yīng)該是都高,但是一般情況下查準率高,查全率就低,查全率低,查準率就高.所以用平衡因子F1來作為一個平均查準率和查全率的評價指標.它被定義為查全率和查準率的調(diào)和平均數(shù).
該實驗設(shè)置參數(shù)如下:max_depth, n_estimators, colsample_bytree, objective, scale_pos_weight,n_gpus,min_child_weight, gamma,subsample, learning_rate, reg_lambda.初始設(shè)置參數(shù)各個值為:8,200,0.8,1,binary: log -istic,0,0,mlogloss, 0,1,0.1,0.1.在經(jīng)過一系列參數(shù)調(diào)整后,實驗的參數(shù)為各個參數(shù)值為10,1200,0.8,1,binary:logistic,0,0, mlogloss,0.3,0.6,0.1, 0.1.最后再對max_depth和n_estimators進行調(diào)整得到如下結(jié)果:
由表2可以得出,max_depth=1200時模型效果最好,n_estimators=18時模型效果最好.所以模型選擇max_depth=1200,n_estimators=18作為參數(shù)值.最后模型的最優(yōu)結(jié)果為:precision=0.970 219,recall=0.832 452,f1:= 0.893 577.
表2 XGBoost參數(shù)調(diào)優(yōu)
本文將同樣的訓(xùn)練集和測試集在另外兩個不同的基于深度學(xué)習的網(wǎng)絡(luò)模型,分別為:Bi-LSTM+Attention和TextCNN來做對比.得到的對比結(jié)果如下:
圖6 兩層Bi-LSTM+Attention模型訓(xùn)練結(jié)果
圖7 TextCNN模型訓(xùn)練結(jié)果
在查準率、查全率和F1三個指標的綜合對比下,XGBoost是最好、最穩(wěn)定的,BiLSTM+Attention的F1因子過低,TextCNN相對穩(wěn)定,但指標都偏低.以上分析可知,三種模型中,XGBoost模型訓(xùn)練所得的模型效果最佳,準確率可以達到0.970 219,查準率可達0.832 452.將Bi-LSTM和Attention機制結(jié)合,用深度學(xué)習方法解決標簽分類問題,訓(xùn)練所得效果優(yōu)秀,準確率可達到89.51%,查準率可達到88.98%,基本接近百分之九十,但比XGBoost差.選取文本分類卷積神經(jīng)網(wǎng)絡(luò)TextCNN模型,訓(xùn)練效果趨于穩(wěn)定,但效果一般,準確率只能達到0.828 970,F(xiàn)1到達0.722 131.所以該醫(yī)藥大數(shù)據(jù)實驗選取的最優(yōu)模型為XGBoost.三種模型的結(jié)果對比見圖8.
圖8 三種模型結(jié)果比較
XGBoost模型的精度更高,靈活性更強,醫(yī)藥專利分類對專業(yè)名詞的關(guān)注更多,而相似的專利分類的相似專業(yè)名詞有很多,只是在某些細微之處有差別.XGBoost在使用決策樹進行文本分類時,能夠一步步由節(jié)點分類使得相似類逐漸化為多類,而非在一個容器中直接劃分,更適合處理醫(yī)藥專利數(shù)據(jù)的分類.Bi-LSTM+Attention能夠處理長文本,且形成上下文關(guān)聯(lián),使得權(quán)重落在醫(yī)藥專利名詞上,但由于醫(yī)藥專利的分類對上下文關(guān)聯(lián)性要求不高,得到的效果無法匹敵XGBoost.TextCNN在訓(xùn)練中雖然發(fā)揮了其速度快的功效,但CNN處理文本分類在精度上還欠佳.實驗結(jié)果同時驗證,XGBoost模型更優(yōu).
綜上所述,在對專利類英文文本分類問題上,與BiLSTM模型+Attention和TextCNN模型對比,本文提出的基于XGBoost模型的文本分類方法效果更優(yōu).但醫(yī)藥藥品專利除了英文的專利還有其他語言的藥品專利,在未來的研究中,我們將收集更多數(shù)據(jù)來進行研究分析,以找到更優(yōu)的適配算法.