周永稱1,崔忠芳2,范少萍,安新穎
隨著互聯網技術的飛速發展以及大數據時代的來臨,人們已經進入到一個信息爆炸的年代。在海量的信息資源中,真正有價值的信息反而被掩蓋和淹沒,人們面臨的不再是信息獲取問題,而是如何在海量信息資源中快速、準確地獲取有價值的信息。文本信息是數量較大也較容易獲取的信息類型,尤其在如今的自媒體時代,文本信息的產生方式多樣,來源豐富,但巨大的數據量使得人工難以區分與整理。因此如何有效分類和管理文本信息變得至關重要,文本分類技術的重要性也日漸突顯。
文本分類的相關研究[1-3]可追溯至20世紀60年代。“詞頻”概念[4]及概率索引模型[5]等的提出為文本分類的發展奠定了基礎,研究者從詞頻統計、句法分析及語義分析等角度開展文本分類研究[6]。20世紀80年代,主要采用知識工程的方法,根據領域專家提供的專業知識構建類別的推理規則,手工建立分類器進行文本分類。這種方法不僅需要大量的人工參與,分類效果嚴重依賴類別推理規則的質量,分類效率較低,而且普適性較差,僅適用于特定領域。20世紀90年代開始,隨著機器學習技術的快速發展,以傳統機器學習方法為基礎的文本分類技術也逐漸發展起來[1]。基于機器學習的文本分類技術通過將文本進行特征化表示并使用特征數據集訓練分類器來開展文本分類[7]。分類過程中,分類知識或分類規則由分類器自動從數據集中學習,無需人工干預,分類準確性及穩定性大大提升。然而傳統的基于機器學習方法的文本分類技術仍存在以下問題:選擇特征詞時較少考慮詞義,文本表示過程中易形成稀疏向量,向量維度過高易形成維度災難,特征降維方法仍需要人工選擇,這些都會對最終的文本分類結果產生影響。
深度學習是機器學習領域近年來發展最熱的研究方向之一。2006年深度神經網絡的訓練問題被解決[8],深度學習迎來快速發展期。由于深度神經網絡具備強大的特征選擇提取與學習能力,因此研究者開始將深度神經網絡模型運用在圖像識別、語音識別及自然語言處理領域,尤其是在文本分類上。
隨著國家“雙一流”建設戰略的推進,各醫療衛生機構更加重視自身學科建設,以學科評價排名為亮點的各種醫院排行榜越來越受關注,如復旦大學醫院管理研究所推出的中國醫院及專科聲譽排行榜[9],中國醫學科學院推出的中國醫院科技量值評價研究[10]等。在開展學科評價排名,尤其針對學科的科研能力水平展開評價時,需要將評價數據按照評價體系的學科分類劃分到不同的學科類別中,其中就涉及包括SCI論文、臨床試驗項目、授權專利等在內的生物醫學文本數據。針對生物醫學文本的學科分類,中國醫院科技量值評價研究課題組先后采用詞表匹配和基于支持向量機模型的文本分類算法。由于學科差異性,一些學科的研究內容與其他學科交叉較少,容易區分,利用詞表和基于支持向量機模型的文本分類算法標引效果較好,如眼科學、骨外科學等。但也有部分學科由于其研究內容與其他學科交叉較多,利用基于字符串匹配的詞表匹配法和基于支持向量機模型的文本分類算法分類效果不太理想,仍需采用人工標引方法,通過人工閱讀理解文本語義并結合上下文內容確定相關學科,如神經病學、消化病學等。而隨著深度學習在文本分類領域的應用研究越來越多,在針對公開的新聞語料或數據集的主題分類研究或者社交軟件留言的情感分類研究中,基于深度學習的文本分類方法比傳統的淺層機器學習模型具備更好的分類性能。基于此,本文擬利用深度學習相關模型開展生物醫學文本的學科分類研究。
本文對傳統文本分類方法進行總結分析,針對其中的問題提出基于深度學習模型的生物醫學文本學科自動分類方法并開展實證研究,以期提高學科評估中生物醫學文本的學科分類效率與質量,推動醫院評價和學科評估工作的開展。
傳統的文本分類方法指基于淺層機器學習模型的文本分類方法,其流程大致可分為文本預處理、文本表示、特征降維、分類器構建及效果評估幾個步驟(圖1)。
文本預處理階段主要包括文本分詞、去除停用詞等操作,英文文本中還涉及拼寫檢查、詞干提取或詞形還原等操作。開展文本分詞時,英文文本由于單詞之間存在空格,可作為天然的分詞符;而中文文本分詞可采用基于字符串匹配的方法直接匹配詞,也可基于N元模型、隱馬爾可夫算法、條件隨機場算法等模型或算法根據字符共現頻率或概率來衡量字符構成一個詞的可能性。基于字符串匹配的方法對于未登錄詞無法處理,基于機器學習相關模型的分詞方法需要人工構建特征,不僅工程量大,而且構建質量也會影響分詞效果。

