任建龍,楊 立,孔維一,左 春,3
1(中國科學(xué)院 軟件研究所 精準(zhǔn)計(jì)算聯(lián)合實(shí)驗(yàn)室,北京 100190)
2(中國科學(xué)院大學(xué),北京 100049)
3(中科軟科技股份有限公司,北京 100190)
近來,人機(jī)對話由于其潛在的商業(yè)價(jià)值受到廣泛關(guān)注[1-5].智能聊天機(jī)器人也就是對話系統(tǒng)在工業(yè)界得到了廣泛的應(yīng)用,如蘋果的Siri,谷歌的Google Assistant,阿里巴巴的阿里精靈,小米的小愛,百度的小度等.根據(jù)用戶的使用意圖,聊天機(jī)器人可以分為兩種,1) 目標(biāo)導(dǎo)向的聊天機(jī)器人,它的目的是幫助用戶完成諸如訂票、訂餐、預(yù)定等特定任務(wù);2) 非目標(biāo)驅(qū)動的聊天機(jī)器人,旨在通過與人交互提供有意義的回復(fù)和娛樂功能,也被稱為開放域的聊天機(jī)器人或閑聊機(jī)器人.傳統(tǒng)的聊天機(jī)器人采用流水線的設(shè)計(jì),如圖1,包括1) 語音識別;2) 自然語言理解;3) 用戶狀態(tài)追蹤;4) 策略學(xué)習(xí);5) 自然語言生成;6) 文本轉(zhuǎn)化為語音共六個(gè)部分.這種流水線的設(shè)計(jì)存在如下兩個(gè)缺點(diǎn):(1) 錯誤定位問題,研發(fā)人員從最終客戶得到關(guān)于系統(tǒng)質(zhì)量的反饋,而誤差定位和分析需要大量繁重的工作,因?yàn)樯嫌蔚恼`差會傳播到下游任務(wù);(2) 過程的內(nèi)部依賴,給系統(tǒng)的自適應(yīng)和調(diào)整帶來了困難,例如當(dāng)其中一個(gè)模塊使用新數(shù)據(jù)進(jìn)行訓(xùn)練,那么下游模塊也需要重新訓(xùn)練,而這個(gè)過程還需要大量的人工工作.當(dāng)前深度學(xué)習(xí)領(lǐng)域的成功大大促進(jìn)了多輪對話系統(tǒng)的發(fā)展,其中端到端的深度神經(jīng)網(wǎng)絡(luò)成為研究的重點(diǎn).與傳統(tǒng)流水線方式相比,端到端的方式不需要手工設(shè)計(jì)規(guī)則,并且不存在錯誤定位和對齊問題[2].然而構(gòu)建一個(gè)智能的對話機(jī)器人仍然面臨著如何進(jìn)行多輪交互式建模的問題,需要機(jī)器人理解來自不同對話輪次中的歷史對話信息和避免產(chǎn)生無意義的、冗余和重復(fù)的回復(fù).
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNNs),具體包括長短期記憶(Long Short-Term Memory,LSTM)[6]和門控循環(huán)神經(jīng)網(wǎng)絡(luò)(Gated Recurrent Neural Network,GRU)[7],作為強(qiáng)的基準(zhǔn)方式被廣泛應(yīng)用在自然語言處理領(lǐng)域(Natural Language Processing,NLP)中,如機(jī)器翻譯、對話建模和序列標(biāo)注[8-10].最近,記憶網(wǎng)絡(luò)被提出來用于自然語言理解中的語言建模[11-14].文獻(xiàn)[13,14]使用LSTM 或GRU 結(jié)合注意力機(jī)制,在聊天機(jī)器人的多輪對話中可以有效地進(jìn)行建模.然而現(xiàn)有的方法存在以下兩個(gè)方面的不足:
(1) 計(jì)算效率較低
大多數(shù)方法使用RNNs 類網(wǎng)絡(luò)模型,這種網(wǎng)絡(luò)結(jié)構(gòu)在建模時(shí)需要進(jìn)行序列對齊操作,執(zhí)行計(jì)算時(shí)是串行的,無法并行執(zhí)行和有效利用當(dāng)前高效的、加速計(jì)算的硬件資源,而這在大規(guī)模數(shù)據(jù)集上是十分重要和有意義的[9];
(2) 依賴強(qiáng)監(jiān)督信息和先驗(yàn)知識
一些方法使用強(qiáng)監(jiān)督信息,這些監(jiān)督信息包括手工設(shè)計(jì)的特征函數(shù),代價(jià)較大,同時(shí)不利于遷移到新的領(lǐng)域[13].還有的方法使用一些固定的先驗(yàn)知識[14],同樣不利于模型的擴(kuò)展和遷移,在特定領(lǐng)域構(gòu)建這類模型需要領(lǐng)域?qū)<抑贫ù罅康囊?guī)則.
本文對深度神經(jīng)網(wǎng)絡(luò)在聊天機(jī)器人領(lǐng)域內(nèi)的應(yīng)用展開研究,提出一種端到端的基于多注意力機(jī)制的記憶網(wǎng)絡(luò),試圖解決以上問題.該網(wǎng)絡(luò)具有相對簡單的并行結(jié)構(gòu),首先通過多注意力機(jī)制在不同子空間捕獲對話輪次中的重要信息對對話歷史進(jìn)行建模,其次使用捷徑連接疊加多注意力層來控制信息流通和對話歷史記憶的獲取,對歷史對話信息建模結(jié)果進(jìn)行多次推理.
本文的主要貢獻(xiàn)如下:
(1) 使用多注意力機(jī)制對對話歷史和上下文進(jìn)行建模,該機(jī)制允許模型學(xué)習(xí)去對齊關(guān)注相關(guān)重要的信息和獲取輸入和輸出之前的全局依賴.與當(dāng)前LSTM或GRU 使用的注意力機(jī)制不同的是,多注意力機(jī)制具有相對簡單的并行結(jié)構(gòu);
(2) 使用捷徑連接疊加多注意力層,形成多層的推理結(jié)構(gòu),對記憶單元進(jìn)行迭代推理,記憶單元就是多注意力機(jī)制建模的最新結(jié)果.該結(jié)構(gòu)通過控制信息在前一層和當(dāng)前層之間的流動來控制對記憶單元的動態(tài)讀取.
本文剩余內(nèi)容的組織方式如下,第1 節(jié)介紹背景知識,第2 節(jié)對本文提出的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了詳細(xì)闡述,第3 節(jié)描述了實(shí)驗(yàn)過程并對實(shí)驗(yàn)結(jié)果進(jìn)行分析,第4 節(jié)介紹了相關(guān)工作,第5 節(jié)總結(jié)了本文工作.
一個(gè)對話任務(wù)中一般包含歷史對話c和當(dāng)前用戶輸入u,產(chǎn)生回復(fù)r,可用如下公式表示:
記憶網(wǎng)絡(luò)[11-15]整體上提供一個(gè)可讀寫的記憶模塊,從而實(shí)現(xiàn)對大量長期的記憶進(jìn)行建模和推理,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,包括輸入、記憶、輸出和響應(yīng)4 個(gè)基本組件.
圖2 記憶網(wǎng)絡(luò)的一般結(jié)構(gòu)
給定輸入x,記憶網(wǎng)絡(luò)各個(gè)模塊的執(zhí)行流程和作用如下:
(1) Input:將原始輸入x進(jìn)行編碼表示為一個(gè)低維緊湊的向量R(x);
(2) Memory Generalization:給定新的輸入時(shí)更新記憶單元;
(3) Output:使用注意力機(jī)制對當(dāng)前輸入和記憶單元進(jìn)行讀取和推理;
(4) Response:根據(jù)當(dāng)前輸出產(chǎn)生最終的回復(fù).
記憶網(wǎng)絡(luò)及其相關(guān)變體整體上都遵循這個(gè)結(jié)構(gòu),在具體的一些表示方法、記憶更新以及讀取方式上略有不同.現(xiàn)有的大多數(shù)基于注意力機(jī)制的方法使用循環(huán)結(jié)構(gòu)LSTM 或GRU,這些循環(huán)結(jié)構(gòu)相對復(fù)雜從而導(dǎo)致計(jì)算效率比較低.有些方法使用強(qiáng)監(jiān)督信息或先驗(yàn)知識,不利于擴(kuò)展和遷移應(yīng)用.
針對現(xiàn)有記憶網(wǎng)絡(luò)中存在的計(jì)算效率低和對額外信息輸入的依賴問題,本文提出一種端到端的多注意力記憶網(wǎng)絡(luò).該網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,包括文本表示、多注意力層、捷徑連接的堆疊結(jié)構(gòu),以下對這三個(gè)部分分別展開闡述.
圖3 本文提出的多注意力記憶網(wǎng)絡(luò)
深度神經(jīng)網(wǎng)絡(luò)具有自主的學(xué)習(xí)表征的能力,因此也被稱為表示學(xué)習(xí).詞向量是神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型的產(chǎn)物,它是一個(gè)緊湊和低維的分布式向量表示,維度經(jīng)常在20 至500 之間取值,相比傳統(tǒng)的one-hot 表示方式,它包含了可學(xué)習(xí)的語義信息.本文對于輸入的文本采用直接嵌入的詞向量,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練和學(xué)習(xí)的過程中固定詞向量表示矩陣.具體地,詞向量表示矩陣被初始化為E,如公式(5)所示,對于所有的輸入包括用戶輸入、機(jī)器響應(yīng)以及候選答案都使用這個(gè)矩陣,目的是更充分地訓(xùn)練詞向量矩陣,詞嵌入相當(dāng)于一個(gè)查表操作.
因?yàn)榛诙嘧⒁饬Φ木W(wǎng)絡(luò)結(jié)構(gòu)不能利用序列的位置信息,因此本文在詞向量的基礎(chǔ)上采用位置編碼(Position Encoding,PE)來獲取單詞的全局和局部信息.如式(6)和式(7)所示,其中pos表示單詞的位置信息,i表示詞向量的維度信息,dmodel與詞向量的維度一樣,使二者可以相加,在本文中取值為128.
最終文本的表示為詞向量嵌入和位置編碼的和,即:
在進(jìn)行對話歷史和上下文的建模之前,先利用上一節(jié)所述的文本表示方法將輸入轉(zhuǎn)化為向量表示.記憶單元的key 表示為K,value 表示為V,用戶輸入表示為Q.這3 個(gè)輸入的維度是一樣的,與式(6)和式(7)中的dmodel維度相同.
如圖4所示,左側(cè)為單層點(diǎn)乘注意力,對用戶輸入Q和記憶單元的key-K進(jìn)行點(diǎn)積運(yùn)算,然后利用softmax函數(shù)計(jì)算注意力的值(注意力的值分布在0 至1 之間),如式(9)所示,與基礎(chǔ)的點(diǎn)乘注意力不同的是,這里還對點(diǎn)乘的結(jié)果除以K的維度dK也即dmodel.
圖4 單層點(diǎn)乘注意力(左),并行多注意力(右)
如式(10)所示,多注意力機(jī)制[9]就是并行地執(zhí)行單層點(diǎn)乘注意力,這個(gè)并行執(zhí)行過程是先將維度空間(例如詞向量維度)劃分為h個(gè)部分,然后在每個(gè)部分分別計(jì)算單層的點(diǎn)乘注意力.這樣做的目的是通過在不同子空間進(jìn)行注意力機(jī)制的計(jì)算,使模型在不同子空間獲得關(guān)于不同信息成分不同程度的關(guān)注,進(jìn)而獲得全局或局部的依賴信息,讓模型去關(guān)注對話不同輪次中重要的信息.此外,對于三個(gè)輸入部分乘以一個(gè)線性矩陣做線性映射的轉(zhuǎn)換,進(jìn)一步加強(qiáng)神經(jīng)網(wǎng)絡(luò)的表征能力.
最后,這些并行的不同空間經(jīng)過不同關(guān)注的信息值被按照順序拼接,然后再乘以一個(gè)線性矩陣做線性映射作為輸出.
在記憶網(wǎng)絡(luò)的相關(guān)研究中,已經(jīng)證明了一種稱為multi-hops 的重復(fù)多層結(jié)構(gòu)對于記憶和用戶輸入的推理是有效的.在本文的工作中,通過疊加多注意力層實(shí)現(xiàn)這種重復(fù)推理的方法.同時(shí),本文集成了捷徑連接(shortcut connections) 機(jī)制.這種機(jī)制允許網(wǎng)絡(luò)自主學(xué)習(xí)它應(yīng)該從前一層流到下一層的信息量,進(jìn)而實(shí)現(xiàn)對于信息的靈活讀寫和獲取.
捷徑連接的機(jī)制首先應(yīng)用于計(jì)算機(jī)視覺的圖像識別任務(wù)[16],在殘差網(wǎng)絡(luò)(residual network)中使用的方式是恒等映射(identity mapping),如式(12)所示,其中g(shù)(·)表示激活函數(shù),x表示輸入.
恒等映射是一種固定的連接前一層與當(dāng)前層的機(jī)制,即它無法靈活自主得決定信息的流通量.在文獻(xiàn)[17]的highway network 中采取可學(xué)習(xí)的門控連接來控制信息的流通量,如式(13)所示,其中 ?表示逐元素對應(yīng)的乘法操作,T(x)是一個(gè)可學(xué)習(xí)的非線性轉(zhuǎn)換函數(shù),本文中采取雙曲正切tanh函數(shù).
如式(14)所示,本文通過門控的捷徑連接方式來堆疊多注意力層.其中S表示堆疊的層數(shù),o是式(11)中的輸出,表示上一多注意力層的輸出.這種門控機(jī)制是與輸入相關(guān)的非線性函數(shù),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,它可以自主調(diào)整到一個(gè)合適的參數(shù)空間,進(jìn)而控制信息的流通.
最終的輸出選取最后堆疊層S的輸出和候選答案做相關(guān)性計(jì)算,選擇概率最大的回復(fù)作為機(jī)器人的最終響應(yīng),如式 (15) 所示,其中U1表示用戶輸入,US表示堆疊層最后的輸出,C表示候選答案的向量表示.
為了驗(yàn)證多注意力記憶網(wǎng)絡(luò)的有效性,本文選取bAbI 對話數(shù)據(jù)集[15]進(jìn)行實(shí)驗(yàn)驗(yàn)證,該數(shù)據(jù)集為訂餐領(lǐng)域的多輪對話實(shí)例,由11 個(gè)任務(wù)組成,涵蓋回復(fù)準(zhǔn)確性,對話完成率和可擴(kuò)展性等多方面要求.實(shí)驗(yàn)環(huán)境為:Intel (R) Xeon (R) CPU E5-2640 @ 2.40 GHz,32 GB 內(nèi)存,NVIDIA Quadro P2000 顯卡,Centos 7.3 操作系統(tǒng).
bAbI 對話數(shù)據(jù)集是從典型的面向任務(wù)的多輪對話系統(tǒng)中收集或生成的.bAbI 對話數(shù)據(jù)集包括6 個(gè)任務(wù):1) T1:發(fā)出API 調(diào)用,2) T2:更新API 調(diào)用,3) T3:顯示選項(xiàng),4) T4:提供額外信息,5) T5:進(jìn)行完整對話 (上述4 個(gè)任務(wù)的集成),6) T6:對話狀態(tài)跟蹤挑戰(zhàn)語料庫(DSTC 2).所有6 個(gè)任務(wù)都屬于餐廳預(yù)訂領(lǐng)域.每項(xiàng)任務(wù),有1000 個(gè)對話用于訓(xùn)練,1000 個(gè)對話用于驗(yàn)證,1000 個(gè)對話用于測試.對于任務(wù)1-5,提供了包含對話的第二測試集 (具有后綴-OOV.txt),所述對話包括訓(xùn)練和開發(fā)集中不存在的實(shí)體.任務(wù)6 由真實(shí)的人機(jī)對話生成,其數(shù)據(jù)來自第二對話狀態(tài)跟蹤挑戰(zhàn)[18].DSTC2數(shù)據(jù)集最初是為對話狀態(tài)跟蹤而設(shè)計(jì)的 (每一輪都標(biāo)有狀態(tài):用戶意圖+插槽).因此,為了評估端到端模型的性能,文獻(xiàn)[15]將該數(shù)據(jù)集轉(zhuǎn)換為與上述5 個(gè)任務(wù)格式相同的第6 個(gè)任務(wù).任務(wù)6 與前5 個(gè)任務(wù)具有類似的統(tǒng)計(jì)信息,由于其包含部分語音識別錯誤并且存在噪聲信息,因此具有更高的難度.
bAbI 對話數(shù)據(jù)集主要指標(biāo)是每輪響應(yīng)準(zhǔn)確率,即每次對話機(jī)器人回復(fù)正確的輪次占所有對話輪次的比例.本文選取監(jiān)督詞向量(LTR-SEM)[15]、循環(huán)端到端記憶網(wǎng)絡(luò)(MEMR)[13]作為與多注意力記憶網(wǎng)絡(luò)(MEMMA)比較的標(biāo)準(zhǔn).如圖5左側(cè)所示為每輪響應(yīng)準(zhǔn)確率的比較,LTR-SEM 除T1 外準(zhǔn)確率均低于MEMR和MEMMA,在T1,T2,T2-OOV,T3,T3-OOV這五個(gè)任務(wù)上MEMR和MEMMA 的表現(xiàn)相近,其中T1和T2 兩個(gè)對話任務(wù)兩個(gè)模型都獲得100%的準(zhǔn)確率,但是在T1-OOV,T4,T4-OOV,T5,T5-OOV 這5 個(gè)任務(wù)上,本文提出的模型表現(xiàn)優(yōu)于MEMR,在所有10 個(gè)任務(wù)上的平均準(zhǔn)確率提高了1.65%.在每輪對話時(shí)可以添加匹配特征,包括對話輪次的時(shí)間信息和對話發(fā)起者(機(jī)器人或用戶),添加匹配特征的方法后,MEMR和MEMMA 關(guān)于每輪響應(yīng)準(zhǔn)確率的比較結(jié)果如圖5右側(cè)所示,在T1,T3,T4,T4-OOV 這4 個(gè)任務(wù)上二者的表現(xiàn)相近,其中T1,T3,T4-OOV 都取得了100%的準(zhǔn)確率,而MEMMA 在T2,T2-OOV,T3-OOV,T5,T5-OOV 這5 個(gè)任務(wù)上的準(zhǔn)確率都高于MEMR,在所有10 個(gè)任務(wù)上的平均準(zhǔn)確率,前者比后者高1.46%.第6 個(gè)任務(wù)來自真實(shí)對話場景的數(shù)據(jù),該數(shù)據(jù)中包含語音識別的錯誤和噪音,同時(shí)又因?yàn)槠鋸奶畈蹖υ捴修D(zhuǎn)換為端到端的類型,任務(wù)整體難度更大.在該任務(wù)上的實(shí)驗(yàn)結(jié)果如表1所示,在每輪對話回復(fù)準(zhǔn)確率的比較上,MEMMA 比LTR-SEM和MEMR 分別提高18.5%和1.4%;在添加匹配特征后的比較中,MEMMA 相比MEMR 在每輪回復(fù)準(zhǔn)確率上高2.6%.實(shí)驗(yàn)結(jié)果表明,在多輪對話的建模中,本文提出的M E M M A 比MEMR 更加有效.
圖5 左側(cè)為每輪回復(fù)準(zhǔn)確率比較,右側(cè)為添加匹配特征的的每輪回復(fù)準(zhǔn)確率比較
多注意力記憶網(wǎng)絡(luò)具有相對簡單的并行結(jié)構(gòu),為了驗(yàn)證其有助于提高計(jì)算效率,針對循環(huán)端到端記憶網(wǎng)絡(luò)[13]和本文提出的網(wǎng)絡(luò),我們選取二者在相同實(shí)驗(yàn)環(huán)境下的訓(xùn)練時(shí)間進(jìn)行比較.實(shí)驗(yàn)結(jié)果如表2所示,取200 次迭代訓(xùn)練的時(shí)間 (重復(fù)10 次取平均值)作為比較基準(zhǔn),在全部11 個(gè)任務(wù)中,本文提出的網(wǎng)絡(luò)所需的訓(xùn)練時(shí)間相比MEMR 均有所減少.實(shí)驗(yàn)結(jié)果表明,本文提出的多注意力記憶網(wǎng)絡(luò)大約提升了50%的計(jì)算效率,這是因?yàn)閷τ诮o定一個(gè)長度為n的序列,循環(huán)結(jié)構(gòu)的注意力執(zhí)行序列操作的時(shí)間復(fù)雜度是 O(n),而并行的多注意力機(jī)制執(zhí)行序列操作只需要常數(shù)級的時(shí)間復(fù)雜度O (1).
表1 任務(wù)6 即DSTC2 數(shù)據(jù)上的每輪回復(fù)準(zhǔn)確率比較
表2 模型訓(xùn)練時(shí)間的比較(單位:s)
在大多數(shù)NLP 任務(wù)中,例如機(jī)器翻譯,文本分類和對話建模[8,9,19],現(xiàn)有工作已經(jīng)證明循環(huán)或門控網(wǎng)絡(luò)和自注意力機(jī)制的結(jié)合可以有效地進(jìn)行語言建模.這種序列對齊的循環(huán)結(jié)構(gòu)使得其難以解決計(jì)算效率、梯度消失和長期依賴性的問題.最近,一系列語言建模和語言理解專注于記憶類網(wǎng)絡(luò).記憶類網(wǎng)絡(luò)可以通過學(xué)習(xí)讀寫內(nèi)容來推理長期記憶模塊,并且已被廣泛應(yīng)用,如語言建模[11],問答[13,14]和多輪對話[15].相關(guān)的工作最早提出的是非端到端的記憶網(wǎng)絡(luò),這種結(jié)構(gòu)依賴額外的強(qiáng)監(jiān)督信息輸入,所以并不是端到端的[20].后來的工作改進(jìn)了記憶網(wǎng)絡(luò)的組件,例如,讀,寫和記憶模塊.一些研究使用動態(tài)記憶機(jī)制來調(diào)節(jié)記憶的相互作用,但它具有代價(jià)較高的的手工特征功能和較復(fù)雜的循環(huán)或門控結(jié)構(gòu)[13,14].本文提出基于多注意力機(jī)制[9]的記憶網(wǎng)絡(luò),整體結(jié)構(gòu)與記憶類網(wǎng)絡(luò)類似,包含可供讀寫的記憶單元,但與現(xiàn)有記憶網(wǎng)絡(luò)的不同之處在于:1)使用并行的多注意力機(jī)制代替循環(huán)注意力機(jī)制,結(jié)構(gòu)較簡單可以提高計(jì)算效率,同時(shí)可以更有效地捕獲全局依賴關(guān)系;2)未依賴額外的監(jiān)督信息或先驗(yàn)知識,可以進(jìn)行端到端的訓(xùn)練.
在神經(jīng)網(wǎng)絡(luò)優(yōu)化的背景下,梯度消失問題已經(jīng)被研究了很長時(shí)間[21],文獻(xiàn)[16]提出了一種用于圖像識別的殘差連接(residual connections),已被證明可有效地克服消失梯度問題.類似的工作是Highway Network采用可微分的門控機(jī)制[17].本文引入捷徑連接機(jī)制,將多個(gè)多注意力層與捷徑連接相結(jié)合構(gòu)建疊加的多層重復(fù)結(jié)構(gòu).
本文提出一種多注意力記憶網(wǎng)絡(luò)來對聊天機(jī)器人進(jìn)行多輪對話的建模和推理.具體而言,首先采用關(guān)注不同對話輪次重要信息的多注意力機(jī)制對會話語境和歷史記憶進(jìn)行建模,該機(jī)制具有相對簡單和并行的結(jié)構(gòu).然后提出了具有捷徑連接的疊加多層推理結(jié)構(gòu).與現(xiàn)有方法相比,本文提出的網(wǎng)絡(luò)不依賴于代價(jià)較大的附加監(jiān)督信息或先驗(yàn)知識,提供了一種更為簡潔的端到端方式.通過在bAbI 數(shù)據(jù)集所有11 個(gè)任務(wù)上的實(shí)驗(yàn)表明,多注意力記憶網(wǎng)絡(luò)可以有效地建模和推理多輪對話交互,性能優(yōu)于循環(huán)端到端記憶網(wǎng)絡(luò).