張順香,李 健,朱廣麗,李曉慶,魏蘇波
(1.安徽理工大學 計算機科學與工程學院,安徽 淮南 232001; 2.合肥綜合性國家科學中心 人工智能研究院,安徽 合肥 230000)
情感對話模型是人工智能領域的一個重要研究方向,可以在各種社交場景下進行不限定主題的人機交互,通過主動識別用戶情緒,生成符合邏輯和語境的人性化回復。現有的對話生成模型主要是結合深度學習技術,實現符合上下文邏輯的人機對話過程。這種數據驅動的對話系統著重關注建立查詢和回復之間的語義對應關系,生成的回復語句缺乏情感共鳴,擬人效果不夠理想,不能很好地適應和模擬真實的對話場景,構建情感擬人程度更高的對話模型已經成為一種趨勢[1]。文本情感分析是機器主動識別用戶情緒的重要途徑,基于規則的方法利用詞匯字典來判斷句子的情感,利用設定的規則對語句進行分詞和情感值計算,內容豐富的情感詞典可以獲得較好的情感分析效果[2,3]。而情感的表征和生成對語句所蘊含的意義是至關重要的,也是保證情感對話過程一致性和相容性的基礎。
基于上述問題,本文提出一種基于改進編解碼器和情感詞典的對話生成模型,可以根據不同的情感特征生成相應的擬人回復。相對于傳統的對話生成模型,其創新之處在于構建AgSeq2Seq模型和情感詞典,能更好地識別情感語句和自然語句,并結合情緒對比機制和目標語句概率生成回復。識別輸入語句的情緒特征并計算回復語句的情感值,使得對話過程產生的情緒信息進行了有效對比,從而實現了擬人程度更高的情感對話過程。
Mikio Nakano等[4]構建了一種封閉域聊天對話系統的框架HRIChat,可以很好地處理特定領域的話語。Kengo Ohta等[5]提出了一種基于LSTM的響應類型選擇器,并結合多個解碼器進行多任務學習,使回復語句更加自然,有效避免了枯燥對話。曹東巖[6]通過定義對話的獎勵函數,提出了一種基于強化學習的對話生成算法,在回復多樣性和對話輪數上相比傳統Seq2Seq模型均有所提升。Ling Yanxiang等[7]提出了一種上下文控制的主題感知神經響應生成模型(CCTA),有效地利用了相關話題信息來提高回答信息量,同時通過語境控制過濾干擾話題詞中的噪聲,進一步保證了回答的連貫性和恰當性。吳威震[8]提出了一種由注意力機制、集束搜索算法、BiLSTM與傳統Seq2Seq模型相結合得到的聊天機器人對話模型,其效果優于傳統Seq2Seq模型。Wang Hao等[9]利用知識增強型神經模型建立信息豐富的邏輯對話系統,可以深入理解對話背景,從而產生更多信息和邏輯反應。
栗夢媛[10]提出了一種基于情感的端到端對話生成模型,添加情感分類器生成對應情緒的回答,并在預測階段結合多樣化集束搜索方法,使生成的回復更加生動合理。Liu Mengjuan等[11]在CVAE模型的基礎上提出了改進,使對話系統能產生更多情緒化、情境化和多樣性反應。蔣承霖[12]提出了一種基于深度學習的情感對話生成系統,對對話中的情感關系進行學習和建模,使其具備自適應的情緒感知和表達能力。楊豐瑞等[13]提出了一種融合主題信息和情感因素的主題擴展情感對話生成模型,能生成內容豐富且情感相關的回答。Zhang Shunxiang等[14]提出了一種基于情感詞典的中文文本情感分析方法,通過構建6種情感詞典并提供了情感值的計算方式,能夠準確、有效分析文本情感。劉婷婷等[15]對人機交互過程中用戶情緒的識別方法進行了梳理,通過用戶輸入的文本和語音信息來感知、分析用戶的情緒狀態,歸納了情緒識別中的一些機器學習方法。Zhang Shunxiang等[16]提出了一種基于關鍵句的情感分類模型SC-CMC-KS,通過設計多個規則獲得句子級的情感值,對情感傾向的判斷準確率顯著提高。
綜上所述,本文提出一種基于改進編解碼器、情感詞典及情緒對比機制的對話生成模型。利用一個嵌入關注門控的AgSeq2Seq模型訓練語料數據集,這里是實現高質量人機交互的關鍵步驟。關注門控通過特征提取方式,一方面增強對情感語句的關注,另一方面限制自然語句帶來的噪音等不利因素。利用情感詞典獲得的情緒注意值可以與解碼器生成的目標語句相結合,以拼接方式生成情緒回復。
提出的基于改進編解碼器和情感詞典的對話生成模型,其底層的AgSeq2Seq模型由編碼器、解碼器和關注門控組成。考慮到對話數據集中大量的自然語句容易訓練出“無情緒回復”,同時統計機器學習方法的性質也決定了解碼器在生成響應時,訓練集中的高頻詞、高頻搭配更容易被選擇,所以本文在Attention機制的基礎上增加了一個關注門控,負責情緒特征和全局特征的提取,在訓練過程中對自然語句進行權重限制,從而有效降低其產生的噪音影響,同時從情感語句中獲得一個情緒注意值,可以與解碼器生成的目標輸出進行拼接后生成情緒回復。另外,構建多樣化的情感詞典分析對話過程中產生的情緒特征,同時結合語義規則對所有可能的回復語句進行情感值計算,最后與輸入語句進行情緒對比,生成符合當前語境的擬人回復。基于改進編解碼器和情感詞典的對話生成模型框架如圖1所示。

