谷宗運,汪 慶,殷云霞
安徽中醫(yī)藥大學(xué) 醫(yī)藥信息工程學(xué)院,安徽 合肥 230012
近年來,學(xué)校教育正面臨著由規(guī)?;騻€性化、信息化到智能化的過渡和轉(zhuǎn)變,智能教育得到國家和教育行業(yè)的高度關(guān)注。2019 年國務(wù)院印發(fā)《中國教育現(xiàn)代化 2035》,提出了智能教育發(fā)展的戰(zhàn)略任務(wù),旨在推進智能教育以及相關(guān)應(yīng)用的發(fā)展。隨著大數(shù)據(jù)與人工智能技術(shù)的進步,“互聯(lián)網(wǎng)+教育”發(fā)展取得了明顯成效,并在新冠病毒疫情防控期間發(fā)揮了重要教學(xué)服務(wù)作用。自新冠病毒疫情以來,許多高校都在積極探索“互聯(lián)網(wǎng)+教育”的在線教學(xué)及線上線下混合式教學(xué)等新教學(xué)模式。這類新型教學(xué)模式的推廣與應(yīng)用,對大學(xué)生的自主學(xué)習(xí)能力及信息獲取能力要求非常高。
在自主學(xué)習(xí)過程中,學(xué)生遇到問題時通常會通過搜索引擎來查找答案,具體的方法是在瀏覽器上輸入問題搜索答案。這種方法存在兩個問題:一是從網(wǎng)上龐大的冗余信息中,提取到自己所需要的答案,會耗費一些時間和精力,影響自主學(xué)習(xí)進程;二是很多時候搜索引擎不能正確理解用戶語義,搜索的結(jié)果與學(xué)生想要的結(jié)果相去甚遠,雖耗費了時間和精力,但一無所獲。對于自主學(xué)習(xí)過程中遇到的問題,如果不能實時、精準(zhǔn)、有效地解決,不僅會降低學(xué)生的自主學(xué)習(xí)質(zhì)量還會打擊他們的自主學(xué)習(xí)積極性。智能問答系統(tǒng)(question answering system,QA)[1]是信息檢索系統(tǒng)的一種高級形式,它能用準(zhǔn)確、簡潔的自然語言回答用戶用自然語言提出的問題,已被廣泛應(yīng)用在醫(yī)療[2]、農(nóng)業(yè)[3]、文旅[4]、教育[5]等領(lǐng)域。智能問答系統(tǒng)能在一定程度上解決傳統(tǒng)引擎存在的問題,推進智能教育的發(fā)展。
智能問答系統(tǒng)可以為學(xué)生提供更加精準(zhǔn)的信息服務(wù),故研究智能問答系統(tǒng)具有重要的現(xiàn)實意義。而智能問答系統(tǒng)關(guān)鍵是問答模型的設(shè)計與實現(xiàn),基于此本工作的重點是利用大數(shù)據(jù)及NLP技術(shù)設(shè)計并訓(xùn)練智能問答模型。具體的內(nèi)容包括以下幾個方面:先對選用的公開數(shù)據(jù)集進行數(shù)據(jù)預(yù)處理,以適用模型的訓(xùn)練;接著設(shè)計基于BERT的智能問答模型,并用預(yù)處理數(shù)據(jù)對模型進行訓(xùn)練;最后測試模型并分析結(jié)果。本文的主要貢獻有如下三點:1)用智能問答系統(tǒng)解決大學(xué)生自主學(xué)習(xí)問題;2)用自動生成答案的方式實現(xiàn)智能問答系統(tǒng);3)把BERT技術(shù)應(yīng)用到智能問答系統(tǒng)任務(wù)中,并顯著提高了智能問答系統(tǒng)性能。
智能問答系統(tǒng)實現(xiàn)算法主要分為兩類[6]:一類是文本匹配式(如圖1所示),其主要方法是基于問答數(shù)據(jù)集訓(xùn)練問題-答案匹配模型,通過問題相似度來找到符合的答案并自動回答,該方法的答案具有合理性、正確性、嚴(yán)謹(jǐn)性等優(yōu)點。但文獻[7]中指出由于需要對問題庫里面的所有的問題進行檢索,執(zhí)行速度會隨著問題庫規(guī)模的增大而降低,所以該方法在大規(guī)模問題庫中找到符合的答案是困難且耗時的。另一類是文本生成式(如圖2所示),其主要方法是用數(shù)據(jù)集訓(xùn)練一個答案生成模型,根據(jù)用戶問題自動生成答案文本,該方法具備真正意義上的智能問答,已逐漸成為智能問答研究主流方向。
圖1 文本匹配式智能問答算法流程
在智能問答模型實現(xiàn)上,預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)語言模型受到越來越多的關(guān)注。隨著ELMo(embeddings from language models)[8]、OpenAI GPT(generative pre-trained transformer)[9]及BERT[10]等預(yù)訓(xùn)練模型提出,預(yù)訓(xùn)練取得了顯著進展。BERT模型采用了多層自注意力機制 Transformer 結(jié)構(gòu)[11](如圖3所示),通過加深網(wǎng)絡(luò)的方式增強對文本信息的挖掘能力。另外,BERT 基于無監(jiān)督的語料數(shù)據(jù)進行學(xué)習(xí)的,可以減少數(shù)據(jù)搜集和人工標(biāo)注的成本。基于這些優(yōu)勢,BERT模型被廣泛應(yīng)用到各類具體的NLP任務(wù)中,并且已經(jīng)被證明在許多NLP任務(wù)中是相當(dāng)有效的。
圖3 Transformer模型網(wǎng)絡(luò)架構(gòu)
文獻[12]提出了一種BERT融合模型(BERT-fused model),并通過實驗得出“簡單使用BERT初始化NMT的編碼器效果不好,將BERT作為特征在NMT中更有效”的結(jié)論。采用BERT-fused的做法,自主學(xué)習(xí)QA模型由BERT模型和改進的NMT模型組成,其中NMT與標(biāo)準(zhǔn)NMT[13]一樣由encoder layer和decoder layer組成,但在標(biāo)準(zhǔn)NMT基礎(chǔ)上增加了BERT-encoder和BERT-decoder兩個注意力模塊。自主學(xué)習(xí)QA模型整體架構(gòu)如圖4a)所示,輸入Question序列后,首先被轉(zhuǎn)換成由圖4b)模塊[10]處理的BERT表示。然后,通過BERT編碼器注意模塊,每個NMT的encoder layer(圖4c))與從BERT獲得的表示進行交互,并最終輸出利用BERT和NMT編碼器的融合表示。NMT的decoder layer(圖4d))工作原理與之類似,它也融合了BERT表示和NMT編碼器表示。
注:a)模型整體網(wǎng)絡(luò)架構(gòu);b)BERT模型網(wǎng)絡(luò)架構(gòu);c)encoder layer網(wǎng)絡(luò)架構(gòu);d)decoder layer網(wǎng)絡(luò)架構(gòu)。
自主學(xué)習(xí)QA算法具體步驟如下所示:
Step1:輸入Question序列χ;
Step2:將χ轉(zhuǎn)換成BERT的表示,即給定一個任意x∈χ輸入到BERT預(yù)訓(xùn)練模型中,得到表征輸出HB=BERT(x);
FFN(χ)=max(0,W1χ+b1)W2+b2, (2)
這里會得到第l層的輸出值為式(3):
Step5:遇到句尾標(biāo)識符解碼過程終止,輸出Question。
由于筆者所在學(xué)校為醫(yī)藥類院校,醫(yī)學(xué)生占主體地位。所以筆者先從醫(yī)學(xué)類開始,訓(xùn)練醫(yī)學(xué)智能問答系統(tǒng)供臨床專業(yè)學(xué)生自主學(xué)習(xí)用。為了訓(xùn)練和測試模型,使用了中文醫(yī)學(xué)問答數(shù)據(jù)集cMedQA2[14]。該數(shù)據(jù)集問題是中國醫(yī)學(xué)問答在線論壇用戶的問題或癥狀的描述,答案是醫(yī)生相應(yīng)的回答或診斷建議。在訓(xùn)練模型前,通過進一步整合數(shù)據(jù)為問答對的形式對這個數(shù)據(jù)集進行了預(yù)處理。最終數(shù)據(jù)共包含226 267對中文醫(yī)學(xué)問答。模型訓(xùn)練時,采用隨機劃分?jǐn)?shù)據(jù)集的方法,將數(shù)據(jù)集中的70%劃分為訓(xùn)練集,20%劃分為驗證集,剩余的10%為測試集。
設(shè)定NMT模型的嵌入尺寸為512,FFN層為1 024,共六層。BERT-fused模型的encoder和decoder模塊的參數(shù)使用隨機初始化。使用Adam作為我們的優(yōu)化算法,其中設(shè)置第一個transformer block 的learning rate=2×10-5,按照1/0.95的速率增長,越深層學(xué)習(xí)率越大。使用束搜索算法并設(shè)置寬度和長度懲罰因子分別為5和0.8,dropout設(shè)置為0.1。
為了評價模型的結(jié)果,我們引入NLP中常用評測指標(biāo)BLUE(Bilingual Evaluation Understudy)。它可以計算機器翻譯譯文與參考譯文之間的相似度,算法思想是機器翻譯的譯文越接近人工翻譯的結(jié)果,其翻譯質(zhì)量就越高。對于模型在cMedQA2數(shù)據(jù)集訓(xùn)練后的測試結(jié)果,使用BLUE來評價模型生成回答任務(wù),BLUE值越高則代表預(yù)測的回答越接近于給定的真實值,測試結(jié)果如表1所示。通過研究近幾年的智能問答系統(tǒng)現(xiàn)狀,本文選取了幾種主流的方法進行對比分析。從表1中可以看出BERT-fused模型效果表現(xiàn)最好,這表明了BERT-fused模型在自主學(xué)習(xí)QA任務(wù)上的優(yōu)越性。
表1 模型在測試集上的BLUE值
為了更直觀的觀察BERT-fused模型的表現(xiàn),表2列舉了部分cMedQA2測試集中的預(yù)測樣例。問題(Q)表示輸入encoder的問題,真實值答案(A)表示問題對應(yīng)的真實答案,預(yù)測值答案(A)表示模型預(yù)測的答案,即decoder輸出的內(nèi)容。從表2可以看出:模型生成答案的表述基本是通順的;對于同一問題,預(yù)測值的表達意思基本與真實值相符;但長語句中還存在語句不通順和錯別字的情況,初步分析是訓(xùn)練樣本量不夠大,fine-tune的效果還沒達到最優(yōu)。
表2 模型在cMedQA2測試集上的預(yù)測樣例
智能問答系統(tǒng)可以實時、精準(zhǔn)、有效地解決大學(xué)生自主學(xué)習(xí)過程中遇到的學(xué)習(xí)問題,能有效提高大學(xué)生的自主學(xué)習(xí)積極性和自主學(xué)習(xí)中解決問題的處理效率,在解決大學(xué)生答疑方面具有較高的使用價值。本文基于NLP技術(shù),融合BERT模型,設(shè)計了能自動生成答案的自主學(xué)習(xí)智能問答模型。針對醫(yī)學(xué)生臨床上經(jīng)常會遇到的問題,在中文醫(yī)學(xué)問答數(shù)據(jù)集cMedQA2上進行模型的訓(xùn)練和測試,實驗結(jié)果比其它模型性能優(yōu)越。通過對模型的輸出結(jié)果可視化研究,發(fā)現(xiàn)在生成的長語句Question中還存在語句不通順和錯別字的情況。在未來的研究工作中嘗試從數(shù)據(jù)、layer等層面改進,如對于問答中的超長文本,嘗試用不同的截斷處理;繼續(xù)用下游任務(wù)對標(biāo)的語料繼續(xù)pretrain,然后再fine-tune以提升性能;嘗試用不同層的輸出做concat,各種交叉組合完成下游任務(wù)等。為了使自主學(xué)習(xí)智能問答系統(tǒng)具有更大的應(yīng)用價值,解決不同學(xué)科的大學(xué)生自主學(xué)習(xí)問題,下一步工作我們將進一步擴大訓(xùn)練數(shù)據(jù),并將常識性知識也融入系統(tǒng)中。