呂學(xué)強(qiáng),張 劍,穆天楊,李寶安,游新冬
(北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101)
智能人機(jī)交互系統(tǒng)可以對(duì)話系統(tǒng)的方式實(shí)現(xiàn)[1]。對(duì)話系統(tǒng)的類別按照輸入數(shù)據(jù)可分為基于機(jī)器視覺的對(duì)話、基于知識(shí)圖譜的對(duì)話和推理型對(duì)話等不同類型的對(duì)話系統(tǒng)[2]。
按照對(duì)話系統(tǒng)的功能類型,目前的對(duì)話系統(tǒng)可以分成兩類。第一類是面向任務(wù)的對(duì)話系統(tǒng)[3],第二類是非面向任務(wù)的對(duì)話系統(tǒng)。面向任務(wù)的對(duì)話系統(tǒng)旨在幫助用戶完成某些特定場景下的對(duì)話任務(wù),如京東的售前售后咨詢等[4]。非面向任務(wù)的對(duì)話系統(tǒng)大部分都是給用戶提供閑聊服務(wù),如微軟中國團(tuán)隊(duì)推出的娛樂聊天機(jī)器人小冰[5]。小冰是一個(gè)基于搜索的回復(fù)檢索系統(tǒng),她通過融合各種基于深度學(xué)習(xí)的語義匹配算法,從海量語料中返回最佳回復(fù)。
知識(shí)圖譜是一種新型的知識(shí)語義存儲(chǔ)方式,將帶有聯(lián)系的信息使用三元組(實(shí)體,關(guān)系,實(shí)體)的方式進(jìn)行存儲(chǔ)。作為一個(gè)常識(shí)庫,知識(shí)圖譜對(duì)對(duì)話系統(tǒng)有著很好的指導(dǎo)作用。為將知識(shí)語義的圖譜信息融入對(duì)話系統(tǒng),本文使用TransE方法將圖譜信息進(jìn)行編碼,使用深度學(xué)習(xí)模型分析多輪對(duì)話中的信息,并在編碼好的知識(shí)圖譜中進(jìn)行搜索。
近幾年對(duì)話系統(tǒng)發(fā)展迅速,眾多學(xué)者提出提高對(duì)話系統(tǒng)效果的模型方法。早期的知識(shí)庫對(duì)話系統(tǒng)是基于檢索與匹配的,Junyu Lu等[6]通過加入時(shí)序和空間上的特征,解決對(duì)話系統(tǒng)中回復(fù)句子的選擇問題。方法分兩步,第一步是通過軟對(duì)齊獲取上下文和回復(fù)之間的關(guān)聯(lián)信息;第二步是在時(shí)間維度聚合注意力的映像,并用3D卷積和池化來抽取匹配信息。也有部分學(xué)者將文檔信息應(yīng)用到多輪對(duì)話。Zekang Li等[7]提出在有文檔背景信息的多輪對(duì)話中基于Transformer的對(duì)話生成模型。該任務(wù)需要解決的問題有兩個(gè):一是需要挖掘文檔中和對(duì)話相關(guān)的部分;二是將多輪對(duì)話的語句和文檔缺點(diǎn)及在中文語料下的表現(xiàn)進(jìn)行改進(jìn),提出基于注意力和跨步融合機(jī)制與HRED模型結(jié)合的方案。王孟宇等[8]對(duì)HRED模型的實(shí)驗(yàn)結(jié)果表明,該方案取得了較大的性能提升。隨著知識(shí)圖譜技術(shù)的快速發(fā)展與預(yù)訓(xùn)練模型的廣泛應(yīng)用,張家培等[9]提出一種基于BERT的對(duì)話狀態(tài)跟蹤算法Q2SM(query to state model)。該模型的上游使用基于BERT的句子表征與相似度交互的槽判定模塊,下游使用一種面向?qū)υ挔顟B(tài)跟蹤任務(wù)的自定義RNN:DST-RNN。
進(jìn)入大數(shù)據(jù)時(shí)代之后,基于知識(shí)圖譜的問答系統(tǒng)[10]已經(jīng)成為一種訪問大型知識(shí)圖譜的流行方式。如何根據(jù)知識(shí)圖譜在領(lǐng)域不可知的前提下保證對(duì)話系統(tǒng)的參與性和有效性是一個(gè)很重要的問題。基于此,Moon S等[11]將一段對(duì)話模擬為知識(shí)圖譜上的路徑(可能是多條),以此使得對(duì)話系統(tǒng)具有可解釋性。該模型是根據(jù)當(dāng)前對(duì)話、以前的所有對(duì)話和當(dāng)前對(duì)話中的實(shí)體預(yù)測(cè)回答語句的實(shí)體,然后開放式對(duì)話系統(tǒng)便可以以該實(shí)體為核心組織對(duì)應(yīng)的回復(fù)。Luyang Huang等[12]提出一種知識(shí)圖譜增強(qiáng)摘要生成框架和用于強(qiáng)化學(xué)習(xí)的多項(xiàng)選擇完形填空獎(jiǎng)勵(lì)。該模型能夠從輸入文本中捕捉實(shí)體的局部特征和全局交互信息,從而生成高質(zhì)量的回復(fù)信息。在專業(yè)領(lǐng)域的對(duì)話系統(tǒng)研究方面,代文韜等[13]利用知識(shí)圖譜的信息,在保險(xiǎn)領(lǐng)域上構(gòu)建了專業(yè)的數(shù)據(jù)集,按照預(yù)處理、匹配、檢索、后處理、對(duì)話管理的順序進(jìn)行保險(xiǎn)領(lǐng)域?qū)I(yè)型對(duì)話系統(tǒng)的構(gòu)建,且具有一定的推廣性和擴(kuò)展性。
通過國內(nèi)外的相關(guān)工作進(jìn)行分析可以發(fā)現(xiàn),對(duì)于如何將知識(shí)圖譜信息應(yīng)用到對(duì)話系統(tǒng)中依舊處于起步階段。各種添加圖譜信息的方法還不夠成熟,仍有著較大的發(fā)展空間。
本文整體的模型架構(gòu)如圖1所示,整個(gè)模型分為5個(gè)部分,分別是圖嵌入、預(yù)訓(xùn)練、BERT(Bidirectional Encoder Representations for Transformers)&GPT2(Gene-rative Pre-Training2)、BiLSTM(Bi-directional Long-short Memory neural network)+Attention、OutPut。其中圖嵌入是將知識(shí)圖譜進(jìn)行向量化的表示,然后使用BERT[14]或者GPT2[15]加上BiLSTM[16]以及Attention[17]進(jìn)行關(guān)鍵信息的提取生成,最后由OutPut模塊聯(lián)合。
圖1 模型結(jié)構(gòu)
先前建立好的圖嵌入模型進(jìn)行對(duì)話的答案生成。為了對(duì)比BERT模型和GPT2模型在我們的模塊流程中的效果,分別使用這兩個(gè)預(yù)訓(xùn)練模型進(jìn)行了訓(xùn)練。
圖嵌入是表示學(xué)習(xí)的一種,模型的基本想法是想要使得頭實(shí)體向量表示h與關(guān)系的向量表示r之和與尾實(shí)體的向量表示t盡量接近,即h+r≈t。本方法中選用TransE模型是因?yàn)榇藞D譜編碼方法實(shí)現(xiàn)簡單且大部分的圖嵌入方法都是基于此思想演變而來,而且經(jīng)過測(cè)試TransE模型足夠解決本文問題。訓(xùn)練過程為首先確定訓(xùn)練集、超參數(shù)、學(xué)習(xí)率,歸一化所有的初始化向量,在進(jìn)入循環(huán)時(shí)采用minibatch加快訓(xùn)練速度,并對(duì)每批進(jìn)行負(fù)采樣,同時(shí)初始化T_batch為一個(gè)空列表,然后向T_batch中添加由元組對(duì)組成層的列表T_batch=[([h,r,t],[h,r,t]),([]),…]。 拿到T_batch后進(jìn)行訓(xùn)練,采用梯度下降進(jìn)行調(diào)參。其中在初始化向量的時(shí)候我們選擇了BERT模型,用BERT-base-chinese進(jìn)行向量初始化。
在BERT中,模型使用Transformer[18]模型來實(shí)現(xiàn)上下文全向預(yù)測(cè)。本文提出的方法將對(duì)話的話輪信息以及當(dāng)前對(duì)話信息拼接后輸入到BERT模型中去,經(jīng)由BERT模型的輸出提取出關(guān)鍵信息并傳遞到雙向LSTM模型中。處理對(duì)話信息的輸入時(shí),我們首先將之前的話輪信息以及當(dāng)前的對(duì)話拼接后輸入到BERT模型中去。對(duì)于過長的對(duì)話信息,將之前的對(duì)話歷史進(jìn)行截取,保證不會(huì)超過BERT模型對(duì)于輸入長度的要求。整個(gè)模型的輸入是字符集的。
對(duì)于一個(gè)輸入序列X=(x1,x2,x3,…,xn) 來說,在對(duì)話信息的開始部分添加[CLS]標(biāo)記,在每一輪對(duì)話的結(jié)尾處添加[SEP]標(biāo)記。對(duì)于超過BERT輸入要求的對(duì)話信息,我們從后到前截取了不超過512的最長話輪。對(duì)過短的數(shù)據(jù)進(jìn)行補(bǔ)0操作,從而保證輸入數(shù)據(jù)長度一致。BERT模型如圖2所示。
圖2 BERT模型
GPT是“Generative Pre-Training”的簡稱,第一個(gè)階段是利用語言模型進(jìn)行預(yù)訓(xùn)練,第二階段通過Fine-tuning的模式解決下游任務(wù)。這樣的模型結(jié)構(gòu)相較于BERT在生成形式的任務(wù)上有著更好的表現(xiàn)效果。GPT2模型是GPT的改進(jìn)版,訓(xùn)練過程中使用了更多的訓(xùn)練數(shù)據(jù)并且有了更多的模型參數(shù),所以我們?cè)陬A(yù)訓(xùn)練模型上選擇GPT2模型。本文提出的方法將對(duì)話的話輪信息以及當(dāng)前對(duì)話信息拼接后輸入到GPT2模型中去,經(jīng)由GPT2模型的輸出提取出關(guān)鍵信息并傳遞到雙向LSTM模型中。在輸入方面依舊是字符集的數(shù)據(jù),我們對(duì)數(shù)據(jù)的處理與BERT的輸入相同,同樣是一個(gè)輸入序列X=(x1,x2,x3,…,xn)。 并對(duì)過長的輸入數(shù)據(jù)進(jìn)行截取操作,對(duì)過短的數(shù)據(jù)進(jìn)行補(bǔ)0操作,從而保證輸入數(shù)據(jù)長度一致。
雙向長短記憶神經(jīng)網(wǎng)絡(luò)——通常稱作BiLSTM,是一種特殊的RNN,能夠?qū)W習(xí)長的依賴關(guān)系。他們由Hochreiter&Schmidhuber提出,并被許多人進(jìn)行了改進(jìn)和普及。在本文提出的模型結(jié)構(gòu)中,將BERT或者GPT2的輸出傳遞給BiLSTM模塊,在BiLSTM模型結(jié)構(gòu)中捕捉話輪的重要信息,然后傳遞給Attention結(jié)構(gòu)進(jìn)行最后的向量轉(zhuǎn)換。BiLSTM模型結(jié)構(gòu)如圖3所示。
圖3 BiLSTM模型結(jié)構(gòu)
我們?cè)谀P椭袘?yīng)用Attention結(jié)構(gòu)能夠更好捕捉問題和話論中的關(guān)鍵信息,能夠較為準(zhǔn)確的在預(yù)先訓(xùn)練好的TransE模型中搜索到回復(fù)信息。Attention結(jié)構(gòu)的輸出是兩個(gè)向量,這兩個(gè)向量就對(duì)應(yīng)了知識(shí)嵌入中一個(gè)實(shí)體和一個(gè)關(guān)系。Attention結(jié)構(gòu)如圖4所示。
圖4 Attention結(jié)構(gòu)
對(duì)于整個(gè)模型的輸出,我們的模型從知識(shí)嵌入中去搜索答案,因?yàn)榻?jīng)過了Attention結(jié)構(gòu)的轉(zhuǎn)換,用兩個(gè)輸出向量相加的結(jié)果去知識(shí)嵌入中搜索答案。在這一部分中,我們使用曼哈頓空間距離算法作為度量標(biāo)準(zhǔn)。最接近的空間距離是預(yù)測(cè)實(shí)體。曼哈頓空間距離的計(jì)算公式如下
(1)
式中:x和y是兩個(gè)實(shí)體向量,xi和yi是向量中的值,c是兩個(gè)向量的曼哈頓空間距離。該公式預(yù)測(cè)的實(shí)體是對(duì)話模型的最終輸出。
本文的實(shí)驗(yàn)數(shù)據(jù)選用公開的MIE[18]醫(yī)療對(duì)話數(shù)據(jù)集,我們添加了自己的醫(yī)療圖譜數(shù)據(jù),豐富其數(shù)據(jù)內(nèi)容。在表1中列出了幾個(gè)簡單的對(duì)話數(shù)據(jù)樣例。話輪信息為當(dāng)前的對(duì)話信息,標(biāo)簽中的內(nèi)容為對(duì)話信息中提到的相關(guān)實(shí)體關(guān)系等。醫(yī)療圖譜信息來源于之前的項(xiàng)目,我們從39健康網(wǎng),快速問醫(yī)生等醫(yī)療網(wǎng)站上爬取了結(jié)構(gòu)化數(shù)據(jù),并通過人工校驗(yàn)的方式對(duì)其中不同命名方式的相同實(shí)體進(jìn)行合并。在表2中列出了添加的圖譜中檢驗(yàn)指標(biāo)、疾病和癥狀3類實(shí)體的具體數(shù)目。為了驗(yàn)證訓(xùn)練之后TransE模型的搜索效果,本文中使用Mean rank和Hit@10兩個(gè)評(píng)價(jià)指標(biāo)。
Mean rank:首先對(duì)于每個(gè)測(cè)試三元組,以預(yù)測(cè)尾實(shí)體為例,將 (h,r,t) 實(shí)體-關(guān)系-實(shí)體三元組中的t用知識(shí)圖譜中的每個(gè)實(shí)體來代替,然后通過f(h,t) 函數(shù)來計(jì)算分?jǐn)?shù),這樣我們可以得到一系列的分?jǐn)?shù),之后按照升序?qū)⑦@些分?jǐn)?shù)排列。從而得到一個(gè)正確實(shí)體的排列得分,最終的Mean rank越小則證明TransE模型的效果越好。
Hit@10:對(duì)應(yīng)于上面的方法,對(duì)于每一組測(cè)試數(shù)據(jù)中的 (h,r,t) 關(guān)系三元組,查看正確的結(jié)果是否在搜索到結(jié)果的前十中,如果在,則計(jì)數(shù)加一,排在前十的個(gè)數(shù)/總個(gè)數(shù)就是Hit@10,如式(2)所示
表1 對(duì)話數(shù)據(jù)樣例
表2 圖譜信息統(tǒng)計(jì)
(2)
為了驗(yàn)證本文提出的對(duì)話方法的有效性將F1值、準(zhǔn)確率(P)和召回率(R)作為驗(yàn)證的評(píng)價(jià)標(biāo)準(zhǔn)。如式(3)~式(5)所示
(3)
(4)
(5)
通過實(shí)驗(yàn)可以發(fā)現(xiàn),實(shí)驗(yàn)環(huán)境及模型參數(shù)會(huì)對(duì)實(shí)驗(yàn)結(jié)果造成影響,因此分別列舉出實(shí)驗(yàn)環(huán)境和部分模型參數(shù)。本實(shí)驗(yàn)采用的是深度學(xué)習(xí)中的tensorflow框架,以及pytorch框架。具體實(shí)驗(yàn)環(huán)境見表3。
表3 訓(xùn)練環(huán)境參數(shù)
在訓(xùn)練模型的過程中通過調(diào)整預(yù)訓(xùn)練模型的參數(shù)對(duì)整體的模型進(jìn)行微調(diào),最終效果最好的模型參數(shù)見表4。
表4 模型參數(shù)
3.3.1 TransE實(shí)驗(yàn)結(jié)果
本文使用TransE模型對(duì)知識(shí)圖譜的數(shù)據(jù)進(jìn)行訓(xùn)練后得到了新的向量,每個(gè)向量代表一個(gè)實(shí)體或者是一個(gè)關(guān)系。為了驗(yàn)證TransE的訓(xùn)練效果,本文中對(duì)其進(jìn)行了測(cè)試,使用了Mean rank和Hit@10兩個(gè)評(píng)價(jià)指標(biāo),具體的實(shí)驗(yàn)結(jié)果見表5。
表5 TransE實(shí)驗(yàn)結(jié)果
3.3.2 模型及對(duì)比實(shí)驗(yàn)結(jié)果
本文在MIE醫(yī)療對(duì)話數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),共進(jìn)行了5組對(duì)比實(shí)驗(yàn):
實(shí)驗(yàn)1:BiLSTM:使用BiLSTM進(jìn)行意圖識(shí)別提取出問句中的實(shí)體和關(guān)系,然后在圖譜中進(jìn)行檢索,這種是最簡單的對(duì)話模型。
實(shí)驗(yàn)2:BiLSTM+Attention:使用BiLSTM+Attention進(jìn)行意圖識(shí)別提取出問句中的實(shí)體和關(guān)系,然后在圖譜中進(jìn)行檢索。在BiLSTM的基礎(chǔ)上添加了Attention操作,提高了回復(fù)的準(zhǔn)確率。
實(shí)驗(yàn)3:MIE:一個(gè)面向醫(yī)學(xué)對(duì)話的醫(yī)學(xué)信息抽取器,可以抽取出對(duì)話信息中的實(shí)體和關(guān)系再進(jìn)行查詢。
實(shí)驗(yàn)4:BERT+BiLSTM+Attention:使用BERT+BiLSTM+Attention進(jìn)行意圖識(shí)別提取出多輪對(duì)話中的信息,然后在圖譜中進(jìn)行檢索生成。
實(shí)驗(yàn)5:GPT2+BiLSTM+Attention:使用GPT2+BiLSTM+Attention進(jìn)行意圖識(shí)別提取出多輪對(duì)話中的信息,然后在圖譜中進(jìn)行檢索生成。
具體的實(shí)驗(yàn)結(jié)果見表6。
表6 對(duì)話模型實(shí)驗(yàn)結(jié)果
從表5可以看出,本文中使用的TransE模型的擁有較好的查詢效果。所有的數(shù)據(jù)信息都在前10條輸出結(jié)果中,即Hit@10的統(tǒng)計(jì)結(jié)果為1。這說明了訓(xùn)練好的TransE模型能夠根據(jù)輸入的信息較為準(zhǔn)確查詢到正確的目標(biāo)實(shí)體。Mean rank評(píng)價(jià)指標(biāo)的結(jié)果為2.227,這也說明了正確的目標(biāo)實(shí)體在使用此模型的輸出中有著較高的優(yōu)先級(jí),即正確目標(biāo)實(shí)體的rank排序等級(jí)很高。使用TransE模型訓(xùn)練得到的信息能夠滿足本文中模型的準(zhǔn)確性要求。
對(duì)話模型的實(shí)驗(yàn)結(jié)果見表6,首先對(duì)比實(shí)驗(yàn)1和實(shí)驗(yàn)2,實(shí)驗(yàn)2在BiLSTM的基礎(chǔ)上加入了Attention的結(jié)構(gòu)反而會(huì)使得模型的效果變差,Attention機(jī)制在BILSTM的輸出上給出了錯(cuò)誤的信息。對(duì)比實(shí)驗(yàn)1和實(shí)驗(yàn)3,MIE模型能夠很較為準(zhǔn)確的識(shí)別出對(duì)話中的話輪信息,然后在知識(shí)庫中進(jìn)行查詢。在準(zhǔn)確率、召回率以及F1值上面有顯著的提升,分別提高了28.75%、25.82%、25.59%。這說明簡單的模型結(jié)構(gòu)不足以很好的支撐完整對(duì)話系統(tǒng)的實(shí)現(xiàn)任務(wù)。對(duì)比實(shí)驗(yàn)3,實(shí)驗(yàn)4和實(shí)驗(yàn)5雖然在準(zhǔn)確率上面有所下降但是在R和F1上面有了明顯的提高,分別提高了5.66%和1.92%。本文中的方法學(xué)習(xí)到了醫(yī)療領(lǐng)域?qū)υ捳Z義中的信息,因?yàn)榇鸢傅乃阉鲗?duì)應(yīng)于知識(shí)圖譜,所以擴(kuò)大知識(shí)圖譜的規(guī)模就能提高回復(fù)信息的適用范圍。對(duì)比于實(shí)驗(yàn)4和實(shí)驗(yàn)5,兩個(gè)模型結(jié)構(gòu)差異只是預(yù)訓(xùn)練模型不同,BERT相對(duì)于GPT2分別有2.87%、2.3%和3.84%的提高,這表明了BERT模型在此任務(wù)中擁有更好的效果。
在圖5所示的實(shí)驗(yàn)結(jié)果直方圖中,可以明顯的觀察到,模型3、模型4、模型5的效果相對(duì)于模型1、模型2的效果有著明顯的提高,傳統(tǒng)的序列生成模型不足以滿足對(duì)話系統(tǒng)的要求。從直方圖中觀察,模型3、模型4、模型5在整體效果上差異不大,以F1值為評(píng)價(jià)指標(biāo)時(shí),模型4的效果最好。
圖5 實(shí)驗(yàn)結(jié)果直方圖
經(jīng)過上面的分析可得出結(jié)論,本文提出的模型方法相對(duì)于經(jīng)典的方法,有著更強(qiáng)的對(duì)話回復(fù)能力。在本文提出的模型中,BERT預(yù)訓(xùn)練模型相比于GPT2有著更好的作用,能夠提高對(duì)話系統(tǒng)匹配到的搜索結(jié)果的F1值。
為了展示對(duì)話系統(tǒng)的效果,表7列舉了部分實(shí)驗(yàn)樣例。從結(jié)果中可以看出實(shí)驗(yàn)1在第一輪對(duì)話就出錯(cuò)。而實(shí)驗(yàn)2在第二輪出現(xiàn)錯(cuò)誤。綜合幾個(gè)實(shí)驗(yàn)結(jié)果可以看出實(shí)驗(yàn)3、實(shí)驗(yàn)4、實(shí)驗(yàn)5的模型具有較好的效果。綜合之前的實(shí)驗(yàn)結(jié)果可以得出實(shí)驗(yàn)4和實(shí)驗(yàn)5的方法能夠較為準(zhǔn)確的在已有圖譜中搜索到相應(yīng)的實(shí)體或者屬性。
本文提出的方法旨在提高多輪對(duì)話的表現(xiàn)效果,能夠應(yīng)用知識(shí)圖譜的相關(guān)信息進(jìn)行多輪對(duì)話。首先在MIE數(shù)據(jù)集上添加自己構(gòu)建的知識(shí)圖譜信息,然后對(duì)比使用BERT和GPT2預(yù)訓(xùn)練模型,模型的下層結(jié)構(gòu)為BiLSTM和Attention,經(jīng)實(shí)驗(yàn)驗(yàn)證,我們提出的方法具有較好的效果,基本能夠滿足醫(yī)療領(lǐng)域?qū)υ捪到y(tǒng)的需求。在未來的研究中,會(huì)將知識(shí)圖譜的信息融入到模型的Embedding過程中,而不僅僅是使用在模型的回復(fù)搜索部分,此外預(yù)訓(xùn)練模型的使用也可以在一定程上增強(qiáng)對(duì)話系統(tǒng)的效果。