圖1 基于改進編解碼器和情感詞典的對話生成模型框架
AgSeq2Seq模型由編碼器、解碼器和關注門控3個模塊組成,在基于Attention機制的Seq2Seq模型基礎之上,增加一個關注門控提取情緒特征和全局特征,在訓練過程中對非情感語句進行權重限制,降低了數據集中諸多自然語句帶來的噪音影響,增強了基準數據的情緒特征。同時利用情感詞典計算語句的情感權重值,并結合情感詞嵌入的概率向量和一般詞嵌入的均值向量獲得一個情緒注意值,與目標輸出進行拼接后生成情緒回復。相比于傳統的Encoder-Decoder結構,這種方法有利于構建出質量更高的對話生成系統。AgSeq2Seq模型的基本結構如圖2所示。

圖2 AgSeq2Seq模型基本結構
在AgSeq2Seq模型中,給定查詢序列X=(x1,x2,…,xM) 和目標序列Y=(y1,y2,…,yN), 得出以X為條件的Y的生成概率的最大值。在基于Attention機制的編碼器和解碼器模塊,為了增強對上下文語義信息的表示,編碼器通過雙向GRU將輸入序列轉換成指定長度的上下文向量c,解碼器利用單向GRU以c為輸入對Y的生成概率進行估計,并結合注意力機制生成目標語句。另外,關注門控通過特征提取方式獲得情緒注意值,更新目標語句并生成情緒回復。AgSeq2Seq的目標函數如下

(1)
為了兼顧訓練過程中的效率和梯度問題,本文使用兩個GRU分別作為編碼器和解碼器,其中編碼器采用雙向GRU結構。另外,在經典注意力機制的基礎上,增加一個關注門控,對自然語句進行全局特征提取并給予相應的權重限制,對情感語句進行情緒特征提取并獲得相應的情緒注意值,最后與解碼器生成的目標語句相結合,進行拼接后生成回復語句。為避免注意力分散,語義向量c在每一個時刻都會發生變化。這就導致每一個時刻的權重向量都要重新計算,所以解碼器在t時刻的隱藏狀態st和上下文信息的權重向量ct的計算公式分別如下
(2)
式中:yt-1是上一時刻的輸出詞;αit是注意力概率分布(即權重向量),它通過softmax函數對一個注意力打分函數進行轉換后得到;hi是編碼器的輸出向量。解碼器生成目標語句序列的計算公式如下
p(yt|w,y1,y2,…,yt-1)=g(yt-1,st,ct)
(3)
式中:w是目標輸出層的參數。對話數據集一般來源于各種社交環境,不可避免地存在大量自然語句,高質量的情感對話數據相對缺乏,從而給訓練過程帶來一定的噪音影響,故對基準數據集中的情感語句給予更多的關注顯得極為重要。自然語句與情感語句在對話中一般交織出現,關注門控根據當前對話以及上下文輸入,結合情感詞典判別語句屬性,對自然語句進行全局特征提取,并給予相應的權重限制;對情感語句進行情緒特征提取,生成情感詞向量并獲得相應的情緒注意值,并與目標輸出進行拼接。生成情緒響應序列的條件概率計算公式如

