張華麗,康曉東,李小軍,2,劉漢卿,王笑天
1.天津醫(yī)科大學(xué) 醫(yī)學(xué)影像學(xué)院,天津300203
2.重慶市黔江中心醫(yī)院,重慶409099
自動問答(question answering)是人工智能領(lǐng)域中重要的研究方向,其核心是利用計算機(jī)對用戶提出的問題進(jìn)行自動解析,并從答案候選集中檢索出目標(biāo)答案[1]。近年來,隨著醫(yī)療信息化的飛快發(fā)展,越來越多的人通過互聯(lián)網(wǎng)來尋找醫(yī)療幫助,導(dǎo)致在線醫(yī)療自動問答論壇十分活躍?,F(xiàn)階段,人們提出的健康咨詢問題日益劇增,需要消耗大量的醫(yī)療資源。而醫(yī)生的資源有限,很難及時回答所有問題。因此,如何通過分析現(xiàn)有的海量中文醫(yī)療問答數(shù)據(jù)構(gòu)建快速、準(zhǔn)確的自動問答系統(tǒng)是一個亟需解決的任務(wù)。構(gòu)建完整的中文醫(yī)療自動問答系統(tǒng)不僅可以緩解醫(yī)生資源有限的現(xiàn)狀,也可以減少醫(yī)生的工作量,避免重復(fù)工作。
目前,醫(yī)療自動問答領(lǐng)域的研究主要分為傳統(tǒng)方法和深度學(xué)習(xí)方法兩類。傳統(tǒng)方法主要利用關(guān)鍵詞匹配的機(jī)制,其包括人工規(guī)則方法[2]、信息檢索[3]以及機(jī)器學(xué)習(xí)的傳統(tǒng)模型[4]等。傳統(tǒng)方法很大程度上依賴于大量的人工特征,需要耗費(fèi)大量的人力且泛化能力弱,并在匹配正確答案的精度上也存在不足。隨著深度學(xué)習(xí)不斷融入到自然語言處理領(lǐng)域,研究者們嘗試將深度學(xué)習(xí)算法應(yīng)用到自動問答任務(wù)上,并取得優(yōu)異效果。深度學(xué)習(xí)方法旨在通過文本表示、特征提取以及判斷問答對之間的語義相似度等一系列操作,實現(xiàn)精準(zhǔn)回答用戶所提出的問題。Feng 等人[5]利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)提取問題和答案的局部特征,再通過計算余弦相似度判斷問答對的匹配程度。由于長短時記憶網(wǎng)絡(luò)具有捕捉長距離依賴的語義信息的能力,Tan等人[6]采用雙向長短時記憶網(wǎng)絡(luò)(bi-directional long short-term memory,BiLSTM),從句子整體上編碼問題和答案的語義信息。Zhang 等人[7]在字向量的基礎(chǔ)上,構(gòu)建多尺度卷積神經(jīng)網(wǎng)絡(luò)(multi-scale convolutional neural networks,Multi-CNN),通過不同的卷積核從字、詞和短語等不同尺度深度挖掘問答對的語義特征。考慮到句子的局部特征和全局特征對語義理解均有意義,Zhang 等人[8]提出BiGRU-CNN 聯(lián)合網(wǎng)絡(luò)模型,先利用BiGRU(bi-directional gated recurrent unit)獲取句子的整體序列信息,再傳入多尺度CNN 模型有效捕獲句子的局部特征信息,利用兩種不同的網(wǎng)絡(luò)模型學(xué)習(xí)不同角度的語義信息。隨后,有研究者把注意力機(jī)制和神經(jīng)網(wǎng)絡(luò)模型結(jié)合起來處理自動問答任務(wù)。邵曦等人[9]提出結(jié)合BiLSTM 和注意力模型的問答系統(tǒng),具有良好的性能。Zhang 等人[10]在BiGRU-CNN 組合網(wǎng)絡(luò)的基礎(chǔ)上,添加注意力機(jī)制,將更多的注意力權(quán)重分配到問答對的關(guān)聯(lián)信息上,并實現(xiàn)問答對的信息交互。Cui 等人[11]提出孿生BERT 網(wǎng)絡(luò),設(shè)計了Crossed BERT 模型,提取問答對深度的語義信息以及充分理解問答對之間的語義相關(guān)性,再融合Multi-CNN 或BiGRU 模型學(xué)習(xí)更豐富的語義信息,實驗結(jié)果表明該方法在中文醫(yī)療自動問答領(lǐng)域上表現(xiàn)出最優(yōu)性能。
中文醫(yī)療問答句表達(dá)方式靈活多樣、句法語法復(fù)雜多變,文本中包含豐富的序列信息和句法語法信息,需要從不同維度和角度上全面分析句子復(fù)雜的內(nèi)部語義信息。因此,在中文醫(yī)療領(lǐng)域的自動問答任務(wù)上,也面臨著挑戰(zhàn)。鑒于不同網(wǎng)絡(luò)結(jié)構(gòu)挖掘不同角度的語義信息,Tai 等人[12]將LSTM 模型拓展為Tree-LSTM 網(wǎng)絡(luò),在預(yù)測句子對的語義相關(guān)性和情感分類任務(wù)上,Tree-LSTM要優(yōu)于LSTM。由此可見,樹結(jié)構(gòu)化LSTM 不僅具有良好的表示序列信息的能力,也擁有揭示句子語法結(jié)構(gòu)的優(yōu)勢,實現(xiàn)從不同角度上捕獲文本信息。Zhang等人[13-15]提出把圖卷積神經(jīng)網(wǎng)絡(luò)(graph convolutional network,GCN)引入到中文實體關(guān)系聯(lián)合抽取任務(wù)上,先通過雙向長短時記憶網(wǎng)絡(luò)編碼句子的序列特征,再利用圖卷積神經(jīng)網(wǎng)絡(luò)捕捉句子中蘊(yùn)含的句法信息,兼顧了句子的序列信息和復(fù)雜的語法關(guān)系,提高模型實體關(guān)系抽取的準(zhǔn)確率。比如,對“我沒有感冒、發(fā)燒等不適癥狀,但是心慌、難受,我該怎么辦?”文本序列進(jìn)行語義表征,如果只依賴于BiLSTM模型,由于其對“沒有”這種否定詞的語義表征不敏感,文本理解上會有偏差,不利于下游任務(wù)。引入GCN模型提取句法信息,與GRU模型獲取的特征信息表現(xiàn)出互補(bǔ)關(guān)系,因此,在一定程度上學(xué)習(xí)較完整的文本信息。
根據(jù)上述分析,本文提出融合語義及句法特征的多注意力交互的自動問答方法。也就是,本文在BERT模型的基礎(chǔ)上,分別利用BiGRU 和GCN 進(jìn)一步編碼句子的語義特征和句法結(jié)構(gòu)。通過引入GCN模型捕獲單獨(dú)從BiGRU 模型無法學(xué)習(xí)到的句法關(guān)系,與BiGRU 模型學(xué)習(xí)到的語義特征呈現(xiàn)互補(bǔ)關(guān)系,充分學(xué)習(xí)蘊(yùn)含在問答句中的復(fù)雜信息;又添加多注意力池化模塊,實現(xiàn)問答對的語義特征和句法特征兩種不同語義空間上的特征交互,從而能夠多角度捕捉問答對之間的語義相關(guān)性。在cMedQAv1.0 和cMedQAv2.0 兩種公開數(shù)據(jù)集的基礎(chǔ)上,相比于基準(zhǔn)模型,本文方法的準(zhǔn)確率均有所提高。實驗證明通過引入GCN 模型捕捉句子的句法信息,優(yōu)化了問答句的特征編碼;利用多注意力池化模塊,能進(jìn)一步刻畫不同角度的問答對特征向量,且充分學(xué)習(xí)問題和答案之間的語義關(guān)聯(lián)度。
本研究的主要貢獻(xiàn)包括以下四點:(1)采用不同網(wǎng)絡(luò)模型捕捉問答對中不同角度和維度上的語義信息。利用雙向門控循環(huán)單元學(xué)習(xí)句子的語義特征,引入圖卷積神經(jīng)網(wǎng)絡(luò)捕捉句法結(jié)構(gòu)的特征表示。(2)通過多注意力池化模型,在語義特征和句法特征不同語義空間上,實現(xiàn)問答對兩種編碼向量的多注意力交互表示,給特征向量分配不同的注意力權(quán)重,并學(xué)習(xí)問答對之間的語義關(guān)聯(lián)。(3)所提出的方法在兩種公開的中文醫(yī)療自動問答數(shù)據(jù)集上,cMedQAv1.0 開發(fā)集、測試集以及cMedQAv2.0開發(fā)集準(zhǔn)確率均達(dá)到最優(yōu),分別為79.05%、78.45%和81.85%。(4)通過觀察ACC@1評價指標(biāo),分析本文方法的各個模塊對本實驗的貢獻(xiàn)。
首先,將問答句拼接起來以字嵌入方式輸入到BERT 預(yù)訓(xùn)練語言模型,捕獲和表示問答句的語義信息以及兩者的語義關(guān)聯(lián)性。其次,將BERT模型生成的特征向量分別作為BiGRU 和GCN 模型的輸入,由此在BERT 模型挖掘的序列信息基礎(chǔ)上,進(jìn)一步得到句子的全局語義特征和句法特征,即通過BiGRU 優(yōu)化文本的語義表示,獲得全局化的語義向量;通過GCN能夠捕捉句子的句法特征,并與BiGRU 獲得的序列特征呈現(xiàn)互補(bǔ)關(guān)系。隨后,利用多注意力交互模塊,將問答對的語義特征和句法特征四個特征向量進(jìn)行兩兩融合,一方面能夠集成問答對的不同空間上的特征向量,使得特征向量包含更豐富的文本信息;另一方面可以多角度學(xué)習(xí)問答對的共現(xiàn)信息以及突出表達(dá)問答對的重要內(nèi)容。其中,問答對的四個特征向量兩兩融合指的是問題的語義特征和答案的語法結(jié)構(gòu)特征、問題的語義特征和答案的語義特征、問題的語法結(jié)構(gòu)特征和答案的語義特征以及問題的語法結(jié)構(gòu)特征和答案的語法結(jié)構(gòu)特征四種交互方式,由此得到多個注意力池化矩陣。然后,將多個注意力池化矩陣傳入到池化層分別做最大行和最大列的池化,進(jìn)一步提取問答句的向量表示,并通過分別計算問答對特征向量的平均值,獲得最終的編碼向量;最后,通過計算問答對的相關(guān)性大小,衡量問答對的匹配程度,從而找到目標(biāo)答案。
本文提出的自動問答模型主要分為了三個組成部分:編碼層、多注意力池化模塊和計算相似度層??傮w框架如圖1所示。
圖1 本文方法框架圖Fig.1 Framework diagram of proposed method
編碼層中使用BERT 模型提取問答句的序列信息以及問答對的語義相關(guān)性;在BERT 模型的基礎(chǔ)上,再利用BiGRU 進(jìn)一步提取句子的全局語義信息,優(yōu)化文本的序列特征,引入GCN 編碼文本中基于依存分析圖的局部依賴的句法關(guān)系,補(bǔ)充單獨(dú)從BiGRU 無法捕捉的語法結(jié)構(gòu)信息,與BiGRU 捕捉的序列信息表現(xiàn)為互補(bǔ)關(guān)系。
1.3.1 BERT編碼
BERT模型是近幾年Devlin等人[16]提出的一種優(yōu)秀的語言表征模型,廣泛應(yīng)用于自然語言處理任務(wù)中。BERT模型是基于雙向的Transformer編碼器構(gòu)成,其框架結(jié)構(gòu)如圖2 所示。如圖1 所示,本文將問題和答案拼接起來并以[SEP]分隔,輸入到BERT 模型,其中,BERT模型的輸入向量由位置編碼、段編碼和詞向量相加而成。然后經(jīng)過雙向Transformer得到問答對的編碼向量[CLS],較完整地保存了問答對的語義信息,并利用自注意機(jī)制(self-attention)捕捉問答對的語義關(guān)聯(lián)性。
圖2 BERT框架圖Fig.2 BERT frame diagram
1.3.2 BiGRU編碼
由BERT模型生成的特征向量作為BiGRU的輸入,利用BiGRU進(jìn)一步編碼問答對的全局語義信息。BiGRU是通過兩層GRU對輸入序列分別采用前向序列和反向序列的方式進(jìn)行編碼,由此生成上下文語境化的特征向量。GRU模型是在LSTM模型的基礎(chǔ)上做改進(jìn),簡化了模型結(jié)構(gòu),其只包括更新門和重置門兩個門控結(jié)構(gòu)[17]。GRU 模型降低了模型復(fù)雜度的同時,加快了運(yùn)算速度。GRU網(wǎng)絡(luò)模型的具體計算過程如式(1)~(4)所示:
其中,rt表示重置門權(quán)重,其決定從歷史信息中保留多少融入到xt。zt表示更新門權(quán)重,其決定從歷史信息中有多少來更新ht。ht-1表示t-1 時刻的隱含狀態(tài)的輸出;xt表示t時刻的輸入;ht表示t時刻的隱含狀態(tài)的輸出;Wr、Wz和W表示權(quán)重矩陣;σ為sigmoid激活函數(shù);tanh為雙曲正切激活函數(shù)。
因此,在t時刻,BiGRU 的前向輸出為htf,反向輸出為htb,將兩種特征表示拼接獲得最終的隱藏狀態(tài)ht,計算公式如下所示:
1.3.3 GCN編碼
本文在BERT編碼的基礎(chǔ)上,引入GCN編碼得到問答對的句法信息,與BiGRU 編碼的語義信息互補(bǔ)。GCN 是在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上改進(jìn)而來的,是一種直接提取依存分析圖上結(jié)構(gòu)特征的模型[18]。依存分析圖由節(jié)點和邊組成。對于一個句子s=c1,c2,…,cn,設(shè)定有n個節(jié)點的依存分析圖。在本文中,依存分析圖的每個節(jié)點代表一個字,邊(i,j)代表第i個字和第j個字之間的依賴關(guān)系。并采用n×n的鄰接矩陣Aij表示圖結(jié)構(gòu),通常Aij=1 代表節(jié)點i到節(jié)點j之間存在邊。本文利用BERT 模型生成的特征向量作為依存分析圖的節(jié)點,將節(jié)點i與節(jié)點j的注意力權(quán)重用作衡量邊權(quán)重的大小,以區(qū)別不同的依賴關(guān)系。對于圖中每個節(jié)點,GCN通過該節(jié)點的附近其他節(jié)點的性質(zhì)融合歸納得到該節(jié)點的特征表示向量,也就是,將每個節(jié)點鄰域內(nèi)的相關(guān)信息編碼為一個新的表示向量。
在L層GCN中,表示輸入向量,表示節(jié)點i在第L層的輸出向量,具體的圖卷積操作如下式所示:
其中,W(l)是線性轉(zhuǎn)換,b(l)是偏置項,σ是非線性函數(shù),Aij是鄰接矩陣。
問題和正確答案之間通常有相似的語義信息和語法結(jié)構(gòu),通過深度挖掘問答對之間的相似性,有助于找到最佳答案。本文的多注意力池化模塊主要作用是從語義特征和句法特征兩種不同語義空間上挖掘問答句中隱藏的相關(guān)性,其包括三個組成部分:多注意力交互層、池化層和平均化層。
1.4.1 多注意力交互層
本文先通過編碼層構(gòu)建問答句的特征向量Q和A,再將Q和A傳入到多注意力交互層,進(jìn)行語義特征和句法特征不同語義空間上的特征向量兩兩交互,由此構(gòu)造注意力池化矩陣G,使問答對的向量表示包含豐富的語義特征和句法信息以及實現(xiàn)從多角度挖掘問答對的相關(guān)性。其計算公式如下:
其中,U是由神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的參數(shù)矩陣。
1.4.2 池化層
將多個注意力池化矩陣G傳入到池化層,分別作基于行的最大池化和基于列的最大池化,并生成不同的向量q和a。池化層的作用是采用最大池化的方式進(jìn)一步提取句子中的重要信息[19]。向量q的第m個元素表示問題中的第m個字附近的上下文對答案影響的重要性,同樣地,向量a的第n個元素表示候選答案中的第n個字附近的上下文對問題影響的重要性。其計算公式分別如下所示:
其中,M表示問題的序列長度;L表示答案的序列長度。
接著,將向量q和a進(jìn)行Softmax函數(shù)歸一化處理,分別轉(zhuǎn)化為注意力權(quán)重向量σq和σa。并將注意力權(quán)重向量σq和σa與神經(jīng)網(wǎng)絡(luò)模型提取的特征向量Q和A相乘,得到問題和答案表示向量rq和ra。由此著重突出問答句中相關(guān)信息。具體計算公式如下:
1.4.3 平均化層
通過將不同rq和ra取平均值,得到最終的特征向量qmean和amean。
在問答對特征向量余弦相似度的基礎(chǔ)上,為了減小預(yù)訓(xùn)練和Finetune的不一致性,增加由BERT的[CLS]預(yù)測得到問答對匹配概率值,作為最終匹配分?jǐn)?shù),從而判斷問答對的語義匹配程度。
本文利用余弦值大小有效評估問題和答案之間的語義相關(guān)性大小。余弦值越大,兩個句子的語義相關(guān)度越高。其計算公式如下:
該實驗依托于中文醫(yī)療自動問答任務(wù)中公開的數(shù)據(jù)集cMedQA[20]。cMedQA數(shù)據(jù)集包括v1.0和v2.0兩個版本,表1是關(guān)于該數(shù)據(jù)集的概覽。兩種數(shù)據(jù)集均由訓(xùn)練集、開發(fā)集和測試集三個部分組成。訓(xùn)練集用于訓(xùn)練模型,開發(fā)集用于調(diào)整模型參數(shù),測試集用于評估模型的性能。在cMedQAv2.0 訓(xùn)練集中,對于每一個問題qi,都有一個或幾個正確答案和幾十個不相關(guān)答案,由此共構(gòu)成50 個問答對,所以,在訓(xùn)練過程中共有500 萬個三元組輸入到網(wǎng)絡(luò)。對于開發(fā)集和測試集的每一個問題,目標(biāo)是從由正確回答和不相關(guān)答案構(gòu)成的100個候選答案中找出最佳答案,由此來評估模型性能的好壞。
表1 cMedQA數(shù)據(jù)集的概覽Table 1 Overview of cMedQA data set
實驗的硬件和軟件的配置保證著實驗的順利進(jìn)行,本文實驗環(huán)境如表2所示。
表2 實驗環(huán)境配置Table 2 Experimental environment configuration
本文的BERT 模型使用了12 頭注意力機(jī)制的雙向Transformer,隱藏層有768維,其他詳細(xì)的超參數(shù)如表3所示。
表3 超參數(shù)設(shè)置Table 3 Hyperparameter settings
為了評估本文方法的有效性,選用了top-1 精度(ACC@1)作為評價指標(biāo)[21]。top-k精度ACC@k是信息檢索中常用的一個評價標(biāo)準(zhǔn),其計算公式如下所示:
其中,N表示開發(fā)集或測試集的樣本數(shù)目;表示為問題qi的某一個正確答案;1[?]為示性函數(shù),即當(dāng)且僅當(dāng)函數(shù)表達(dá)式成立時,其值為1,否則為0。
與傳統(tǒng)信息檢索任務(wù)不同的是,自動問答任務(wù)的主要目的是找出與問題最匹配的答案。因此,本實驗采用ACC@1。即,ACC@1 值越大,表明模型回答問題的準(zhǔn)確率越高,模型性能越好。
本文實驗共包括4 個部分:實驗1 通過與多種不同的基準(zhǔn)模型進(jìn)行對比研究,證明本文方法的優(yōu)越性。實驗2設(shè)置不同超參數(shù)值,分析其對模型性能的影響。實驗3通過對本文方法中的各個模塊進(jìn)行移除,觀察各個模塊的重要性。實驗4繪制問題和答案相關(guān)度熱力圖,進(jìn)一步生動描述多注意力池化模塊的表現(xiàn)。
實驗1 模型對比。為了充分驗證本文方法的可靠性和有效性,本文分別選取了cMedQA v1.0和cMedQA v2.0公開數(shù)據(jù)集進(jìn)行實驗,并將本文方法與當(dāng)前主流的深度學(xué)習(xí)算法對比以驗證所提出算法性能的優(yōu)越性。實驗結(jié)果如表4所示。
表4描述了在兩種公開數(shù)據(jù)集下,不同神經(jīng)網(wǎng)絡(luò)的ACC@1 指標(biāo)表現(xiàn)。宏觀來看,各個神經(jīng)網(wǎng)絡(luò)模型在cMedQA v2.0 數(shù)據(jù)集的準(zhǔn)確率與cMedQA v1.0 數(shù)據(jù)集的準(zhǔn)確率相比均有提高。由此可見,訓(xùn)練集樣本量的提高可以顯著提高準(zhǔn)確率。
表4 多種網(wǎng)絡(luò)在兩種數(shù)據(jù)集下的實驗結(jié)果(ACC@1)Table 4 Experimental results of various networks under two data sets(ACC@1)%
在下文的實驗分析中,以cMedQA v1.0 的開發(fā)集和測試集為依據(jù)。表中前3 行是單個網(wǎng)絡(luò)模型的實驗結(jié)果,從實驗結(jié)果可以看出,BiGRU模型要優(yōu)于CNN模型,但Multi-scale CNN 的ACC@1 最高,說明多尺度卷積神經(jīng)網(wǎng)絡(luò)利用多個卷積核從字、詞和短語等不同粒度多方面學(xué)習(xí)問答對的語義信息。表中第4 行是BiGRU和CNN 組合的多模型網(wǎng)絡(luò),無論與單個BiGRU 模型還是單個CNN 模型相比,多種模型組合的神經(jīng)網(wǎng)絡(luò)都比單個模型的準(zhǔn)確率高,說明多種不同模型可以從不同角度和維度全面捕捉句子復(fù)雜的內(nèi)在語義特征。表中第5、6行是添加注意力池化機(jī)制的多模型組合網(wǎng)絡(luò),從ACC@1 指標(biāo)來看,引入多注意力池化機(jī)制的網(wǎng)絡(luò)模型可以掌握問答對之間的信息關(guān)聯(lián),使得問答系統(tǒng)的性能有一定的提升。表中第7 行是目前中文醫(yī)療問答任務(wù)上效果最佳的方法,將本文所提方法與其相較,本文方法的開發(fā)集和測試集的ACC@1分別提高了0.45和0.25個百分點,主要因為本文方法集成多種不同功能的算法,不僅能提取問答句中的語義和語法結(jié)構(gòu)信息,也能捕捉問答對之間的語義關(guān)系,具有一定的優(yōu)越性。
同樣地,從表4中可以看出,對于cMedQAv2.0開發(fā)集來說,ACC@1 均高于其他基準(zhǔn)模型;對于測試集來說,稍稍低于Crossed BERT Siamese BiGRU 網(wǎng)絡(luò)模型。由此可見,本文在沒有利用大量的中文醫(yī)療文本對BERT模型進(jìn)行預(yù)訓(xùn)練的前提下,也能取得較好的效果,這也證明了本文集成算法的優(yōu)勢。
實驗2 參數(shù)設(shè)定。為了選擇合適的超參數(shù),本文采用準(zhǔn)確率作為評價指標(biāo),對比了6種不同學(xué)習(xí)率對本文方法的影響。實驗結(jié)果如圖3 所示。圖中橫坐標(biāo)表示不同的學(xué)習(xí)率,縱坐標(biāo)表示cMedQA v1.0 測試集的準(zhǔn)確率。從圖3 可以看出,隨著學(xué)習(xí)率的變化,準(zhǔn)確率表現(xiàn)出較大幅度的波動。當(dāng)學(xué)習(xí)率為1E-5 時,模型的收斂性較好,準(zhǔn)確率達(dá)到最大,為79.05%。當(dāng)學(xué)習(xí)率過小或過大時,準(zhǔn)確率均有所減小。由此可見,學(xué)習(xí)率的大小對模型性能具有一定的影響。
圖3 不同學(xué)習(xí)率對模型的影響Fig.3 Effect of different learning rate on model
接下來,固定其他超參數(shù)不變,調(diào)整不同BiGRU和GCN 的層數(shù)進(jìn)行對照實驗,并分析兩者結(jié)構(gòu)復(fù)雜度對模型性能的影響。本文在cMedQA v1.0 數(shù)據(jù)集上,進(jìn)行了不同BiGRU 和GCN 層數(shù)的準(zhǔn)確率變化的對比,具體結(jié)果如表5所示。
表5 不同BiGRU和GCN層數(shù)的實驗結(jié)果Table 5 Experimental results of different BiGRU and GCN layers
本文分別選用1 個、2 個、3 個BiGRU 和GCN 作為特征提取器。通過對比實驗,發(fā)現(xiàn)隨著網(wǎng)絡(luò)層數(shù)的加深,各個多層次復(fù)雜網(wǎng)絡(luò)的準(zhǔn)確率有所降低。設(shè)置BiGRU層數(shù)為1 時,準(zhǔn)確率最佳,主要因為利用單層BiGRU 可以獲取句子上下文的語義特征;層數(shù)設(shè)置為2和3時,準(zhǔn)確率表現(xiàn)出下降,而且網(wǎng)絡(luò)的結(jié)構(gòu)復(fù)雜度增加、訓(xùn)練時間較長。同樣地,設(shè)置GCN層數(shù)為1時,準(zhǔn)確率也最佳,其原理是通過單層GCN 將問答對文本轉(zhuǎn)化為節(jié)點構(gòu)圖,不僅學(xué)習(xí)節(jié)點的文本信息,還通過句法屬性將文本關(guān)聯(lián)起來,更好地利用節(jié)點之間的鄰域信息。隨著GCN層數(shù)的增加,加深的網(wǎng)絡(luò)導(dǎo)致節(jié)點特征的平滑。因此,在考慮準(zhǔn)確率的同時也考慮模型的復(fù)雜程度,本文選擇了1 層的BiGRU和GCN作為本文模型的最終參數(shù)。
實驗3 消融實驗。上文中,通過不同模型的對比,證實了本文方法的有效性。為了進(jìn)一步解析本文方法的BiGRU、GCN以及Multi-Attentive Interaction(多注意力交互)對實驗結(jié)果的貢獻(xiàn),本實驗在cMedQA v1.0 開發(fā)集和測試集的基礎(chǔ)上,進(jìn)行了消融實驗。通過去除某個模塊與本文方法進(jìn)行橫向?qū)Ρ龋u估模塊的重要性。
表6 具體展現(xiàn)了本文方法中各個模塊的重要性。第1行是本文方法的實驗結(jié)果,2~5行分別是去除BiGRU、GCN 以及Multi-Attentive Interaction 模塊的實驗結(jié)果。整體上來看,所有模塊對本文的實驗結(jié)果都起著積極作用。當(dāng)移除BiGRU,與本文方法相比,開發(fā)集和測試集ACC@1分別降低了2.9個百分點和3.2個百分點。說明利用BiGRU抽取句子級別的語義信息有很大意義。當(dāng)移除GCN,發(fā)現(xiàn)開發(fā)集和測試集ACC@1 分別減少了2.9 和2.05 個百分點。說明通過GCN 模型學(xué)習(xí)句子的句法屬性,明顯優(yōu)化了文本的語義表征。綜上所述,BiGRU模型和GCN模型能夠從不同角度和維度抽取文本的語義和句法信息,也進(jìn)一步刻畫出BiGRU 模型和GCN模型所獲取信息的表現(xiàn)出互補(bǔ)關(guān)系。當(dāng)移除Multi-Attentive Interaction 模塊,開發(fā)集和測試集CCA@1 也有所改變,分別減少了0.95 和0.4 個百分點。說明通過多注意力交互模塊將BiGRU 和GCN 輸出向量做進(jìn)一步集成是有效的,能夠描述問答對的依賴關(guān)系,有助于改善實驗結(jié)果。
表6 消融實驗結(jié)果Table 6 Ablation experiment results
實驗4 實例分析。為了更直觀地展示多注意力交互模塊在中文醫(yī)療自動問答任務(wù)上的表現(xiàn),本實驗借助于一個實例進(jìn)行闡述。具體內(nèi)容如圖4所示。圖4是關(guān)于問題和其正確答案相關(guān)度的熱力圖,清晰地刻畫了問題和答案相關(guān)性大小。圖中橫坐標(biāo)代表的是正確答案,縱坐標(biāo)代表的是問題??v坐標(biāo)的具體內(nèi)容是“專業(yè)治療中樞性截癱的方法什么?病情描述(發(fā)病時間、主要癥狀等):男55 歲三十年前就有癥狀,肌張力高,勉強(qiáng)自理。雙膝蓋互相碰撞,腦核磁檢查示腦萎縮趨勢,走路不穩(wěn)。醫(yī)院檢查確診為中樞性截癱,想問一下有沒有朋友知道中樞性截癱的特色治療法?”,橫坐標(biāo)的具體內(nèi)容是“指導(dǎo)意見:中樞性截癱的癥狀多種多樣,其中身體發(fā)硬,這是肌張力亢進(jìn)的癥狀,在一個月時即可見到。如果持續(xù)4個月以上,可診斷為腦癱。如果您出現(xiàn)這種癥狀就一定要及時就醫(yī),千萬不要拖延。”。由圖4 可知,問答句相對應(yīng)的每個區(qū)域顏色深淺大有不同。顏色較淺區(qū)域表示問題和答案內(nèi)容相關(guān)度較小,即通過多注意力交互模塊,分配了較少的注意力權(quán)重;而顏色較深區(qū)域表示問題和答案內(nèi)容相關(guān)度較大,即通過多注意力交互模塊,分配了更多的注意力權(quán)重。具體的,患者提出的問題是中樞性截癱的治療方法是什么,問題中描述的癥狀如“肌張力高”“雙膝蓋互相碰撞”和“走路不穩(wěn)”,也通常是由中樞性截癱引起的。答句針對患者的疾病給出了指導(dǎo)意見,其中包括符合患者描述的癥狀以及給出恰當(dāng)建議。問答句之間存在緊密的相關(guān)性。從圖4 可以看出,問句出現(xiàn)的“中樞性截癱”和答句出現(xiàn)的“中樞性截癱”兩個詞匯對應(yīng)區(qū)域顏色較深,并且問句中患者表現(xiàn)的癥狀與答句的癥狀描述相關(guān)性權(quán)重較大,這些區(qū)域顏色也較深。通過分析發(fā)現(xiàn)本文提出的多注意力交互模塊可以進(jìn)一步學(xué)習(xí)問題和答案的相關(guān)性,因此有助于找到與問題匹配的目標(biāo)答案。
圖4 問題和答案相關(guān)度熱力圖Fig.4 Question and answer correlation heat map
本文提出了融合語義及句法特征的多注意力交互的自動問答方法。首先,通過將問答句拼接輸入到BERT模型,學(xué)習(xí)問答句的高階語義信息和語義關(guān)聯(lián)度;其次,利用雙向門控循環(huán)單元編碼句子的全局語義特征,同時采用圖卷積神經(jīng)網(wǎng)絡(luò)編碼句子的語法結(jié)構(gòu)信息;然后,利用多注意力池化模塊實現(xiàn)問題和答案不同特征向量之間的集成,以對其進(jìn)一步分配不同的注意力權(quán)重,著重突出問答對的共現(xiàn)特征。通過與多組不同神經(jīng)網(wǎng)絡(luò)的實驗結(jié)果對比,發(fā)現(xiàn)本文方法有效優(yōu)化了自動問答的準(zhǔn)確率。證明了本文方法通過多種深度神經(jīng)網(wǎng)絡(luò)的集成進(jìn)一步改善了對中文醫(yī)療文本語義的表征和語義相關(guān)性的捕捉。
當(dāng)然,本文也存在著不足,沒有利用海量的中文醫(yī)療文本對BERT 語言模型進(jìn)行預(yù)訓(xùn)練,讓BERT 模型對醫(yī)學(xué)領(lǐng)域文本有更好的語義表征能力。這也是下一步的工作,由此進(jìn)一步增強(qiáng)特征向量對文本語義的表達(dá)和提高自動問答的準(zhǔn)確率。