聶文杰,莫 迪,黃邦銳,劉 海,郝天永
1(華南師范大學 計算機學院,廣州 510631)
2(華南師范大學 人工智能學院,佛山 528225)
隨著電子病歷的快速普及與發(fā)展,從電子病歷中抽取所需關鍵信息逐漸成為醫(yī)學信息學領域研究者關注的熱點問題,目前許多研究者關注于從非結構化電子病歷文本中抽取醫(yī)學概念[1]、醫(yī)學屬性值[2]、時間表達式[3]、藥物不良反應事件[4]與藥物間相互作用[5].對電子病歷中的可度量數(shù)量信息的抽取卻較為匱乏.可度量數(shù)量信息廣泛存在于各類非結構化文本中[6],例如在臨床試驗鈉排標準文本中的占比超過40%[7].低精度的可度量數(shù)量信息抽取會導致藥物劑量分析與臨床試驗資格標準認定等研究的瓶頸[6].
可度量數(shù)量信息作為一種量化數(shù)據(jù),由實體與相關數(shù)量屬性組成[8].以語句“心率達120 次/分鐘”為例,其中“心率”為實體,“120”為數(shù)值,“次/分鐘”為單位,數(shù)值與單位的組合“120 次/分鐘”為數(shù)量.圖1 顯示了非結構化電子病歷文本包含的可度量數(shù)量信息,其中下劃線表示實體,粗體表示數(shù)值,斜體表示單位,其中實體與數(shù)值、單位之間的相對位置并不固定,以“體溫36.0 攝氏度”與“3 600 mL 血漿”為例,其中“體溫36.0攝氏度”中的實體在數(shù)值與單位之前,而“3 600 mL 血漿”中的實體在數(shù)值與單位之后.另外如實體“5%葡萄糖注射液”所示,部分數(shù)值信息為實體的一部分,而非單獨的數(shù)值.現(xiàn)有信息抽取技術尚未對可度量數(shù)量信息中的位置信息進行深入的研究,并且難以區(qū)分單獨的數(shù)值與作為實體一部分的數(shù)值.
圖1 非結構化電子病歷文本中包含的可度量數(shù)量信息
現(xiàn)有可度量數(shù)量信息抽取相關研究主要利用基于規(guī)則與傳統(tǒng)機器學習模型的方法,然而基于規(guī)則的方法需要花費大量時間與精力設計規(guī)則,且泛用性往往較弱,無法很好地遷移至其他語料或領域.而傳統(tǒng)機器學習模型需要做大量的特征工程,所生成的特征質量很大程度地影響著模型的最終性能.因此可以自動抽取特征的深度學習模型引起了研究者的關注,循環(huán)神經網絡(recurrent neural network,RNN)被引入用來抽取信息,同時為了進一步提升模型性能,諸如位置特征等外部特征被融入到深度學習模型當中.然而無論是Vaswani 等[9]根據(jù)sin 函數(shù)與cos 函數(shù)生成的位置編碼還是Wang 等[10]介紹的位置向量,都沒有對所需信息與無關信息進行特殊處理.此外當前大多研究將整個序列作為模型的輸入,而Zhang 等[11]已經證明對原輸入序列進行適當刪減有助于提升模型性能.
本文首先通過相對位置特征來區(qū)分實體與數(shù)量信息與非實體與非數(shù)量信息,并將其融入注意力(attention)機制中,對通過雙向門控循環(huán)單元(bi-direction gated recurrent unit,BiGRU)獲得的上下文特征進行更新,以此識別實體與數(shù)量信息.并通過將輸入語句轉換為句法依存樹的同時進行重構,在充分提取輸入語句語義信息的同時排除無關信息的干擾,并結合圖注意力網絡(graph attention networks,GAT)進一步抽取特征,對實體與數(shù)量進行正確關聯(lián),實現(xiàn)可度量數(shù)量信息關聯(lián),最終完成可度量數(shù)量信息的抽取.綜上所述,本文的主要貢獻如下:
(1)通過將相對位置特征與注意力機制融合,提出新的RPA-GRU (relative position attention-BiGRU)模型,識別實體與數(shù)量信息.
(2)通過對輸入語句生成的句法依存樹重構,提出新的GATM (graph attention networks for measurable quantitative information)模型,關聯(lián)可度量數(shù)量信息.
(3)實驗結果表明所提出的RPA-GRU 與GATM模型相比基線模型獲得了最佳性能,驗證了其有效性.
對于可度量數(shù)量信息抽取的相關研究,早期為基于規(guī)則的方法,如肖洪等[12]通過對量詞進行總結得到125 種模式,在利用有限自動機抽取量詞的同時構建正則表達式與模板從年鑒文本當中抽取數(shù)值知識元.Turchin 等[13]利用正則表達式從臨床筆記當中抽取血壓值,并通過領域知識校驗抽取結果.Hao 等[7]引入領域知識與UMLS 元詞典等外部知識設計啟發(fā)式規(guī)則從1 型糖尿病數(shù)據(jù)集與2 型糖尿病數(shù)據(jù)集中抽取可度量數(shù)量信息.Liu 等[8]對醫(yī)學文本當中的關鍵語義角色進行標記,自動學習模式抽取可度量數(shù)量信息以減少人工.隨著傳統(tǒng)機器學習的發(fā)展,如條件隨機場(conditional random field,CRF)被引入,或單獨使用或與規(guī)則進行結合.張桂平等[14]在構建模板的基礎上利用CRF 對模板進行補充,從而對數(shù)值信息進行抽取.隨著能夠自動抽取特征的深度學習模型的發(fā)展,如雙向長短期記憶網絡(bidirectional long short-term conditional random field,BiLSTM)模型被研究者所關注,王竣平等[15]通過建立數(shù)值信息知識庫與模板,抽取屬性值與單位,并利用BiLSTM-CRF 模型對工業(yè)領域中的數(shù)值信息進行抽取.Liu 等[16]設計了包含相對位置特征、絕對位置特征與詞典特征等多種外部特征,并將其向量化后進行連接送入BiLSTM-CRF 模型進行建模,從而識別電子醫(yī)療病歷中的實體與數(shù)量信息,而后將實體數(shù)、數(shù)量數(shù)、相對位置與絕對距離作為外部特征輸入隨機森林(random forest)模型,對實體與數(shù)量信息進行關聯(lián).但以上研究都未對輸入信息進行取舍與重要性區(qū)分.
此外,其他研究者針對可度量數(shù)量信息的部分信息如實體進行抽取,商金秋等[17]利用正向最大匹配算法與決策樹模型從電子病歷當中抽取患者發(fā)熱相關癥狀及其具體表現(xiàn)并將其進行可視化,以輔助醫(yī)生治療.Hundman 等[18]開發(fā)了一個名為Marve 的系統(tǒng),首先利用CRF 識別數(shù)值與單位,然后基于規(guī)則識別實體.Berrahou 等[19]則是利用J48 決策樹、支持向量機(support vector machines)、樸素貝葉斯(naive Bayes)、判別性多義樸素貝葉斯(discriminative multinominal naive Bayes)等多個分類器對科學文檔中的單位進行抽取.Zhang 等[20]通過將字符信息與分詞信息融入BiLSTM-CRF 模型,提升了臨床實體識別的性能.Xu 等[21]將文檔級注意力與BiLSTM 模型結合,從2010 i2b2/VA 數(shù)據(jù)集當中識別臨床命名實體,相比無注意力機制的BiLSTM 模型提高了1.01%的F1 值,證明了注意力機制的有效性.此外,為了進一步抽取實體,Zhang 等[22]在通用領域上提出了Lattice-LSTM,通過在字符級抽取特征避免分詞錯誤,并引入當前字符在外部詞典中的匹配詞來同時考慮字符信息與詞信息.另外,Zhang 等[11]將句法依存樹中的最短依賴路徑(short dependency paths,SDP)與RNN 相結合,排除無關信息.Lin 等[5]則是將圖神經網絡(graph neural network,GNN)拓展到知識圖譜,以此預測藥物之間的反應(drug-drug interaction,DDI).Song 等[23]則是將句法依存樹拓展為森林,實現(xiàn)醫(yī)學關系抽取.上述部分研究雖利用了注意力機制與剪枝方法進行重要性的區(qū)分,卻并未抽取完整的可度量數(shù)量信息.
可度量數(shù)量信息識別是將輸入語句中的每個字符分別標記為實體、數(shù)值、單位與其他,符合序列標記任務的定義.因此本文將可度量數(shù)量信息識別任務轉換為一個標準的序列標記任務.首先將輸入語句編碼為X={x1,x2,x3,···,xm},其中xm∈Rde表示語句X的第m個字符,de表示輸入向量的維度.語句的輸出標簽為Y={y1,y2,y3,···,ym},其中ym表示第m個字符所對應的標簽.識別任務的目標是尋找一個函數(shù)fθ:XY,將輸入語句的所有字符映射為對應的標簽.對此本文提出RPA-GRU 模型,具體模型結構如圖2.模型首先為輸入序列生成對應的向量表示并利用BiGRU 模型抽取上下文特征,然后將相對位置向量融入注意力機制對上下文特征進行更新,以此區(qū)分實體與數(shù)量信息與非實體和非數(shù)量信息,最后送入CRF.
圖2 RPA-GRU 模型的網絡結構
(1)相對位置特征及向量
為了將實體與數(shù)值信息與非實體和非數(shù)值信息進行區(qū)分,本文對Liu 等[16]提出的相對位置特征進行拓展.具體而言,對于實體與數(shù)量信息,以距離最近的實體為中心按照距離分配不同的相對位置特征,對于非實體與非數(shù)量信息的相對位置特征而言,為了防止與實體和數(shù)量信息的相對位置特征之間的干擾,統(tǒng)一設置為語句最大長度+1 之和的負數(shù),抽取過程如算法1,示例為表1.
表1 相對位置特征示例
1)For do xiy i=1,···,m 2)If in xi 3)If in entity r fi←4)0 5)Else 6)distance= 與最近的entity 之間的距離xi xi 7)If 在距離最近的entity 左邊r fi←8)-1×distance 9)Else r fi←10) distance 11)End If 12)End If 13)Else r fi←14)-1×(max_len+1)15)End If 16)End For
本文對相對位置特征進行隨機初始化,并在訓練期間進行更新.從而為輸入語句X={x1,x2,···,xm}生成對應的相對位置向量
(2)相對位置特征融入注意力機制
本文通過將輸入語句中的每個字符對應的字符向量與分詞向量進行拼接得到e=[ech:eseg]作為BiGRU模型的輸入,其中ech與eseg分別為字符向量與分詞向量,[:]表示拼接操作.字符向量由Word2Vec[24]進行初始化,分詞向量與相對位置向量類似,隨機初始化后于訓練期間更新.將e送入BiGRU 模型得到上下文特征H=[h1,h2,···,hm],從而引入字符與分詞信息,然后將相對位置向量融入注意力機制[25]中,為不同部分分配不同重要性,進一步捕獲信息.計算方式如式(1):
其中,αx為注意力權重,計算方式如式(2):
其中,s為得分函數(shù),計算方式如式(3):
通過融入相對位置向量的注意力機制,得到更新后的上下文特征最后將H′送入標準CRF 得到最終結果.
對于需要抽取可度量數(shù)量信息的語句而言,如果單條語句中只有一個可度量數(shù)量信息,那么直接將實體與數(shù)量進行關聯(lián)即可,然而如圖1,單條語句中可能存在多個可度量數(shù)量信息,因此需要將語句中的實體與相應的數(shù)量進行正確關聯(lián).又由于實體與數(shù)量之間僅存在有關聯(lián)與無關聯(lián)兩種關系,因此本文將關聯(lián)任務視作二分類問題.對此本文提出GATM 模型,對實體與數(shù)量進行關聯(lián),具體模型結構如圖3.模型首先將輸入語句轉換為詞向量并生成對應的句法依存樹,對句法依存樹進行重構后轉換為鄰接矩陣,然后將詞向量送入BiLSTM 獲取上下文特征,將上下文特征與鄰接矩陣送入圖注意力網絡進一步抽取特征,最后送入Softmax 得到最終結果.
圖3 GATM 模型的網絡結構
(1)句法依存樹生成與重構
給定輸入語句X={x1,x2,···,xl},其中l(wèi)表示當前輸入語句長度.以輸入語句“今予輸血蛋白100 mL”為例,生成的完整句法依存樹示例如圖4(a).可以看到當前句法依存樹根節(jié)點為“輸”,“tmod”表示時間修飾語,“dobj”表示直接賓語,“range”表示數(shù)量詞間接賓語,“nummod”表示數(shù)詞修飾語.句法依存樹描述了各個詞語之間的語法聯(lián)系,包含著豐富的語義信息,另外對句法依存樹進行適當修剪有助于模型性能的提升.Xu 等[26]提出基于SDP 的LSTM 模型,通過去除無關信息僅保留兩個實體之間的關鍵路徑提升模型的F1 值.Wang等[10]在基于單向SDP 的基礎上提出了雙向SDP (bidirectional SDP)進一步抽取信息.另外,由于本文關心的重點是可度量數(shù)量信息但句法依存樹通常不以可度量數(shù)量信息為根.因此本文對句法依存樹進行以可度量數(shù)量信息中的實體為根的重構,在重構的同時對句法依存樹進行剪枝,防止無關信息干擾.重構后的句法依存樹如圖4(b),重構后的句法依存樹被轉換為鄰接矩陣A,Aij=Aji=1表示詞i與詞j在句法依存樹中存在依賴關系.重構過程如算法2.
圖4 句法依存樹示例
算法2.重構句法依存樹輸入: 包含可度量數(shù)量信息的語句,可度量數(shù)量信息中的實體ent,數(shù)量quantity,原始句法依存樹 與直接依賴關系sen={w1,w2,···,wl}T r輸出: 重構后以實體為中心的句法依存樹TT 1)將ent 作為 的根節(jié)點i=1,···,l 2)For do wiTr 3)If 與ent 或quantity 在 中存在直接依賴關系Twir 4)向 中添加 與ent 或quantity 的直接依賴關系5)End If 6)End For
同時為了利用BiLSTM 模型抽取上下文特征,本文利用Word2Vec[24]將輸入語句X={x1,x2,···,xl}中的每個詞xi轉換為相應的詞向量wi,從而得到輸入語句所對應的詞向量序列W={w1,w2,···,wl},并送入BiLSTM 模型進行抽取得到相應的上下文特征H={h1,h2,···,hl}.
(2)圖注意力網絡
GAT 由Velickovic 等[27]提出,其結合了注意力機制與圖卷積網絡(graph convolutional network,GCN),利用注意力機制為不同節(jié)點分配不同重要性.本文將上下文特征H與鄰接矩陣A輸入GAT,得到更新后上下文特征H′={h′1,h′2,···,h′l}.然后將H′通過一個線性層,作為Softmax層輸入,得到預測向量y,計算公式如式(4):
其中,y為當前輸入屬于每個類別的概率,并利用argmax函數(shù)將其中最大概率的類別作為最終輸出.交叉熵函數(shù)作為GATM 模型的損失函數(shù),計算方式如式(5):
實驗數(shù)據(jù)來自某三甲醫(yī)院燒傷科的1 359 份電子病歷,最初由兩名相關研究人員利用標注工具Colabeler對每個句子中的可度量數(shù)量信息進行標注,對于兩名研究人員標注不一致的數(shù)據(jù),由一名醫(yī)學信息學的博士進行最終的標注判定,并通過Kappa 檢驗,得到最終的實驗數(shù)據(jù)集.識別數(shù)據(jù)集格式為BIOES 標注模式,其中B 為Begin 的縮寫,表示該字符處于開始位置,I 為Inside 的縮寫,表示該字符處于中間位置,E 為End 的縮寫,表示該字符處于結束位置,S 為Single 的縮寫,表示該字符單獨構成實體、數(shù)值或單位,O 為Other 的縮寫,表示非實體、非數(shù)值與非單位.數(shù)據(jù)集具體示例如表2,其中Entity、Num 和Unit 分別表示實體、數(shù)值與單位,“<e></e>”標識當前實體,“<q></q>”標識當前數(shù)量.“Entity-Quantity(e,q)”為正例,表示當前實體與當前數(shù)量之間有關聯(lián),“Other”為負例,表示當前實體與當前數(shù)量之間無關聯(lián).
表2 數(shù)據(jù)集具體示例
最終標注好的數(shù)據(jù)被隨機劃分為訓練集、驗證集與測試集,數(shù)據(jù)集詳細統(tǒng)計信息如表3 所示.
表3 數(shù)據(jù)集詳細統(tǒng)計信息
對于識別與關聯(lián)任務,本文采用精確率(Precision),召回率(Recall)與F1 值作為評價指標,具體計算方式如式(6)-式(8).
其中,TP表示將正類預測為正類的數(shù)量,FP表示將負類預測為正類的數(shù)量,FN表示將正類預測為負類的數(shù)量.
為了驗證RPA-GRU 在識別任務上的有效性,本文使用以下基線進行性能比較.
Extended BiLSTM-CRF: Liu 等[16]將絕對位置特征、相對位置特征與詞典特征向量化后進行連接送入Bi-LSTM-CRF 模型,提升模型F1 值.
Lattice-LSTM: Zhang 等[22]利用外部詞典匹配句子中的字符,從而獲得包含字符的詞語,生成包含字符與詞的格,從而增強基于字符的模型.
WC-LSTM: Liu 等[28]分別利用最長單詞優(yōu)先(longest word first,LWF)、最短單詞優(yōu)先(shortest word first,SWF)、均值(average)與自注意力(self-attention,SA)4 種方法在輸入的字符向量中融入詞匯信息.
LR-CNN: Gui 等[29]在卷積神經網絡(convolution neural network,CNN)的基礎上利用Rethinking 機制合并詞匯信息,對匹配語句的字符與潛在單詞進行建模.
Soft-Lexicon: Ma 等[30]通過將每個字符所對應的全部詞進行合并后進行加權求和,得到詞向量并與字符向量進行拼接,引入詞匯信息.
另外,為了驗證GATM 模型在關聯(lián)任務上的效果,與以下基線進行比較.
AGGCN: Guo 等[31]將完整的句法依存樹送入GCN 當中,并通過注意力機制實現(xiàn)軟剪枝,此外其在AGGCN 模型的基礎上,利用LSTM 模型捕獲上下文特征從而提出C-AGGCN 模型.
Att-BiLSTM: Zhou 等[32]將注意力機制引入BiLSTM模型當中,探究注意力機制對模型的提升.
PA-LSTM: Zhang 等[33]在LSTM 模型的基礎上引入位置注意力來考慮實體的全局位置信息.
為防止RPA-GRU 與GATM 模型產生過擬合,本文在訓練過程中引入正則化,另外將Adam[34]與AdaGrad[35]分別作為RPA-GRU 與GATM 模型的優(yōu)化器,其余參數(shù)設置如表4.
表4 模型的實驗參數(shù)設置
模型在識別任務上的實驗結果如表5,結果表明RPA-GRU 模型取得了98.56%的精確率,96.61%的召回率,97.58%的F1 值,在3 個指標上均超越了其他基線模型.具體而言,與之前將外部特征向量化后并連接送入BiLSTM 模型的Extended Bi-LSTM-CRF 模型相比,RPA-GRU 模型取得的F1 值高3.31%,證明比起簡單的特征拼接,本文將相對位置注意力融入注意力機制更新上下文特征取得的效果更優(yōu).與之前通過外部詞典來引入詞信息的模型Lattice-LSTM、WC-LSTM(LWF/SWF/Average)、WC-LSTM (SA)、LR-CNN、Soft-Lexicon 對比,RPA-GRU 模型取得的F1 值分別高2.30%、2.30%、2.17%、3.10%、2.62%,證明本文所提出的模型即使不依賴外部詞典獲取詞信息也能獲得更好的性能.
表5 識別任務實驗結果對比(%)
模型在識別任務上的混淆矩陣如圖5 所示.由于混淆矩陣中的實際標簽Other 被預測為Other 的數(shù)量對模型性能沒有影響,因此為簡化矩陣,將其數(shù)量置為0.從混淆矩陣中可以看到,對于Entity、Num 和Unit而言,大部分相關信息都已被成功抽取,且彼此之間很少發(fā)生混淆,得到了不錯的效果,然而無論是Entity、Num 還是Unit 都會與其他信息之間發(fā)生一定的混淆,如“D-二聚體”等實體還是難以進行準確抽取,導致模型性能受到些許影響.
圖5 識別任務混淆矩陣
模型在關聯(lián)任務上的實驗結果如表6 所示,結果表明GATM 模型取得了96.26%的精確率,99.52%的召回率與97.86%的F1 值,在3 個指標上均超越了其他基線模型.具體而言,與之前利用注意力機制的軟剪枝方法(如AGGCN 與C-AGGCN)相比,GATM 模型高3.52%與2.60%的F1 值,證明本文針對句法依存樹的重構策略更優(yōu).與僅引入注意力機制的模型如(Att-BiLSTM、PA-LSTM)相比,GATM 模型高3.42%與1.74%的F1 值,表明GATM 模型通過引入句法依存樹中的句法信息,有效提升了模型性能.
表6 關聯(lián)任務實驗對比(%)
模型在關聯(lián)任務上的混淆矩陣如圖6 所示.從混淆矩陣中可以看到,得到的最終結果較為理想,未發(fā)生大規(guī)模的混淆情況,進一步驗證了模型的有效性.
圖6 關聯(lián)任務混淆矩陣
隨著迭代次數(shù)的不斷增加,RPA-GRU 模型與GATM模型的準確率與損失函數(shù)曲線分別如圖7 與圖8 所示.可以看到,兩個模型的準確率逐步上升,而損失函數(shù)的值逐步減少,最終都趨于穩(wěn)定.
圖7 準確率變化曲線
圖8 損失函數(shù)變化曲線
為了分析不同訓練集大小對RPA-GRU 模型與GATM 模型性能的影響,本文通過隨機抽取的方法設置6 個不同規(guī)模大小的訓練集,數(shù)據(jù)集大小分別原始數(shù)據(jù)集的0.10、0.15、0.25、0.50、0.75、1.00.圖9 顯示了在不同訓練集大小上訓練得到模型的F1 值,從圖中可以看到當訓練集大小占比小于0.25 時,隨著訓練集大小的增加,RPA-GRU 模型與GATM 模型的性能均有著顯著的提升,當訓練集大小超過0.25 時,RPAGRU 模型逐漸穩(wěn)定,GATM 模型則是在訓練集大小達到0.75 時逐漸穩(wěn)定.
圖9 不同訓練集大小的模型性能
本文通過對可度量數(shù)量信息進行識別與關聯(lián)完成對于可度量數(shù)量信息的抽取,分別提出了RPA-GRU模型與GATM 模型,其中RPA-GRU 模型將相對位置特征融入注意力機制,對上下文特征進行更新,有效地提高了模型的性能,達到了97.58%的F1 值.GATM模型則是以可度量數(shù)量信息中的實體為中心重構句法依存樹并排除無關信息干擾,最終取得了97.86%的F1 值.與其他基線模型對比兩個模型均取得了最優(yōu)性能,證明了其有效性.此外,本文還對模型的穩(wěn)定性進行了探究,結果證明RPA-GRU 模型與GATM 模型在對應的任務中具有穩(wěn)定的性能.