徐志京,高 姍
上海海事大學 信息工程學院,上海 201306
近年來,隨著人工智能領域的迅速發展以及深度學習的助力,人機交互領域受到越來越多研究學者的關注。情緒識別作為人機交互中一個重要的分支,也成為了當前的熱點研究課題。目前,對情緒識別的研究大多集中在語音、面部表情、文本等單模態領域。語音作為人們交流最直接的手段,其中涵蓋了豐富的情緒信息,人們情緒的變化可以通過語音特征體現出來。而語音情緒識別正是將輸入包含情緒信息的語音信號轉化為可讀的物理特征,并提取其中與情緒表達相關的語音特征,再構建情緒識別分類器進行測試和訓練,最后輸出情緒識別分類結果。對于語音情緒識別,Han等人[1]利用深度神經網絡(deep neural network,DNN)從原始數據中提取更深層次的特征,驗證了深度神經網絡對語音情緒識別的有效性。然而,這種結構對長距離的特征提取存在一些局限性。Lee等人[2]考慮到長序列的語音特征提取和情感標簽表達的不確定性,提出了基于循環神經網絡(recurrent neural network,RNN)的情緒識別框架。Neumann等人[3]提出利用多視角學習目標函數的卷積神經網絡(convolutional neural network,CNN)對不同長度的輸入信號、不同類型的聲學特征和不同類型的情感語音系統性能進行比較。Tashev等人[4]提出基于高斯混合模型(Gaussian mixture model,GMM)的低級特征提取器與基于深度神經網絡的高級特征提取器相結合的系統模型來學習語音的情緒特征。Mustaqeem等人[5]提出了一種新的基于徑向基函數網絡的聚類相似度度量關鍵序列選擇的SER框架,來提高語音情緒識別的準確率。
然而,單一語音模態的情緒識別易受外界因素影響缺失一些情感信息,如噪音、信號強弱等,導致語音情緒識別的效果不夠顯著。鑒于不同模態間存在互補性,可將文本模態和語音模態進行融合來改善單一語音模態情緒識別的缺陷,從而提高情緒識別準確率。為了利用來自語音信號和文本序列的信息,先前大部分的研究都是使用神經網絡分別對兩個序列建模,并將兩種模式直接連接進行情緒分類。然而,這種直接連接的情緒分類方法效果并不顯著。Zadeh等人[6]提出了一種張量融合網絡來融合不同模態的特征,并學習模態內和模態間的動力學。Jin等人[7]從聲學和詞匯兩個層面生成特征表示,并構建情緒識別系統。Sahay等人[8]提出了一種利用段內模態間相互作用的關系張量網絡結構,利用更豐富的語音和文本上下文信息生成文本和語音模態的豐富表示。Akhtar等人[9]提出了一個同時預測話語情緒和情緒表達的語境跨模態注意框架,將注意力集中在對相鄰話語和多模態表征的貢獻上,有助于網絡更好地學習。Zhang等人[10]提出了一個利用語音中聲學和詞匯特性多階段融合的網絡,在IEMOCAP數據集上進行實驗,結果表明該方法優于那些不考慮語音信息影響的系統。Poria等人[11]探索了三種不同的基于深度學習的多模態情感分類體系結構,并通過多個具有固定測試分區的數據集來評估這些體系結構。此外,Gamage等人[12]提出了使用音素序列來編碼與情緒表達相關的語言線索,將文本信息與語音特征相結合,從而提高情緒識別的準確率。
雖然基于語音和文本的多模態情緒識別方法已取得了不錯的成果,然而在傳統端到端的神經網絡中,由于提取情感信息特征時易受模型固有的順序特性限制,導致無法獲取整個語句序列前后間的相關特征信息。因此本文提出基于Transformer-ESIM(Transformerenhanced sequential inference model)注意力機制的多模態情緒識別模型。首先使用多頭注意力機制對語音和文本序列進行編碼,更好地理解輸入文本和語音序列中前后之間的相關特征信息,并且通過對序列并行化的處理解決序列長距離限制問題。然后建立ESIM交互注意力機制,獲取語音和文本模態之間的相似特征,實現語音和文本模態在時域上的對齊,得到更加準確的多模態特征表示。
本文構建的語音與文本融合的多模態情緒識別模型框架如圖1所示。該識別模型主要由四部分組成:數據預處理層、Transformer編碼層、ESIM(enhanced sequential inference model)交互注意力層以及分類層。

