佘朝陽(yáng),嚴(yán) 馨,徐廣義,陳 瑋,鄧忠瑩
(1.昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,昆明 650504;2.昆明理工大學(xué) 云南省人工智能重點(diǎn)實(shí)驗(yàn)室,昆明 650504;3.云南南天電子信息產(chǎn)業(yè)股份有限公司,昆明 650041)
藥物不良反應(yīng)(Adverse Drug Reaction,ADR)檢測(cè)是藥物研究和開(kāi)發(fā)的重要組成部分。以往的研究數(shù)據(jù)主要來(lái)源于藥物不良反應(yīng)報(bào)告[1]、生物醫(yī)學(xué)文獻(xiàn)[2]、臨床筆記[3]或醫(yī)療記錄[4]。目前,醫(yī)療社交媒體例如MedHelp、好大夫、尋醫(yī)問(wèn)藥、丁香醫(yī)生等均提供了諸如專(zhuān)家問(wèn)診、論壇討論、電話視頻交流等形式多樣的信息收集手段,形成了具有權(quán)威性、時(shí)效性和全面性的互聯(lián)網(wǎng)醫(yī)療數(shù)據(jù)源,為藥物不良反應(yīng)檢測(cè)提供了豐富的語(yǔ)料基礎(chǔ)。
藥物不良反應(yīng)檢測(cè)通常被看作涉及ADR的文本二分類(lèi)問(wèn)題,即辨別文本是否包含ADR的問(wèn)題。早期,大多數(shù)研究均基于詞典識(shí)別文本中的ADR[5-6],但這類(lèi)方法無(wú)法識(shí)別詞典中未包含的非常規(guī)ADR詞匯。后來(lái)有些研究人員發(fā)現(xiàn),利用統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法抽取特征能夠有效提高準(zhǔn)確性[7-8]。隨著深度學(xué)習(xí)的不斷發(fā)展和廣泛應(yīng)用,基于深度學(xué)習(xí)方法的ADR 檢測(cè)模型大量涌現(xiàn)。LEE等[9]為T(mén)witter中的ADR分類(lèi)建立了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)模型,COCOS等[10]開(kāi)發(fā)了一個(gè)遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型,通過(guò)與任務(wù)無(wú)關(guān)的預(yù)訓(xùn)練或在ADR檢測(cè)訓(xùn)練期間形成詞嵌入向量,并將其作為輸入。HUYNH等[11]提出2種新的神經(jīng)網(wǎng)絡(luò)模型,即將CNN 與RNN 連接起來(lái)的卷積遞歸神經(jīng)網(wǎng)絡(luò)(Convolutional Recurrent Neural Network,CRNN)以及在CNN中添加注意力權(quán)重的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network with Attention,CNNA),針對(duì)Twitter數(shù)據(jù)集分別進(jìn)行了ADR分類(lèi)任務(wù)。PANDEY等[12]分別采用Word2Vec和GloVe模型從多渠道的醫(yī)學(xué)資源中訓(xùn)練臨床詞的詞向量,將無(wú)監(jiān)督的詞嵌入表示輸入到雙向長(zhǎng)期短期記憶(Bi-directional Long Short-Term Memory,Bi-LSTM)神經(jīng)網(wǎng)絡(luò)中,并使用注意力權(quán)重來(lái)優(yōu)化ADR 抽取的效果。
盡管深度學(xué)習(xí)模型往往表現(xiàn)很好,但通常需要基于大量標(biāo)注數(shù)據(jù)進(jìn)行監(jiān)督學(xué)習(xí)。當(dāng)標(biāo)注數(shù)據(jù)過(guò)少時(shí),容易出現(xiàn)過(guò)擬合現(xiàn)象,嚴(yán)重影響預(yù)測(cè)的準(zhǔn)確性。目前,已有大量的研究從英文語(yǔ)料中檢測(cè)ADR,但由于缺乏公開(kāi)可用的中文醫(yī)療社交媒體的數(shù)據(jù)集,目前針對(duì)此方面的研究非常有限。
為解決標(biāo)注數(shù)據(jù)不足的問(wèn)題,本文提出一種基于數(shù)據(jù)增強(qiáng)與半監(jiān)督學(xué)習(xí)(Semi-Supervised Learning,SSL)的藥物不良反應(yīng)檢測(cè)方法。通過(guò)對(duì)未標(biāo)注數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),使用分類(lèi)模型產(chǎn)生低熵標(biāo)簽,以獲得較為準(zhǔn)確的偽標(biāo)簽。此外,將標(biāo)注數(shù)據(jù)、未標(biāo)注數(shù)據(jù)和增強(qiáng)數(shù)據(jù)混合,在文本向量空間中對(duì)混合樣本進(jìn)行插值,以擴(kuò)增樣本數(shù)量。
在少樣本場(chǎng)景下采用數(shù)據(jù)增強(qiáng)技術(shù),與同等標(biāo)注量的無(wú)增強(qiáng)監(jiān)督學(xué)習(xí)模型相比,其性能會(huì)有較大幅度的提升。文本增強(qiáng)技術(shù)如EDA算法[13]、回譯[14]、TF-IDF等通常只針對(duì)標(biāo)注數(shù)據(jù)進(jìn)行有監(jiān)督地?cái)?shù)據(jù)增強(qiáng)。XIE等[15]將有監(jiān)督的數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)展到未標(biāo)注數(shù)據(jù)中,以盡可能地利用未標(biāo)注數(shù)據(jù)。GUO 等[16]針對(duì)文本分類(lèi)任務(wù),提出詞級(jí)的wordMixup 和句子級(jí)的senMixup這2 種文本增強(qiáng)策略,通過(guò)分別對(duì)詞嵌入向量和句子向量進(jìn)行線性插值,以產(chǎn)生更多的訓(xùn)練樣本,提升分類(lèi)性能。
半監(jiān)督學(xué)習(xí)是一種在不需要大量標(biāo)簽的情況下訓(xùn)練大量數(shù)據(jù)模型的方法。監(jiān)督學(xué)習(xí)方法僅在標(biāo)注數(shù)據(jù)上訓(xùn)練分類(lèi)器而忽略了未標(biāo)注數(shù)據(jù)。SSL 通過(guò)利用未標(biāo)注數(shù)據(jù)的方法來(lái)減輕對(duì)標(biāo)注數(shù)據(jù)的需求。在通常情況下,未標(biāo)注數(shù)據(jù)的獲取要比標(biāo)注數(shù)據(jù)容易得多,因此SSL 所帶來(lái)的性能提升通常都是低成本的。SSL 方法主要分為兩類(lèi):一類(lèi)是對(duì)一個(gè)輸入添加微小的擾動(dòng),輸出應(yīng)該與原樣本保持不變,即一致性正則化;另一類(lèi)是使用預(yù)測(cè)模型或它的某些變體生成偽標(biāo)簽,將帶有偽標(biāo)簽的數(shù)據(jù)和標(biāo)注數(shù)據(jù)進(jìn)行混合,并微調(diào)模型。
將增強(qiáng)技術(shù)與半監(jiān)督學(xué)習(xí)方法整合于一個(gè)框架中的技術(shù)在計(jì)算機(jī)視覺(jué)領(lǐng)域已經(jīng)取得成功。例如MixMatch[17]和FixMatch[18]方法均表現(xiàn)出了良好的性能。然而在自然語(yǔ)言處理領(lǐng)域,由于受文本的語(yǔ)法、語(yǔ)義關(guān)系等影響,此類(lèi)方法的應(yīng)用極少。
基于上述方法,本文將文本增強(qiáng)技術(shù)與半監(jiān)督學(xué)習(xí)方法相結(jié)合,應(yīng)用于面向中文醫(yī)療社交媒體的ADR 檢測(cè)任務(wù)。利用回譯對(duì)未標(biāo)注數(shù)據(jù)進(jìn)行增強(qiáng),以獲取低熵標(biāo)簽,并將得到的偽標(biāo)簽未標(biāo)注數(shù)據(jù)和標(biāo)注數(shù)據(jù)進(jìn)行Mixup 操作,降低對(duì)標(biāo)注數(shù)據(jù)的需求,充分發(fā)揮大量未標(biāo)注數(shù)據(jù)的價(jià)值,提升ADR 檢測(cè)模型的準(zhǔn)確性。
給定有限標(biāo)注的數(shù)據(jù)集Xl=和其對(duì)應(yīng)的標(biāo)簽Yl=,以及大量的未標(biāo)注數(shù)據(jù)集Xu=,其中n和m是2個(gè)數(shù)據(jù)集中的數(shù)據(jù)量,∈{0,1}C是一個(gè)one-hot 向量,C是類(lèi)別數(shù)。本文目標(biāo)是能有效利用標(biāo)注數(shù)據(jù)和未標(biāo)注數(shù)據(jù)一起訓(xùn)練模型。為此,本文提出一種標(biāo)簽猜測(cè)方法,為未標(biāo)注數(shù)據(jù)生成標(biāo)簽,將未標(biāo)注數(shù)據(jù)視為附加的標(biāo)注數(shù)據(jù),并在標(biāo)注數(shù)據(jù)以及未標(biāo)注數(shù)據(jù)上利用Mixup 方法進(jìn)行半監(jiān)督學(xué)習(xí)。最后,引入了熵最小化損失。本文方法的總體框架如圖1 所示。
圖1 本文方法框架Fig.1 Framework of method in this paper
回譯是一種常見(jiàn)的文本增強(qiáng)技術(shù),用機(jī)器翻譯把一段中文翻譯成另一種語(yǔ)言,然后再翻譯回中文。通過(guò)對(duì)同一未標(biāo)注數(shù)據(jù)進(jìn)行不同中間語(yǔ)言的回譯,可以得到不同的增強(qiáng)數(shù)據(jù),且能保留原始文本的語(yǔ)義。對(duì)于未標(biāo)注數(shù)據(jù)集Xu中的每一個(gè),生成K個(gè)增強(qiáng)數(shù)據(jù),其中k=[1,K],K表 示數(shù)據(jù)增強(qiáng)的次數(shù)。
為了避免加權(quán)過(guò)于平均,對(duì)預(yù)測(cè)結(jié)果使用如式(2)所示的銳化函數(shù)進(jìn)行處理:
其中:‖·‖1是L1 范式;T是給定的超參數(shù),當(dāng)T趨向于0 時(shí),生成的標(biāo)簽是一個(gè)one-hot 向量。
Mixup 是ZHANG 等[19]提出的一種圖像增強(qiáng)方法,Mixup 的主要思想非常簡(jiǎn)單,即給定2 個(gè)標(biāo)記數(shù)據(jù)(xi,yi)和(xj,yj),其中x是圖像,而y是標(biāo)簽的onehot 向量,通過(guò)線性插值構(gòu)建虛擬訓(xùn)練樣本,如式(3)和式(4)所示:
其中:混合因子λ∈[0,1],由Beta 分布得到:
新的訓(xùn)練樣本將被用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。Mixup 可以看作是一種數(shù)據(jù)增強(qiáng)方法,能夠基于原始訓(xùn)練集創(chuàng)建新的數(shù)據(jù)樣本。同時(shí),Mixup 強(qiáng)制對(duì)模型進(jìn)行一致性正則化,使其在訓(xùn)練數(shù)據(jù)之間的標(biāo)簽為線性。作為一種簡(jiǎn)單有效的增強(qiáng)方法,Mixup可以提升模型的魯棒性和泛化能力。
受Mixup 在圖像分類(lèi)領(lǐng)域運(yùn)用的啟發(fā),本文嘗試將其應(yīng)用于文本分類(lèi)任務(wù)中。通過(guò)標(biāo)簽猜測(cè)得到未標(biāo)注數(shù)據(jù)的標(biāo)簽后,將標(biāo)注數(shù)據(jù)Xl、未標(biāo)注數(shù)據(jù)Xu和增強(qiáng)數(shù)據(jù)Xa=合并成一個(gè)大型的數(shù)據(jù)集X=Xl∪Xu∪Xa,對(duì)應(yīng)的標(biāo)簽為Y=Yl∪Yu∪Ya,其中Ya=,并且定義,即對(duì)未標(biāo)注數(shù)據(jù),其所有的增強(qiáng)樣本與原始樣本共享相同的標(biāo)簽。
在訓(xùn)練過(guò)程中,本文從數(shù)據(jù)集X中隨機(jī)采樣2 個(gè)樣本x、x′,根據(jù)式(7)和式(8)分別計(jì)算Mixup(x,x′)和mix(y,y′):
其中:f(·)是將文本編碼為向量的神經(jīng)網(wǎng)絡(luò)。
混合樣本通過(guò)分類(lèi)模型獲得預(yù)測(cè)值p(Mixup(x,x′)),將預(yù)測(cè)結(jié)果和混合標(biāo)簽進(jìn)行一致性正則化,使用兩者的KL 散度作為損失,計(jì)算公式如式(9)所示:
由于x、x′是從數(shù)據(jù)集X中隨機(jī)采樣而來(lái)的,因此2 個(gè)樣本的來(lái)源有3 種情況:2 個(gè)都是標(biāo)注數(shù)據(jù),各有1 個(gè)標(biāo)注數(shù)據(jù)和1 個(gè)未標(biāo)注數(shù)據(jù),2 個(gè)都是未標(biāo)注數(shù)據(jù)。基于以上情況,將損失分為2 類(lèi):
1)監(jiān)督損失。當(dāng)x∈Xl時(shí),即當(dāng)實(shí)際使用的大部分信息來(lái)自于標(biāo)注數(shù)據(jù)時(shí),使用監(jiān)督損失訓(xùn)練模型。
2)一致性損失。當(dāng)樣本來(lái)自未標(biāo)注數(shù)據(jù)或增強(qiáng)數(shù)據(jù)時(shí),即x∈Xu∪Xa,大部分信息來(lái)自于未標(biāo)注數(shù)據(jù),使用KL 散度作為一致性損失,能夠使混合樣本與原始樣本具有相同的標(biāo)簽。
為使模型能夠基于未標(biāo)注數(shù)據(jù)預(yù)測(cè)出置信度更高的標(biāo)簽,本文使用未標(biāo)注數(shù)據(jù)的預(yù)測(cè)概率最小熵作為損失函數(shù):
其中:γ是邊界超參數(shù)。
結(jié)合2 種損失,構(gòu)造總損失函數(shù)的表示式如式(11)所示:
本文模型包含編碼層、Mixup 層、分類(lèi)層共3 層。輸入文本經(jīng)過(guò)編碼層得到向量表示,Mixup 層通過(guò)隨機(jī)混合的文本向量表示和對(duì)應(yīng)的分類(lèi)標(biāo)簽生成混合樣本和混合標(biāo)簽?;旌蠘颖镜南蛄勘硎窘?jīng)過(guò)Mixup 層被送入分類(lèi)層。分類(lèi)層通過(guò)全連接層和softmax 函數(shù)計(jì)算預(yù)測(cè)值,并針對(duì)混合樣本的標(biāo)簽和預(yù)測(cè)值計(jì)算分類(lèi)損失。本文模型的結(jié)構(gòu)如圖2所示。
圖2 本文模型結(jié)構(gòu)Fig.2 Structure of model in this paper
編碼層分為ERNIE 層、BiLSTM 層、Attention 層共3 個(gè)子層。
3.1.1 ERNIE 層
傳統(tǒng)的詞向量模型Word2vec 得到的是靜態(tài)詞向量,無(wú)法體現(xiàn)1 個(gè)詞在不同語(yǔ)境中的不同含義,而預(yù)訓(xùn)練模型能夠動(dòng)態(tài)捕捉上下文信息,提高文本表示能力。其 中ERNIE 等[20]提出一種知識(shí)掩碼(Knowledge Masking,KM)策略,在訓(xùn)練階段引入外部知識(shí),并隨機(jī)選取字、短語(yǔ)、命名實(shí)體進(jìn)行mask,可以潛在地學(xué)習(xí)到被掩碼的短語(yǔ)和實(shí)體之間的先驗(yàn)知識(shí)。此外,新增預(yù)訓(xùn)練任務(wù),使ERNIE 詞向量從訓(xùn)練數(shù)據(jù)中獲取到更可靠的詞法、語(yǔ)法以及語(yǔ)義信息。
中文醫(yī)療文本存在一詞多義的問(wèn)題,往往需要結(jié)合上下文語(yǔ)境才能獲得精確的語(yǔ)義信息,且藥物不良反應(yīng)檢測(cè)通常與外部知識(shí)、藥物實(shí)體等密切相關(guān)。因此,本文使用百度開(kāi)源的ERNIE 中文預(yù)訓(xùn)練模型,并充分利用該模型的外部知識(shí)和實(shí)體信息。
ERNIE 采用多層Transformer 作為編碼器,通過(guò)自注意力機(jī)制捕獲每個(gè)詞向量在文本序列中的上下文信息,并生成上下文語(yǔ)境表征嵌入。以語(yǔ)料中的一個(gè)文本為例,文本中的詞序列x=[w1,w2,…,wn],其中:n表示文本長(zhǎng)度;wi表示文本中的第i個(gè)詞。文本經(jīng)過(guò)ERNIE 預(yù)訓(xùn)練模型得到詞序列的向量表示E=[e1,e2,…,en],其中:ei∈Rd表示第i個(gè)詞的詞向量;d表示詞向量的維度。
3.1.2 BiLSTM 層
BiLSTM 層以詞向量表示為輸入,計(jì)算詞語(yǔ)在上下文中的向量表示:
3.1.3 Attention 層
Attention 層將BiLSTM 層的隱藏狀態(tài)作為輸入,通過(guò)自注意力權(quán)重分配來(lái)計(jì)算文本多個(gè)側(cè)面的向量表示,表達(dá)式如下:
其中:A∈Rr×n表示注意力權(quán)重矩陣,由2 層感知器網(wǎng)絡(luò)計(jì)算得到;分別是2 層注意力層的權(quán)重矩陣;da、r是超參數(shù),da表示注意力層隱藏狀態(tài)的維度,r是注意力機(jī)制的個(gè)數(shù)。
將文本表示矩陣Z∈Rr×2u中的r個(gè)向量拼接得到文本的向量表示z,其維度為2ur。
本文基于Mixup 方法,在文本的向量空間中混合樣本?;旌线^(guò)程是先隨機(jī)選取一個(gè)樣本,然后將同批次的樣本隨機(jī)打亂后抽取另一個(gè)樣本,對(duì)2 個(gè)樣本(zi,yi)和(zj,yj)進(jìn)行插值。抽取過(guò)程均為不放回抽取。樣本混合因子λ由式(5)和式(6)得到:
在訓(xùn)練的過(guò)程中,Mixup 層通過(guò)隨機(jī)混合批次內(nèi)的文本向量表示得到擴(kuò)增的文本向量表示,其中M表示一個(gè)批次的樣本數(shù)據(jù)量。
混合樣本通過(guò)一個(gè)全連接層和softmax 激活函數(shù),得到分類(lèi)標(biāo)簽的預(yù)估概率值:
其中:W∈RC×2ur和b∈RC分別是權(quán)重矩陣和偏置。
由于目前中文醫(yī)療社交媒體沒(méi)有公開(kāi)可用的藥物不良反應(yīng)檢測(cè)數(shù)據(jù)集,因此本文從好大夫網(wǎng)站收集用戶的診療記錄。如圖3 所示,每個(gè)診療記錄包含患者的信息、病情描述、醫(yī)生診療建議等內(nèi)容。
圖3 診療記錄樣例Fig.3 Sample of treatment record
本文選取80 余種常用藥作為研究?jī)?nèi)容,其中包含降壓藥、抗過(guò)敏藥、抗生素等,獲取了網(wǎng)站2011 年以后包含相關(guān)藥物的診療記錄,并選擇記錄中的病情描述內(nèi)容作為本文的原始語(yǔ)料。最終共獲得42 800 個(gè)文本,每個(gè)文本都提及了一種或者多種藥物。通過(guò)對(duì)文本進(jìn)行預(yù)處理,刪除URL、英文字母、特殊字符等并去停用詞。原始語(yǔ)料來(lái)源于中文社交媒體,需要對(duì)其進(jìn)行分詞。對(duì)于醫(yī)療數(shù)據(jù),傳統(tǒng)的jieba 分詞效果并不理想,因此本文使用北京大學(xué)開(kāi)源分詞工具pkuseg 進(jìn)行分詞,調(diào)用其自帶的medicine 模型將大部分的醫(yī)藥專(zhuān)業(yè)詞匯分詞出來(lái)。
為得到標(biāo)注數(shù)據(jù),本文從語(yǔ)料中選取6 000 條數(shù)據(jù)讓5 名藥學(xué)專(zhuān)業(yè)學(xué)生進(jìn)行人工標(biāo)注,設(shè)定分類(lèi)標(biāo)簽y∈{0,1}。當(dāng)不同人員之間存在爭(zhēng)議,同一數(shù)據(jù)的標(biāo)注結(jié)果不一致時(shí),以多數(shù)人的結(jié)果為準(zhǔn)。標(biāo)注樣例如表1所示。最終得到包含ADR 的數(shù)據(jù)有2 379 條,不包含ADR 的數(shù)據(jù)有3 621 條,并從中隨機(jī)選擇4 800 條作為訓(xùn)練集,1 200 條作為測(cè)試集。
表1 標(biāo)注數(shù)據(jù)樣例Table 1 Samples of labeled data
本文采用Pytorch 實(shí)現(xiàn)所提模型和算法,將文本的最大詞序列長(zhǎng)度設(shè)為256。ERNIE 預(yù)訓(xùn)練模型包含12 個(gè)Encoder 層,多頭注意力機(jī)制的頭數(shù)為12,隱藏層維度為768。將BiLSTM 層的隱藏狀態(tài)維度u設(shè)為300,Attention 層自注意力機(jī)制的參數(shù)r設(shè)為24,注意力層隱藏狀態(tài)維度da設(shè)為128。未標(biāo)注數(shù)據(jù)的增強(qiáng)次數(shù)K對(duì)于偽標(biāo)簽的影響較大,參照文獻(xiàn)[21],設(shè)置K=2,即對(duì)于每個(gè)未標(biāo)注數(shù)據(jù)執(zhí)行2 次數(shù)據(jù)增強(qiáng)。將Beta 分布中的α設(shè)置為0.4,當(dāng)α較小時(shí),Beta(α,α)采樣得到的值大部分落在0 或1 附近,使樣本混合因子λ接近1,從而在合成樣本時(shí)偏向某一個(gè)樣本創(chuàng)建出相似的數(shù)據(jù)。
模型采用Adam 梯度下降算法訓(xùn)練,初始學(xué)習(xí)率設(shè)為0.001,β1=0.9,β2=0.999,ε=1×10-8,batchsize=64。訓(xùn)練過(guò)程采用提前停止策略,若模型性能在5 個(gè)epoch 后仍然沒(méi)有提升,則停止訓(xùn)練。
4.3.1 ADR 檢測(cè)模型的對(duì)比實(shí)驗(yàn)
本文選擇了如下6 種基于深度學(xué)習(xí)的ADR 檢測(cè)模型進(jìn)行對(duì)比實(shí)驗(yàn):
1)CNN[11]模型:采用不同尺度的卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建文本分類(lèi)器。分別設(shè)置濾波器寬度為2、3、4、5,每個(gè)濾波器的大小均為25。
2)CNN+Att[11]模型:在CNN 網(wǎng)絡(luò)最上層加入注意力機(jī)制。
3)BiL+Att[12]模型:采用BiLSTM 作為編碼器,加入注意力機(jī)制。
4)ERNIE[20]模型:采用百度開(kāi)源的ERNIE 中文預(yù)訓(xùn)練模型作為編碼器,得到文本表示,直接連接一個(gè)全連接層實(shí)現(xiàn)文本分類(lèi)。
5)ERNIE+BiL+Att 模型:基于BiL+Att 模型,使用ERNIE 模型得到詞向量表示。
6)ERNIE+BiL+Att+S-Mixup模型:在ERNIE+BiL+Att 模型的編碼層之上加Mixup 層。對(duì)標(biāo)注數(shù)據(jù)進(jìn)行文本增強(qiáng),即有監(jiān)督的Mixup(Supervised Mixup,S-Mixup)。
選取4 800 條標(biāo)注數(shù)據(jù)訓(xùn)練模型,使用精確率、召回率和F1 值作為評(píng)價(jià)指標(biāo)。實(shí)驗(yàn)結(jié)果如表2 所示。
表2 不同ADR 檢測(cè)模型的實(shí)驗(yàn)結(jié)果Table 2 Experimental results of different ADR detection models %
由表2 可知,CNN 模型的效果最差,而采用BiLSTM 獲取上下文信息,并引入注意力機(jī)制獲取文本的重要特征,能提高模型效果。對(duì)比BiL+Att 和ERNIE+BiL+Att 模型,利用ERNIE 預(yù)訓(xùn)練模型得到的動(dòng)態(tài)詞向量更符合語(yǔ)義環(huán)境,模型的性能也能得到有效提升。
本文對(duì)ERNIE 預(yù)訓(xùn)練模型進(jìn)行微調(diào),實(shí)驗(yàn)效果顯著,說(shuō)明了預(yù)訓(xùn)練模型在ADR 檢測(cè)任務(wù)中能達(dá)到較好的分類(lèi)效果。然而對(duì)比ERNIE 與ERNIE+BiL+Att 模型,后者的實(shí)驗(yàn)效果仍有小幅度提升,體現(xiàn)了ERNIE+BiL+Att 模型的優(yōu)勢(shì)。
由表2 還可以看出,ERNIE+BiL+Att+S-Mixup 模型的精確率、召回率和F1 值均優(yōu)于其他模型。這是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的訓(xùn)練通常需要大量的標(biāo)注數(shù)據(jù),而當(dāng)標(biāo)注數(shù)據(jù)有限時(shí),效果往往不太理想。ERNIE+BiL+Att+S-Mixup 模型引入Mixup,通過(guò)對(duì)標(biāo)注數(shù)據(jù)進(jìn)行文本增強(qiáng),在一定程度上增加了訓(xùn)練樣本的數(shù)量,從而使ADR檢測(cè)模型的性能得到明顯的提升。
4.3.2 半監(jiān)督模型的對(duì)比實(shí)驗(yàn)
本文選取了如下5 種半監(jiān)督模型進(jìn)行對(duì)比實(shí)驗(yàn):
1)ERNIE+BiL+Att+S-Mixup 模型:僅使用標(biāo)注數(shù)據(jù)。
2)Pseudo-Label[22]模型:先使用標(biāo)注數(shù)據(jù)訓(xùn)練模型,將未標(biāo)注數(shù)據(jù)經(jīng)過(guò)分類(lèi)模型后得到的預(yù)測(cè)值作為偽標(biāo)簽,使用帶有偽標(biāo)簽的數(shù)據(jù)和標(biāo)注數(shù)據(jù)一起訓(xùn)練模型。
3)Π-Model[23]模型:對(duì)于同一數(shù)據(jù)的輸入,使用不同的正則化進(jìn)行2 次預(yù)測(cè),通過(guò)減小2 次預(yù)測(cè)的差異,提升模型在不同擾動(dòng)下的一致性。
4)Mean Teachers[24]模型:使用時(shí)序組合模型,對(duì)模型參數(shù)進(jìn)行EMA 平均,將平均模型作為teacher預(yù)測(cè)人工標(biāo)簽,由當(dāng)前模型預(yù)測(cè)。
5)ERNIE+BiL+Att+SS-Mixup 模型:即本文模型。先對(duì)未標(biāo)注數(shù)據(jù)進(jìn)行多次增強(qiáng),將預(yù)測(cè)值加權(quán)平均作為低熵標(biāo)簽,并共享原始樣本和增強(qiáng)樣本。使用標(biāo)注數(shù)據(jù)、未標(biāo)注數(shù)據(jù)和增強(qiáng)數(shù)據(jù)一起對(duì)模型進(jìn)行訓(xùn)練,即半監(jiān)督的Mixup(Semi-Supervised Mixup,SS-Mixup)。
從訓(xùn)練集中選取不同數(shù)量的標(biāo)注數(shù)據(jù)和5 000 條未標(biāo)注數(shù)據(jù)。使用準(zhǔn)確率(Accuracy,Acc)作為評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表3 所示。
表3 不同半監(jiān)督模型的Acc 值對(duì)比Table 3 Acc value comparison of different semisupervised models %
由表3可知,與傳統(tǒng)的半監(jiān)督模型相比,本文模型在不同標(biāo)注數(shù)據(jù)量的情況下,準(zhǔn)確率均最高。當(dāng)標(biāo)注數(shù)據(jù)的數(shù)量較少時(shí),準(zhǔn)確率增長(zhǎng)幅度尤其突出。隨著標(biāo)注數(shù)據(jù)的增加,本文模型帶來(lái)的額外提升效果會(huì)逐漸降低。從表3中還可以看出,當(dāng)標(biāo)注數(shù)據(jù)量為1 500條時(shí),本文模型與ERNIE+BiL+Att+S-Mixup模型在2 800條標(biāo)注數(shù)據(jù)時(shí)的表現(xiàn)相近。即通過(guò)本文對(duì)未標(biāo)注數(shù)據(jù)的半監(jiān)督學(xué)習(xí),相當(dāng)于免費(fèi)獲得了近一倍的額外標(biāo)注數(shù)據(jù)。說(shuō)明本文模型有效利用了未標(biāo)注數(shù)據(jù)的信息,緩解了標(biāo)注數(shù)據(jù)量不足的影響。同時(shí),本文模型對(duì)未標(biāo)注數(shù)據(jù)有較好的標(biāo)簽預(yù)測(cè)能力。
4.3.3 不同未標(biāo)注數(shù)據(jù)量的對(duì)比實(shí)驗(yàn)
為進(jìn)一步對(duì)比未標(biāo)注數(shù)據(jù)量對(duì)本文模型的影響,從訓(xùn)練集中挑選了800 條標(biāo)注數(shù)據(jù)和不同數(shù)量的未標(biāo)注數(shù)據(jù)。實(shí)驗(yàn)結(jié)果如表4 所示。
表4 不同未標(biāo)注數(shù)據(jù)量的Acc 結(jié)果Table 4 Acc results of different unmarked data quantities
由表4 可知,當(dāng)標(biāo)注數(shù)據(jù)量一定時(shí),未標(biāo)注數(shù)據(jù)的數(shù)量越多,本文模型的預(yù)測(cè)結(jié)果越準(zhǔn)確,表明本文模型能夠有效利用未標(biāo)注數(shù)據(jù)的信息,幫助模型提升性能。
本文面向中文醫(yī)療社交媒體提出一種融合數(shù)據(jù)增強(qiáng)與半監(jiān)督學(xué)習(xí)的ADR 檢測(cè)方法。通過(guò)利用回譯的文本增強(qiáng)技術(shù)對(duì)未標(biāo)注數(shù)據(jù)進(jìn)行多次增強(qiáng),并在模型的編碼層和分類(lèi)層之間加入Mixup 層,對(duì)混合樣本的文本向量采取插值操作以擴(kuò)充樣本數(shù)量。此外,通過(guò)半監(jiān)督學(xué)習(xí)訓(xùn)練分類(lèi)模型,充分利用標(biāo)注數(shù)據(jù)與未標(biāo)注數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明,本文方法充分利用未標(biāo)注數(shù)據(jù)解決了標(biāo)注數(shù)據(jù)不足的問(wèn)題。當(dāng)標(biāo)注數(shù)據(jù)量較少時(shí),模型的準(zhǔn)確率提升幅度尤其突出,且隨著未標(biāo)注數(shù)據(jù)量的增加,模型性能得到提升。下一步將研究文本中藥物和不良反應(yīng)的關(guān)系,通過(guò)辨別文本中出現(xiàn)的ADR信息是否已知,從而挖掘潛在的ADR 信息,提升本文模型的性能。