張順香,李 健,朱廣麗,李曉慶,魏蘇波
(1.安徽理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001; 2.合肥綜合性國家科學(xué)中心 人工智能研究院,安徽 合肥 230000)
情感對話模型是人工智能領(lǐng)域的一個重要研究方向,可以在各種社交場景下進(jìn)行不限定主題的人機(jī)交互,通過主動識別用戶情緒,生成符合邏輯和語境的人性化回復(fù)?,F(xiàn)有的對話生成模型主要是結(jié)合深度學(xué)習(xí)技術(shù),實現(xiàn)符合上下文邏輯的人機(jī)對話過程。這種數(shù)據(jù)驅(qū)動的對話系統(tǒng)著重關(guān)注建立查詢和回復(fù)之間的語義對應(yīng)關(guān)系,生成的回復(fù)語句缺乏情感共鳴,擬人效果不夠理想,不能很好地適應(yīng)和模擬真實的對話場景,構(gòu)建情感擬人程度更高的對話模型已經(jīng)成為一種趨勢[1]。文本情感分析是機(jī)器主動識別用戶情緒的重要途徑,基于規(guī)則的方法利用詞匯字典來判斷句子的情感,利用設(shè)定的規(guī)則對語句進(jìn)行分詞和情感值計算,內(nèi)容豐富的情感詞典可以獲得較好的情感分析效果[2,3]。而情感的表征和生成對語句所蘊含的意義是至關(guān)重要的,也是保證情感對話過程一致性和相容性的基礎(chǔ)。
基于上述問題,本文提出一種基于改進(jìn)編解碼器和情感詞典的對話生成模型,可以根據(jù)不同的情感特征生成相應(yīng)的擬人回復(fù)。相對于傳統(tǒng)的對話生成模型,其創(chuàng)新之處在于構(gòu)建AgSeq2Seq模型和情感詞典,能更好地識別情感語句和自然語句,并結(jié)合情緒對比機(jī)制和目標(biāo)語句概率生成回復(fù)。識別輸入語句的情緒特征并計算回復(fù)語句的情感值,使得對話過程產(chǎn)生的情緒信息進(jìn)行了有效對比,從而實現(xiàn)了擬人程度更高的情感對話過程。
Mikio Nakano等[4]構(gòu)建了一種封閉域聊天對話系統(tǒng)的框架HRIChat,可以很好地處理特定領(lǐng)域的話語。Kengo Ohta等[5]提出了一種基于LSTM的響應(yīng)類型選擇器,并結(jié)合多個解碼器進(jìn)行多任務(wù)學(xué)習(xí),使回復(fù)語句更加自然,有效避免了枯燥對話。曹東巖[6]通過定義對話的獎勵函數(shù),提出了一種基于強(qiáng)化學(xué)習(xí)的對話生成算法,在回復(fù)多樣性和對話輪數(shù)上相比傳統(tǒng)Seq2Seq模型均有所提升。Ling Yanxiang等[7]提出了一種上下文控制的主題感知神經(jīng)響應(yīng)生成模型(CCTA),有效地利用了相關(guān)話題信息來提高回答信息量,同時通過語境控制過濾干擾話題詞中的噪聲,進(jìn)一步保證了回答的連貫性和恰當(dāng)性。吳威震[8]提出了一種由注意力機(jī)制、集束搜索算法、BiLSTM與傳統(tǒng)Seq2Seq模型相結(jié)合得到的聊天機(jī)器人對話模型,其效果優(yōu)于傳統(tǒng)Seq2Seq模型。Wang Hao等[9]利用知識增強(qiáng)型神經(jīng)模型建立信息豐富的邏輯對話系統(tǒng),可以深入理解對話背景,從而產(chǎn)生更多信息和邏輯反應(yīng)。
栗夢媛[10]提出了一種基于情感的端到端對話生成模型,添加情感分類器生成對應(yīng)情緒的回答,并在預(yù)測階段結(jié)合多樣化集束搜索方法,使生成的回復(fù)更加生動合理。Liu Mengjuan等[11]在CVAE模型的基礎(chǔ)上提出了改進(jìn),使對話系統(tǒng)能產(chǎn)生更多情緒化、情境化和多樣性反應(yīng)。蔣承霖[12]提出了一種基于深度學(xué)習(xí)的情感對話生成系統(tǒng),對對話中的情感關(guān)系進(jìn)行學(xué)習(xí)和建模,使其具備自適應(yīng)的情緒感知和表達(dá)能力。楊豐瑞等[13]提出了一種融合主題信息和情感因素的主題擴(kuò)展情感對話生成模型,能生成內(nèi)容豐富且情感相關(guān)的回答。Zhang Shunxiang等[14]提出了一種基于情感詞典的中文文本情感分析方法,通過構(gòu)建6種情感詞典并提供了情感值的計算方式,能夠準(zhǔn)確、有效分析文本情感。劉婷婷等[15]對人機(jī)交互過程中用戶情緒的識別方法進(jìn)行了梳理,通過用戶輸入的文本和語音信息來感知、分析用戶的情緒狀態(tài),歸納了情緒識別中的一些機(jī)器學(xué)習(xí)方法。Zhang Shunxiang等[16]提出了一種基于關(guān)鍵句的情感分類模型SC-CMC-KS,通過設(shè)計多個規(guī)則獲得句子級的情感值,對情感傾向的判斷準(zhǔn)確率顯著提高。
綜上所述,本文提出一種基于改進(jìn)編解碼器、情感詞典及情緒對比機(jī)制的對話生成模型。利用一個嵌入關(guān)注門控的AgSeq2Seq模型訓(xùn)練語料數(shù)據(jù)集,這里是實現(xiàn)高質(zhì)量人機(jī)交互的關(guān)鍵步驟。關(guān)注門控通過特征提取方式,一方面增強(qiáng)對情感語句的關(guān)注,另一方面限制自然語句帶來的噪音等不利因素。利用情感詞典獲得的情緒注意值可以與解碼器生成的目標(biāo)語句相結(jié)合,以拼接方式生成情緒回復(fù)。
提出的基于改進(jìn)編解碼器和情感詞典的對話生成模型,其底層的AgSeq2Seq模型由編碼器、解碼器和關(guān)注門控組成??紤]到對話數(shù)據(jù)集中大量的自然語句容易訓(xùn)練出“無情緒回復(fù)”,同時統(tǒng)計機(jī)器學(xué)習(xí)方法的性質(zhì)也決定了解碼器在生成響應(yīng)時,訓(xùn)練集中的高頻詞、高頻搭配更容易被選擇,所以本文在Attention機(jī)制的基礎(chǔ)上增加了一個關(guān)注門控,負(fù)責(zé)情緒特征和全局特征的提取,在訓(xùn)練過程中對自然語句進(jìn)行權(quán)重限制,從而有效降低其產(chǎn)生的噪音影響,同時從情感語句中獲得一個情緒注意值,可以與解碼器生成的目標(biāo)輸出進(jìn)行拼接后生成情緒回復(fù)。另外,構(gòu)建多樣化的情感詞典分析對話過程中產(chǎn)生的情緒特征,同時結(jié)合語義規(guī)則對所有可能的回復(fù)語句進(jìn)行情感值計算,最后與輸入語句進(jìn)行情緒對比,生成符合當(dāng)前語境的擬人回復(fù)。基于改進(jìn)編解碼器和情感詞典的對話生成模型框架如圖1所示。
圖1 基于改進(jìn)編解碼器和情感詞典的對話生成模型框架
AgSeq2Seq模型由編碼器、解碼器和關(guān)注門控3個模塊組成,在基于Attention機(jī)制的Seq2Seq模型基礎(chǔ)之上,增加一個關(guān)注門控提取情緒特征和全局特征,在訓(xùn)練過程中對非情感語句進(jìn)行權(quán)重限制,降低了數(shù)據(jù)集中諸多自然語句帶來的噪音影響,增強(qiáng)了基準(zhǔn)數(shù)據(jù)的情緒特征。同時利用情感詞典計算語句的情感權(quán)重值,并結(jié)合情感詞嵌入的概率向量和一般詞嵌入的均值向量獲得一個情緒注意值,與目標(biāo)輸出進(jìn)行拼接后生成情緒回復(fù)。相比于傳統(tǒng)的Encoder-Decoder結(jié)構(gòu),這種方法有利于構(gòu)建出質(zhì)量更高的對話生成系統(tǒng)。AgSeq2Seq模型的基本結(jié)構(gòu)如圖2所示。
圖2 AgSeq2Seq模型基本結(jié)構(gòu)
在AgSeq2Seq模型中,給定查詢序列X=(x1,x2,…,xM) 和目標(biāo)序列Y=(y1,y2,…,yN), 得出以X為條件的Y的生成概率的最大值。在基于Attention機(jī)制的編碼器和解碼器模塊,為了增強(qiáng)對上下文語義信息的表示,編碼器通過雙向GRU將輸入序列轉(zhuǎn)換成指定長度的上下文向量c,解碼器利用單向GRU以c為輸入對Y的生成概率進(jìn)行估計,并結(jié)合注意力機(jī)制生成目標(biāo)語句。另外,關(guān)注門控通過特征提取方式獲得情緒注意值,更新目標(biāo)語句并生成情緒回復(fù)。AgSeq2Seq的目標(biāo)函數(shù)如下
(1)
為了兼顧訓(xùn)練過程中的效率和梯度問題,本文使用兩個GRU分別作為編碼器和解碼器,其中編碼器采用雙向GRU結(jié)構(gòu)。另外,在經(jīng)典注意力機(jī)制的基礎(chǔ)上,增加一個關(guān)注門控,對自然語句進(jìn)行全局特征提取并給予相應(yīng)的權(quán)重限制,對情感語句進(jìn)行情緒特征提取并獲得相應(yīng)的情緒注意值,最后與解碼器生成的目標(biāo)語句相結(jié)合,進(jìn)行拼接后生成回復(fù)語句。為避免注意力分散,語義向量c在每一個時刻都會發(fā)生變化。這就導(dǎo)致每一個時刻的權(quán)重向量都要重新計算,所以解碼器在t時刻的隱藏狀態(tài)st和上下文信息的權(quán)重向量ct的計算公式分別如下
(2)
式中:yt-1是上一時刻的輸出詞;αit是注意力概率分布(即權(quán)重向量),它通過softmax函數(shù)對一個注意力打分函數(shù)進(jìn)行轉(zhuǎn)換后得到;hi是編碼器的輸出向量。解碼器生成目標(biāo)語句序列的計算公式如下
p(yt|w,y1,y2,…,yt-1)=g(yt-1,st,ct)
(3)
式中:w是目標(biāo)輸出層的參數(shù)。對話數(shù)據(jù)集一般來源于各種社交環(huán)境,不可避免地存在大量自然語句,高質(zhì)量的情感對話數(shù)據(jù)相對缺乏,從而給訓(xùn)練過程帶來一定的噪音影響,故對基準(zhǔn)數(shù)據(jù)集中的情感語句給予更多的關(guān)注顯得極為重要。自然語句與情感語句在對話中一般交織出現(xiàn),關(guān)注門控根據(jù)當(dāng)前對話以及上下文輸入,結(jié)合情感詞典判別語句屬性,對自然語句進(jìn)行全局特征提取,并給予相應(yīng)的權(quán)重限制;對情感語句進(jìn)行情緒特征提取,生成情感詞向量并獲得相應(yīng)的情緒注意值,并與目標(biāo)輸出進(jìn)行拼接。生成情緒響應(yīng)序列的條件概率計算公式如
(4)
式中:emo(k) 是關(guān)注門控利用情感詞典得到的情緒注意值,L是情緒響應(yīng)序列詞的數(shù)量。關(guān)注門控的情緒注意值計算公式如下
emo(k)=β|(αk1-(1-α)k2)|
(5)
式中:α表示數(shù)值介于0到1之間的語句情感權(quán)重值,β表示預(yù)先定義的超參數(shù),k1表示情感詞嵌入的概率向量,k2表示一般詞嵌入的均值向量。生成情緒響應(yīng)Lout的拼接方法如下
Lout=max(k1L1,k2L2,…,knLn)
(6)
式中:Ln表示第n次解碼所對應(yīng)的目標(biāo)輸出的概率得分,kn表示關(guān)注門控在第n次解碼過程中同步生成的門控參數(shù),若為情感語句則對應(yīng)情緒注意值emo(k),若是自然語句則對應(yīng)限制權(quán)重。
本文所使用的情感詞典由基本情感詞典、程度副詞詞典、否定詞詞典、感嘆詞詞典以及關(guān)系連接詞詞典構(gòu)成,并可以根據(jù)實際對話場景進(jìn)行拓展。將目標(biāo)語句導(dǎo)入情感詞典,結(jié)合語義規(guī)則對分割后的情感詞設(shè)置恰當(dāng)?shù)臋?quán)重并計算情感值,從而判斷輸入語句和回復(fù)語句的情感極性相似度,并給出最合乎當(dāng)前對話情境的擬人回復(fù)。結(jié)合情感詞典的情緒特征識別流程如圖3所示。
圖3 結(jié)合情感詞典的情緒特征識別流程
VoS表示語句情感值,VoC表示以情感詞為中心的關(guān)聯(lián)部分情感值。W表示基本情感詞的權(quán)重,D表示程度副詞的權(quán)重,N表示感嘆詞的權(quán)重。程度副詞的作用一般是對情感詞的限定或修飾,故存在程度副詞時,可以將其與情感詞相結(jié)合得到一個新的權(quán)重。出現(xiàn)在情感詞前面的否定詞個數(shù)決定了情感偏向性,若是奇數(shù)會發(fā)生情感翻轉(zhuǎn),若是偶數(shù)則保持原來的情感特征(否定之否定)。另外,感嘆詞的權(quán)重可以根據(jù)其出現(xiàn)的個數(shù)累加計算。修辭性反問詞也會大大影響語句的情緒特征,但在一條語句中通常最多出現(xiàn)一次。在情感詞前面同時出現(xiàn)程度副詞和否定詞/前綴的情況下,考慮到否定詞+程度副詞+情感詞(This car is not very attractive)對語句本身情緒的影響較弱,而程度副詞+否定前綴+情感詞(This car is very unattractive)對語句本身情緒的影響較強(qiáng),所以構(gòu)建以下系數(shù)公式加以區(qū)別
VoC=D*W*0.5*P+D*W*2*Q
(7)
式中:P表示程度副詞在否定詞之前,這時P取值為-1,Q取值為0;Q表示否定詞在程度副詞之前,這時P取值為0,Q取值為-1。輸入語句和回復(fù)語句的情感值計算公式如下
(8)
式中:n表示基本情感詞的個數(shù),m表示感嘆詞的個數(shù),o表示否定詞的個數(shù)。X作為否定詞門控,若出現(xiàn)否定詞取值1,否則取值0;Y作為修辭性反問詞門控,若出現(xiàn)修辭性反問詞取值1,否則取值0。如果一條語句中間存在關(guān)系連接詞,那么根據(jù)語義理解,若出現(xiàn)這種情形,只關(guān)注后半部分的情感值即可(I want to play football, but it’s raining outside.)。
針對現(xiàn)有模型生成的回復(fù)語句缺乏情感共鳴,擬人效果不夠理想的問題,將AgSeq2Seq模塊和情感詞典模塊通過情緒對比機(jī)制結(jié)合起來,有效識別了輸入輸出語句的情緒特征并實現(xiàn)了擬人程度更高的情感對話過程。其中,構(gòu)建的情感詞典一方面為輸入語句和生成回復(fù)計算情感值,另一方面也為關(guān)注門控的特征提取任務(wù)提供計算途經(jīng)。情緒對比機(jī)制算法如下:
算法: Contrast mechanism of emotion
輸入: A sequence of query statements
輸出: An emotional response sequence
(1)Decoder_EOS=Seq2Seq+Attention(Input)
(2)Emo(k)=AgSeq2Seq(Input)
(3)Sentence[n]=Combine(Emo(k),Decoder_EOS)
(4)Value=Sentiment Dictionary(Input)
(5)Score[n]=Sentiment Dictionary(Sentence[n])
(6)for(i=0;i (7) if(abs(Score[i]-Value)==min): (8) Output=Sentence[i] (9)return Output 情緒對比機(jī)制算法分析:輸入一條查詢語句序列,AgSeq2Seq模型的解碼器模塊結(jié)合注意力機(jī)制輸出目標(biāo)語句序列,同時關(guān)注門控利用情感詞典獲得這條語句的情緒注意值,然后與目標(biāo)語句進(jìn)行拼接(若是自然語句則給予相應(yīng)的權(quán)重限制,增強(qiáng)對話數(shù)據(jù)的情緒特征)。在生成情緒回復(fù)后計算情感得分,并與輸入語句的情感值進(jìn)行對比,當(dāng)對比語句情緒之差的絕對值最小時退出循環(huán),最后在生成回復(fù)層實現(xiàn)當(dāng)前語境下擬人程度最高的情感對話過程。 本文使用Cornell Movie-Dialogs Corpus作為實驗數(shù)據(jù)集,包括10 292對電影角色之間的220 579次對話。提出的模型是在PyTorch框架下實現(xiàn)的,編碼器和解碼器由兩層GRU組成,其中編碼器采用雙向GRU結(jié)構(gòu)。隱藏節(jié)點數(shù)均設(shè)置為256,并將詞嵌入大小設(shè)置為100,最后將批次大小和學(xué)習(xí)率分別設(shè)置為128和0.001。為了更好地適應(yīng)稀疏梯度,本文使用Adam優(yōu)化目標(biāo)函數(shù)。 選取兩個基線模型作為本文的對比方案:一個是基于注意力機(jī)制的序列到序列模型(sequence to sequence model with attention,Seq2SeqA);另一個是TE-ECG模型,這個模型在對話中融入了主題信息和情感因素,能生成主題相關(guān)和富有情感的回復(fù)。 本文采用人工評價和自動評估兩種方式,對提出的模型效果進(jìn)行檢測。采用Perplexity、BLEU和Distinct1/2等指標(biāo)對所提模型和基線模型進(jìn)行自動評估。Perplexity可以根據(jù)語句復(fù)雜度來判斷語法的正確程度,兩者呈負(fù)相關(guān)。BLUE值用于衡量生成回復(fù)和參考語句之間的相似性,可以很好地反映人機(jī)互動過程中情緒的一致性。Distinct1/2則可以通過較小的計算代價,評估回復(fù)語句形式上的多樣性。本文模型與基線模型的自動評估結(jié)果比較見表1。 表1 本文模型與基線模型的自動評估結(jié)果比較 可以看出,相對于Seq2SeqA模型和TE-ECG模型,本文模型的Perplexity指標(biāo)分別降低了1.08%和1.98%,BLUE值分別提高了16.67%和7.06%,驗證本文模型生成的回復(fù)語句在語法和相似性上均獲得了良好的效果。另外,本文模型相對于Seq2SeqA模型和TE-ECG模型,其Distinct-1指標(biāo)分別提高了56.52%和24.14%,Distinct-2指標(biāo)分別提高了20.31%和13.24%,驗證本文模型生成的回復(fù)語句在形式上的多樣性也獲得了一定程度的提升。 為了彌補(bǔ)自動評估在衡量上下文語義和情緒適宜性時的不足,采用人工評價的方式,分別從情感、邏輯和語境3個方面對模型進(jìn)行打分,來檢測回復(fù)語句的情感擬人程度、上下文的邏輯關(guān)系和語境相符程度。本文模型與基線模型的人工評價結(jié)果比較見表2。 表2 本文模型與基線模型的人工評價結(jié)果比較 可以看出,與基線模型相比,本文模型在人工視角下的各項評價指標(biāo)均得到了較大提升,說明結(jié)合情緒對比機(jī)制和目標(biāo)語句概率生成的回復(fù)語句既保證了上下文的邏輯關(guān)系,又在情感和語境上獲得了一定進(jìn)步,有效增強(qiáng)了交互過程中的情緒體驗。 此外,提出的模型在語境感知和對話節(jié)奏的把握上亦能獲得不錯的效果,可以有效地對話題進(jìn)行擴(kuò)展。本文模型與基線模型的生成回復(fù)樣例見表3,各模型基于同一輸入語句下生成的回復(fù)在邏輯結(jié)構(gòu)上均沒有問題,但在情緒釋放上有著較為顯著的差別,可以看出本文模型能對交互話題起到一定的延伸作用,同時在各種情緒語句下生成的回復(fù)均能體現(xiàn)出情感上的共鳴。 表3 本文模型與基線模型的生成回復(fù)樣例 關(guān)于人工評價的聲明:我們確保參與評價的人員均接受過良好的高等教育,并嚴(yán)格依據(jù)客觀事實獨立完成各項指標(biāo)的打分,最后結(jié)合統(tǒng)計學(xué)規(guī)則得出模型的平均分。 本文提出了一種基于改進(jìn)編解碼器和情感詞典的對話生成模型,旨在利用AgSeq2Seq模型構(gòu)建高質(zhì)量對話系統(tǒng)的前提下,結(jié)合情感詞典并利用情緒對比機(jī)制實現(xiàn)更加優(yōu)質(zhì)的情感對話模型。實驗結(jié)果表明,相對于傳統(tǒng)的對話生成模型,提出的模型能生成更加合乎邏輯、適應(yīng)語境的回復(fù),并實現(xiàn)擬人程度更高的情感對話過程。同時我們也注意到,人機(jī)交互的情感表達(dá)方式呈現(xiàn)出混合型、多樣性等特征,通常不再局限在文本領(lǐng)域。在未來的工作中,我們將考慮構(gòu)建多模態(tài)的情感對話模型,以期實現(xiàn)語音、圖像和文本的混合情感交互過程。3 實驗與結(jié)果分析
3.1 實驗設(shè)計
3.2 實驗結(jié)果與分析
4 結(jié)束語