趙 楠, 趙志樺
(1.海軍軍醫(yī)大學(xué)第二附屬醫(yī)院信息中心,上海 200003;2.海角科技政策服務(wù)部,浙江 杭州 310000)
醫(yī)療文本包含病歷文書、診斷報告、病理報告、影像報告等大量的醫(yī)療信息,是進(jìn)行疾病預(yù)測、輔助診療、藥物研發(fā)、個性化信息推薦、臨床決策支持等的重要文本資源[1]。醫(yī)療文本具有復(fù)雜的專業(yè)術(shù)語,常見的傳統(tǒng)文本分類模型在處理醫(yī)療文本時常常面臨文本語義稀疏、訓(xùn)練數(shù)據(jù)不足等問題[2,3]。
遷移學(xué)習(xí)可以從大量的先驗任務(wù)中學(xué)習(xí)元知識,利用以往的先驗知識來指導(dǎo)模型在新的小樣本任務(wù)中更快地學(xué)習(xí)[4]。Finn等人[5]提出MAML方法,從少量數(shù)據(jù)中進(jìn)行訓(xùn)練從而得到較好的分類結(jié)果,Xiang等人[6]在2018年將MAML遷移到文本分類領(lǐng)域,并且根據(jù)不同的詞在句子中的重要性加入注意力機(jī)制賦予詞語不同的權(quán)重,提出ATAML模型。為了加強(qiáng)模型對新的醫(yī)療文本數(shù)據(jù)的適應(yīng)性,文中基于領(lǐng)域自適應(yīng)性使用已經(jīng)訓(xùn)練學(xué)習(xí)過的某個或多個領(lǐng)域上的知識快速學(xué)習(xí)適應(yīng)另一個新領(lǐng)域,利用兩個相互競爭的神經(jīng)網(wǎng)絡(luò),分別扮演領(lǐng)域識別者和元知識生成者的角色,提出一種基于注意力機(jī)制的領(lǐng)域自適應(yīng)元學(xué)習(xí)模型ADAML(Attentive Domain Adaptation Meta-learning,ADAML),最后使用嶺回歸獲得文本分類的最終結(jié)果[7]。
小樣本文本分類是一項小樣本學(xué)習(xí)在文本分類問題上的具體任務(wù),解決一些現(xiàn)實任務(wù)中樣本數(shù)據(jù)不足或者難以獲得大量高質(zhì)量標(biāo)注數(shù)據(jù)的問題,比如在醫(yī)療領(lǐng)域,一個數(shù)據(jù)樣本可能就是一個臨床試驗或者一個真實的患者信息,這時基于大數(shù)據(jù)訓(xùn)練的深度學(xué)習(xí)不能有效解決此類問題,需要一種具有快速學(xué)習(xí)能力的模型,可以將之前學(xué)習(xí)到的知識用于識別新的數(shù)據(jù)集[8,9]。小樣本文本分類通常考慮的是N-wayK-shot分類,這種分類任務(wù)訓(xùn)練集Dtrain一共包含I=KN的樣本,其中N表示類別個數(shù),K表示每個類別中的樣本個數(shù)。
小樣本學(xué)習(xí)模型主要分為三大類:基于模型微調(diào)、基于數(shù)據(jù)增強(qiáng)和基于遷移學(xué)習(xí)。基于遷移學(xué)習(xí)的方法細(xì)分為基于度量學(xué)習(xí)、基于元學(xué)習(xí)和基于神經(jīng)網(wǎng)絡(luò)3類[4,10]。元學(xué)習(xí)(meta-learning)是目前比較前沿的方法,其目的是讓模型獲得一種學(xué)習(xí)能力,能夠舉一反三[11],在源領(lǐng)域上使用大量已有數(shù)據(jù)進(jìn)行訓(xùn)練,提高學(xué)習(xí)性能,達(dá)到目標(biāo)領(lǐng)域上減少對數(shù)據(jù)集規(guī)模的依賴。因此,對于目標(biāo)任務(wù)只有較少訓(xùn)練數(shù)據(jù)的情況,元學(xué)習(xí)模型會取得更好的效果,實現(xiàn)跨任務(wù)的學(xué)習(xí)共享[12-14]。
傳統(tǒng)的醫(yī)療文本分類側(cè)重于進(jìn)行醫(yī)療數(shù)據(jù)的自由分類,一般包括四個步驟:醫(yī)療文本預(yù)處理、特征選擇、醫(yī)療文本分類、結(jié)果評估[15]。分類的主要目標(biāo)在于從自然語言中分析語義和總結(jié)歸納醫(yī)療信息,從而簡化醫(yī)療信息管理過程。醫(yī)療文本大多是無規(guī)律非結(jié)構(gòu)化的數(shù)據(jù),并且大多是高維稀疏數(shù)據(jù)集,這也是醫(yī)療文本自然語言處理過程中的難點,以往基于深度學(xué)習(xí)的文本分類模型是對預(yù)處理文本數(shù)據(jù)進(jìn)行訓(xùn)練學(xué)習(xí),獲得文本分類結(jié)果。
2.1.1 注意力生成器
注意力生成器利用大型源領(lǐng)域數(shù)據(jù)集來識別一般詞語的重要性,并且利用小目標(biāo)域支持集來估計特定類別的詞語重要性。根據(jù)頻繁出現(xiàn)的虛詞在文本分類中往往不太可能提供太多信息的現(xiàn)象來降低頻繁詞的權(quán)重并提高稀有詞的權(quán)重[16]。文中采用文獻(xiàn)[16]的方法定義統(tǒng)計量反映特定類別詞語的重要性。
(1)
xi是輸入的第i個單詞,ε=10-3,P(xi)是xi在源領(lǐng)域的重要性。支持集中有區(qū)別的詞在查詢集中也有可能有區(qū)別,然后定義如下的統(tǒng)計數(shù)據(jù)來反應(yīng)詞語的重要性。
t(xi)=H(P(y∣xi))-1
(2)
其中條件似然P(y/xi)是支持集上的極大似然,H(·)是熵算子,t(·)是根據(jù)頻率分布的加權(quán)。在遷移學(xué)習(xí)過程中注意力機(jī)制能夠從文本編碼序列中檢索目標(biāo)任務(wù),獲得特定任務(wù)的表示,文中使用雙向 LSTM融合輸入信息,計算點積來預(yù)測單詞xi的注意力分?jǐn)?shù)。
(3)
hi是i處的雙向LSTM輸出,v是可學(xué)習(xí)的向量。注意力機(jī)制通過結(jié)合源領(lǐng)域數(shù)據(jù)集和目標(biāo)域支持集的分布統(tǒng)計來生成特定類別的注意力,提供詞語重要性的歸納偏差。
2.1.2 元知識生成器和領(lǐng)域判別器
領(lǐng)域自適應(yīng)性需要混淆源領(lǐng)域數(shù)據(jù)集和目標(biāo)域查詢集的樣本才能實現(xiàn)有效的領(lǐng)域轉(zhuǎn)移,元知識生成器就是要盡可能使領(lǐng)域判別器無法區(qū)分目標(biāo)域查詢集和源領(lǐng)域數(shù)據(jù)集的樣本。元知識生成器對雙向LSTM輸出采用單層前饋神經(jīng)網(wǎng)絡(luò),使用Softmax函數(shù)來獲得元知識表征向量kp。
kp=Softmax(ω·hp+b)
(4)
kp是一個n維度的向量,代表句子p中包含的元知識,n表示該句子的長度。
領(lǐng)域判別器通過一個三層前饋神經(jīng)網(wǎng)絡(luò)區(qū)分樣本是來自源領(lǐng)域還是目標(biāo)域,其輸出0 或 1 分別代表樣本來自目標(biāo)域查詢集或源域數(shù)據(jù)集。
2.1.3 交互層和分類器
(5)
ADAML選擇嶺回歸作為分類方法,嶺回歸是一種有偏估計回歸,主要用于共線性數(shù)據(jù)分析[17]。分類器由每個元任務(wù)的目標(biāo)域支持集從頭開始訓(xùn)練,通過適當(dāng)?shù)恼齽t化減少對小支持集的過度擬合。
(6)
2.1.4 損失函數(shù)
在每次訓(xùn)練迭代中ADAML首先固定元知識生成器和領(lǐng)域判別器的參數(shù),通過目標(biāo)域支持集更新分類器的參數(shù),其中分類器的損失函數(shù)如公式(6)所示。 接下來,ADAML固定元知識生成器和分類器的參數(shù),通過目標(biāo)域查詢集和源域數(shù)據(jù)集更新領(lǐng)域判別器的參數(shù),并使用交叉熵?fù)p失作為領(lǐng)域判別器的損失函數(shù)。
(7)
其中μ表示領(lǐng)域判別器的參數(shù),m表示目標(biāo)域查詢集或源域數(shù)據(jù)集的樣本數(shù),yd根據(jù)其值為0或1表示樣本是來自目標(biāo)域查詢集還是源域數(shù)據(jù)集,k代表元知識向量。最終,ADAML固定領(lǐng)域判別器和分類器的參數(shù),通過目標(biāo)域查詢集和源域數(shù)據(jù)集更新元知識生成器的參數(shù)。元知識生成器的損失函數(shù)由兩部分組成:第一個是最終分類結(jié)果的交叉熵?fù)p失;第二個是與領(lǐng)域判別器的損失相反的損失,即混淆判別器。
LG(β)=CELoss(f(W·Gβ(W),y)-LD
(8)
其中β表示元知識生成器的參數(shù),f表示嶺回歸因子,W表示一個句子中的詞向量矩陣,y表示樣本的真實標(biāo)簽,LD的定義在公式(7)中。
ADAML模型主要有注意力生成器、元知識生成器、領(lǐng)域判別器、交互層和分類器幾部分,目標(biāo)域支持集S或查詢集Q中的類別數(shù)為N,S中每個類別的樣本數(shù)為K,Q中每個類別的樣本數(shù)為L,源域數(shù)據(jù)集Φ,其具體算法流程如下偽代碼:
算法:ADAML訓(xùn)練數(shù)據(jù)集Input:訓(xùn)練數(shù)據(jù)集{Xtrain ,Ytrain };元任務(wù)個數(shù)T和迭代輪次ep;生成器的參數(shù)β;判別器的參數(shù)μ;分類器的參數(shù)θ.Output: 訓(xùn)練結(jié)束后的參數(shù)β和μ;隨機(jī)初始化模型參數(shù)β,μ和θ;for each i∈1,ep doY←Λ(Ytrain ,N); for each j∈1,T doS,Q,Φ←?,?,?; for y∈Y do S←S∪Λ(Xtrain {y},K); Q←Q∪Λ(Xtrain {y}S,L); Φ←Φ∪Λ(Xtrain Xtrain {y},L); 將參數(shù)S導(dǎo)入模型; 修正參數(shù)β,μ,更新參數(shù)θ以最小化公式(6); 將參數(shù)Q,Φ導(dǎo)入模型; 修正參數(shù)β,θ,更新參數(shù)μ以最小化判別器損失公式(7); 修正參數(shù)μ,θ,更新參數(shù)β以最小化生成器損失公式(8);return β,μ;
醫(yī)療文本數(shù)據(jù)采集一個臨床科室的電子病歷信息,處理生成結(jié)構(gòu)化信息Medical Record保存在JSON文件中。使用三個公開文本分類數(shù)據(jù)集HuffPost、Amazon、Reuters 和Medical Record,隨機(jī)抽樣構(gòu)建小樣本文本,四個基準(zhǔn)數(shù)據(jù)集如表1所示。
表1 四個基準(zhǔn)數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)
ADAML模型分為訓(xùn)練和測試兩步,首先通過數(shù)據(jù)集構(gòu)建不同的元任務(wù),每個元任務(wù)包括一個支持集和一個查詢集。 訓(xùn)練模型時將采樣的元任務(wù)輸入模型,通過支持集上的損失函數(shù)對模型進(jìn)行微調(diào),并通過查詢集上的損失函數(shù)對模型參數(shù)進(jìn)行更新。測試時通過元任務(wù)中的支持集對模型進(jìn)行微調(diào),最后在查詢集上計算準(zhǔn)確度。
文中使ADAML與MAML[5]、PROTO[18]、ATAML[6]、HATT[19]模型對比處理小樣本文本分類問題的準(zhǔn)確率。文本分類算法的性能通常采用準(zhǔn)確率進(jìn)行測評,定義如下:
(9)
實驗過程中注意力生成器計算詞匯注意力分?jǐn)?shù),元知識生成器使用具有 128 個隱藏單元的雙向 LSTM生成元知識表征向量,在領(lǐng)域判別器中兩個前饋層的隱藏單元數(shù)量分別設(shè)置為 256 和 128。元訓(xùn)練期間進(jìn)行 100 次訓(xùn)練,當(dāng)驗證集上的準(zhǔn)確度在 30 次迭代中沒有顯著變化時,停止此次訓(xùn)練。根據(jù)測試結(jié)果評估模型性能,見表2。
表2 模型在四個數(shù)據(jù)集上3way 1shot 和 3way 3shot分類的準(zhǔn)確率
模型在四個數(shù)據(jù)集上均取得了比較好的分類效果,在1shot分類中的平均準(zhǔn)確率為 68.85%,在3shot分類中的平均準(zhǔn)確率為 82.1%,比模型 ATAML分別提高了3.98%和7.63%,ADAML模型在Medical Record上的 1shot 和 3shot 分類比其他模型平均提高了20% 和16.2%,Medical Record中文本的平均長度比其他長,實證表明ADAML模型更適合包含豐富語義信息的文本分類。不同模型在Medical Record數(shù)據(jù)集上的不同類別分類結(jié)果見表3。
表3 不同模型在Medical Record上不同分類的準(zhǔn)確率
醫(yī)療文本蘊(yùn)含豐富的語義信息,有效的分類可以促進(jìn)醫(yī)學(xué)技術(shù)的發(fā)展。文中提出一種基于注意力機(jī)制的元學(xué)習(xí)模型,根據(jù)詞語的重要性賦予不同的權(quán)重,并且利用兩個對抗性網(wǎng)絡(luò)增強(qiáng)模型的學(xué)習(xí)能力,提高小樣本文本分類的適應(yīng)性與準(zhǔn)確率。通過對比實驗和分析證明了文中模型在公開數(shù)據(jù)集和醫(yī)療文本數(shù)據(jù)集上的有效性,后續(xù)將提高小樣本數(shù)據(jù)集含有噪音的分類性能,并盡可能減少訓(xùn)練過程中的語義損失。