汪子健, 李傳富
(1.安徽中醫(yī)藥大學(xué),醫(yī)藥信息工程學(xué)院,安徽,合肥 230012;2.合肥綜合性國(guó)家科學(xué)中心,人工智能研究院(安徽省人工智能實(shí)驗(yàn)室),安徽,合肥 230088;3.安徽中醫(yī)藥大學(xué),第一臨床醫(yī)學(xué)院,安徽,合肥 230038)
智慧醫(yī)療的發(fā)展和建設(shè)能有效緩解醫(yī)療資源緊缺的壓力,提高醫(yī)療服務(wù)水平。隨著“互聯(lián)網(wǎng)+醫(yī)療健康”發(fā)展,各種提供醫(yī)療健康信息的在線(xiàn)問(wèn)診平臺(tái)得以快速發(fā)展,在新冠病毒疫情防控期間發(fā)揮了重要的支撐服務(wù)作用。為了提升在線(xiàn)問(wèn)診平臺(tái)醫(yī)患問(wèn)答效率及患者使用體驗(yàn),需要利用現(xiàn)有的網(wǎng)絡(luò)問(wèn)診數(shù)據(jù)構(gòu)建醫(yī)學(xué)智能問(wèn)答系統(tǒng)。智能醫(yī)療問(wèn)答系統(tǒng)[1]是基于醫(yī)學(xué)大數(shù)據(jù)、自然語(yǔ)言處理(NLP)技術(shù),為用戶(hù)提供準(zhǔn)確的疾病診斷結(jié)果和個(gè)性化的醫(yī)療信息服務(wù)。它對(duì)醫(yī)學(xué)知識(shí)普及以及輔助醫(yī)生高質(zhì)量解答患者疑問(wèn)有著重要的意義,近年國(guó)內(nèi)外學(xué)者的研究也使這項(xiàng)任務(wù)取得了較大進(jìn)展[1-2]。馬滿(mǎn)福等[3]提出基于格子卷積神經(jīng)網(wǎng)絡(luò)(LCN)的醫(yī)療知識(shí)問(wèn)答模型,以醫(yī)學(xué)詞向量作為模型輸入并利用LCN來(lái)提取醫(yī)療問(wèn)題特征,計(jì)算該特征與關(guān)系向量的相似度,進(jìn)而訓(xùn)練醫(yī)療知識(shí)問(wèn)答模型,準(zhǔn)確率可達(dá)89.0%,但模型對(duì)于一個(gè)問(wèn)題到多個(gè)答案的1對(duì)n模式準(zhǔn)確率表現(xiàn)不佳。為了對(duì)問(wèn)題和答案之間的復(fù)雜關(guān)系進(jìn)行建模,ZHANG等[4]利用CNN和GRU開(kāi)發(fā)了一種混合模型,該模型結(jié)合了不同神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)點(diǎn),能夠提取深層次的語(yǔ)義特征并對(duì)比句子之間的差異,但其推理速度會(huì)隨著問(wèn)題庫(kù)的增大而變慢,難以滿(mǎn)足應(yīng)用級(jí)別的問(wèn)答系統(tǒng)要求。ABACHA等[5]提出了一種基于RQE(recognizing question entailment)的QA方法,并描述了其應(yīng)用在真實(shí)醫(yī)學(xué)問(wèn)題上的QA系統(tǒng)和資源,并在此研究的基礎(chǔ)上,構(gòu)建了一個(gè)包含47 457個(gè)問(wèn)答對(duì)的醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集。
傳統(tǒng)問(wèn)答系統(tǒng)多采用基于問(wèn)答數(shù)據(jù)庫(kù)的問(wèn)題相似度匹配方式實(shí)現(xiàn)[6],然而,該方法效率差且需要很高的標(biāo)注成本建立訓(xùn)練數(shù)據(jù)集。針對(duì)上述問(wèn)題,本研究訓(xùn)練一個(gè)自動(dòng)答案生成模型,根據(jù)患者問(wèn)題自動(dòng)生成答案。本文根據(jù)醫(yī)學(xué)問(wèn)答系統(tǒng)特點(diǎn),結(jié)合預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型[7],利用醫(yī)學(xué)問(wèn)答中存儲(chǔ)的信息域,首先使用BERT[8]提取輸入序列的表征,然后通過(guò)注意力機(jī)制將提取出的表征與神經(jīng)機(jī)器翻譯(NMT)模型[9]中的各層編碼器與解碼器進(jìn)行融合,最終構(gòu)建了基于BERT的醫(yī)學(xué)問(wèn)答生成模型。
從頭開(kāi)始訓(xùn)練BERT模型會(huì)受到計(jì)算資源的限制,本文重點(diǎn)關(guān)注如何使用預(yù)訓(xùn)練的BERT模型來(lái)完成自然語(yǔ)言翻譯任務(wù)。文獻(xiàn)[10]指出通過(guò)相似度找到符合問(wèn)題的答案是困難且耗時(shí)的,因此提出通過(guò)自動(dòng)生成答案來(lái)解決這一問(wèn)題。他們使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN)框架在多個(gè)問(wèn)答對(duì)數(shù)據(jù)集上訓(xùn)練出一個(gè)端到端的模型,再用模型生成簡(jiǎn)單醫(yī)療健康問(wèn)題的合理答案。本文使用BERT預(yù)訓(xùn)練模型作為詞嵌入并融合下游神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型來(lái)替代傳統(tǒng)RNN文本生成模型,并最終生成醫(yī)學(xué)問(wèn)題所對(duì)應(yīng)的答案。