圖1 多模態情緒識別模型框架圖Fig.1 Multi-modal emotional recognition model framework
在獲取數據集之后,分別對原始數據中語音和文本數據進行預處理操作;然后將預處理后的語音和文本序列輸入到Transformer編碼層進行編碼提取深層特征,編碼后的序列再輸入到交互注意力層計算語音和文本特征之間的相似特征,實現語音和文本模態在時域上的對齊;最后將經過池化后的特征拼接輸入到分類層進行情緒識別的分類,實現多模態的情緒識別。
對于語音原始數據,語音情感信號中的“happy”和“excited”以及“frustration”和“sad”的頻譜圖接近,因此將“excited”歸類到“happy”標簽中,“frustration”歸類到“sad”標簽中,并忽略“others”標簽。最后只保留“happy”“sad”“neutral”“anger”四類情感標簽,作為情緒識別的分類類別。
對于文本原始數據,首先對文本中的一些沒有情感意義的符號文本進行預處理,去掉與情感無關的標點符號,其次對文本中的單詞進行嵌入操作,將單詞轉換成固定長度的向量以便后續進行特征提取。
在語音和文本序列進行特征提取過程中,傳統神經網絡RNN、LSTM等存在著長期依賴性問題,其自身順序屬性無法捕獲長距離特征。本文設計了Transformer編碼層對語音和文本序列進行并行化處理,解決序列距離的限制,從而充分提取序列內的情感語義信息,最后對對語音和文本序列進行深層情感語義編碼。Transformer編碼層結構如圖2所示,主要由多頭自注意力機制層和前饋神經網絡層構成。

圖2 Transformer編碼層圖Fig.2 Transformer coding layer
多頭注意力機制的整體流程如圖3所示,當輸入一個語音/文本序列,首先經過線性變化生成Q、K、V三個權重向量,為所有輸入共享。然后進行分頭操作,對每個頭進行自注意力機制操作,再將完成自注意力機制的每個頭進行拼接,最后輸出到殘差連接層。

圖3 多頭注意力機制流程圖Fig.3 Multi-head self-attention process
多頭自注意力機制層可利用多個查詢向量Q=[q1,q2,…,q M]并行地計算輸入信息中的多個情感信息,每個自注意力對輸入情感信息的關注點不同,因此會獲取不同的情感特征信息,最后再將這些自注意力頭進行拼接。多頭自注意力機制的計算如下:

最后,通過前饋神經網絡得到句子的特征向量,在前饋神經網絡層中輸入和輸出之間是不存在依賴關系的。前饋神經網絡層的計算公式如下:

其中,W1、W2為前饋層的權重矩陣;b1、b2為前饋層的偏置。
目前大多對語音和文本多模態情緒研究中,都是對兩個模態分別建立單獨模型提取特征再輸入到一個特征融合層進行特征融合,忽略了語音和文本模態之間的交互作用。本文采用ESIM的交互注意力機制來處理語音和文本,該方法的交互注意力機制可以計算出語音和文本序列之間的相似特征,實現語音和文本模態在時域上的對齊,從而得到更加準確的多模態特征表示。ESIM交互注意力層的工作步驟如下:
(1)計算語音與文本特征之間的相似度矩陣:


式(4)中e ij表示語音的第i幀和文本的第j個詞的相似度矩陣,式(5)中a?i是利用注意力機制提取文本詞中的相似信息,式(6)中b?j是利用注意力機制提取語音幀的相似信息,l a、l b分別代表語音幀和文本句的長度。

其中,m a、m b表示語音和文本增強后的信息表示。
(3)對增強后的語音和文本序列進行池化。為了提高模型的魯棒性,同時對兩個序列進行平均池化和最大池化操作,最后再把結果放入一個定長向量中。

其中,v a,ave、v a,max為語音的平均池化向量和最大池化向量,v b,ave、v b,max為文本的平均池化向量和最大池化向量。
對于一個完整的多模態情緒識別模型,在得到語音和文本的融合特征后則要進行情緒識別分類。本文采用兩層全連接層和softmax分類器作為四種情緒識別的分類層,如圖4所示。

圖4 分類層流程圖Fig.4 Classification layer process
研究證明,若采用單一的全連接層往往會存在非線性問題,故本文采用兩個全連接FC1和FC2以解決可能存在的非線性問題。全連接層中選用線性的ReLU函數作為激活函數,可以有效避免梯度爆炸的問題。最后使用softmax函數進行最終的情緒分類預測,通過softmax函數為每個輸出情緒的類別都賦予一個概率值,表示出每個類別輸出的可能性。