圖1 傳統文本分類的大致流程
文本表示旨在將經預處理后的文本轉化成計算機可識別、能處理的格式。常見的文本表示模型包括布爾模型[11]、向量空間模型[12]、概率模型[13]等,但它們要么不考慮語義關系及文本相關性,要么忽略特征詞之間的相關性及位置關系,要么容易形成高維向量和稀疏向量,不僅會造成分類信息的缺失,而且會增加計算開銷。
特征降維主要包括特征選擇和特征提取。在文本表示階段利用one-hot模型等表示文本時容易出現高維向量,增加計算復雜度和時間消耗,因此需要生成低維的特征向量,盡量減少分類信息的損失。特征選擇指從特征詞集合中挑選出最能代表該類的特征構建特征矢量,常用的方法有信息增益[14]、文檔頻率[15]、卡方統計法[16]、互信息量[17]等;特征提取是指將特征矢量通過線性映射到低維空間中,常用的方法有主成分分析法[18]、獨立成分分析法[19]等。特征降維過程需要人工參與,如特征選擇過程的基本思想是使用某些評估方法對每個特征詞賦予不同的分數,然后人為設定閾值,讓分數高于該閾值的特征詞組成新的特征集合。人為的參與會對最終的文本分類結果產生影響。
分類器構建階段常用的分類模型有樸素貝葉斯分類算法[20]、K最近鄰算法[21]、決策樹[22]、支持向量機(Support Vector Machine,SVM)[23]等,它們在有限的數據集和有限的計算單元的情況下對于復雜函數的擬合有限,對于復雜問題的處理能力被制約[24],并且其分類效果的好壞與特征降維的效果有直接關系。因此應用這些分類模型開展文本分類研究時,還需要在特征選擇與特征提取上耗費大量時間和精力。
效果評估則是利用準確率、召回率和F1值等相關指標衡量分類模型在測試集中的分類性能。
深度學習是機器學習發展到一定程度產生的新的分支。2006年深度神經網絡的訓練難題被解決后,深度學習獲得了快速發展。它通過多層表示學習將原始數據逐層轉化為抽象的表示,從數據中自動學習特征,利用其強大的運算和學習能力發現高維數據中的復雜結構,進而將提取的特征信息用于分類和預測[25-26]。
傳統的文本分類方法存在以下問題:文本表示過程中容易形成高維向量或損失語義,特征降維過程需要人工參與,分類器構建階段淺層模型對數據的學習能力有限。基于此,本文擬利用詞向量的方式進行文本表示,利用深度神經網絡模型進行特征的提取、學習與分類。基于深度學習的文本分類流程主要包括文本預處理、文本表示、分類模型構建、效果評估等步驟(圖2)。
文本預處理是文本分類的基礎,預處理的結果會直接影響分類結果。由于學科評估涉及的生物醫學文本多為SCI論文、授權發明專利標題、臨床試驗項目標題等英文文本,因此在本文的文本預處理階段,除了文本分詞、去除停用詞等操作外,還需要進行縮寫詞的擴展、大小寫轉換、詞干提取及詞形還原等操作。目前Python庫中封裝的相應數據包可以開展相關操作,經過文本預處理后,剩下的文本可以更好地表達文本特征。

