管夢雨,王中卿,李壽山,周國棟
(蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)
人機對話系統(tǒng)目前受到學術界和工業(yè)界的廣泛關注。構建一個較完備的人機對話系統(tǒng)涉及NLP技術的很多方面,如句法分析[1]、命名實體識別[2]等。文本研究的是多輪對話生成任務,具體來說就是根據(jù)說話者之間已經(jīng)發(fā)生的對話信息,自動生成自然合理的回復,在信息交互的過程中協(xié)助用戶完成特定的任務。隨著端到端框架在機器翻譯[3]領域取得了較好的效果,學者們將其應用到對話生成任務中,即將歷史對話信息作為編碼器的輸入,經(jīng)過編碼器與解碼器的映射得到回復。
在對話中,主題簡要地表明了整段對話的內(nèi)容,用于理解對話的含義;情感表明了話語的極性,用于識別說話者的觀點;意圖作為話語的語義標簽,用于描述說話者的動作意圖。原則上,對主題、情感和意圖的識別有助于對話語內(nèi)容的理解。表1給出了一組對話示例,整段對話是關于“日常生活”的討論且對話中的每句話都有明確的情感和意圖傾向。我們發(fā)現(xiàn),同一說話者的情感往往是保持不變的;說話者B作為對話中被動的一方,意圖往往受到對話發(fā)起者A的意圖的影響。因此本文通過識別對話的主題及每個話語的情感和意圖,對生成的回復進行約束。若我們要生成的是第二輪回話中說話者B的回復,本文方法將生成與對話主題相關、情感傾向于“中性”、意圖傾向于“承諾”的回復,而不是我們通常得到的例如“好的”“我不知道”等安全回復[4]。
表1 對話示例
以往的對話生成模型中往往忽視了主題、情感和意圖傾向的重要性,因此本文提出了基于對話約束的回復生成模型。具體來說,在訓練階段,一方面,編碼器中我們采用單詞級別的LSTM網(wǎng)絡對對話歷史信息中的每個子句進行特征抽取,得到每個上下文特征向量。我們將所有的上下文特征向量整合為一個固定維度的向量作為整組對話的中間語義向量。解碼器中我們同樣采用單詞級別的LSTM網(wǎng)絡,同時考慮中間語義向量和目標回復向量生成回復。另一方面,我們用上下文的特征向量和生成回復的特征向量來預測整段對話的主題和每個子句的情感和意圖。本文方法中,主題預測模型、情感預測模型、意圖預測模型和對話生成模型共享了編碼和解碼階段的參數(shù)。在編碼階段,通過對主題、情感、意圖的識別,我們可以更好地理解對話中各子句的語義,生成更高質(zhì)量的中間向量;在解碼階段,在更高質(zhì)量的中間語義向量的基礎上,對生成回復的情感和意圖進行識別,使得我們生成的回復與對話信息相關且具有合理的情感和意圖傾向。在生成階段,我們僅需將歷史對話信息作為模型輸入,即可生成更高質(zhì)量的回復。在DailyDialog數(shù)據(jù)集上的相關實驗結果表示,我們提出的模型明顯優(yōu)于基線系統(tǒng)。
本文的組織結構如下: 第1節(jié)主要介紹對話生成的相關工作;第2節(jié)主要描述基于對話約束的回復生成模型;第3節(jié)是實驗設置的介紹和實驗結果分析;最后,在第4節(jié)中對研究工作進行總結,同時提出了下一步的研究方向。
隨著社交網(wǎng)絡中聊天語料的積累和硬件計算性能的優(yōu)化,模型得以利用深度學習[5]方法捕獲歷史對話中的特征信息,自動生成回復。Google的Vinyals等人[6]首先將機器翻譯中的“序列-序列”模型應用于對話生成任務中,其將回復生成問題視作翻譯問題,編碼器與解碼器均采用RNN提取特征,包括門控循環(huán)神經(jīng)單元(Gated Recurrent Unit, GRU)[7]、長短時記憶網(wǎng)絡[8](Long Short-Term Memory Network, LSTM)等,均取得了可觀的效果。對話通常是一個持續(xù)、動態(tài)的過程,生成回復時需要考慮當前的對話語境,即歷史信息。如何從歷史信息中捕獲到更多的信息成為提高生成回復質(zhì)量的一個方向。多輪對話的歷史信息由多個子句組成,而回復往往只與某些相關子句和相關單詞有關,無差別地對所有上下文進行編碼顯然是不合理的。Tian等人[9]提出了Wseq模型,利用余弦相似度來衡量上下文子句的重要性。Xing等人[10]提出了HRAN模型,引入傳統(tǒng)的注意力機制,分別從句子級別和單詞級別捕獲歷史信息中的相關子句和相關單詞。Chen等人[11]提出了HVMN模型,使用了內(nèi)存網(wǎng)絡,使得模型可以在解碼中檢索到相關上下文。Zhang等人[12]提出了ReCoSa模型,其應用自注意力機制來解決長距離依賴問題來捕獲相關歷史信息。是否擁有外部信息(包括常識信息、說話者的以往經(jīng)驗等)是人與模型的最大的不同?;诖?,Kumar等人[13]提出了DMN模型,結合常識信息使得模型生成更加人性化的回復。對主題的約束能保證生成回復與對話語義的一致性。Mou等人[14]提出了seq2BF模型,其利用逐點互信息預測一個名詞作為主題詞,進而生成包含主題詞的回復。主題詞不一定出現(xiàn)在生成的回復中,可用作回復隱式約束。Yao等人[15]在Seq2Seq的基礎上引入了控制主題的網(wǎng)絡單元,主題則體現(xiàn)在每個時刻的狀態(tài)更新中。Xing等人[16]提出了TA-Seq2Seq模型,引入了LDA主題模型,在解碼時利用注意力機制增加主題詞出現(xiàn)的概率。Dziri等人[17]提出了THRED模型,聯(lián)合層次化的注意力機制,結合歷史信息與主題信息,使得回復更加多樣化。人與人的交流中總是蘊含著豐富的情感,因此增加模型的情感控制能力也至關重要。Ghosh等人[18]提出了Affect-LM模型,在解碼時融入情感類別和情感強度來生成具有一定情感的回復。Zhou等人[19]提出了ECM模型,在情感編碼的基礎上引入了外部記憶和內(nèi)部記憶,用來控制明確的外部情感和變換的內(nèi)部情感。Song等人[20]提出了EmoDS模型,同時考慮顯示和隱式的情感表征。Asghar等人[21]融合情感詞向量、情感目標函數(shù)、情感搜索算法三個方面來生成具有強烈感情的回復。在對話過程中,意圖起著關鍵作用,只有學習到說話者的動機,才能生成更合理的回復。Jo等人[22]提出了基于對話行為序列的無監(jiān)督模型。Zhang等人[23]提出了HRG模型,利用分層響應機制來捕獲對話中的意圖。
受上述工作的啟發(fā),考慮對話中的主題、情感、意圖能很好地緩解通用回復的問題,但以往的研究沒有同時考慮這三個屬性。因此,本文提出了基于對話約束的回復生成模型。通過對對話的主題、情感和意圖的約束來生成更高質(zhì)量的回復。
我們的任務旨在自動生成合理自然的對話回復。一組對話由兩個對話者之間發(fā)起的m/2輪對話組成,可表示為對話序列D={U1,U2,…,Um},其中Ux(x=1,2,…)稱為對話的子句。對話生成模型目的是在第m/2輪時,根據(jù)前面的m-1個子句{U1,U2,…,Um-1}計算在此情況下生成句子Um的概率,即P(Um|U1,U2,…,Um-1)。每個句子Um是可變長的單詞序列,可表示為Um={wm,1,wm,2,…,wm,Nm}。wm,n表示第m個句子中的第n個單詞,Nm表示Um中的單詞個數(shù)。通過前m-1個子句和當前已經(jīng)生成的單詞來逐字預測下一個詞,直到達到特定的句子長度或者生成結束符,預測結束,得到回復Um。P(Um|U1,U2,…,Um-1)可表示為如下公式:
(1)
本文采用的是基于LSTM網(wǎng)絡的Seq2Seq模型。該模型包括編碼器(Encoder)、解碼器(Decoder)、主題預測模型、情感預測模型和意圖預測模型五個模塊。編碼器網(wǎng)絡和解碼器網(wǎng)絡分別對應輸入序列和輸出序列的兩個神經(jīng)網(wǎng)絡,本實驗中編碼器和解碼器均采用LSTM網(wǎng)絡分別對歷史信息和生成回復進行編碼。具體流程為歷史上下文信息通過編碼器編碼,得到整個上下文的表征向量,即中間語義向量C,接著將該向量傳遞至解碼器中,解碼器則根據(jù)中間語義向量C和遞歸隱藏狀態(tài),計算詞匯表中每個詞的概率分布,生成下一個詞,并將其作為下一個時刻的輸入,直至遇到結束符標志或達到指定的長度時結束解碼。另外,我們的模型(Joint Topic Emotion and Act,JTEA)在模型訓練階段,從編碼器和解碼器的LSTM網(wǎng)絡中學習對話歷史信息中每個子句和生成回復的特征表示。這些特征向量用于預測每個話語的情感和意圖,以及整段對話的主題。主題預測、情感預測和意圖預測作為對話回復生成的輔助任務,只在模型訓練階段進行,幫助學習編碼器和解碼器中的共享參數(shù),對生成回復的主題、情感和意圖進行約束。模型網(wǎng)絡結構如圖1所示。
2.1.1 編碼器
編碼器是將輸入序列編碼成一個中間語義向量C。本實驗中使每個子句分別經(jīng)過LSTM神經(jīng)網(wǎng)絡,得到每個子句的特征向量,然后取這些特征向量的平均值,作為中間語義向量C。我們可以在兩個層次上討論話語序列: 每組對話由子句序列組成,而每個子句由單詞序列組成?;诖耍瑢τ诮o定子句Ux={wx,1,wx,2,…,wx,Nx},經(jīng)過LSTM網(wǎng)絡,將最后一層的隱藏層的輸出hNx作為該子句的語義向量。本文為歷史信息中的每個子句分別構建一個LSTM模型,則歷史信息中的子句經(jīng)過編碼后的表示為Hc={h1,h2,…,hm-1}。取所有LSTM模型輸出的平均值作為整組對話的中間語義向量C。
2.1.2 解碼器
解碼器是將編碼器中生成的中間語義向量C再轉化成輸出序列。解碼器中我們同樣采用LSTM神經(jīng)網(wǎng)絡對已經(jīng)生成的回復進行編碼,得到隱藏向量表示hr。在解碼階段,我們會用輸出序列{y1,y2,…,yt-1}以及固定的中間語義向量C來預測下一個輸出的單詞yt,即
(2)
通常情況下,會為解碼器指定生成文本最大長度和結束字符。在解碼過程中,只要符合上述兩個條件之一,解碼過程就會結束。解碼器的輸出并不是文本,而是一個向量,這個向量代表著當前這個神經(jīng)單元輸出對應詞表的概率分布,通常選擇概率最高的作為輸出,但概率最高的往往是“好的”“是的”等安全回復。因此,我們引入了主題、情感、意圖識別幫助模型更好地理解對話內(nèi)容,生成與對話語義一致且具有合理情感和意圖傾向的回復。
圖1 模型網(wǎng)絡結構圖
2.1.3 主題預測模型
2.1.4 情感預測模型
(6)
2.1.5 意圖預測模型
(7)
我們聯(lián)合損失函數(shù)來同時優(yōu)化主要任務和輔助任務。
主要任務多輪對話生成的目標是在給定輸入歷史信息序列H={U1,U2,…,Um-1}的情況下,最大化輸出Um的概率。因此,主任務的損失main如式(8)、式(9)所示。
這里θ為模型需訓練的參數(shù),(H,Um)是訓練集中的歷史信息和回復序列對。
最后,聯(lián)合損失為如式(13)所示。
=main+topic+senti+act
(13)
本實驗選擇DailyDialog作為語料[24],該語料收集于英語學習網(wǎng)站的對話練習。該語料的基本統(tǒng)計信息如表2所示,共包含13 118個多回合對話,平均每組對話輪數(shù)為7.9,平均每句對話的單詞數(shù)為14.6,平均每組對話的單詞數(shù)為114.7。該數(shù)據(jù)集中的對話反映了我們的日常交流方式,涵蓋了我們?nèi)粘I畹母鞣N話題,每句話都標注了情感和意圖類別。其中主題分為10類: 校園生活(School Life)、工作(Work)、健康(Health)、日常生活(Ordinary Life)、人際關系(Relationship)、文化與教育(Culture & Education)、政治(Politics)、態(tài)度與情感(Attitude & Emotion)、旅游(Tourism)、金融(Finance);情感分為7類,在本實驗中我們?yōu)榱烁玫刈R別情感,將情感重新分為中性(Neutral)、積極(Positive)、消極(Negative)三類;意圖分為4類: 陳述(Inform)、詢問(Question)、指示(Directive)、許諾(Commissive)。
表2 DailyDialog基本信息統(tǒng)計
本實驗中,我們研究四輪對話,因此過濾了少于八句的對話,并截取大于或等于八句對話中的前八句。在以上條件下,挑選5 835組對話作為訓練集,200組作為測試集。圖2、圖3、圖4分別給出了過濾后的數(shù)據(jù)集中主題、情感、意圖的類別概率分布。從圖中發(fā)現(xiàn),對話中情感為中性的話語占大多數(shù),意圖為陳述和詢問的話語占比高于其他兩種意圖。
圖2 話題類別分布
圖3 情感類別分布
圖4 意圖類別分布
圖5展示了同一輪對話中前一句的意圖確定時,后一句話的意圖類別的概率分布。從圖中我們發(fā)現(xiàn)對話中不同角色的意圖是有一定關聯(lián)的。對話由前后兩個說話者交替完成,前者往往占主導地位,后者的意圖隨著前者的意圖的改變而變化。例如,詢問和陳述往往是同時發(fā)生的,因為當有人向我們提問時,我們通常不會轉移話題,而是禮貌地回復別人的問題。
圖5 同一輪對話中意圖的影響
圖6展示了同一說話者前一句的情感確定的條件下,后一句的情感類別的概率分布,這里我們只考慮了話語的情感為積極或者消極的情況。從圖中我們看出,同一情感同時出現(xiàn)的概率遠遠高于其他情感,這說明同一說話者的情感基調(diào)通常是保持不變的?;谏鲜龇治觯覀儼l(fā)現(xiàn)對對話的情感和意圖進行識別在回復生成中是非常重要的。
圖6 同一說話者情感的影響
3.2.1 自動評估
本文使用BLEU(Bilingual Evaluation Under-study)[25]來衡量所產(chǎn)生的響應與真實響應之間的相關性。本文主要使用BLEU-1、BLEU-2和BLEU-3來評測實驗效果。本文還使用詞嵌入之間的余弦相似度來度量詞之間的相似性,可分為三類: Average[26]、Greedy[27]和Extrema[28]。
3.2.2 人工評估
本文加入了人工評價指標[29],由三個具有相關知識背景的工作者進行打分。打分規(guī)則為: 0: 完全不合理或惡意回復;1: 不相關的通用回復;2: 稍微相關的回復;3: 回復相關且合理。Score: 所有分數(shù)的加權求和。
為了得到最優(yōu)模型,經(jīng)過調(diào)整本實驗設置的相關參數(shù)如表3所示。
表3 模型參數(shù)設置
在前人關于對話回復生成的研究的基礎上,本文選取了Seq2Seq、Multi、Dir-VHRED、ReCoSa、HRG五個模型進行對比實驗。接下來,我們將分別介紹這五個模型。
(1)Seq2Seq模型[30]: 將前七句歷史對話信息拼接成一個向量作為輸入,為其構建一個LSTM模型,以此LSTM模型的輸出作為中間語義向量,然后解碼生成對話回復。此模型為一個單輸入模型。
(2)Multi模型: 將前七句話分別作為輸入,為每個子句構建LSTM模型,將所有LSTM的輸出的平均值作為中間語義向量,然后解碼生成對話回復。此模型為一個多輸入模型。
(3)Dir-VHRED模型[31]: 使用Dirichlet分布來描述VHRED中的潛在變量。
(4)ReCoSa模型[32]: 使用自注意力機制來更新上下文和被屏蔽的響應表示,并在解碼過程中使用上下文和響應表示之間的注意力權重。
(5)HRG模型[33]: 采用分層響應生成框架以自然和連貫的方式捕獲對話意圖。
表4、表5展示了我們的模型和基線模型的比較結果。從表中可以得出以下結論:
(1) 我們的模型相較于Multi模型,在BLEU-1、BLEU-2、BLEU-3值分別提升了3.77、4.76、3.68個百分點,Average、Greedy、Extrema分別提升了2.42、3.8、4.26個百分點。在人工評價指標上,我們的模型生成通用回復的比例有了明顯的下降,生成相關回復的比例相應有所上升,這證明了我們的模型一定程度上解決了通用回復的問題。
(2) 我們模型不管是在自動評價指標還是人工評估指標上都超過了所有的基準模型,充分說明了對生成的回復進行條件約束能有效地提高生成的對話回復的質(zhì)量。
表4 在自動評估指標上與基線模型比較
表5 在人工評估指標上與基線模型比較
為了驗證本文模型的有效性,將我們的模型與分別單獨考慮主題、情感、意圖預測模型進行對比實驗。實驗結果如表6所示。我們共涉及了5組對比實驗。Multi模型在上一節(jié)中已經(jīng)介紹,不再贅述;Joint Topic模型是在Multi模型的基礎上加入對話意圖的識別;Joint Senti模型是在Multi模型的基礎上加入話語情感的識別;Joint Act模型是在Multi模型的基礎上加入話語意圖的識別。
表6 不同的預測模型比較
從表中可以發(fā)現(xiàn),所有具有約束條件的模型(Joint Topic, Joint Senti, Joint Act, JTEA)都優(yōu)于基準Multi模型,這表明所有的約束條件對于回復生成都是有效的。另外,本文模型優(yōu)于單獨考慮每個約束條件的模型,這表明應該集成所有約束條件來生成更高質(zhì)量的回復。我們還發(fā)現(xiàn),情感的約束相對于主題和意圖的約束效果要稍差一點,是因為在我們的語料中絕大部分話語的情感都是中立的,情感對回復的影響相對較小。
我們對基線Multi模型和本文模型生成的對話回復進行對比分析,表7給出了三組對話示例,截取了對話的主要內(nèi)容,且對話內(nèi)容都已翻譯為中文展示。
從第1組示例中可以看出,此輪對話的主題是校園生活。對于最后說話者A的詢問,Multi模型沒能充分地理解該組對話的語義信息,所以生成了“你可以確定”這樣與對話內(nèi)容毫無聯(lián)系回復。而我們的模型因為加入了對主題的識別,所以生成了與對話主題高度相關且自然合理的回復。在第2組示例中,我們發(fā)現(xiàn)最后說話者A的意圖是“指示”。在同一輪對話中,當前一句的意圖為“指示”時,后一句的意圖最大概率為“承諾”。本文模型因為加入了對意圖的識別,生成了意圖為“承諾”的回答,而Multi模型則生成了意圖為“陳述”的回答,顯然我們模型生成的回復更加的合理。在第3組示例中,本文模型生成的回復在意圖上顯然更加合理。同一說話者的情感基調(diào)往往是不變的。本文模型因為加入了對情感的識別,生成了帶有積極情感傾向的回復。
表7 生成回復示例對比
在大數(shù)據(jù)不斷發(fā)展的今天,人機對話系統(tǒng)是人機交互領域一個非常重要的研究方向,開放域聊天機器人的研究受到了廣泛關注。因此,提高對話生活的質(zhì)量顯得尤為重要。
日常對話中,人們往往是圍繞特定的主題展開,且對話中的話語都蘊含明顯情感和意圖傾向。因此,本文提出了一種基于對話約束的回復生成模型。之前的模型往往傾向于生成類似“好的”“我不知道”等安全回復,雖然這樣的回復看起來合理,但其實這樣的模糊回復意義并不大,信息量很低。為了解決這個問題,我們在基于LSTM網(wǎng)絡的Seq2Seq模型的基礎上引入了對對話的主題、情感和意圖的識別,使得生成具有合理的情感和意圖傾向且與對話主題相關的回復。實驗結果表明,與傳統(tǒng)的Seq2Seq方法相比,本文方法取得了較好的效果。
本文研究的語料主要是一些日常交流文本,語境相對較為簡單。因此,接下來將研究更加復雜情景多變的語料。另外,研究歷史信息中各個子句之間的相互影響,對對話中的句子結構進行建模,進一步提升情感、意圖識別的效果。