杜恒欣,朱習軍
(青島科技大學 信息技術學院,青島 266061)
如今科技成為衡量一個國家實力水平的重要標準,而專利文獻中包含大量的創(chuàng)新發(fā)明,企業(yè)可以通過利用專利中的創(chuàng)新發(fā)明,減少研發(fā)周期.為了有效利用專利文獻中的關鍵信息,易于管理專利,對專利分類成為必不可少的一步.目前,我國使用國際專利分類(IPC)體系,IPC 分類體系共有5 個級別和7 萬類,是一個多層次多標簽的分類系統(tǒng)[1].專利作為科技類的文獻,有極強的專業(yè)性,但是在底層類別之間的相似度很高,需要對該領域知識較為熟悉,才能給專利賦予較為合理的分類號[2],隨著計算機技術和人工智能的發(fā)展,人們開始關注如何使用計算機協(xié)助人工進行半自動化或自動化的專利文本分類,本文采用深度學習的方法進行中文專利文本分類.
傳統(tǒng)的文本分類多采用機器學習算法,如K 近鄰算法(KNN)、樸素貝葉斯(Naive Bayesian)和支持向量機(SVM)等,但這些機器學習算法需要人工提取文本特征,而文本特征提取的質(zhì)量和文本分類的準確度有密切關系[3],另外人工提取特征費時費力,還不能確保所提取特征的準確性和全面性.
目前,隨著深度學習的發(fā)展,專家學者們十分重視深度學習在文本分類領域上的應用,主要方法有卷積神經(jīng)網(wǎng)絡(CNN)、循環(huán)神經(jīng)網(wǎng)絡(RNN)和長短時記憶網(wǎng)絡(LSTM)等.其中CNN 可以通過卷積和池化過程對文本進行局部特征提取,由人工設置卷積核大小和個數(shù),實現(xiàn)權值共享.Kim[4]采用預先訓練好的詞向量作為CNN 模型的輸入,使用CNN 的卷積和池化過程對句子信息進行n-gram 特征抽取,結(jié)果表明CNN 對文本的特征提取效果良好,得到了較優(yōu)的文本分類結(jié)果.RNN 是一種序列模型,能夠提取上下文數(shù)據(jù),但是在長序列或復雜的文本中易出現(xiàn)梯度消失和梯度爆炸問題,專家們在RNN 的基礎上提出改進算法,如LSTM.Rao 等[5]通過使用LSTM 捕捉上下文中的依賴關系,獲得較好的文本特征信息,提高了分類準確率.而GRU是基于LSTM 的一種改進,方炯焜等[6]在使用GloVe詞向量化的基礎上,利用GRU 神經(jīng)網(wǎng)絡模型進行訓練,結(jié)果證明該算法對提高文本分類性能有較明顯的作用.另外為了更好的提取文本特征,引入注意力機制(Attention 機制),張沖[7]提出Attention-Based LSTM 模型用于提取特征,其中LSTM 模型解決了傳統(tǒng)RNN 的梯度消失的問題,同時通過Attention-Based 減少特征向量提取過程中的信息丟失和信息冗余.還有專家學者提出,將多個學習模型結(jié)合起來,利用模型優(yōu)勢互補原則,提升分類性能,例如Lai 等[8]通過結(jié)合CNN 和RNN 模型,提出了RCNN 混合模型,獲得了非常好的分類效果.李洋等[9]將CNN 提取的文本局部特征和雙向LSTM 提取的文本全局特征進行特征融合,解決了CNN 忽略上下文語義信息,又避免了RNN 梯度消失和梯度爆炸問題.
在專利文本分類上,馬建紅等[10]在進行專利文本分類時,從挖掘?qū)@c效應對應關系的角度出發(fā),提出利用基于Attention 機制的雙向LSTM 模型訓練專利語料,得到專類所屬的效應.余本功等[11]提出一種雙通道特征融合的專利文本自動分類,將文本專利分別映射為Word2Vec 詞向量序列和POS 詞性序列,分別使用這兩種特征通道訓練WPOS-GRU 模型,該方法節(jié)省了大量的人力成本,并提高了專利文本分類的準確度.胡杰等[12]利用CNN 進行專利文本特征提取,結(jié)合隨機森林作為分類器,相對對于單一算法模型,提高了專利文本的分類準確度.通過研究,本文針對計算機領域的中文專利文本,提出將基于注意力機制的雙向長短期記憶網(wǎng)絡(BiLSTM)和卷積神經(jīng)網(wǎng)絡(CNN)組合的方法,設計了BiLSTM_ATT_CNN 模型,并對該模型在專利文本數(shù)據(jù)進行訓練學習.實驗結(jié)果表明,該模型在一定程度上提高了中文專利文本分類的準確率.
文本預處理過程主要工作是對數(shù)據(jù)集進行分詞操作.目前,國內(nèi)一些專家開發(fā)出效果較好的現(xiàn)代分詞系統(tǒng),主要有結(jié)巴分詞、盤古分詞NLPIR、語言云、搜狗分詞、Boson NLP 分詞系統(tǒng)、IKAnalyzer、中國科學院計算所漢語詞法分析系統(tǒng) ICTCLAS 等[13].
本文使用基于隱馬爾科夫算法的結(jié)巴分詞器進行分詞,目前結(jié)巴分詞有4 種模式,精確模式、全模式、搜索引擎模式和paddle 模式,本文采用結(jié)巴分詞的全模式.在專利摘要文本中,相比于其他文本數(shù)據(jù),語言較為領域化專業(yè)化,而且專業(yè)術語設計的較多,傳統(tǒng)方法對專業(yè)術語詞不能進行很好的覆蓋,當出現(xiàn)新的專業(yè)術語時,需要重新計算特征向量.再者專利中專業(yè)術語較多,在調(diào)用已有的分詞系統(tǒng)進行分詞時,專業(yè)術語詞往往是會被分開的.為了盡量避免這些情況,本文將專利文本摘要中的關鍵字提取出來,建立一個領域詞典,添加到已有的分詞系統(tǒng)的詞典中,來減少分詞不準確帶來的誤差.分詞后的詞集中,有很多像“我們”、“這樣”、“之后”等這樣沒有實際意義的詞,這些詞對分類沒有貢獻,甚至影響文本分類的準確性,在此利用停用詞表來去除文本的停用詞.
詞語是人類的抽象總結(jié),是符號形式的(比如中文、英文、拉丁文等),在文本處理時需要把詞語轉(zhuǎn)換成數(shù)值形式.2013年Mikolov 等[14]提出詞向量概念,使得自然語言處理方向有了word embedding,即詞嵌入.Word2Vec 就是詞嵌入的一種,相較于傳統(tǒng)NLP 的高維、稀疏的表示法(One-hot Representation),Word2Vec 利用了詞的上下文信息,語義信息更加豐富.Word2Vec可以將初始特征詞映射到實數(shù)低維向量,避免了傳統(tǒng)詞袋模型詞向量維度過大的問題,并且在詞向量生成過程中,用向量空間里的向量運算來代替對文本內(nèi)容的處理,結(jié)合了詞的上下文內(nèi)容,提供含有語義信息的詞向量.一般分為CBOW (Continuous Bag-Of-Words)與Skip-gram 兩種模型.CBOW 模型的訓練輸入是某一個特征詞的上下文相關的詞對應的詞向量,而輸出就是這特定的一個詞的詞向量.Skip-gram 模型和CBOW 的思路是相反的,即輸入是特定的一個詞的詞向量,而輸出是特定詞對應的上下文詞向量.CBOW 對小型數(shù)據(jù)庫比較合適,而Skip-gram 在大型語料中表現(xiàn)更好.本文利用Google 開源推出的Word2Vec 工具包,選用 Skip-gram 模型,使用Python 語言實現(xiàn)了詞向量化.由于數(shù)據(jù)集是由專利文本的題目、摘要、主權項和分類號組成,不能保證各樣本數(shù)據(jù)的長度統(tǒng)一,采用padding 機制,經(jīng)實驗驗證,將詞向量長度設為100,樣本數(shù)據(jù)長度固定為400 時,分類效果較好.
2.3.1 BiLSTM_ATT 模型
循環(huán)神經(jīng)網(wǎng)絡(RNN)可以獲取全局的特征信息,但是存在梯度消失和梯度爆炸問題.而長短期記憶神經(jīng)網(wǎng)絡(LSTM)可以避免這個問題,作為RNN 的一種改進模型,LSTM 不僅涵蓋了RNN 的優(yōu)點,還具有更強的記憶能力.LSTM 模型的基本神經(jīng)元是由記憶單元和遺忘門ft,記憶門it和輸出門ot這3 種門組成,記憶單元是自連接單元,能夠記憶遠距離上下文信息,而這3 種門共同決定如何更新當前記憶單元ct和當前隱藏狀態(tài)ht.遺忘門ft,可以看作是一個控制來自舊記憶細胞的信息會被丟棄到什么程度的函數(shù);記憶門it,控制有多少新信息要存儲在當前的存儲單元中;輸出門ot,根據(jù)存儲單元ct控制要輸出什么.
LSTM 轉(zhuǎn)換函數(shù)定義如下:
輸入數(shù)據(jù)為通過使用Word2Vec 得到的詞向量xt,維度為K=100,記憶門由隱藏狀態(tài)ht?1和輸入xt計算得到,其中 σ是邏輯函數(shù)Sigmoid,輸出值在0 到1 之間,Wi是權重矩陣,bi是偏置項,計算公式如式(1):
遺忘門也是由隱藏狀態(tài)ht?1和輸入xt計算得到,其中Wf是權重矩陣,bf是偏置項,計算公式如式(2):
式(3)中,qt為臨時記憶狀態(tài),記憶單元更新計算公式如式(4),t anh 表示輸出為[-1,1]的雙曲切線函數(shù),⊙表示元素間的乘法:
輸出門計算公式如式(5),其中Wo是權重,bo是偏置項:
傳統(tǒng)的LSTM 只在一個方向上讀取樣本數(shù)據(jù),從前往后或者從后往前,為了更好提取文本語義,需要考慮到文本詞語的語境含義,本文采用基于LSTM 的改進的雙向長短時記憶網(wǎng)絡(BiLSTM),即同時從前往后和從后往前讀取文本數(shù)據(jù),可以進一步增強語義對上下文的依賴程度.
在專利文本數(shù)據(jù)中,有很多詞是無足輕重的,但是在前期的去停用詞時沒有將其全部去掉,使得對分類影響大的詞語融匯在大量詞匯中,減弱了其對分類的影響程度,另外,BiLSTM 模型不能將專利文本中對分類重要的詞語標記出來,而且其隱藏層會損失一定的前文信息,而注意力(Attention)機制能夠很好的改善這個問題[15,16].Attention 機制可以根據(jù)該詞包含的語義信息和對文本分類的重要程度,進行分配不同的權值,進而減弱數(shù)據(jù)稀疏性,提高文本分類的準確性.本文在BiLSTM 模型的隱藏層添加Attention 機制,對隱藏層輸出的特征向量賦予不同注意力分配值,把注意力集中到對分類任務較重要的詞語上,進一步提高專利文本分類的準確率.BiLSTM_ATT 結(jié)構如圖1所示.
圖1 BiLSTM_ATT 模型結(jié)構圖
由圖1可知,BiLSTM_ATT 模型主要由輸入層、前向LSTM、后向LSTM、注意力計算層組成.中文專利文本經(jīng)過預處理后,將詞語輸入到詞向量模型中,本文使用Word2Vec 工具,輸入層的中文專利文本數(shù)據(jù)表示為X={x1,x2,···,xn},專利文本有n個詞語,分別作為輸入數(shù)據(jù),進入前向LSTM 和后向LSTM,得到前向LSTM 隱藏層的輸出和后向LSTM 隱藏層的輸出,BiLSTM 模型隱藏層的輸出為這兩者之和,即H={h1,h2,···,hn},隱藏層的輸出向量維度為d,在此BiLSTM的隱藏層上引入Attention 機制,注意力計算公式如式(7),得到注意力分配值分別為a1,a2,···,an.
其中,hi為 第i個隱藏層的輸出值,h為專利文本向量,式(7) 表示hi所占專利文本向量的注意力權重,w,A,B為權值矩陣,bi為偏置項.再將注意力權重通過Softmax函數(shù)進行概率化,如式(8),得到注意力分布值.最后如式(9)將隱藏層輸出值和注意力分布值進行點乘、累加,得到中文專利文本的特征向量矩陣T.
2.3.2 CNN 模型
本文利用BiLSTM_ ATT 模型可以獲取文本上下文的全局特征矩陣,但是無法體現(xiàn)專利文本局部特征,故采用卷積神經(jīng)網(wǎng)絡(CNN)和BiLSTM_ ATT 模型進行組合.將BiLSTM_ ATT 模型獲得的文本信息特征向量和原始文本的詞向量x進行首尾連接作為CNN 的輸入,該輸入包含原始的專利文本信息,又包含經(jīng)過BiLSTM_ ATT 模型提取的全局特征.利用CNN 對其進行進一步的局部特征提取,既解決了BiLSTM_ATT 模型無法獲取專利文本局部特征的問題,又避免了CNN 無法提取專利文本上下文語義信息的問題.
具體計算過程如下:
卷積層的輸入為M∈RL×d,M表示由BiLSTM_ATT 模型獲得的專利文本特征向量和原始文本的向量x連接得到的新專利文本向量,R表示新專利文本向量的集合,d是詞向量維度大小為K+K1,L是新專利文本向量的長度.
使用大小為m×d的卷積核w對輸入的新專利文本向量M進行卷積操作,計算公式如式(10).
式中,Mi,i+m+1表示在M的第i行到第i+m+1行之間進行提取局部特征,f是一個非線性轉(zhuǎn)換函數(shù),又稱激活函數(shù),本文采用ReLU 作為激活函數(shù),表示卷積過程,b表示偏置項.
將特征映射進行列連接,得到對該樣本的特征矩陣W,ci是由第i個卷積核生成的特征映射,計算公式如式(11):
在卷積神經(jīng)網(wǎng)絡中一般會采用max-pooling 或者動態(tài)的k-max-pooling 等池化函數(shù)對卷積后的特征映射進行池化,相當于降采樣,池化層可以減小數(shù)據(jù)空間大小,在一定程度上控制過擬合.本文采用k-maxpooling,從卷積層提取的文本特征中選取k個對分類最重要的文本特征,并進行拼接,計算公式為式(12),式(13)為全連接層.
2.3.3 BiLSTM_ATT_CNN 模型
本文設計了BiLSTM_ATT_CNN 模型用來實現(xiàn)專利文本分類,其中,BiLSTM_ATT 模型不僅可以考慮上下文信息,在隱藏層添加的注意力機制,還可以為詞語分配不同的注意力分布概率值,有效地防止信息丟失.同時,利用CNN 模型能夠捕獲空間或時間結(jié)構的局部關系的優(yōu)勢,進一步提取專利文本的局部特征.該模型共分為5 層,輸入層、BiLSTM_ATT層、CNN 層、全連接層、分類層.BiLSTM_ATT_CNN組合模型結(jié)構如圖2所示.
圖2 BiLSTM_ATT_CNN 模型結(jié)構圖
第1 層為輸入層,主要功能是將專利文本數(shù)據(jù)進行分詞和詞向量化,首先利用結(jié)巴分詞系統(tǒng)將專利文本數(shù)據(jù)進行分詞,并去除停用詞,然后利用Word2Vec進行詞向量化.專利文本格式:“專利題目”+“摘要”+“主權項”,“分類號”.
第2 層為BiLSTM_ATT 層,LSTM 具有學習序列數(shù)據(jù)的能力,還避免了RNN 模型的梯度爆炸和消失問題,而BiLSTM 由正向LSTM 和反向LSTM 組合而成,可以更好的捕捉雙向的語義依賴.并在隱藏層加入Attention 機制,減弱數(shù)據(jù)稀疏性而造成重要信息的損失.另外,采用L2 正則化方法防止過擬合.
第3 層為連接層,將BiLSTM_ATT 層的輸出和輸入層的輸出進行首尾連接,作為CNN 層的輸入,可以使得文本特征信息更為豐富.
第4 層為CNN 層,CNN 層可以從大量的訓練數(shù)據(jù)中自動學習,捕獲空間、時間結(jié)構的局部特征,將連接層的輸出作為輸入,通過CNN 的卷積層進行特征提取,并在池化層采用k-max-pooling 進行下采樣,并添加全連接層.
第5 層為分類層,采用Softmax 函數(shù)實現(xiàn)專利文本分類,為了防止模型過擬合,在Softmax 層采用Dropout策略和L2 正則化策略,最后將結(jié)果輸出,并保存于數(shù)據(jù)庫中.
本文數(shù)據(jù)來源于SOOPAT 的公開數(shù)據(jù),針對較為熟悉的計算機領域,采用Python 編程語言,利用requests、beautifulsoup 和selenium 等庫,進行爬蟲獲取樣本數(shù)據(jù),從中整理得到訓練數(shù)據(jù)和測試數(shù)據(jù).同時考慮到數(shù)據(jù)的均衡性,計算機領域?qū)@饕性贕 部,爬取的專利文本數(shù)據(jù)為G06K3/02、G07B1/02、G08G1/01、G09B5/08 和G11B5/012 這5 類別,各2000 條專利文本數(shù)據(jù).其中1800 條作為訓練數(shù)據(jù),200 條作為測試數(shù)據(jù),訓練數(shù)據(jù)和測試數(shù)據(jù)不重合.
專利文本數(shù)據(jù)包括專利題目、摘要、主權項、正文、主分類號等文本,其中摘要和主權項中包含了專利的核心內(nèi)容,閱讀者通過閱讀專利摘要和主權項就可以對該專利的類別有所把握,所以本文采用專利的題目、摘要、主權項和主分類號這4 部分內(nèi)容作為樣本數(shù)據(jù),數(shù)據(jù)格式圖3所示.
圖3 專利文本數(shù)據(jù)格式
本文采用準確率、召回率和F1 測量值作為評估指標.a表示正確分類的樣本數(shù),b表示錯誤分類的樣本數(shù),c表示屬于該類別卻被錯誤分類的樣本數(shù).其中,準確率p為正確分類的樣本數(shù)和所有樣本和之比.準確率越高,說明分類越準確,如式(14).
召回率r表示為樣本中的正例被預測正確,即正確分類的樣本數(shù)與該類實際樣本數(shù)的比值.召回率越高,說明在該類上預測時漏掉的樣本越少,如式(15).
F1 值是將召回率和準確率綜合考慮,用于評價模型的總體性能,計算公式如式(16).
本文采用自主設計了一個文本分類系統(tǒng),基于Druid實現(xiàn)文本數(shù)據(jù)的分布式列存儲,通過Zookeeper 對集群進行管理,使用Superset 對文本數(shù)據(jù)進行可視化展示.首先通過系統(tǒng)從Druid 中讀取相關數(shù)據(jù),進行數(shù)據(jù)預處理,在預處理階段將專利文本數(shù)據(jù)進行分詞,去停用詞,使用Word2Vec 方法進行詞向量化.之后調(diào)用本文提出的BiLSTM_ATT_CNN 模型,采用mini-batch 的梯度下降方法進行訓練學習,避免了批量梯度下降收斂速度慢和隨機梯度下降法容易收斂到局部最優(yōu)解的現(xiàn)象.實驗中,每次訓練樣本數(shù)為64,樣本長度為400,能夠使文本中包含的代表性的詞語較豐富.在CNN 中,設置卷積層使用的4 種卷積核窗口尺寸分別為3,5,7,11,個數(shù)均為128.將BiLSTM_ATT_CNN 模型與經(jīng)典CNN、LSTM 方法相比,通過訓練測試后,將結(jié)果分析上傳保存到Druid,并通過Superset 在界面展示.
為說明本文模型的分類效果,本文使用 BiLSTM_ATT_CNN 模型的分類結(jié)果,與經(jīng)典的CNN、LSTM分類模型的分類結(jié)果進行對比.
經(jīng)過多次實驗,結(jié)果如表1所示.
表1 專利文本分類結(jié)果比較
由上表結(jié)果所示,在相同的數(shù)據(jù)集上,均使用結(jié)巴分詞系統(tǒng)進行分詞,使用Word2Vec 進行詞向量化,可以看出BiLSTM_ATT_CNN 模型要優(yōu)于傳統(tǒng)的CNN和LSTM 模型.原因在于BiLSTM_ATT 模型可以更好的捕捉雙向的語義依賴,Attention 機制減弱數(shù)據(jù)稀疏性而造成重要信息的損失.CNN 模型可以彌補BiLSTM_ATT 模型未能提取的局部特征信息的問題,從而完善了專利文本特征提取,使得分類效果有了一定的提升.
本文利用BiLSTM_ATT_CNN 模型進行學習訓練,首先BiLSTM_ATT 模型不僅考慮上文信息,還兼顧下文信息,另外,在其隱層添加注意力機制,能夠計算歷史節(jié)點對當前節(jié)點的影響力權重,集注意力分配概率分布,有效地防止信息丟失,進一步優(yōu)化了特征向量.CNN 模型能夠捕獲空間或時間結(jié)構的局部關系的能力,讓其在BiLSTM_ ATT 模型獲得的文本信息特征向量和原始文本的詞向量Xi進行首尾連接的新文本特征向量上進行訓練,提升了CNN 模型輸入層數(shù)據(jù)的質(zhì)量.從實驗結(jié)果可以看出,與單一模型相比,雖然將BiLSTM 和CNN 模型進行結(jié)合,增加了訓練時間增加,提高了計算成本,但是BiLSTM_ATT_CNN 模型對專利文本分類效果要高于單一模型.在下一階段的研究中,會集中考慮對新專利進行分類時,可能會出現(xiàn)一些全新的詞,在分詞時,可能會因為分詞詞庫中沒有該詞,而進行了不恰當?shù)姆衷~,導致有用信息丟失.其次,基于IPC 專利分類體系為多級多標簽分類,考慮建立分層機制進行專利文本分類,在部、大類、小類前3 個級別采用同一個分類器,在大組和小組級別上,由于專利文本相似度的增加,根據(jù)每個級別的類別數(shù)和專利文本數(shù)量設計不同的分類器進行訓練學習.