圖1 BERT問(wèn)答模型架構(gòu)圖
基于BERT的醫(yī)學(xué)問(wèn)答模型主要分為3個(gè)處理步驟。
步驟1:設(shè)源語(yǔ)言域?yàn)棣?任意給定一個(gè)句子x∈χ輸入BERT模型中,得到表征輸出HB=BERT(x)。其中,hB,i∈HB是x中的第i個(gè)wordpiece的表征。

(1)

FFN(x)=W2max(W1x+b1,0)+b2
(2)
這里會(huì)得到第l層的輸出值為式(3):
(3)

(4)

BERT的輸出作為外部序列表征,使用注意模型將其合并到神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型中。這是一種利用預(yù)先訓(xùn)練過(guò)的模型的通用方法,無(wú)須使用分詞技術(shù)。
為了訓(xùn)練和測(cè)試模型,使用MedQuAD[5]和cMedQA2[12]兩個(gè)文本數(shù)據(jù)集。
1) MedQuAD:該數(shù)據(jù)集收集12個(gè)NIH網(wǎng)站(如cancer.gov,niddk.nih.gov等),共包含47 457對(duì)英文醫(yī)學(xué)回答。該數(shù)據(jù)集是一個(gè)英文文本數(shù)據(jù)集,涵蓋與疾病、藥物、檢查等37種與醫(yī)學(xué)相關(guān)的問(wèn)題。
2) cMedQA2:該數(shù)據(jù)集收集自中國(guó)醫(yī)學(xué)問(wèn)答在線(xiàn)論壇(http://www.xywy.com/)。在論壇中,資格醫(yī)師會(huì)根據(jù)用戶(hù)描述的癥狀給出診斷建議。將該數(shù)據(jù)集進(jìn)一步整合為問(wèn)答對(duì)的形式,共包含226 267對(duì)中文醫(yī)學(xué)問(wèn)答。
對(duì)于MedQuAD英文數(shù)據(jù)集,使用bert-base-uncased預(yù)訓(xùn)練模型作為語(yǔ)境嵌入層。對(duì)于cMedQA2中文數(shù)據(jù)集,使用BERT預(yù)訓(xùn)練模型。對(duì)于這兩個(gè)數(shù)據(jù)集,實(shí)驗(yàn)均采用隨機(jī)劃分?jǐn)?shù)據(jù)集的方法;為了提升問(wèn)答模型性能,依據(jù)數(shù)據(jù)集劃分留出法,特將數(shù)據(jù)集中的95%劃分為訓(xùn)練集,3%劃分為驗(yàn)證集,剩余的2%為測(cè)試集。設(shè)定該神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型的嵌入尺寸為512,FFN層維為1024,共6層。BERT問(wèn)答模型的編碼器和譯碼器模塊的參數(shù)使用隨機(jī)初始化。使用Adam作為優(yōu)化算法,其中初始學(xué)習(xí)率設(shè)置為0.0005并使用inverse_sqrt作為學(xué)習(xí)率調(diào)整器。使用beam search并設(shè)置寬度和長(zhǎng)度懲罰因子分別為5和0.8,不使用dropout。本實(shí)驗(yàn)的硬件平臺(tái)是配置為2×intel? Xeon? E-5-2680 CPU和3×NVIDIA RTX6000 GPU的一臺(tái)服務(wù)器。
實(shí)驗(yàn)使用不同的模型在兩個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練,以驗(yàn)證集損失值最低保存模型參數(shù),最終在測(cè)試集上進(jìn)行評(píng)估,結(jié)果如表1所示。從表1可以看出,BERT問(wèn)答模型在兩個(gè)數(shù)據(jù)集上的效果表現(xiàn)最好,Transformer[11]的效果次之,加入Attention機(jī)制的BiGRU[13]和BiLSTM[14]均比原模型的BLEU值要高。這說(shuō)明引入注意力機(jī)制可以提升模型性能,也表明了BERT問(wèn)答模型和Transformer模型的優(yōu)越性。BERT問(wèn)答模型的復(fù)雜度相對(duì)于Transformer模型要更加復(fù)雜,因此每秒的推理次數(shù)較之略有下降。