其中,ez i表示第i個節點的輸出值,C表示情緒類別的個數。
在模型的訓練過程中,本文選取交叉熵作為損失函數。交叉熵表示模型實際預測類別的概率與期望模型預測類別的概率間的差距,交叉熵的值越小,兩個類別預測概率分布就越接近。損失函數的計算公式如下:

其中,y i為期望模型預測類別的概率,s i為模型實際預測類別的概率。
本文使用的數據集是由南加州大學Sail實驗室收集的多模態情感數據庫IEMOCAP,主要包含語音、文本、視頻等多個模態。由10個專業演員在錄音室錄制了約12小時的5組會話視聽數據,每組會話都由3個注釋員注釋成類別標簽,如憤怒、快樂、悲傷、中立等標簽,以及維度標簽,如配價、激活和支配。本實驗主要使用其中的語音和文本兩個模態,對原始數據中不平衡的數據進行簡單的數據篩選處理,最終構成由快樂、悲傷、中性和生氣組成的4類情緒識別數據庫,共5 531條數據。數據集中不同類別的情緒數據分布情況如表1所示。

表1 IEMOCAP數據集中不同類別情緒數據分布Table 1 Distribution of different categories of emotional data in IEMOCAP dataset
本實驗是在TensorFlow1.15.0版本框架下完成的。首先對原始數據進行預處理。對于語音數據調用Tensor-Flow里的python_speech_feature庫進行預處理,將語音轉化為300×200的特征矩陣。對于文本數據先對單詞做預處理,將每個單詞映射到一個唯一的索引,再將文本從單詞的序列轉換為索引的序列,每一單詞轉換為200維度的向量,文本字符長度設置為固定值,當長度不一致時進行截斷和pad操作。將情緒識別數據集按照4∶1的比例劃分為訓練集與測試集。在訓練過程中,通過修改神經網絡自身來提高模型泛化能力,將dropout率設置為0.5,以防發生過擬合。對模型的優化,學習率設置為0.000 1,優化器采用Adam算法。實驗的環境配置如表2所示。

表2 實驗環境主要配件及軟件版本Table 2 Main hardware configuration and software version of experimental environment
在多模態情緒識別分類的任務中,本文主要采用Accuracy、Recall、Precision、F1-score以及混淆矩陣和ROC曲線作為模型的評價指標。實驗指標的計算如下:

其中,TP表示實際為真實類別并被預測為真實類別的個數,TN表示實際為錯誤類別被預測為錯誤類別的個數,FP表示實際為錯誤類別被預測為真實類別的個數,FN表示實際為正確類別卻被預測為錯誤類別的個數。
為了驗證本文提出的多模態情緒識別模型的有效性,將語音和文本融合后的多模態情緒識別結果,與未經融合的語音和文本單模態情緒識別結果以及先前學者提出的多模態情緒識別結果進行對比。以下為先前研究學者提出的方法。
(1)ICON:是由Sebastian等人[13]提出,將跨模態融合方法應用于情緒識別的深度學習網絡中,通過將基于LSTM的文本情緒識別模型的輸出類別概率與聯合CNN模型的輸出類別概率根據不同權重值進行后期融合,得到多模態情緒分類結果。
(2)EF-CS:是由Pepino等人[14]提出的將聲學和文本特征融合的多模態情緒識別系統,對于文本特征通過BERT獲得上下文的單詞嵌入,對于語音特征采用open SMILE工具提取,最后通過早期融合實現多模態情緒識別預測。
(3)Bc-LSTM:是由Poria等人[11]提出的一種基于深度學習的多模態情感分類體系結構。對文本特征提取采用CNN,語音特征提取使用open SMILE工具,并通過Bc-LSTM捕捉話語中相關的上下文信息,最后通過特征層融合將特征向量發送到分類器進行分類。
(4)Dual-RNN:是由Yoon等人[15]提出的一種新的深度雙遞歸編碼器模型,可以同時對語音和文本序列中的信息進行編碼,然后將這些信息結合起來預測情感類別。
表3給出了單模態以及上述不同方法在IECOMAP數據集上的情緒識別準確率。