(4)
式中:emo(k) 是關注門控利用情感詞典得到的情緒注意值,L是情緒響應序列詞的數量。關注門控的情緒注意值計算公式如下
emo(k)=β|(αk1-(1-α)k2)|
(5)
式中:α表示數值介于0到1之間的語句情感權重值,β表示預先定義的超參數,k1表示情感詞嵌入的概率向量,k2表示一般詞嵌入的均值向量。生成情緒響應Lout的拼接方法如下
Lout=max(k1L1,k2L2,…,knLn)
(6)
式中:Ln表示第n次解碼所對應的目標輸出的概率得分,kn表示關注門控在第n次解碼過程中同步生成的門控參數,若為情感語句則對應情緒注意值emo(k),若是自然語句則對應限制權重。
本文所使用的情感詞典由基本情感詞典、程度副詞詞典、否定詞詞典、感嘆詞詞典以及關系連接詞詞典構成,并可以根據實際對話場景進行拓展。將目標語句導入情感詞典,結合語義規則對分割后的情感詞設置恰當的權重并計算情感值,從而判斷輸入語句和回復語句的情感極性相似度,并給出最合乎當前對話情境的擬人回復。結合情感詞典的情緒特征識別流程如圖3所示。

圖3 結合情感詞典的情緒特征識別流程
VoS表示語句情感值,VoC表示以情感詞為中心的關聯部分情感值。W表示基本情感詞的權重,D表示程度副詞的權重,N表示感嘆詞的權重。程度副詞的作用一般是對情感詞的限定或修飾,故存在程度副詞時,可以將其與情感詞相結合得到一個新的權重。出現在情感詞前面的否定詞個數決定了情感偏向性,若是奇數會發生情感翻轉,若是偶數則保持原來的情感特征(否定之否定)。另外,感嘆詞的權重可以根據其出現的個數累加計算。修辭性反問詞也會大大影響語句的情緒特征,但在一條語句中通常最多出現一次。在情感詞前面同時出現程度副詞和否定詞/前綴的情況下,考慮到否定詞+程度副詞+情感詞(This car is not very attractive)對語句本身情緒的影響較弱,而程度副詞+否定前綴+情感詞(This car is very unattractive)對語句本身情緒的影響較強,所以構建以下系數公式加以區別
VoC=D*W*0.5*P+D*W*2*Q
(7)
式中:P表示程度副詞在否定詞之前,這時P取值為-1,Q取值為0;Q表示否定詞在程度副詞之前,這時P取值為0,Q取值為-1。輸入語句和回復語句的情感值計算公式如下