表1 不同模型在兩個(gè)數(shù)據(jù)集上的BLEU值
為了更好地了解BERT問(wèn)答模型中各模塊的作用,還在cMedQA2數(shù)據(jù)集上實(shí)行消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。首先將BERT的context-aware輸出傳入下游神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型中的注意力機(jī)制去除掉,模型中其他條件保持不變,得到BLEU值為43.80,較原始模型有所下降。這說(shuō)明注意力機(jī)制在BERT問(wèn)答模型中起到提升性能的作用。隨后,為了驗(yàn)證context-aware輸出對(duì)下游神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型是否起作用,將BERT問(wèn)答模型的BERT輸出換成隨機(jī)向量,得到BLEU值為41.08,比原模型BLEU值低,這表明使用BERT作為context-aware可以大幅提高下游自然語(yǔ)言翻譯模型的準(zhǔn)確度,且具有較強(qiáng)的特征提取能力和泛化特性。最后,為了對(duì)比BERT和Transformer作為詞嵌入的優(yōu)越性,使用Transformer的編碼器模塊替換BERT,得到BLEU值為42.59,比原模型有所下降,這表明BERT比Transformer在詞嵌入的效果上要好。

表2 在cMedQA2數(shù)據(jù)集上對(duì)BERT問(wèn)答模型進(jìn)行消融實(shí)驗(yàn)得到的BLEU值結(jié)果
醫(yī)學(xué)智能問(wèn)答系統(tǒng)不僅能給患者提供健康咨詢(xún)以及用藥指導(dǎo),還能及時(shí)在線(xiàn)解決患者一些緊急問(wèn)題。針對(duì)傳統(tǒng)醫(yī)學(xué)智能問(wèn)答系統(tǒng)存在的問(wèn)題,本文融合了BERT與NMT,研究了能自動(dòng)生成回答的醫(yī)學(xué)智能問(wèn)答模型。把設(shè)計(jì)的模型在MedQuAD和cMedQA2兩個(gè)問(wèn)答數(shù)據(jù)集上進(jìn)行NMT回答生成的實(shí)驗(yàn),其結(jié)果比BiLSTM和BiGRU性能更優(yōu)越。通過(guò)消融實(shí)驗(yàn),驗(yàn)證了BERT預(yù)訓(xùn)練模型、注意力機(jī)制、編碼器和解碼器對(duì)模型性能的提升作用。