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