(8)
式中:n表示基本情感詞的個數,m表示感嘆詞的個數,o表示否定詞的個數。X作為否定詞門控,若出現否定詞取值1,否則取值0;Y作為修辭性反問詞門控,若出現修辭性反問詞取值1,否則取值0。如果一條語句中間存在關系連接詞,那么根據語義理解,若出現這種情形,只關注后半部分的情感值即可(I want to play football, but it’s raining outside.)。
針對現有模型生成的回復語句缺乏情感共鳴,擬人效果不夠理想的問題,將AgSeq2Seq模塊和情感詞典模塊通過情緒對比機制結合起來,有效識別了輸入輸出語句的情緒特征并實現了擬人程度更高的情感對話過程。其中,構建的情感詞典一方面為輸入語句和生成回復計算情感值,另一方面也為關注門控的特征提取任務提供計算途經。情緒對比機制算法如下:
算法: 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 情緒對比機制算法分析:輸入一條查詢語句序列,AgSeq2Seq模型的解碼器模塊結合注意力機制輸出目標語句序列,同時關注門控利用情感詞典獲得這條語句的情緒注意值,然后與目標語句進行拼接(若是自然語句則給予相應的權重限制,增強對話數據的情緒特征)。在生成情緒回復后計算情感得分,并與輸入語句的情感值進行對比,當對比語句情緒之差的絕對值最小時退出循環,最后在生成回復層實現當前語境下擬人程度最高的情感對話過程。 本文使用Cornell Movie-Dialogs Corpus作為實驗數據集,包括10 292對電影角色之間的220 579次對話。提出的模型是在PyTorch框架下實現的,編碼器和解碼器由兩層GRU組成,其中編碼器采用雙向GRU結構。隱藏節點數均設置為256,并將詞嵌入大小設置為100,最后將批次大小和學習率分別設置為128和0.001。為了更好地適應稀疏梯度,本文使用Adam優化目標函數。 選取兩個基線模型作為本文的對比方案:一個是基于注意力機制的序列到序列模型(sequence to sequence model with attention,Seq2SeqA);另一個是TE-ECG模型,這個模型在對話中融入了主題信息和情感因素,能生成主題相關和富有情感的回復。 本文采用人工評價和自動評估兩種方式,對提出的模型效果進行檢測。采用Perplexity、BLEU和Distinct1/2等指標對所提模型和基線模型進行自動評估。Perplexity可以根據語句復雜度來判斷語法的正確程度,兩者呈負相關。BLUE值用于衡量生成回復和參考語句之間的相似性,可以很好地反映人機互動過程中情緒的一致性。Distinct1/2則可以通過較小的計算代價,評估回復語句形式上的多樣性。本文模型與基線模型的自動評估結果比較見表1。 表1 本文模型與基線模型的自動評估結果比較 可以看出,相對于Seq2SeqA模型和TE-ECG模型,本文模型的Perplexity指標分別降低了1.08%和1.98%,BLUE值分別提高了16.67%和7.06%,驗證本文模型生成的回復語句在語法和相似性上均獲得了良好的效果。另外,本文模型相對于Seq2SeqA模型和TE-ECG模型,其Distinct-1指標分別提高了56.52%和24.14%,Distinct-2指標分別提高了20.31%和13.24%,驗證本文模型生成的回復語句在形式上的多樣性也獲得了一定程度的提升。 為了彌補自動評估在衡量上下文語義和情緒適宜性時的不足,采用人工評價的方式,分別從情感、邏輯和語境3個方面對模型進行打分,來檢測回復語句的情感擬人程度、上下文的邏輯關系和語境相符程度。本文模型與基線模型的人工評價結果比較見表2。 表2 本文模型與基線模型的人工評價結果比較 可以看出,與基線模型相比,本文模型在人工視角下的各項評價指標均得到了較大提升,說明結合情緒對比機制和目標語句概率生成的回復語句既保證了上下文的邏輯關系,又在情感和語境上獲得了一定進步,有效增強了交互過程中的情緒體驗。 此外,提出的模型在語境感知和對話節奏的把握上亦能獲得不錯的效果,可以有效地對話題進行擴展。本文模型與基線模型的生成回復樣例見表3,各模型基于同一輸入語句下生成的回復在邏輯結構上均沒有問題,但在情緒釋放上有著較為顯著的差別,可以看出本文模型能對交互話題起到一定的延伸作用,同時在各種情緒語句下生成的回復均能體現出情感上的共鳴。 表3 本文模型與基線模型的生成回復樣例 關于人工評價的聲明:我們確保參與評價的人員均接受過良好的高等教育,并嚴格依據客觀事實獨立完成各項指標的打分,最后結合統計學規則得出模型的平均分。 本文提出了一種基于改進編解碼器和情感詞典的對話生成模型,旨在利用AgSeq2Seq模型構建高質量對話系統的前提下,結合情感詞典并利用情緒對比機制實現更加優質的情感對話模型。實驗結果表明,相對于傳統的對話生成模型,提出的模型能生成更加合乎邏輯、適應語境的回復,并實現擬人程度更高的情感對話過程。同時我們也注意到,人機交互的情感表達方式呈現出混合型、多樣性等特征,通常不再局限在文本領域。在未來的工作中,我們將考慮構建多模態的情感對話模型,以期實現語音、圖像和文本的混合情感交互過程。3 實驗與結果分析
3.1 實驗設計
3.2 實驗結果與分析



4 結束語