表3 單模態及不同方法在IECOMAP數據集上的準確率Table 3 Accuracy of different models and single mode on IECOMAP dataset %
同時,本文在實驗過程中分別計算了模型中每個情緒類別以及Macro avg和Weighted avg的Precision、Recall和F1-score。其中Precision為精確率,表示模型的查準效果;Recall為召回率,表示模型的查全效果;F1-score為精確率和召回率的調和平均,可以較為綜合地表征實驗效果。Macro avg為宏平均,表示對每個類別的精確率、召回率和F1-score加和求平均;Weighted avg為加權平均,是對宏平均的一種改進,計算了每個類別樣本數量在總樣本中的占比。實驗結果如表4所示。

表4 不同類別在IECOMAP數據集上的結果Table 4 Results for different categories on IECOMAP dataset %
為了更加直觀地分析多模態情緒識別預測的分類效果,本文對不同長度序列進行對比實驗。表5所示為在不同序列長度下的識別準確率。繪制出在不同序列長度的最佳預測結果的混淆矩陣圖,如圖5所示,顯示了序列長度分別為15、20、25的混淆矩陣圖。繪制出模型在實驗中最佳預測結果的ROC(receiver operating characteristic)曲線圖,如圖6所示。

表5 不同序列長度在IECOMAP數據集上的結果Table 5 Results for different sequence lengths on IECOMAP dataset
從表3結果可以看出,本文提出的基于Transformer-ESIM注意力機制的多模態情緒識別方法取得了相對最好的情緒識別結果。實驗結果表明,相比于單語音和文本模態的情緒識別結果有較大提升,并與先前提出的ICON模型的63.0%、EF-CS模型的65.5%、Bc-LSTM模型的70.7%以及Dual-RNN的71.8%準確率分別提高了9.6個百分點、7.1個百分點、1.9個百分點和0.8個百分點。由此可見,本文提出的模型在實驗中比基于RNN、CNN、LSTM改進的模型有更好的分類效果,說明本文提出的基于Transformer-ESIM注意力機制的多模態情緒識別方法可以更加充分地理解網絡模型中話語情緒特征信息,從而取得了更好的情緒識別準確率。
從表4中可以看到不同類別情緒的精確率、召回率和F1值的表現情況,本文提出的模型在Sad、Happy、Neutral三個類別都取得了比較好的精確率,分別為75.6%、72.5%、74.2%,略微優于Anger類別的準確率,并且召回率和F1值也都取得了比較好的結果。從表5可以看到在不同序列長度下的識別準確率,當序列長度為20時效果最佳,當序列長度為15時,超出長度的序列被截斷,導致準確率不高,而當序列為25時,雖然涵蓋的序列范圍更廣,但過多的pad操作使得模型性能不佳,從而準確率不及序列長度為20時。圖5顯示了模型在不同序列長度下的混淆矩陣,該矩陣縱坐標表示原始情緒標簽,橫坐標表示預測情緒標簽,對角線區域顏色越深代表模型的識別效果越好。從實驗結果圖中可以看出該模型在文本序列長度固定為20時識別效果最佳,其主要混淆了悲傷、快樂和中立情緒,因為中立情緒和其他情緒間的差異較小,所以易與其他情緒混淆。圖6顯示了本文提出模型的ROC曲線,從圖中可以直觀看出曲線的面積接近于1,表明了該模型的分類效果突出。綜合可以看出本文提出的基于Transformer-ESIM注意力機制的多模態情緒識別模型性能優異且具有較強的泛化能力。

圖5 不同序列長度的混淆矩陣對比圖Fig.5 Comparison of confusion matrices with different sequence lengths

圖6 情緒識別模型在IECOMAP數據集上的ROC曲線圖Fig.6 ROC curve of emotion recognition model on IECOMAP dataset
本文提出了一種基于Transformer-ESIM注意力機制的多模態情緒識別方法。首先,采用Transformer編碼層對語音和文本序列進行編碼,通過多頭注意力機制對序列進行并行化提取特征,可以有效消除序列距離的限制,充分提取序列內的情感語義信息,從而對語音和文本序列進行深層情感語義編碼,解決了傳統循環神經網絡存在的長期依賴性以及其自身順序屬性無法捕獲長距離特征的問題,縮短了特征提取時間;其次,通過ESIM的交互注意力層獲取語音和文本之間的相似特征,實現語音和文本序列在時域上的對齊,提高了模型對情感語義的理解和泛化能力。通過在IEMOCAP數據集上進行實驗,本文提出的基于Transformer-ESIM注意力機制的多模態情緒識別模型準確率可達到72.6%,召回率和F1值也都取得了較好的結果,驗證了本文方法的有效性。