葸娟霞,徐 鵬,葉思維
(廣東東軟學院信息管理與工程學院,佛山 528225)
藥物不良反應(adverse drug reactions,簡稱ADR)是指患者在使用某種藥物治療疾病時所引發(fā)的有害反應。及時地知道藥物不良反應對醫(yī)藥公司和監(jiān)管機構(gòu)非常重要。獲得藥物不良反應的傳統(tǒng)方式具有時效低、更新慢的特點,因此需要找到一個具有時效性高,更新快的方法。人們在社交媒體上發(fā)表健康情況的推文滿足以上兩個特點,因此社交媒體也就成為藥物不良反應的研究數(shù)據(jù)來源。社交媒體的數(shù)據(jù)是用戶用藥的第一手資料,時效性高,覆蓋率廣,但如何在海量的數(shù)據(jù)里找到與ADR相關(guān)的推文,這對ADR研究是一項巨大的挑戰(zhàn)。
Sarker等對多種社交媒體資源進行全面挖掘,實現(xiàn)了多種特征的結(jié)合分析,這些特征包括n-gram特征、詞典特征、極性特征、情感分數(shù)特征和主題模型特征,通過實驗發(fā)現(xiàn)SVM算法的性能最好。Korkonteelos等關(guān)注到了情緒分析在藥物不良反應識別任務中的作用,他們利用一個新穎的情感分析算法并結(jié)合支持向量機(SVM)分類器,來實現(xiàn)對推特數(shù)據(jù)集上的藥物不良反應任務的識別及提取,其在推特數(shù)據(jù)上的1值達到了69.16%。Cocos等利用雙向長短時記憶網(wǎng)絡(BiLSTM)訓練推特數(shù)據(jù)集,其推文數(shù)量為844,最后的1值為0.755。Xia等利用遷移學習結(jié)合LSTM模型,在遷移學習的實例、特征表示、參數(shù)、關(guān)系知識4個方面進行了實驗,取得了良好的效果,使用遷移學習解決了數(shù)據(jù)稀缺的重要難題。Rezaei等使用推特的數(shù)據(jù)集,通過CNN、HNN和FastText三類深度學習網(wǎng)絡對其進行分類,這三種模型的輸入都采用word2Vec向量,最后證明了其方法的有效性。
本文提出基于注意力機制的BiLSTMCharCNN藥物不良反應推文識別方法。通過將字符級向量與詞向量相結(jié)合的方法來對推文進行識別。以社交媒體上人們討論健康情況的推文為實驗數(shù)據(jù),并將實驗結(jié)果與BiLSTM,CharCNN,BiLSTM+Attention,BiLSTM+CharCNN的結(jié)果進行對比,以召回率()、精確率()、1值為評價指標,驗證了本文所提出的基于注意力機制的BiLSTM-CharCNN藥物不良反應識別的有效性。
詞向量指的是將高維度離散的文本數(shù)據(jù)轉(zhuǎn)化為低維度密集向量,本文方法中的詞嵌入部分能夠準確地抓取詞語的語義。接著應用詞嵌入模型Word2vec,它可以通過機器學習模型將原來不同的詞轉(zhuǎn)化為不同的實數(shù)向量。Word2vec可以在大量文本數(shù)據(jù)集中進行局部訓練,訓練得到的結(jié)果—詞向量,可以很好地擬出度量詞與詞之間的相關(guān)性。
長短時記憶網(wǎng)絡(LSTM)是一種特殊的RNNs,能有效地解決傳統(tǒng)RNN在處理時間序列長期依賴中的梯度消失和梯度爆炸的問題。LSTM通過在RNN傳輸狀態(tài)后加入細胞狀態(tài)(C)來控制傳輸狀態(tài),由于在傳輸過程中細胞狀態(tài)變化較慢,誤差相對穩(wěn)定,可以在多個時間步上持續(xù)學習且在一定程度上加強LSTM的記憶能力。
LSTM的細胞結(jié)構(gòu)如圖1所示。
圖1 LSTM單元結(jié)構(gòu)
LSTM結(jié)構(gòu)中的核心部分是圖1中最上邊的線-C,叫做細胞狀態(tài)(cell state),它一直存在于LSTM的整個系統(tǒng)之中,其中:
式(1)中f叫做遺忘門,表示C的需要用作計算C的特征。f是一個向量,向量中的每個元素的范圍均介于[0,1]之間。通常使用sigmoid函數(shù)作為激活函數(shù)。上圖中的?代表LSTM中最重要的門機制,遺忘門表示的是h和x之間的單位乘關(guān)系,可由公式(2)表示:
i叫做輸入門,由x和h經(jīng)由sigmoid激活函數(shù)計算而來,如下所示:
最后,為了計算預測值和生成下一個時間片完整的輸入,需要計算隱節(jié)點輸出,如下式所示:
由式(6)和式(7)可知,隱節(jié)點輸出h取決于輸出門O和細胞狀態(tài)C,且O的計算方式與f及i類似。
LSTM是一個信息單向傳播的模型,無法編碼從后到前的信息。但是對于一些文本分類任務來說,后邊的信息依然可以影響前邊的詞句。為了解決這個問題,提出了BiLSTM模型,其主要思路是將后向關(guān)系和前向關(guān)系鏈接到同一個輸出層,且在其中共享權(quán)值。其網(wǎng)絡結(jié)構(gòu)如圖2所示。
圖2 BiLSTM結(jié)構(gòu)圖
在前向?qū)訌?時刻到時刻正向計算一遍,然后將結(jié)果保存;同時,從時刻到1時刻,逆向計算一遍,同樣將計算結(jié)果保存;最后將正向計算和逆向計算的結(jié)果相加,得到整個BiLSTM的計算結(jié)果,其具體計算過程見下式:
注意力機制(attention mechanism)是一種模仿人類注意力的網(wǎng)絡構(gòu)架。在注意力資源有限的情況下,能夠有效篩選和提煉大量復雜冗余信息中的高質(zhì)量內(nèi)容,可以同時聚焦多個細節(jié)部分。注意力機制可以彌補信息的長距依賴性這一缺陷。
本文的模型結(jié)構(gòu)如圖3所示:主要包括輸入層、特征提取層和輸出層。
圖3 模型框架圖
輸入層主要對原始的數(shù)據(jù)進行清洗、分詞等操作,轉(zhuǎn)化為較規(guī)范的文本形式;接下來,在特征提取階段,使用了兩種特征提取方法。
(1)字符級特征提?。菏褂肅harCNN模型提取字符級特征。首先對文本進行字符數(shù)字化,然后對其做卷積操作,對卷積的結(jié)果做Max-pooling池化操作,這樣的卷積池化操作共執(zhí)行3次。最后將其輸入全連接層,得到字符級特征向量。
(2)使用BiLSTM-Attention模型提取特征向量。首先,使用word2vec算法得到文本的詞向量,接下來將詞向量輸入到BiLSTM模型中,最后將得到的特征向量做Attention操作,這樣就能通過調(diào)整權(quán)重參數(shù)去除冗余信息,提取關(guān)鍵部分的信息,對文本進行優(yōu)化。再使用兩種不同的方法進行特征提取,并將提取到的特征信息進行連接,然后輸入到輸出層。輸出層包含一個全連接層和一個softmax層,使用全連接層調(diào)整特征向量的維數(shù),然后使用softmax分類器對文本進行分類操作。
輸入:原始數(shù)據(jù)集;類別標記;
輸出:分類模型;模型的評價指標;
(1)數(shù)據(jù)預處理:p=(),函數(shù)主要包含數(shù)據(jù)清洗和分詞;
(2)特征提?。?/p>
①BiLSTM+Attention:=(p)函數(shù)包含多個步驟,具體如下:
②CharCNN:函數(shù)包含多個步驟,具體如下:
③=⊕F
(3)輸出層:softmax:=(),最后得到分類結(jié)果。
本文所采用的數(shù)據(jù)集是SMM4H共享任務評測的數(shù)據(jù)集。該數(shù)據(jù)集主要提供了推特用戶發(fā)表推文的ID號和用戶的ID號。由于存在用戶刪帖等因素的存在,最后一共收集到7168條推文。在實驗之前,首先統(tǒng)計本研究的數(shù)據(jù)集,結(jié)果見表1。
表1 數(shù)據(jù)集統(tǒng)計
由于本研究數(shù)據(jù)集的樣本數(shù)較小,為了充分訓練,本文采用8∶2的數(shù)據(jù)集劃分方式,最后測試集的數(shù)據(jù)集是在訓練結(jié)束后在整個數(shù)據(jù)集上隨機采樣得到的。
表2給出了推文的示例。由表2可以看到,社交媒體的文本是不規(guī)范的,充斥著各種符號和URL等信息,所以需在實驗前對數(shù)據(jù)進行文本預處理。
表2 推文示意表
因為推文數(shù)據(jù)都是不規(guī)則的、較口語化的文本內(nèi)容,所以首先需對推文數(shù)據(jù)進行文本預處理。表3顯示了文本預處理的實例。
表3 推文預處理示意表
文本具體的處理方法為:統(tǒng)一單詞的大小寫,將所有單詞轉(zhuǎn)化為小寫;將所有出現(xiàn)的URL、電子郵件地址以及提及的其他用戶名分別替換為“url”“email”“atSign”;推文中有一類標簽文本,表示推文的類型,在本文的研究模型中未使用到,所以將標簽類型刪掉;將推文中的數(shù)字部分修改為一個代表性的數(shù)字。
本實驗采用正則化和Dropout的方法來降低模型的復雜度,避免過擬合。在CharCNN階段和BiLSTM階段均使用Dropout的方法來避免過擬合,在損失函數(shù)中引入了L2正則化,既能提升準確度,又能增加模型的魯棒性。本文使用Adam梯度下降法來加速模型的收斂速度。
在神經(jīng)網(wǎng)絡中隱藏層數(shù)、單元個數(shù)、批量大小或迭代次數(shù)等參數(shù)也被稱為超參數(shù),它們決定了特定神經(jīng)網(wǎng)絡結(jié)構(gòu)的總體設置。本實驗使用網(wǎng)格搜索的方法進行超參數(shù)選擇,即用預定義的超參數(shù)搜索空間的不同超參數(shù)組合來訓練神經(jīng)網(wǎng)絡結(jié)構(gòu)的多個不同版本,并評估這些參數(shù)組合,選擇在驗證集上評估性能最佳的配置作為最終的參數(shù)組合。
相關(guān)超參數(shù)設置:詞向量的維度設置為200維;CharCNN階段字符序列長度為1014;CharCNN卷積層層數(shù)設置為3;LSTM的時間步設置為128,LSTM輸出神經(jīng)元個數(shù)設置為12;訓練batch大小設置為64;迭代epoch設置為5;學習率設置為0.001;dropout值設置為0.9(這是dropKeepProb的值)。
本文研究內(nèi)容是社交媒體上藥物不良反應檢測任務,是自然語言處理中常見的分類任務。與藥物不良反應有關(guān),標記為1;否則標記為0。預測結(jié)果的混淆矩陣如表4所示。其中,表示預測為與藥物不良反應有關(guān),實際也與藥物不良反應有關(guān);表示預測與藥物不良反應有關(guān),而實際無關(guān);表示預測與藥物反應無關(guān),而實際有關(guān);表示預測與藥物不良反應無關(guān),實際也無關(guān)。
表4 混淆矩陣
召回率表示模型實際為1的樣本,預測仍為1的樣本概率,其計算公式為:
精準率是指在所有預測為1的樣本中,實際為1的樣本比例,其計算公式為:
值是對召回率和精準率的綜合評價指標,是對其進行加權(quán)平均的結(jié)果,其計算公式為:
為了驗證本研究提出模型的有效性,本文選取BiLSTM、CharCNN、BiLSTM+Attention算法做對比實驗,通過與經(jīng)典模型的對比分析,能夠準確地反映本模型的優(yōu)越性,其實驗結(jié)果如表5所示。
表5 藥物不良反應的二分類結(jié)果
表5中所有的數(shù)據(jù)都是在相同的實驗參數(shù)和相同數(shù)據(jù)集中訓練得到的結(jié)果,其中單獨的BiLSTM模型或者CharCNN模型在這個任務上的效果都欠佳,可以看到召回率都在0.5以下。其精準率很高,而召回率很低,這是因為精準率和召回率是兩個相互矛盾的指標。由公式(11)和(12)可得,精準率的大小與假正例成反比,召回率的大小與真正例成反比。這樣就導致精準率和召回率相互矛盾,類似于處于拔河比賽的兩端。而值能夠平衡這兩個指標,衡量模型性能的指標,但是這兩個模型的值也都處于一個較低的水準。
比較BiLSTM+Attention模型和單純使用BiLSTM模型的值和精準率,會發(fā)現(xiàn)值提高了約16%,召回率提高了約29%。同樣比較BiLSTM和BiLSTM+CharCNN,發(fā)現(xiàn)后者的值提高了約19%,召回率提高了約33%。比較BiLSTM+Attention和BiLSTM+CharCNN模型,發(fā)現(xiàn)相對于前者,后者召回率提高了4%,值提高了約3%,精準率提高了約2%。最后,本文用到的模型與前幾個模型相比,在精準率幾乎不變的情況下,召回率提高了約3%,值也提高了約1%。對于藥物不良反應的監(jiān)測問題,該模型在一定程度上提高有不良反應用戶被檢測出的概率。
本文模型主要是對社交媒體上的藥物不良反應進行分類。使用了雙向長短時記憶網(wǎng)絡LSTM和CharCNN模型進行特征提取,同時結(jié)合注意力機制對特征向量進行優(yōu)化。使用雙向長短時記憶網(wǎng)絡,能夠完美保留LSTM處理文本的優(yōu)勢,處理長距離的依賴特征,并能保證更全面地考慮上下文信息。注意力機制能夠通過調(diào)整雙向長短時記憶網(wǎng)絡中各節(jié)點的權(quán)重,使得模型能夠識別文本中更加關(guān)鍵的部分,這樣能最大程度地削弱冗余部分對文本的影響,進而優(yōu)化特征向量。CharCNN從字符信息出發(fā),提取文本在字符粒度上的特征向量。與傳統(tǒng)的人為設計的文本特征和基于單一的神經(jīng)網(wǎng)絡提取的特征向量相比,能夠從不同層次更全面地描述推文中的文本特征,且能識別文本中的關(guān)鍵信息,進而在藥物不良反應的分類任務中取得更好的效果。下一步的研究重點就是如何確定推文中的不良反應所對應的相關(guān)藥物。