圖2基于深度學習的文本分類流程
針對傳統文本分類方法中文本表示容易出現高維向量、稀疏向量,語義缺失等問題,本文擬采用詞向量的方法進行文本表示以解決相關問題。詞向量是指用一個定長的稠密向量來表示一個詞,向量之間的距離可以反映詞與詞之間的相似性。隨著神經網絡的發展,基于神經網絡的詞嵌入方法被應用于文本表示中,其中應用較為廣泛的是Mikolov等人提出的Word2vec模型[27]。該模型主要利用大規模語料,在較短的時間內學到每個詞的低維度表達,形成詞向量,不僅可以讓相似的詞在向量上具有更近的距離,而且較低的維度也可減少計算的復雜性。Word2vec模型有兩種,分別為Skip-gram模型[28]及Continuous Bag of Words(CBOW)模型[29]。CBOW模型主要利用前后詞預測當前詞(圖3),而Skip-gram模型主要利用當前詞預測前后詞(圖4)。由于詞向量具備低維、稠密、向量距離代表語義關系遠近等優點,克服了傳統文本分類方法中文本表示的高維向量等缺點,因此可以有效提升生物醫學文本的學科分類精度。

圖3 CBOW模型

圖4 Skip-gram模型
針對傳統文本分類方法中分類模型學習能力弱、泛化能力不強、需要人工干預特征降維等問題,本文擬利用深度神經網絡模型構建分類器。隨著深度學習的發展,和在圖像識別和語音識別等領域的成功應用,研究者開始嘗試將深度學習應用到自然語言處理領域,尤其是文本分類中。在分類模型上,采用深度神經網絡模型構建分類器可實現對特征的自動提取與分類,且其強大的學習與計算能力可幫助處理更加復雜的問題。
目前在文本分類模型構建中廣泛使用的深度神經網絡模型有卷積神經網絡模型(Convolutional Neural Networks,CNN)[30]、循環神經網絡模型(Recurrent Neural Network,RNN)[31]、長短時記憶神經網絡模型(Long Short-term Memory Networks,LSTM)[32]等。
卷積神經網絡是一種前饋神經網絡,包含輸入層、隱層和輸出層,是深度學習中較為經典也較有代表性的算法之一。隱層中一般包含卷積層和池化層,其中卷積層的功能是對輸入數據進行特征提取,獲得特征映射,通過疊加多個卷積層可以提取到數據中的深層特征;池化層負責對特征進行壓縮,提取主要特征。輸出層則利用Softmax分類器[33]計算文本在各個類別下的概率,給出最終分類結果。卷積神經網絡集權值共享和局部感受野于一體,不僅可以在提取特征的同時實現降維和權值的共享,而且能控制模型參數個數進而降低模型復雜度。循環神經網絡是以序列數據為輸入的遞歸神經網絡,在序列演進方向遞歸且所有循環單元按鏈式鏈接。該網絡隱層中的前一時刻狀態可向下傳遞,從而影響并參與下一時刻隱層狀態的計算,實現信息的前后關聯,解決輸入間前后關聯的問題。因此,利用循環神經網絡模型開展文本分類研究,可提取文本的上下文序列信息。但循環神經網絡模型只能對短距離的信息進行記憶,而長短時記憶神經網絡在結構上比循環神經網絡更優化,它在循環神經網絡模型的基礎上添加了一個保存長距離信息的單元。這種單元通過利用“輸入門”“遺忘門”和“輸出門”這3種門控結構來控制信息的保留或丟棄,從而實現對序列數據中長距離依賴信息的學習。
近年來,注意力(Attention)機制也開始成為關注熱點。它借鑒人類視覺在掃描全局內容時會將注意力放在重點關注的目標區域,對神經網絡模型中間狀態的不同輸入賦予不同的權重,將對分類有幫助的因素賦予更大的權重來獲得更好的分類效果[34]。
基于此,本文擬采用以下4個深度神經網絡模型用于學科分類。
CNN模型:CNN模型是較早應用于文本分類中,也是較為經典的深度神經網絡模型,為增強模型對特征的提取能力。本文中的CNN模型采用雙卷積層,且每個卷積層包括多個卷積核來幫助提取特征。如圖5所示,輸入層數據先進入C1卷積層,經過卷積操作后輸入S2池化層,再將池化層的輸出輸入C3卷積層進行卷積操作,輸出到S4池化層,然后經過全連接層最后輸入到分類器中得到分類結果。
LSTM模型:由于本文中需要進行分類的數據是文本數據,前后文之間存在一定的聯系,而LSTM模型的獨特的記憶單元中包含的門控結構可幫助提取長距離信息,輔助分類。其記憶單元如圖6所示,其中ft是遺忘門,它控制著上一時刻的長期記憶狀態Ct-1可以保留多少信息到當前時刻的記憶狀態Ct;it是輸入門,它控制著當前時刻的即時狀態c't可以保留多少信息到當前時刻的記憶狀態Ct;ot是輸出門,它控制著當前時刻的記憶狀態Ct可以保留多少信息到當前時刻的輸出ht[35]。3個門結構對于信息的輸入輸出控制均取決于上一個時刻的輸出和當前即時的輸入,而3個門結構控制著當前時刻的輸出。也就是說,當前時刻的輸出可以由上一個時刻的輸出和當前即時的輸入共同決定,有利于文本中上下文序列特征的提取。
LSTM-CNN模型:由于單個模型對于特征的提取各有側重,因此較多研究者利用混合模型來發揮各個模型的優點,充分提取特征。本文探索利用混合模型提取文本特征并分類,其過程如下:經過文本表示后,詞向量先進入LSTM模型以提取文本上下文序列特征,然后輸出到CNN模型的卷積層中提取文本的局部特征,經卷積、池化操作后數據輸出到全連接層中做拼接,最后利用SoftMax函數進行分類。

