賈麗娜 陳 恒,2 李冠宇
1(大連海事大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系 遼寧 大連 116026) 2(大連外國語大學(xué)語言智能研究中心 遼寧 大連 116044)
隨著互聯(lián)網(wǎng)的發(fā)展及應(yīng)用,線上醫(yī)療咨詢越來越受歡迎,如尋醫(yī)問藥、好大夫和求醫(yī)等平臺(tái)。此類平臺(tái)可以實(shí)現(xiàn)用戶和專家無掛號(hào)交流。用戶可以向?qū)<野l(fā)送病情,并得到專家回復(fù)。但是隨著用戶數(shù)量的增加,待解決的問題增加,難以保證24小時(shí)高質(zhì)量服務(wù)。這為醫(yī)生回復(fù)帶來了負(fù)擔(dān),也降低了用戶體驗(yàn)。為了解決等待時(shí)間延長的問題,設(shè)計(jì)了一個(gè)將問句與答案相匹配、自動(dòng)選出最合適的答案自動(dòng)問答系統(tǒng)。
在醫(yī)療問答服務(wù)中,存在著許多對于同一癥狀使用相似卻不同的單詞和句子進(jìn)行描述,這些描述為實(shí)現(xiàn)醫(yī)療問答系統(tǒng)提供了可能。傳統(tǒng)的問答系統(tǒng)采用信息檢索[1-2]、手工規(guī)則[3-4]和淺層機(jī)器學(xué)習(xí)[5-6]等方法,這些方法只能獲取淺層的特征和語句關(guān)系,深層特征仍需要人工獲取,因此機(jī)器模型缺乏泛化能力。
近年來,最流行的方法是使用深度學(xué)習(xí)進(jìn)行問答對匹配,其關(guān)鍵是如何有效地獲取句子中重要的特征信息和關(guān)系。卷積神經(jīng)網(wǎng)絡(luò)CNN模型能夠通過卷積層和池化層獲取句子中局部位置不變的特征信息[7,21]。在CNN上改進(jìn)的多尺度卷積神經(jīng)網(wǎng)絡(luò)(Multiscale Convolutional Neural Network, Multi-CNN)和堆棧卷積神經(jīng)網(wǎng)絡(luò)(stack Convolutional Neural Network,stack-CNN)等模型也在應(yīng)用上取得了顯著的效果。循環(huán)神經(jīng)網(wǎng)絡(luò)RNN[8]以及其變體長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)[9,22-23]和門控網(wǎng)絡(luò)(Gated Recurrent Unit, GRU)[10]模型在考慮句子長距離依賴關(guān)系問題上被廣泛應(yīng)用。然而這些方法通常只使用一個(gè)單一神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對問答對進(jìn)行嵌入表示,沒有捕捉到問答對之間更復(fù)雜的語義關(guān)系和特征信息,改進(jìn)程度有限。
為了盡可能多地獲取問答對之間的內(nèi)在語義特征,本文采用Multi-CNN和雙循環(huán)門控網(wǎng)絡(luò)(Bidirectional Gated Recurrent Unit, BiGRU)相結(jié)合,并引入注意力機(jī)制的混合模型(Attention-based BiGRU-CNN, ABiGRU-CNN)來對問答對進(jìn)行處理。該模型不僅能獲取問答對的局部特征信息和長距離依賴關(guān)系,還能結(jié)合注意力機(jī)制為問答對匹配中的重要信息賦予更高的權(quán)重。在cMedQA數(shù)據(jù)集上的實(shí)驗(yàn)表明,ABiGRU-CNN模型在醫(yī)學(xué)問答匹配上明顯優(yōu)于現(xiàn)有方法。
Cairns等[1]提出了一個(gè)具有查詢公式和自動(dòng)問答注釋等功能集成的MiPACQ系統(tǒng)來檢索候選答案段落。Li等[18]使用BM25算法檢索包含問題及其答案的語料庫并將候選答案進(jìn)行排序,用于問答匹配。這類方法屬于傳統(tǒng)手法中信息檢索,包括查詢擴(kuò)展和候選答案重排序操作,但其匹配采用的關(guān)鍵詞搜索策略對語義的分析和匹配效果不夠好。
Athenikos等[3]提出了一個(gè)基于規(guī)則的醫(yī)學(xué)領(lǐng)域問答系統(tǒng)的框架,以邏輯推理方式獲得問題的正確答案。Jain等[4]提出了一種基于規(guī)則的問答系統(tǒng)的體系結(jié)構(gòu)來對問題操作和答案檢索方法進(jìn)行描述。這類手工設(shè)計(jì)方法在面對多樣的問答對時(shí),缺少靈活性。
Moschitti等[12]提出了有監(jiān)督的判別模型,該模型包括支持向量機(jī)、字符串核和語法樹核等方法,能通過對答案進(jìn)行排序選擇得到與問題相匹配的正確答案。Lecun等[13]提供了一種基于支持向量機(jī)的基于上下文的問題解答模型,該模型具有問題分類和文檔檢索等功能。然而,淺層機(jī)器學(xué)習(xí)方法仍需要人工進(jìn)行深層特征分類。
近年來,深度學(xué)習(xí)被廣泛用于問答領(lǐng)域中。例如RNN模型經(jīng)常被用于獲取句子序列和長距離依賴關(guān)系信息,CNN模型用于獲取句子局部置不變特征信息。
Xu等[8]提出一種基于全時(shí)監(jiān)控的雙向RNN模型,該模型可以在每一個(gè)時(shí)刻進(jìn)行監(jiān)督。Qiu等[14]提出一種用于社區(qū)問答的卷積神經(jīng)張量網(wǎng)絡(luò),它將句子建模語義匹配集成到一個(gè)基于卷積層和和流層組合的模型中,可以學(xué)習(xí)問題與答案之間的匹配度量。Zhang等[15]提出了Multi-CNN框架,利用多尺度卷積核獲取問答對特征信息。
深度學(xué)習(xí)雖然在獲取信息方面具有很好的效果,但上述的方法都是基于單一的神經(jīng)網(wǎng)絡(luò)建模,只能獲取句子單側(cè)信息。而在問答對匹配中需要更多具有代表意義的特征,因此有必要設(shè)計(jì)和實(shí)現(xiàn)更加復(fù)雜的神經(jīng)網(wǎng)絡(luò)。
圖1 ABiGRU-CNN總體框架
單尺度卷積神經(jīng)網(wǎng)絡(luò)(Single Convolutional Neural Network, Single-CNN)通過大小被固定的卷積核獲取句子的單詞特征。由于卷積核的大小不變,該模型只能獲取句子的一部分(單側(cè))特征信息,這對于醫(yī)療問答中所要求的精準(zhǔn)匹配顯然是不合適的。針對這一問題,多尺度卷積神經(jīng)網(wǎng)絡(luò)(Multi-CNN)[16]使用一系列大小不同的卷積核對輸入語句進(jìn)行卷積,以彌補(bǔ)了單尺度卷積神經(jīng)網(wǎng)絡(luò)的不足。圖2為Multi-CNN的網(wǎng)絡(luò)架構(gòu)獲取上下文信息過程。輸入到Multi-CNN模型中的語句被不同尺度卷積核進(jìn)行卷積,再被最大池化以獲取最重要的特征信息。
圖2 Mutli-CNN網(wǎng)絡(luò)框架
(1)
在句子匹配中,經(jīng)卷積所提取的特征還需要通過池化層處理,以獲得句子中最重要的特征信息。常用的池化處理方法有最大池化(max-pooling)和平均池化(mean-pooling),本文對Oq選擇最大池化獲取最大特征值獲取問句的嵌入表示。其公式為:
(2)
(3)
Multi-CNN通過不同尺度的卷積能夠有效獲取句子的局部位置不變特征,但是CNN不能通過卷積獲取句子的長距離依賴關(guān)系,因此Multi-CNN的能力和性能是有限的。
由2.2節(jié)可知Multi-CNN對獲取句子中的局部位置不變特征信息有顯著的效果,卻不能獲取序列中長距離依賴關(guān)系。在RNN中,當(dāng)前隱藏層的輸出不僅取決于當(dāng)前輸入值還與上一個(gè)隱藏層輸出值有關(guān),這使得RNN具有長期記憶功能,可以有效地獲取句子序列中的語序信息和長距離依賴關(guān)系。而RNN長期依賴學(xué)習(xí)容易出現(xiàn)梯度消失和爆炸問題,因此GRU和LSTM等變體被提出。GRU和LSTM性能相當(dāng),但GRU更容易訓(xùn)練,圖3為雙向循環(huán)門控神經(jīng)網(wǎng)絡(luò)(BiGRU)的結(jié)構(gòu)。
圖3 BiGRU網(wǎng)絡(luò)框架
(4)
(5)
(6)
(7)
如2.2節(jié)和2.3節(jié)所述,BiGRU可以通過更新門和重置門獲取句子全局依賴關(guān)系信息,而Multi-CNN則可以通過多尺度卷積神經(jīng)網(wǎng)絡(luò)獲取句子局部特征信息。為了同時(shí)獲得長距離相關(guān)性和位置不變特征信息,提出了一個(gè)基于BiGRU和Multi-CNN疊加的神經(jīng)網(wǎng)絡(luò)模型(BiGRU-CNN),其結(jié)構(gòu)如圖4所示。在模型中BiGRU的前向和后向輸出連接成Multi-CNN的輸入,而Multi-CNN則利用多個(gè)不同大小的卷積核獲取句子特征信息。
圖4 Multi-CNN網(wǎng)絡(luò)框架
BiGRU-CNN模型結(jié)合BiGRU和Multi-CNN的優(yōu)點(diǎn),能夠獲取到更豐富的問答對關(guān)系和特征。但堆疊神經(jīng)網(wǎng)絡(luò)獲取的問答對特征在結(jié)果匹配中會(huì)失去重點(diǎn)性,使得問答對的匹配結(jié)果并不理想。
MA=(Hq)Τ·Ha
(8)
式中:MA∈Rn×m為所求的語義矩陣。
計(jì)算問句的權(quán)重公式:
Up=tanh(Wp·MΤ)
(9)
αp=softmax((wp)Τ·Up)
(10)
式中:Wp和wp表示參數(shù);Up為隨機(jī)初始化的權(quán)重矩陣;αp為歸一化注意力權(quán)重矩陣。
Xp=Hqαp
(11)
式中:Xr為加入權(quán)重后的問句表示。
相同的步驟,獲得答案的權(quán)重公式:
Us=tanh(Ws·M)
(12)
αs=softmax((ws)Τ·Us)
(13)
式中:Ws和ws表示參數(shù);Us為隨機(jī)初始化的權(quán)重矩陣;αs為歸一化注意力權(quán)重矩陣。
Xs=Haαs
(14)
式中:Xc為加入權(quán)重后的句子表示。
之后,將加權(quán)后的問答句表示輸入CNN進(jìn)行多尺度卷積和最大池化處理,如圖2所示。最后將問答句進(jìn)行相似度計(jì)算,得到最終匹配結(jié)果。
l=max{0,Mr-sim(rqiw,rai w+)+sim(rqiw,raiw-)}
(15)
表1 cMedQA數(shù)據(jù)集
模型性能將采用top-k(ACC@k)作為衡量的指標(biāo)。其定義如下:
(16)
(1) Random Selection:問題的正確答案將從候選答案集中隨機(jī)選擇生成[15]。
(2) Matching:通過計(jì)算問答句之間相似字符的個(gè)數(shù),查找正確答案。
(3) BM 25:一種排序功能,應(yīng)用于問答匹配[17]。
(4) Single-CNN:只使用一個(gè)固定卷積核來處理問答語句。
(5) Multi-CNN:在捕獲問答對之間的局部不變低級(jí)別特征方面是具有很好的效果。
(6) Stack-CNN:與Multi-CNN不同,該模型可以獲得句子高級(jí)別的語義信息。
(7) Multi-stack-CNN:Multi-CNN模型與stack-CNN模型結(jié)合生成,可以獲取句子不同級(jí)別的信息。
(8) BiGRU:RNN的進(jìn)化,可以獲取句子的全局依賴關(guān)系信息。
(9) BiGRU-CNN:結(jié)合BiGRU和CNN優(yōu)點(diǎn),可以獲取序列中長距離依賴關(guān)系以及局部位置不變特征信息。
將使用文獻(xiàn)[18]的方法把句子中的字符轉(zhuǎn)換為向量表示實(shí)現(xiàn)漢字的嵌入,向量的維數(shù)為300。問答嵌入層之間共享相同的權(quán)重矩陣。Multi-CNN架構(gòu)使用四種不同大小的卷積核,分別為1、2、3、5。stack-CNN架構(gòu)使用兩種不同大小卷積核,分別為3、4。兩個(gè)模型特征映射數(shù)量均為500個(gè)。BiGRU架構(gòu)在隱藏狀態(tài)下使用200個(gè)特征。BiGRU-CNN架構(gòu)和ABiGRU-CNN架構(gòu)使用大小分別為1、2、3和5的卷積核,使用200個(gè)BiGRU隱藏狀態(tài)的特征。
(1) 各模型的ACC@1對比。如表2所示,可以看出混合模型ABiGRU-CNN在測試數(shù)據(jù)集上精度最高,性能明顯優(yōu)于其他模型表明ABiGRU-CNN在問答匹配中對句子關(guān)鍵信息的提取和匹配是合理有效的。
表2 模型ACC@1結(jié)果(%)
J行明顯優(yōu)于A、B和C行的模型,說明在問答對匹配上,神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)方法更適合于問答對之間的關(guān)系建模。
D到G行都是CNN模型的變體,表中可以看出模型Multi-CNN、stack-CNN 和Multi-stack-CNN的結(jié)果優(yōu)于Single-CNN。這是因?yàn)镸ulti-CNN和stack-CNN都使用了不同尺度大小的卷積核對句子進(jìn)行卷積,能夠提取更多的句子信息。G行Multi-CNN的性能最高,它同時(shí)繼承了Multi-CNN和stack-CNN的優(yōu)勢,提高了模型性能。G行和H行比較,BiGRU比Multi-stack-CNN結(jié)果有提高,說明在問答對匹配中BiGRU獲取的特征信息和遠(yuǎn)距離依賴性在構(gòu)建問答對表示中的重要性。
比較G行和J行、H行和J行,J行效果明顯最優(yōu),可知BiGRU-CNN結(jié)合了BiGRU和CNN兩種模式的優(yōu)點(diǎn),使其具有更強(qiáng)的功能。
比較I行和J行,可以看出ABiGRU-CNN的性能優(yōu)于BiGRU-CNN。這說明ABiGRU-CNN不僅具有BiGRU和CNN兩種模型的優(yōu)點(diǎn),且與注意力機(jī)制相結(jié)合為問答對重要特征賦予更高權(quán)值,使重要特征不被忽視,提高模型的性能。如表3所示,為問句的特征提取。在沒有注意力的BiGRU-CNN模型中,斗雞眼和雙眼向內(nèi)斜視都會(huì)被被提取出來,而且由于斗雞眼出現(xiàn)了兩次,再加上近視和散光,這些干擾項(xiàng)對答案匹配會(huì)起反作用。而加了注意力的ABiGRU-CNN模型,可以把斗雞眼統(tǒng)一成雙眼向內(nèi)斜視,排除了斗雞眼這個(gè)干擾項(xiàng)。近視和散光會(huì)被注意力機(jī)制過濾掉,剩下的特征也會(huì)被注意力進(jìn)行篩選,從而提高比配效率。
表3 典型問句特征提取
(2) 各模型的ACC@3對比。如表4所示,可以看出ABiGRU-CNN模型具有較高的準(zhǔn)確率。在實(shí)際的醫(yī)療問答系統(tǒng)中,有些用戶往往不滿足一個(gè)檢索結(jié)果,他們希望了解更多的治療手段,此時(shí)可以設(shè)置三個(gè)候選答案來滿足用戶的需求。
表4 模型的ACC@3結(jié)果(%)
與現(xiàn)有只利用一種模型獲取句子的單側(cè)特征和關(guān)系的醫(yī)療問答不同,BiGRU-CNN混合模型可以獲取句子的局部位置不變特征以及全局順序信息。但是隨著網(wǎng)絡(luò)模型的堆疊過深,模型無法獲取對問答對匹配產(chǎn)生重要影響的特征。ABiGRU-CNN模型將BiGRU-CNN與注意力機(jī)制結(jié)合,通過注意力為重要的特征賦予更高的權(quán)重,提高了問答對匹配效率。實(shí)驗(yàn)表明,模型在ACC@1和ACC@3中都有較好的表現(xiàn)。但如果問句使用漢語,答案使用英語,模型不一定取到好的效果。為此,本文未來的工作是將外部人類知識(shí)融入ABiGRU-CNN模型中,增加模型的泛化能力,使其在跨語言數(shù)據(jù)集上也取得良好效果。