陳漠沙,仇 偉,譚傳奇
(阿里巴巴 機(jī)器智能技術(shù)實(shí)驗(yàn)室,浙江 杭州 311121)
臨床術(shù)語標(biāo)準(zhǔn)化任務(wù)是醫(yī)學(xué)文本信息抽取中不可或缺的一項(xiàng)任務(wù)?;颊卟v詳細(xì)記錄了患者的臨床病史和疾病進(jìn)展,包括但不限于癥狀、疾病、診斷和藥物等。臨床上,關(guān)于同一種診斷、手術(shù)、藥品、檢查、化驗(yàn)、癥狀等往往會(huì)有成百上千種不同的寫法,標(biāo)準(zhǔn)化(歸一)要解決的問題就是為臨床上各種不同說法找到對(duì)應(yīng)的標(biāo)準(zhǔn)說法,一方面可以幫助研究人員對(duì)電子病歷進(jìn)行后續(xù)的統(tǒng)計(jì)分析和挖掘;另一方面也可以促進(jìn)AI技術(shù)在醫(yī)學(xué)應(yīng)用系統(tǒng)的落地,如“CDSS(臨床決策診療系統(tǒng))”“DRGs(診斷相關(guān)分組管理系統(tǒng))”等。
近年來醫(yī)院信息化建設(shè)水平的提升以及電子病歷的普及,為大規(guī)模應(yīng)用機(jī)器學(xué)習(xí)算法解決醫(yī)學(xué)領(lǐng)域的研究任務(wù)提供了便利。針對(duì)醫(yī)學(xué)術(shù)語歸一(標(biāo)準(zhǔn)化)任務(wù),學(xué)術(shù)界也開展了一系列評(píng)測(cè)任務(wù),包括:ShARe/CLEF-2013任務(wù)1[1]、SemEval-2014 任務(wù)7[2]、SemEval-2015任務(wù)14[3]和N2C2-2019任務(wù)3[4],以上評(píng)測(cè)任務(wù)均是英文領(lǐng)域。針對(duì)中文數(shù)據(jù)集,在目前所知范圍內(nèi),CHIP-2019“手術(shù)名稱標(biāo)準(zhǔn)化”任務(wù)(1)http://cips-chip.org.cn/evaluation應(yīng)該是第一個(gè)中文醫(yī)學(xué)術(shù)語歸一化評(píng)測(cè)任務(wù)。這些評(píng)測(cè)任務(wù)和數(shù)據(jù)集均有效地推動(dòng)了相關(guān)技術(shù)的發(fā)展。
術(shù)語歸一任務(wù)的研究大致經(jīng)過了幾個(gè)階段:基于規(guī)則的方法[5-6]、基于機(jī)器學(xué)習(xí)的方法[7]和基于深度學(xué)習(xí)的方法[8-9]。本文在使用檢索技術(shù)生成候選答案的基礎(chǔ)上,借鑒了語言模型BERT的思路,在重排序階段使用BERT[10]模型對(duì)候選答案進(jìn)行打分重排序,單模型取得89.1%的準(zhǔn)確率,最終提交的融合模型在測(cè)試集上取得92.8%的準(zhǔn)確率,基本達(dá)到實(shí)際應(yīng)用標(biāo)準(zhǔn)。本文采用的方法具備很好的泛化能力,可應(yīng)用在其他類型的醫(yī)學(xué)術(shù)語標(biāo)準(zhǔn)化任務(wù)上。
早期的研究方法均是圍繞基于規(guī)則的方法開展的,其中代表性的工作包括Ghiasvand等[5]在SemEval-2014任務(wù)7[2]上提出的基于編輯距離特征來生成候選集的方法,該方法首先通過訓(xùn)練數(shù)據(jù)的每一條實(shí)體及其在UMLS系統(tǒng)對(duì)應(yīng)的標(biāo)準(zhǔn)術(shù)語學(xué)習(xí)到554種編輯距離模式,該模式之后被應(yīng)用到測(cè)試集來增強(qiáng)候選答案的覆蓋,在SemEval任務(wù)上取得了最佳性能;Kang等[6]在生物領(lǐng)域文本上提出了5種規(guī)則來提升疾病術(shù)語的歸一化性能。
針對(duì)實(shí)體歸一化任務(wù),常見的機(jī)器學(xué)習(xí)解決思路是利用學(xué)習(xí)排序(learning to rank(2)https://en.wikipedia.org/wiki/Learning_to_rank)的方法來生成最終的答案,在醫(yī)學(xué)NLP領(lǐng)域的代表性工作是Leaman等[7]提出的利用pairwise排序?qū)W習(xí)的方法,該方法利用向量空間來表示實(shí)體以及數(shù)據(jù)庫中的標(biāo)準(zhǔn)術(shù)語,通過學(xué)習(xí)相似矩陣來完成給定實(shí)體和候選答案之間的匹配映射。
深度學(xué)習(xí)時(shí)代,研究者對(duì)實(shí)體歸一任務(wù)提出了更廣泛的解決思路,其中代表性工作是Luo等[8]提出的多視圖CNN模型,該方法利用多任務(wù)共享網(wǎng)絡(luò)結(jié)構(gòu)同時(shí)學(xué)習(xí)出院記錄的診斷信息和手術(shù)信息標(biāo)準(zhǔn)化,在中文數(shù)據(jù)集上取得了不錯(cuò)的性能;隨著語言模型的興起,預(yù)訓(xùn)練語言模型在多項(xiàng)NLP任務(wù)上均刷新了最優(yōu)結(jié)果,針對(duì)醫(yī)學(xué)術(shù)語歸一任務(wù),Ji等[9]提出的利用BERT進(jìn)行重排序的思路,在多個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集上均取得了最佳性能。
本文在前述方法的基礎(chǔ)上,基于通用的檢索+重排序框架,利用給BERT輸入對(duì)(實(shí)體詞,候選詞)進(jìn)行打分重排序,在CHIP評(píng)測(cè)任務(wù)上取得了不錯(cuò)的性能效果。
針對(duì)中文電子病歷中挖掘出的真實(shí)手術(shù)實(shí)體進(jìn)行語義標(biāo)準(zhǔn)化。具體來說,給定一手術(shù)原詞,要求系統(tǒng)給出其對(duì)應(yīng)的手術(shù)標(biāo)準(zhǔn)詞。其中,所有手術(shù)原詞均來自于真實(shí)醫(yī)療數(shù)據(jù),并以《ICD9—2017協(xié)和臨床版》 手術(shù)詞表為標(biāo)準(zhǔn)進(jìn)行標(biāo)注。
表1展示了本次評(píng)測(cè)任務(wù)的部分樣例數(shù)據(jù),數(shù)據(jù)集中“手術(shù)原詞”和“歸一化標(biāo)準(zhǔn)詞”之間存在4種匹配對(duì)應(yīng)關(guān)系:
表1 手術(shù)術(shù)語標(biāo)準(zhǔn)化任務(wù)示例
(1)“一對(duì)一”關(guān)系:一個(gè)手術(shù)原詞對(duì)應(yīng)一個(gè)歸一化標(biāo)準(zhǔn)詞。
(2)“一對(duì)多”關(guān)系:一個(gè)手術(shù)原詞對(duì)應(yīng)多個(gè)歸一化標(biāo)準(zhǔn)詞。
(3)“多對(duì)一”關(guān)系:多個(gè)手術(shù)原詞對(duì)應(yīng)一個(gè)歸一化標(biāo)準(zhǔn)詞。
(4)“多對(duì)多”關(guān)系:多個(gè)手術(shù)原詞對(duì)應(yīng)多個(gè)歸一化標(biāo)準(zhǔn)詞。
數(shù)據(jù)集的詳細(xì)統(tǒng)計(jì)信息如表2所示。通過觀察表2可以發(fā)現(xiàn),1個(gè)手術(shù)原詞最多可以對(duì)應(yīng)到7個(gè)標(biāo)準(zhǔn)詞。因此,相較于單純的“一一對(duì)應(yīng)”標(biāo)準(zhǔn)詞歸一化,本次評(píng)測(cè)中涉及到的任務(wù)更具難度和挑戰(zhàn)。
表2 評(píng)測(cè)數(shù)據(jù)分布統(tǒng)計(jì)
任務(wù)以準(zhǔn)確率(accuracy)作為最終評(píng)估標(biāo)準(zhǔn),準(zhǔn)確率的定義為:給出正確的手術(shù)原詞加手術(shù)標(biāo)準(zhǔn)詞的組合/待預(yù)測(cè)手術(shù)原詞的總數(shù),形式化描述為:對(duì)于一條手術(shù)原詞Si,其對(duì)應(yīng)N個(gè)歸一化標(biāo)準(zhǔn)詞。模型預(yù)測(cè)輸出了M個(gè)歸一化標(biāo)準(zhǔn)詞,則該條數(shù)據(jù)的得分如式(1)所示。
(1)
總得分如式(2)所示。
(2)
其中,k表示測(cè)試集中的手術(shù)原詞條目數(shù)。
本文的模型整體架構(gòu)如圖1所示。首先,針對(duì)編碼文件和標(biāo)注文件分別建立索引;然后,對(duì)于給定的“手術(shù)原詞”,分別查詢兩個(gè)索引文件,生成候選答案;最后,將各候選答案與手術(shù)原詞一起,輸入BERT模型打分,并基于BERT模型給出的分?jǐn)?shù)輸出“標(biāo)準(zhǔn)詞”。接下來,本文將分別介紹候選答案生成、候選答案打分、后處理和模型投票部分。
圖1 模型整體架構(gòu)圖
本文使用Lucene(3)http://lucene.apache.org/工具生成候選答案,Lucene是一套用于全文檢索和搜索的開放源碼程式庫,其默認(rèn)排序基于TF-IDF和向量空間模型,可以方便而快速地找到與被檢索短語在文字上相似的目標(biāo)結(jié)果。本文設(shè)計(jì)了兩種檢索方式,分別建立了索引。第一種方式是檢索“編碼—標(biāo)準(zhǔn)詞”,其目標(biāo)是直接查找與待歸一化的“手術(shù)原詞”最相近的“標(biāo)準(zhǔn)詞”。第二種方式是檢索“標(biāo)注歷史”,其目標(biāo)是在標(biāo)注數(shù)據(jù)上查找與待歸一化的“手術(shù)原詞”最相近的數(shù)據(jù),并取該條數(shù)據(jù)的歸一化“標(biāo)準(zhǔn)詞”作為候選答案。本文通過結(jié)合上述兩種檢索方式,各取檢索得分排名前20的“標(biāo)準(zhǔn)詞”作為候選答案,可以達(dá)到超過99%的覆蓋率。
通過Lucene檢索得到候選標(biāo)準(zhǔn)詞后,本文基于Transformer框架對(duì)候選標(biāo)準(zhǔn)詞進(jìn)行打分。由于手術(shù)原詞和標(biāo)準(zhǔn)詞不易拆分,如上文例子中提到的“多對(duì)一”情況,將手術(shù)原詞拆分后就無法對(duì)應(yīng)到正確的標(biāo)準(zhǔn)詞了。因此,本文將該任務(wù)定義為:某一個(gè)歸一化標(biāo)準(zhǔn)詞是否被包含在手術(shù)原詞之中。即將整個(gè)手術(shù)原詞和一個(gè)歸一化標(biāo)準(zhǔn)詞作為一條輸入,判別該歸一化標(biāo)準(zhǔn)詞是否應(yīng)該出現(xiàn)在最終輸出之中。本文使用BERT模型作為打分模型,如圖2所示。
圖2 BERT打分模型
對(duì)于“手術(shù)原詞”和一個(gè)候選“標(biāo)準(zhǔn)詞”,本文按照BERT模型的規(guī)范,將其按字分詞并排列成“[CLS]手術(shù)原詞[SEP]標(biāo)準(zhǔn)詞[SEP]”的形式,輸入BERT編碼器。然后將BERT編碼器的結(jié)果,即“[CLS]”位置處的表示,輸入多層感知機(jī)中,得到二維向量。最后,通過Softmax歸一化為0到1之間的概率。
針對(duì)模型的輸出結(jié)果,本文采用了兩種后處理方式:①若原詞中不包含分隔符號(hào)“+”,則只輸出得分最高的一個(gè)手術(shù)標(biāo)準(zhǔn)詞;②若所有候選得分均未超過選定的閾值,則從候選標(biāo)準(zhǔn)詞中輸出得分最高的一個(gè)手術(shù)標(biāo)準(zhǔn)詞。
本文在提交結(jié)果時(shí)使用集成模型,按上述模型設(shè)定,共訓(xùn)練了10組模型。這10組模型的區(qū)別在于訓(xùn)練集的不同,因?yàn)樵u(píng)測(cè)任務(wù)參賽選手自由劃分訓(xùn)練集和驗(yàn)證集,我們將驗(yàn)證數(shù)據(jù)集隨機(jī)等分成三份,在某些實(shí)驗(yàn)組上會(huì)將驗(yàn)證集的兩份加入到原始訓(xùn)練集中,作為最終的模型訓(xùn)練數(shù)據(jù),將剩余的一份驗(yàn)證集作為最終的驗(yàn)證集。為了集成這10組模型,本文通過投票的方式來集成不同模型的輸出,得到最終輸出結(jié)果。對(duì)于每一個(gè)輸入的手術(shù)原詞,10組模型分別輸出各自的“標(biāo)準(zhǔn)詞”預(yù)測(cè)結(jié)果,統(tǒng)計(jì)所有預(yù)測(cè)結(jié)果中各個(gè)“標(biāo)準(zhǔn)詞”的出現(xiàn)次數(shù),將出現(xiàn)次數(shù)最多即得票數(shù)最高的“標(biāo)準(zhǔn)詞”作為最終預(yù)測(cè)結(jié)果,若有多個(gè)候選“標(biāo)準(zhǔn)詞”的得票數(shù)相同,則這些候選詞均會(huì)被輸出作為預(yù)測(cè)結(jié)果。
對(duì)于訓(xùn)練數(shù)據(jù)的構(gòu)造和采樣,本文嘗試了多種方式,結(jié)果如表3所示?;谠隍?yàn)證集上的結(jié)果,最終本文選擇“BERT-Base-Chinese(4)https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip”初始化的“BERT-取前20候選+10倍正例”的模型設(shè)定。
表3 不同采樣策略下的模型準(zhǔn)確率
4.2.1 候選答案生成
在候選答案生成中,我們結(jié)合了兩種檢索方式,表4展示了在驗(yàn)證集上兩種方法的檢索覆蓋率。
表4 檢索方式覆蓋率統(tǒng)計(jì)
可以觀察到,使用單一檢索方式,都無法覆蓋到全部數(shù)據(jù)?!熬幋a檢索”的缺點(diǎn)在于:對(duì)于與標(biāo)準(zhǔn)詞在字面上差異較大的手術(shù)原詞,無法檢索到候選答案?!皻v史檢索”的缺點(diǎn)在于:未在標(biāo)注歷史中出現(xiàn)過的歸一化“標(biāo)準(zhǔn)詞”,無法得到正確的候選答案。而通過結(jié)合上述兩種方式,各取檢索得分排名前20的“標(biāo)準(zhǔn)詞”,就可以達(dá)到超過99%的覆蓋率,基本上解決了候選答案生成問題。
在驗(yàn)證集上各取排名前50的檢索結(jié)果也未能覆蓋的幾個(gè)例子如表5所示,從中可以觀察到,這幾個(gè)例子的“手術(shù)原詞”和“歸一化標(biāo)準(zhǔn)詞”在字面上差距較大,并且存在無法解析的縮寫,未來需要醫(yī)學(xué)相關(guān)知識(shí)或更多的標(biāo)注數(shù)據(jù),以幫助模型得到更好的檢索結(jié)果。
表5 檢索召回失敗舉例
4.2.2 模型集成
本文用不同的訓(xùn)練數(shù)據(jù)訓(xùn)練了10組模型進(jìn)行集成,為簡單起見用數(shù)字1、2、3來表示驗(yàn)證數(shù)據(jù)集被隨機(jī)分成的三部分,10組模型在驗(yàn)證集上的結(jié)果如表6所示。
表6 不同stacking策略下模型準(zhǔn)確率
本文方法BERT中的參數(shù)均使用“BERT-Base-Chinese”中的原始參數(shù)。隱藏層的維度為768,dropout參數(shù)設(shè)置為0.1,batch-size大小設(shè)置為64,選擇Adam作為優(yōu)化器,學(xué)習(xí)率設(shè)置為0.000 01,訓(xùn)練輪次設(shè)置為40。兩種檢索方式均取排名前20的檢索結(jié)果作為候選答案。
針對(duì)模型在驗(yàn)證集上預(yù)測(cè)錯(cuò)誤的例子,我們進(jìn)行了人工分析和歸納,模型預(yù)測(cè)的錯(cuò)誤大致可以分為兩類。
(1)模型對(duì)“術(shù)式”“操作”和“部位”的特征學(xué)習(xí)得不充分,這類錯(cuò)誤占據(jù)了85.6%,如對(duì)手術(shù)原詞“腹腔鏡下膽囊取石術(shù)”,模型預(yù)測(cè)的最高分是“膽道鏡下膽管取石術(shù)”,而對(duì)應(yīng)的標(biāo)準(zhǔn)術(shù)語應(yīng)該是“腹腔鏡下膽囊切開取石術(shù)”,在這個(gè)例子中,模型沒有區(qū)分出“腹腔鏡”和“膽道鏡”這兩個(gè)操作原語。
(2)模型預(yù)測(cè)出來的標(biāo)注詞數(shù)量錯(cuò)誤,這類錯(cuò)誤占據(jù)了3.8%,主要出現(xiàn)在手術(shù)原詞和標(biāo)準(zhǔn)詞個(gè)數(shù)不一致的情況下,模型未能很好地學(xué)習(xí)到數(shù)量上的映射。
在CHIP-2019評(píng)測(cè)任務(wù)1上,本文提出了一種比較通用的解決術(shù)語歸一的框架:檢索+重排序,檢索部分采用了開源的Lucene對(duì)訓(xùn)練數(shù)據(jù)和標(biāo)準(zhǔn)答案集做檢索生成候選答案;重排序部分本文采用了當(dāng)下流行的BERT語言模型來輔助(手術(shù)原詞,候選詞)打分排序。本文提出的方法在測(cè)試集上單模型達(dá)到了89.1%、融合模型達(dá)到92.8%的性能,證明了該方法的有效性。本文提出的方法具備較強(qiáng)的通用性,可同步遷移到醫(yī)學(xué)領(lǐng)域其他類型術(shù)語的標(biāo)準(zhǔn)化任務(wù)上。同時(shí)本文提出的方法也有一定的局限性,如“錯(cuò)誤分析”一節(jié)中所提到的,未能夠利用醫(yī)學(xué)領(lǐng)域知識(shí),因此如何在模型中引入醫(yī)學(xué)領(lǐng)域知識(shí)是未來重點(diǎn)的突破方向之一。此外,本文用到的BERT模型是官方開源的基礎(chǔ)模型,本次任務(wù)由于時(shí)間關(guān)系以及醫(yī)學(xué)文本的隱私性,我們未能對(duì)語言模型進(jìn)行fine-tuning工作,醫(yī)學(xué)領(lǐng)域的語言模型也是后續(xù)可嘗試的方向。