圖5 本文中CNN模型結構
LSTM-attention模型:由于一條文本數據中各個詞對于分類的重要性不一樣,因此本文將注意力機制和LSTM模型相結合,其結構如圖7所示[36]。

圖7 本文中LSTM-attention模型結構
將文本中的單詞用詞向量表示后輸入LSTM模型,提取上下文序列特征,得到隱層的輸出(h0,h1,h2......),然后利用注意力機制計算各個輸入的注意力概率分布值(α0,α1,α2......),對隱層的不同輸出賦予不一樣的權重,最后計算出包含文本信息的特征向量[36]。
除了構建以上4個深度神經網絡模型外,本文還采用傳統文本分類方法中較為經典的SVM模型作為對照組,以驗證基于深度學習的文本分類方法是否在生物醫學文本的學科分類上有更好的性能。效果評估仍采用準確率、召回率及F1值來評估模型的分類性能。
本文實驗在Window 10系統下進行,GPU為GTX 1080Ti,內存大小為32GB,編程語言為Python 3.6,開發工具為Sublime Text 3,深度學習框架為TensorFlow 1.8。數據來源為中國醫學科學院在中國醫院科技量值評價研究中累積的人工標注的SCI論文,包括神經病學10 471篇、消化病學13 018篇及腫瘤學29 172篇。這3個學科的文本在以往的學科分類中,由于與其他學科的研究內容交叉性較大,利用傳統的SVM模型或者詞表匹配方法都無法得到一個較高的準確性。每個學科的數據按照訓練集、驗證集、測試集為6∶2∶2的比例劃分,正負數據比例為1∶1。
本文采用CNN、LSTM、LSTM-CNN、LSTM-attention及SVM模型,分別對3個學科的文本進行學科分類,每個學科的文本分類問題均為二分類問題,然后對比各個模型在同一個學科文本上的分類性能。
在利用SVM模型進行文本分類時,同樣用基于詞向量的方法進行文本表示,以避免因為特征構建方法不一樣導致結果無可比性。
針對3個學科的數據集,均采用Python中自帶的自然語言處理工具集NLTK模塊進行文本的切詞、去除停用詞、大小寫轉換等操作后得到的數據集如圖8所示(以神經病學數據為例)。其中第1列為標簽列,“1”表示該文本屬于神經病學科,“0”表示該文本不屬于神經病學科;第2列為經過文本預處理的SCI論文標題和摘要內容。

圖8 預處理后的文本集
采用Word2vec模型構建詞向量進行文本表示。由于Skip-gram模型在針對低頻詞時比CBOW模型更敏感,因此直接導入Python中的Gensim模塊,選擇Skip-gram模型訓練詞向量,設置詞向量維度為128,窗口長度為3,訓練得到的詞向量見圖9。

