謝 琪,陳羽中,劉漳輝
(福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福州 350116)(福建省網(wǎng)絡(luò)計(jì)算與智能信息處理重點(diǎn)實(shí)驗(yàn)室,福州 350116)E-mail:lzh@fzu.edu.cn
根據(jù)不同的應(yīng)用場(chǎng)景,對(duì)話系統(tǒng)可以大致分為兩類:一類是任務(wù)型對(duì)話系統(tǒng)[1-3],另一類是開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng)[4-6].面向任務(wù)的對(duì)話系統(tǒng)專注于特定的垂直領(lǐng)域,目標(biāo)是幫助用戶完成特定的任務(wù),例如預(yù)訂機(jī)票、旅館等.由于缺乏特定領(lǐng)域的對(duì)話數(shù)據(jù),大多數(shù)任務(wù)型對(duì)話系統(tǒng)必須依靠人工設(shè)計(jì)的模板或啟發(fā)式規(guī)則來(lái)處理用戶對(duì)話.因此,實(shí)現(xiàn)任務(wù)型對(duì)話系統(tǒng)需要大量的人工投入.此外,人工設(shè)計(jì)的模板或啟發(fā)式規(guī)則無(wú)法涵蓋所有可能的對(duì)話情景,從而限制了任務(wù)型對(duì)話系統(tǒng)適應(yīng)其它垂直領(lǐng)域的能力.開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng)則專注于開(kāi)放領(lǐng)域[7],并要求其響應(yīng)多樣化和個(gè)性化,因此需要大規(guī)模的對(duì)話知識(shí)庫(kù)來(lái)對(duì)模型進(jìn)行訓(xùn)練.隨著社交網(wǎng)絡(luò)的爆炸式增長(zhǎng),Twitter、微博等社交媒體積累了大量的對(duì)話數(shù)據(jù),使得從網(wǎng)絡(luò)中獲取開(kāi)放領(lǐng)域?qū)υ挃?shù)據(jù)集并構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng)成為可能.構(gòu)建開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng),可以進(jìn)一步提高對(duì)話系統(tǒng)的實(shí)用性.隨著科技的發(fā)展,人們不僅僅滿足于單輪對(duì)話的需求,多輪對(duì)話回答選擇順勢(shì)而生.多輪對(duì)話回答選擇是構(gòu)建開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng)的關(guān)鍵問(wèn)題之一.
近年來(lái),深度神經(jīng)網(wǎng)絡(luò)已逐漸成為構(gòu)建開(kāi)放領(lǐng)域?qū)υ捪到y(tǒng)的主流方法.通常來(lái)說(shuō),多輪對(duì)話答案選擇方法可以大致分為兩類,一類是基于生成模型的多輪對(duì)話答案選擇方法,另一種是基于信息檢索的多輪對(duì)話答案選擇方法.基于生成模型的多輪對(duì)話答案選擇方法[8-10]通常采用Seq2Seq模型[11],Seq2Seq由一個(gè)編碼器和一個(gè)解碼器組成.編碼器從輸入句子中提取語(yǔ)義和上下文信息,并將其映射為中間表示,解碼器則依次從中間表示生成響應(yīng).然而,基于生成模型的多輪對(duì)話答案選擇方法在生成的回答中經(jīng)常出現(xiàn)語(yǔ)法錯(cuò)誤.相比之下,基于信息檢索的多輪對(duì)話答案選擇方法[12,13]旨在使用匹配算法從語(yǔ)料庫(kù)中選擇與給定的對(duì)話上下文最相關(guān)的語(yǔ)料作為答案.與基于生成模型的多輪對(duì)話答案選擇方法相比,基于信息檢索的多輪對(duì)話答案選擇方法可以提供更有意義和更流暢的響應(yīng),且不存在語(yǔ)義歧義,具有更好的實(shí)用性.網(wǎng)絡(luò)數(shù)據(jù)的多樣性也使得基于信息檢索的多輪對(duì)話答案選擇方法能夠有效地處理低覆蓋率的問(wèn)題.因此,本文主要研究基于信息檢索的多輪對(duì)話回答選擇方法.
針對(duì)多輪對(duì)話回答選擇問(wèn)題,雖然深度神經(jīng)網(wǎng)絡(luò)在理解用戶意圖和檢索最佳匹配答案等方面取得了顯著的進(jìn)展,但是仍然存在著重大挑戰(zhàn).較早的研究工作多把對(duì)話上下文連接形成一個(gè)長(zhǎng)文本,然后輸入到卷積神經(jīng)網(wǎng)絡(luò)或循環(huán)神經(jīng)網(wǎng)絡(luò)中進(jìn)行匹配,但是這種基于連接成長(zhǎng)文本的語(yǔ)義匹配方式忽略了對(duì)話上下文中語(yǔ)句之間的依賴關(guān)系.近期的研究工作主要使用對(duì)話上下文分別和回答進(jìn)行匹配的方式,分別形成詞語(yǔ)的相似度矩陣和句子的相似度矩陣,再輸入到特征提取層中對(duì)特征信息進(jìn)行提取.使用這種方式進(jìn)行匹配由于只存在句子粒度和詞語(yǔ)粒度的信息,這兩種粒度信息不能充分表示對(duì)話上下文和回答的語(yǔ)義信息,從而會(huì)產(chǎn)生語(yǔ)義的缺失.并且,這種方式無(wú)法使對(duì)話上下文和回答之前的關(guān)鍵信息進(jìn)行契合的匹配,從而導(dǎo)致對(duì)話上下文和回答語(yǔ)義匹配度低.
針對(duì)上述問(wèn)題,本文提出了一種結(jié)合詞注意力機(jī)制的多粒度循環(huán)神經(jīng)網(wǎng)絡(luò)模型MRNA,主要貢獻(xiàn)如下:
1)為了解決粒度信息不夠豐富的問(wèn)題,MRNA采用AHRE[14]機(jī)制對(duì)每個(gè)句子進(jìn)行層級(jí)的編碼并將其分割為不同的粒度,通過(guò)融合詞語(yǔ)粒度、前向句子粒度、后向句子粒度,增強(qiáng)句子的語(yǔ)義表示,防止句子出現(xiàn)語(yǔ)義缺失.
2)MRNA運(yùn)用詞注意力機(jī)制通過(guò)動(dòng)態(tài)學(xué)習(xí)注意力矩陣的權(quán)值,賦予對(duì)話上下文和回答中契合的關(guān)鍵詞和次要詞不同的注意權(quán)重,從而有效提取對(duì)話上下文和回答中匹配的重要信息.
3)本文在Ubuntu數(shù)據(jù)集[15]和Douban數(shù)據(jù)集[16]上進(jìn)行了試驗(yàn),實(shí)驗(yàn)結(jié)果表明MRNA在這兩個(gè)公開(kāi)的數(shù)據(jù)集上都取得了領(lǐng)先的效果.
近年來(lái),對(duì)話系統(tǒng)受到了人們的廣泛關(guān)注,對(duì)對(duì)話系統(tǒng)的研究可以追溯到20世紀(jì)60年代.Eliza[17]是最早依靠手工模板或啟發(fā)式規(guī)則來(lái)生成響應(yīng)的對(duì)話系統(tǒng),這需要大量的人力物力資源,但取得的效果有限.隨著研究的不斷深入,一種基于數(shù)據(jù)驅(qū)動(dòng)的方法被提出來(lái)了,讓對(duì)話系統(tǒng)從龐大的對(duì)話數(shù)據(jù)集中學(xué)習(xí)如何與人交談.目前,非任務(wù)型對(duì)話系統(tǒng)主要有兩種實(shí)現(xiàn)方式,即基于信息檢索的方法和基于生成的方法.
基于生成的方法主要使用機(jī)器翻譯技術(shù)來(lái)生成響應(yīng).Li等[18]認(rèn)為傳統(tǒng)的Seq2Seq模型過(guò)于保守,傾向于生成安全通用的回答,因此使最大互信息代替最大似然估計(jì)作為新的目標(biāo)函數(shù).MMI可以產(chǎn)生多樣化的響應(yīng),并且生成的語(yǔ)句更契合主題.Xing等[19]提出了一種基于Seq2Seq的模型,通過(guò)聯(lián)合注意機(jī)制和偏差生成的概率權(quán)衡主題信息,從而生成豐富的響應(yīng).基于生成的方法實(shí)用性較差,需要大量的時(shí)間進(jìn)行訓(xùn)練,并且生成的回答很容易產(chǎn)生語(yǔ)法錯(cuò)誤.
基于信息檢索的方法通過(guò)搜索和排序從現(xiàn)有數(shù)據(jù)集中進(jìn)行篩選,選擇匹配度最高的回答作為響應(yīng).早期基于信息檢索的方法主要用于短文本和單輪對(duì)話.Hao等[20]基于實(shí)際的樣例構(gòu)建了一個(gè)短文本對(duì)話數(shù)據(jù)集,為后面的研究提供了豐富的示例.Hu等[21]提出了一種卷積神經(jīng)網(wǎng)絡(luò)模型來(lái)匹配兩個(gè)語(yǔ)句.該模型不僅可以表示句子的層級(jí)結(jié)構(gòu),而且在不同層級(jí)上捕捉豐富的匹配模式.Wang等[22]提出了一種被稱為深度匹配樹(shù)的模型.深度匹配樹(shù)利用深度神經(jīng)網(wǎng)絡(luò)挖掘句法信息的模式,從而更高效、直觀地計(jì)算兩個(gè)短句之間的相似度.一般來(lái)說(shuō),上述算法僅適用于短文本或單輪對(duì)話,它們沒(méi)有考慮多輪對(duì)話中對(duì)話上下文和各個(gè)話語(yǔ)之間的序列依賴關(guān)系.
近年來(lái),研究人員研究的重心轉(zhuǎn)向了多輪對(duì)話的研究.多輪對(duì)話需要考慮對(duì)話語(yǔ)境的長(zhǎng)期依賴關(guān)系,這比研究單輪對(duì)話要困難得多.Lowe等[15]構(gòu)建了世界上最大的多輪對(duì)話語(yǔ)料庫(kù)Ubuntu數(shù)據(jù)集,它的出現(xiàn)促進(jìn)了多輪對(duì)話的發(fā)展.Kadlec等[23]研究了CNN[24]、LSTM[25]、Bi-LSTM等不同深度網(wǎng)絡(luò)在Ubuntu數(shù)據(jù)集上的性能表現(xiàn).Zhou等[26]提出了Multi-view模型(Multi-view Response Selection Model),該模型結(jié)合了話語(yǔ)序列視圖和單詞序列視圖兩種不同視圖的信息.并且它把對(duì)話上下文中的話語(yǔ)都看做單獨(dú)的語(yǔ)句,并沒(méi)有把對(duì)話上下文看做一個(gè)長(zhǎng)語(yǔ)句,這樣可以有效地捕捉話語(yǔ)之間的依賴關(guān)系.Yan等[27]經(jīng)過(guò)研究提出了DL2R(Deep Learning-to-respond),該網(wǎng)絡(luò)結(jié)合多種信息,使用CNN提取連續(xù)詞之間的局部鄰接特征,從而生成話語(yǔ)的復(fù)合表示.Wu等[16]提出了SMN模型(Sequential Matching Network),SMN在多個(gè)粒度級(jí)別上將對(duì)話上下文中的每個(gè)話語(yǔ)和回答進(jìn)行匹配,并通過(guò)卷積和池化操作從話語(yǔ)回答對(duì)中提取重要的匹配信息.SMN充分考慮了之前的話語(yǔ)與回答之間的交互信息,因此它可以承載豐富的語(yǔ)義信息和長(zhǎng)期依賴關(guān)系.An等[28]使用交叉卷積運(yùn)算來(lái)擴(kuò)展編碼器,通過(guò)從數(shù)據(jù)集中學(xué)習(xí)不同向量的表示從而改進(jìn)了稀有詞的表示,解決了稀有詞的信息缺失的問(wèn)題.Dong和Huang[29]將預(yù)訓(xùn)練的詞向量與在任務(wù)特定訓(xùn)練集上生成的向量相結(jié)合,從而解決大量未登錄詞的問(wèn)題.Zhang等[30]使用GRU[31]對(duì)話語(yǔ)進(jìn)行編碼,并且每個(gè)話語(yǔ)和最后一句話語(yǔ)進(jìn)行融合,從而提高最后一句話語(yǔ)在對(duì)話上下文中的權(quán)重.然后采用門控自注意機(jī)制直接將融合后的表示與自身進(jìn)行匹配,從而獲得更有區(qū)別性的語(yǔ)義特征.Zhou等[32]結(jié)合Transformer[33]提出了自注意力機(jī)制和交叉注意力機(jī)制,其中自注意力機(jī)制用于構(gòu)建具有不同粒度的文本片段表示,交叉注意力機(jī)制用于捕獲潛在匹配片段對(duì)之間的依賴關(guān)系.從而增強(qiáng)不同粒度的語(yǔ)義信息,為多輪對(duì)話答案選擇的語(yǔ)義匹配提供豐富的語(yǔ)義特征信息.
本文所提出的MRNA模型的總體架構(gòu)如圖1所示,包括詞語(yǔ)表示層、多粒度語(yǔ)義信息融合層、詞注意力層、語(yǔ)義匹配層以及預(yù)測(cè)層5個(gè)模塊.詞語(yǔ)表示層采用雙通道的方式更準(zhǔn)確的表示語(yǔ)義表征向量.多粒度語(yǔ)義信息融合層將對(duì)話上下文和回答使用AHRE進(jìn)行編碼,并且對(duì)編碼后的序列進(jìn)行分割獲得前向序列相似度矩陣和后向序列相似度矩陣.詞注意力層通過(guò)動(dòng)態(tài)地學(xué)習(xí)注意力矩陣的權(quán)重,從而提取與對(duì)話上下文和回答最契合的關(guān)鍵信息.語(yǔ)義匹配層將詞矩陣、前向序列矩陣、后向序列矩陣通過(guò)卷積和最大池化操作提取每個(gè)話語(yǔ)和回答對(duì)的特征信息,并通過(guò)GRU按時(shí)間順序累積向量.預(yù)測(cè)層則通過(guò)Softmax生成一個(gè)類標(biāo)簽上的概率分布.
圖1 MRNA模型架構(gòu)Fig.1 Framework of the MRNA model
在深度神經(jīng)網(wǎng)絡(luò)中,如果要表示一個(gè)單詞就需要將單詞轉(zhuǎn)化為詞向量的形式.MRNA通過(guò)一個(gè)預(yù)先訓(xùn)練好的詞向量矩陣E∈R|D|×dv,將(C,R)對(duì)中的每一個(gè)詞都需要轉(zhuǎn)化為低維的詞向量,其中|D|表示詞典中的詞語(yǔ)數(shù),dv表示詞向量的維度.
多輪對(duì)話語(yǔ)料庫(kù)中存在的未登錄詞是一個(gè)非常棘手的問(wèn)題,句子中的未登錄詞無(wú)法映射為詞向量,導(dǎo)致句子語(yǔ)義信息的缺失,影響模型的有效性.MRNA使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行字符級(jí)編碼,并與詞向量進(jìn)行連接,從而緩解未登錄詞對(duì)模型的影響.
假設(shè)有一個(gè)單詞w=(x1,…,xi,…,xlw),xi代表單詞w中的第i個(gè)字符,lw代表w的字符數(shù).通過(guò)查詢預(yù)訓(xùn)練的字符向量表的方式將字符映射為一個(gè)向量wc∈Rdc,wc代表字符映射之后的向量,dc代表字符向量的維度.將單詞中的每個(gè)字符進(jìn)行映射就可以得到單詞w的表征矩陣.之后將矩陣輸入到CNN中,并使用不同的過(guò)濾器來(lái)進(jìn)行特征提取.經(jīng)過(guò)卷積和池化操作,再將所有的特征都連接起來(lái).其中de表示CNN中過(guò)濾器的數(shù)量,第j個(gè)過(guò)濾器的大小使用sj來(lái)表示,卷積運(yùn)算后第k個(gè)元素的輸出為oj,k.卷積和最大池化操作的公式如下:
(1)
(2)
最后,將對(duì)話上下文和回答中的每個(gè)單詞的詞向量與該單詞的字符級(jí)表示連接起來(lái),從而得到Ut=[et,1,…,et,i,…,et,lt]和R=[er,1,…,er,i,…,er,lr].Ut和R分別代表對(duì)話上下文第t句話語(yǔ)和回答的最終表示,et,i,er,i∈Rdw,dw代表最終詞向量的維度.
現(xiàn)在大多數(shù)對(duì)話系統(tǒng)的模型僅使用LSTM或GRU對(duì)話語(yǔ)進(jìn)行編碼,這種方式無(wú)法充分捕獲到序列中的時(shí)序關(guān)系,導(dǎo)致上下文語(yǔ)義特征匱乏無(wú)法充分用于預(yù)測(cè).為了增強(qiáng)所獲得的語(yǔ)義特征,我們采用了AHRE對(duì)話語(yǔ)進(jìn)行編碼.AHRE采用層級(jí)BiLSTM,將l-1層的輸出作為第l層的輸入,并結(jié)合每個(gè)輸入詞向量進(jìn)行堆疊,學(xué)習(xí)話語(yǔ)的線性變化.AHRE與只使用單層的RNN相比,性能得到了提高.AHRE計(jì)算公式如下:
(3)
(4)
(5)
(6)
(7)
(8)
為了防止在計(jì)算詞矩陣的過(guò)程中語(yǔ)句中的每個(gè)詞權(quán)重都相同,從而導(dǎo)致對(duì)話上下文和回答中語(yǔ)義相關(guān)信息得不到突出,引入詞注意力層.詞注意力層采用詞注意力機(jī)制.通過(guò)動(dòng)態(tài)學(xué)習(xí)注意力矩陣的權(quán)重,詞注意力機(jī)制將單詞權(quán)重集中在對(duì)話上下文和回答中最匹配的關(guān)鍵詞上,以防止無(wú)關(guān)的單詞獲得更多注意力.首先將句子語(yǔ)義表征s輸入到MLP中,從而獲得hs作為s的隱藏層表示,s代表3.3節(jié)中對(duì)話上下文和回答中任意一句話的語(yǔ)義表征.之后使用Ws∈Ratt×1來(lái)動(dòng)態(tài)計(jì)算注意力權(quán)重的分布,通過(guò)一個(gè)softmax函數(shù)得到歸一化的注意力權(quán)重a.最后,將句子和歸一化的權(quán)重進(jìn)行元素逐位相乘,從而獲得詞注意力層的輸出.詞注意機(jī)制的公式如下:
hs=tanh(sWw+bw)
(9)
a=softmax(hsWs)
(10)
(11)
其中s代表輸入的句子,o為詞注意力機(jī)制的輸出.Ww∈Rdw×att,bw∈R1×att代表參數(shù),att代表注意力機(jī)制的大小.⊙代表元素之間按照對(duì)應(yīng)位置相乘.
(12)
其中M3,t代表詞語(yǔ)的相似度矩陣.
(13)
(14)
將池化層的輸出輸入到全連接層進(jìn)行降維操作,從而獲得Ut和R語(yǔ)義融合的向量表示.將全連接層的輸出的所有向量進(jìn)行連接操作可以得到[Z1,…,Zlt]∈Rlt×df,df表示經(jīng)過(guò)全連接層之后的維度.由于對(duì)話上下文中的每個(gè)話語(yǔ)還包含時(shí)序關(guān)系,MRNA使用GRU對(duì)話語(yǔ)之前的潛在語(yǔ)義關(guān)系進(jìn)行建模.將[Z1,…,Zlt]作為一個(gè)序列輸入到GRU當(dāng)中,獲取最后的隱藏狀態(tài)Hm=[h1,…,hlt].GRU的計(jì)算公式如下:
(15)
(16)
(17)
(18)
其中zi和ri分別代表更新門和重置門,σ(.)代表sigmoid函數(shù),Wz,Wr,Wh,Vz,Vr,Vh代表訓(xùn)練的參數(shù),⊙代表元素之間按照對(duì)應(yīng)位置相乘.
預(yù)測(cè)層以語(yǔ)義匹配層的輸出作為輸入通過(guò)一個(gè)全連接的層,并使用softmax函數(shù)來(lái)生成一個(gè)類標(biāo)簽上的概率分布g(C,R).g(C,R)的定義如下:
(19)
其中Wd和bd代表參數(shù).MRNA使用交叉熵作為損失函數(shù)計(jì)算損失值,通過(guò)Adam優(yōu)化算法進(jìn)行學(xué)習(xí)率的更新,利用反向傳播迭代更新模型參數(shù),以最小化損失函數(shù)來(lái)訓(xùn)練模型.其中,最小化損失函數(shù)Loss的計(jì)算公式如下:
(20)
本文選擇使用Ubuntu和Douban兩個(gè)數(shù)據(jù)集對(duì)MRNA模型進(jìn)行評(píng)估.Ubuntu數(shù)據(jù)集是目前最大的英文多輪對(duì)話語(yǔ)料庫(kù),內(nèi)容主要是從Ubuntu聊天內(nèi)容中提取出來(lái),作為對(duì)話問(wèn)題的公共語(yǔ)料庫(kù).Ubuntu數(shù)據(jù)集中積極的回答來(lái)自于人的對(duì)話,而消極的回答是從數(shù)據(jù)庫(kù)中隨機(jī)選擇的.訓(xùn)練集包含100萬(wàn)個(gè)對(duì)話上下文-回答-標(biāo)簽組,其中積極和消極的回答比例是相同的.在驗(yàn)證和測(cè)試集上,積極的回答和消極的回答的比例是1:9.豆瓣數(shù)據(jù)集是開(kāi)放域的中文數(shù)據(jù)集,從豆瓣網(wǎng)爬取得到,候選回答通過(guò)一個(gè)檢索系統(tǒng)獲得.表1顯示了兩個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息.
表1 數(shù)據(jù)集統(tǒng)計(jì)信息Table 1 Statistics of datasets
實(shí)驗(yàn)中對(duì)比算法的如下:
TF-IDF[23]:TF-IDF一般用于獲取給定單詞對(duì)某個(gè)文檔的重要程度.
RNN[23]:該模型使用兩個(gè)RNN分別對(duì)對(duì)話上下文和回答進(jìn)行時(shí)序建模,使用隱藏層計(jì)算出最后的分?jǐn)?shù).
LSTM[23]:該模型使用LSTM通過(guò)遺忘門移除上一層的隱藏層狀態(tài),對(duì)對(duì)話上下文和回答的長(zhǎng)期依賴性進(jìn)行建模.
MV-LSTM[34]:該模型將對(duì)話上下文視為一個(gè)句子構(gòu)造捕獲詞語(yǔ)信息的矩陣,然后使用RNN提取局部句子的相互信息,其重要性由四種類型的門決定.
Match-LSTM[35]:該模型將對(duì)話上下文連接成一個(gè)長(zhǎng)語(yǔ)句,兩個(gè)語(yǔ)句在每個(gè)位置上的交互是由其前綴之間的交互以及在詞語(yǔ)層面上的交互組成.
Multi-View[26]:該模型從話語(yǔ)序列視圖和單詞序列視圖兩種不同視圖的信息計(jì)算上下文和候選回答之間的匹配程度.它把對(duì)話上下文中的話語(yǔ)都看做單獨(dú)的語(yǔ)句,并沒(méi)有把對(duì)話上下文看做一個(gè)長(zhǎng)語(yǔ)句.
DL2R[27]:該模型首先使用不同方法,用先前對(duì)話上下文的話語(yǔ)來(lái)重構(gòu)對(duì)話上下文最后話語(yǔ).然后用RNN和CNN的組合表示候選的回答和先前重構(gòu)的話語(yǔ).最后,通過(guò)連接這些表示來(lái)計(jì)算匹配分?jǐn)?shù).
SMN[16]:該模型分別在詞語(yǔ)級(jí)和句子級(jí)分別對(duì)對(duì)話上下文的每個(gè)話語(yǔ)和回答進(jìn)行匹配并通過(guò)卷積和池化操作從話語(yǔ)回答對(duì)中提取重要的匹配信息.最后輸入到GRU中,對(duì)序列信息進(jìn)行建模.
DUA[30]:該模型首先使用GRU對(duì)話語(yǔ)進(jìn)行編碼,并且每個(gè)話語(yǔ)和最后一句話語(yǔ)進(jìn)行融合,提高最后一句話語(yǔ)在對(duì)話上下文中的權(quán)重.然后采用門控自注意機(jī)制直接將融合后的表示與自身進(jìn)行匹配,從而獲得更有區(qū)別性的語(yǔ)義特征.
上述對(duì)比模型中,TF-IDF是基于傳統(tǒng)統(tǒng)計(jì)的方法.RNN、LSTM是基于單一循環(huán)神經(jīng)網(wǎng)絡(luò)的單輪對(duì)話模型,MV-LSTM、Match-LSTM也是單輪對(duì)話模型,Multi-View、DL2R、SMN、DUA則為多輪對(duì)話模型.MRNA、SMN、DUA均采用CNN對(duì)詞矩陣和句子矩陣進(jìn)行特征提取,但MRNA獲取的是層級(jí)的序列信息,并且使用詞注意力機(jī)制獲取關(guān)鍵詞,而SMN、DUA則僅獲取單層的序列信息,詞矩陣的生成也僅僅是簡(jiǎn)單的將對(duì)話上下文和回答相乘.
在這兩個(gè)數(shù)據(jù)集上,詞向量的訓(xùn)練根據(jù)Gu等[14]的操作進(jìn)行.在Ubuntu數(shù)據(jù)集上,我們將300維Glove詞向量和100維Word2vec詞向量進(jìn)行連接操作,從而得到最終的詞向量.在中文Douban數(shù)據(jù)集上,我們將Song等[36]提出的200維詞向量和200維Word2vec詞向量進(jìn)行連接操作,從而得到最終的詞向量.因?yàn)橹形淖址刻?,我們只在Ubuntu數(shù)據(jù)集上使用字符級(jí)編碼,字符級(jí)表示使用的是150維的向量.對(duì)于字符級(jí)編碼,在卷積操作中使用3,4,5分別作為窗口大小進(jìn)行運(yùn)算.在多粒度語(yǔ)義信息融合層中,BiLSTM的隱藏層大小為200,層數(shù)為3.在單詞注意力模塊中,注意機(jī)制的大小為25.在匹配層中,GRU的隱藏層大小為200.我們的學(xué)習(xí)使用Adam作為優(yōu)化器,初始學(xué)習(xí)率是0.001.
本文采用與參考文獻(xiàn)[16]相同的評(píng)價(jià)指標(biāo).Rn@k表示在n個(gè)候選回答中,選擇了k個(gè)最匹配的回答,并且正確的回答在這k個(gè)回答之中.在Ubuntu數(shù)據(jù)集上,我們選擇R2@1,R10@1,R10@2,R10@5作為評(píng)價(jià)指標(biāo).在Douban數(shù)據(jù)集上,除了使用R10@1,R10@2,R10@5作為評(píng)價(jià)指標(biāo),我們還加入了MAP[37]、MRR[38]、P@1作為評(píng)價(jià)指標(biāo).
表2展示了MRNA和基準(zhǔn)算法在Ubuntu和Douban數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果.除MRNA模型外,其他模型的相關(guān)數(shù)據(jù)均來(lái)自其他文獻(xiàn).從表2的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),MRNA模型在兩個(gè)數(shù)據(jù)集的表現(xiàn)均優(yōu)于所有基準(zhǔn)算法.與LSTM、MV-LSTM等單輪對(duì)話算法相比,MRNA在各個(gè)評(píng)價(jià)指標(biāo)上都有明顯的提升.與效果最佳的單輪對(duì)話模型MV-LSTM相比,在Ubuntu數(shù)據(jù)集上,MRNA的R2@1、R10@1、R10@2、R10@5分別提升了3%、10.4%、6.4%、2.1%.在Douban數(shù)據(jù)集上,MRNA的R10@1、R10@2、R10@5分別提升了6.2%、8%、8.7%.從實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),MRNA模型相比于MV-LSTM模型有較大的性能提升.MRNA模型中,對(duì)話上下文中的每一個(gè)句子都和回答進(jìn)行匹配,并使用GRU對(duì)上下文特征信息進(jìn)行提取,從而保留了對(duì)話中的上下文信息.而MV-LSTM模型將對(duì)話上下文連接成一個(gè)長(zhǎng)句,忽略了對(duì)話間的上下文依賴.這也是單輪對(duì)話模型性能普遍低于多輪對(duì)話模型的主要原因.與SMN、DUA等多輪對(duì)話模型相比,MRNA也獲得了較優(yōu)的性能.和DUA相比,在Ubuntu數(shù)據(jù)集上,R10@1和R10@5分別提升了0.5%,R10@2的效果持平.在Douban數(shù)據(jù)集上,MRNA的所有評(píng)價(jià)指標(biāo)都提升了1%左右.這是因?yàn)樵贛RNA模型分別使用AHRE和詞注意力機(jī)制提取層級(jí)信息和句子中的關(guān)鍵信息.DUA模型盡管將對(duì)話上下文的每句話和最后一句話進(jìn)行融合,并且使用門控自注意力機(jī)制提取語(yǔ)義信息.但DUA沒(méi)有考慮序列的層級(jí)信息,并且詞矩陣未使用注意力機(jī)制提取其中的關(guān)鍵詞,這樣容易導(dǎo)致上下文語(yǔ)義信息的缺失.
表2 MRNA與基準(zhǔn)模型的性能對(duì)比Table 2 Overall performance of MRNA and the baseline models
表3 消融實(shí)驗(yàn)結(jié)果Table 3 Ablation experiment results
實(shí)驗(yàn)結(jié)果如表3所示,可以看出各模塊對(duì)MRNA模型的總體性均有積極的影響.MRNA w/o CHAR在Ubuntu數(shù)據(jù)集R2@1、R10@1、R10@2、R10@5分別下降了0.6%、1.7%、1.2%、0.3%.上述結(jié)果表明字符級(jí)編碼的有效性.字符級(jí)編碼主要是用來(lái)解決未登錄詞的問(wèn)題,避免由于某些不在詞匯表中的詞造成語(yǔ)義缺失的情況.MRNA w/o AHRE在Ubuntu數(shù)據(jù)集R2@1、R10@1、R10@2、R10@5分別下降了0.7%、1.7%、1.1%、0.4%,在Douban數(shù)據(jù)集上MAP和MRR分別下降了1%、1%.AHRE模塊使用多層BiLSTM提取序列信息,層數(shù)的選擇非常重要,并且會(huì)影響模型的效果.上述結(jié)果顯示,僅使用BiLSTM的效果并不理想,因?yàn)樗鼰o(wú)法捕獲足夠的時(shí)序信息.MRNA w/o Word Attention在Ubuntu數(shù)據(jù)集R2@1、R10@1、R10@2、R10@5分別下降了1.3%、2.7%、2.2%、0.9%,在Douban數(shù)據(jù)集上MAP和MRR分別下降了0.9%、0.6%.詞注意力機(jī)制模塊的主要功能是將對(duì)話上下文和回答中最匹配的單詞賦予較大的權(quán)重,將一些無(wú)用的單詞賦予較小的權(quán)重,從而達(dá)到提取關(guān)鍵詞的效果.上述結(jié)果也驗(yàn)證了詞注意力機(jī)制的有效性.MRNA w/o Split在Ubuntu數(shù)據(jù)集R2@1、R10@1、R10@2分別下降了0.2%、0.6%、0.3%,R10@5持平,在Douban數(shù)據(jù)集上MAP和MRR分別下降了0.8%、1.1%.將編碼后的句子進(jìn)行切分操作,這樣可以形成多粒度信息,從而有效地捕獲話語(yǔ)的潛在語(yǔ)義信息,克服話語(yǔ)之間的語(yǔ)義鴻溝.上述實(shí)驗(yàn)結(jié)果也證明了分割句子操作的有效性.
本節(jié)將通過(guò)實(shí)驗(yàn)分析MRNA模型中的參數(shù)對(duì)MRNA的性能影響.在MRNA模型中,利用了GRU按時(shí)間順序累積特征向量,從而對(duì)對(duì)話上下文和回答的特征按時(shí)序關(guān)系進(jìn)行建模.GRU隱藏層的設(shè)置成為了影響MRNA模型效果的重要超參.圖2中給出了不同超參數(shù)配置下GRU隱藏層大小對(duì)MRNA模型的影響.從Ubuntu數(shù)據(jù)集和Douban數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果來(lái)看,當(dāng)GRU隱藏層大小為200時(shí),模型效果最佳.當(dāng)GRU為100時(shí),隱藏層大小不足以按照時(shí)間順序累積特征,使向量的特征信息收到損失.當(dāng)GRU為300時(shí),隱藏層大小又過(guò)大了一些,導(dǎo)致引入了一些無(wú)關(guān)信息.從實(shí)驗(yàn)可以驗(yàn)證GRU為200時(shí)效果最佳.
圖2 GRU隱藏層大小對(duì)MRNA的影響Fig.2 Effect of GRU hidden layer size on MRNA
在MRNA模型中,使用AHRE對(duì)對(duì)話上下文和回答進(jìn)行編碼,從而提取對(duì)話上下和回答中豐富的時(shí)序信息.AHRE模塊的層數(shù)是影響MRNA模型效果的重要超參.實(shí)驗(yàn)結(jié)果如圖3所示,在兩個(gè)數(shù)據(jù)集上,當(dāng)AHRE模塊的層數(shù)為3時(shí),提取層級(jí)序列信息的效果最好,層數(shù)如果持續(xù)增加,可能會(huì)出現(xiàn)過(guò)擬合現(xiàn)象反而使模型效果下降.
圖3 AHRE層數(shù)對(duì)MRNA的影響Fig.3 Effect of AHRE layers on MRNA
本節(jié)通過(guò)可視化的方式研究展示詞注意力機(jī)制給語(yǔ)句中每個(gè)詞語(yǔ)所分配的注意力權(quán)重大小.MRNA的詞注意力模塊輸出的注意力權(quán)重分布根據(jù)每個(gè)單詞所賦予的注意力權(quán)重大小,顯示單詞的顏色.顏色越深,所賦予的權(quán)重越高.
本文在Douban數(shù)據(jù)集中選擇了一個(gè)案例進(jìn)行注意力權(quán)重可視化.例子如下{u1:什么星座是一個(gè)人在戰(zhàn)斗;u2:我一個(gè)人在戰(zhàn)斗白羊;u3:我也是一個(gè)人奮斗的白羊;R:請(qǐng)睡感謝在這個(gè)冷清的夜陪伴我的你祝明天考好;}.圖4顯示了Douban例子中u2和R的注意力權(quán)重分配.在u2中“戰(zhàn)斗”和“白羊”這兩個(gè)詞是這一句話的關(guān)鍵詞.因?yàn)樵趗1中正在詢問(wèn)的主體是“什么星座”,并且后面跟隨的動(dòng)詞也正好是“戰(zhàn)斗”.在圖4中,我們可以很明顯的看出u2中“戰(zhàn)斗”和“白羊”這兩個(gè)詞顏色較深,說(shuō)明分配了比較多的注意權(quán)重,“白羊”可以作為“什么星座”的回答,而u1和u2都出現(xiàn)了戰(zhàn)斗,上下呼應(yīng).在R當(dāng)中注意力權(quán)重主要集中在“冷清”、“陪伴”、“考”這幾個(gè)詞上面.“陪伴”和“考”是動(dòng)詞代表了這句話主要的動(dòng)作,而“冷清”形容了當(dāng)時(shí)的環(huán)境,這3個(gè)在句子中占有突出的意義.在圖4中還可以看出分配給“我”、“你”、“的”這樣的代詞和助詞比較少的注意力權(quán)重,說(shuō)明注意力機(jī)制可以減少無(wú)關(guān)詞在整個(gè)句子中的作用,從而證明注意力機(jī)制的有效性.
圖4 u2和R的注意力分布Fig.4 Attention distribution of u2 and R
本文中提出了一個(gè)結(jié)合詞注意力機(jī)制和多粒度的深度學(xué)習(xí)模型來(lái)解決多輪對(duì)話問(wèn)題.MRNA融合詞向量和字符級(jí)向量,從而獲得更加準(zhǔn)確的表征向量.為了更好的提取句子中的重要信息,MRNA提出了一種詞注意機(jī)制來(lái)更有效地提取對(duì)話上下文和回答匹配的關(guān)鍵詞信息.在句子信息的提取上,MRNA使用了分割句子的思想,擴(kuò)展了句子級(jí)別的粒度,從而進(jìn)一步增強(qiáng)了句子的語(yǔ)義信息.在兩個(gè)公共數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)表明MRNA模型可以產(chǎn)生最優(yōu)秀的效果.在未來(lái)的工作中,我們將會(huì)研究如何改善對(duì)于對(duì)話上下文的語(yǔ)義建模,如何更有效提取對(duì)話上下文中的時(shí)序信息.并且針對(duì)不同的對(duì)話主題和對(duì)話場(chǎng)景,從對(duì)話上下文中抽象出能代表對(duì)話主題的核心信息.