圖9 訓練完的詞向量
以神經病學科的數據集為例,分別在訓練集和驗證集上訓練CNN、LSTM、LSTM-CNN、LSTM-attention模型及SVM模型,調節相關參數。對CNN模型確定了兩層卷積層結構。第一個卷積層中,6個不同大小卷積核的卷積結果基于通道數合并后輸入第二層卷積層再輸入全連接層做交叉熵分類。對LSTM模型采用單層雙向的LSTM模型。對LSTM-CNN模型,數據先輸入單層雙向的LSTM層,然后輸入到包含4個卷積核的卷積層中,最后輸入全連接層做交叉熵分類。對LSTM-attention模型,數據先輸入單層雙向的LSTM層,對輸出做拼接和隨機失活(dropout)處理后再后接一個self-attention結構,對LSTM層的輸出向量做加權求和后再輸入到全連接層做交叉熵分類。上述4類模型學習率初始化均設為0.005,激活函數選用relu函數,dropout值設為0.8,優化器使用adam。在神經病學科的訓練集上4類深度神經網絡模型的損失和準確性隨迭代次數增加的變化如圖10、圖11所示。

圖10 4個模型在神經病學科訓練集上隨迭代次數增加損失值的變化趨勢

圖11 4個模型在神經病學科訓練集上隨迭代次數增加準確性的變化趨勢
隨著迭代次數的增加,4類模型的損失值趨向于0,準確性趨向于100%。上述模型訓練好后利用測試集測試模型分類性能。
通過在神經病學、消化病學及腫瘤學3個學科的訓練集和驗證集上訓練CNN、LSTM、LSTM-CNN、LSTM-attention及SVM模型,并在相關測試集上進行測試,利用準確率、召回率及F1值評估各個模型的分類性能。其結果如表1所示。
將5個模型在3個學科測試集上的F1值用柱狀圖作對比,如圖12-圖14所示。

表1 5類模型在3個學科測試集中的準確率、召回率及F1值對比

圖12 5個模型在神經病學測試集上的F1值對比

圖13 5個模型在消化病學測試集上的F1值對比

圖14 5個模型在腫瘤學測試集上的F1值對比
從上述對比圖中可知,基于深度學習的神經網絡模型在3個學科文本的學科分類性能上均明顯優于傳統的SVM模型(神經病學科F1值高約10個百分點,消化病學科F1值高約7個百分點,腫瘤學科F1值高約4個百分點);同一模型在不同學科文本上的分類性能有較大區別,具備學科差異性;雙卷積層的卷積神經網絡模型在這3個學科文本中具有最好的分類性能;混合深度神經網絡模型以及基于Attention機制的神經網絡模型相比單個神經網絡模型而言,在3個學科文本的學科分類性能上并無明顯的優越性。
鑒于深度學習在文本分類中被廣泛應用以及課題組針對生物醫學文本的淺層分類模型無法滿足學科分類需求,本文對10 471篇神經病學SCI論文、13 018篇消化病學SCI論文以及29 172篇腫瘤學SCI論文進行文本預處理、文本表示等步驟分別構建訓練集和測試集,對CNN、LSTM、LSTM-CNN、LSTM-attention及SVM模型進行訓練及測試。實驗結果表明基于深度學習的神經網絡模型相比傳統的基于統計的SVM模型具有更好的分類性能,可見基于深度學習的文本分類方法在生物醫學文本的學科分類上也具備相當好的分類性能。在中國醫院科技量值的后續研究及學科評估中,深度學習神經網絡模型,尤其是雙層卷積神經網絡模型為生物醫學文本的學科自動分類研究提供了一種解決方法。
此外,在醫院評價和學科評估過程中,往往由第三方評估機構主導評價工作。其中一個必不可少的過程是數據匹配與核對,即將第三方評估機構掌握的評價數據與被評估機構自身上報的數據進行匹配,查漏補缺。由于評價數據尤其是科研產出相關數據如SCI論文、授權發明專利等均為文本數據,在匹配過程中會涉及到文本相似度計算的問題。深度學習其強大的特征提取與計算能力也為醫院評價和學科評估過程中文本相似度計算提供了一種解決辦法。