孫東輝,張 珣
(杭州電子科技大學現代電路與智能信息研究所,浙江杭州 310018)
語言作為人類情感思想的載體包含了豐富的信息,如果把計算機應用于語音信息處理領域,則可讓計算機與人類進行語音交互。若將這項技術應用于智能家居控制系統(tǒng)中,將會極大地方便人們對家庭電器的控制,因此以語音識別技術為基礎的智能家居控制系統(tǒng)應運而生。與此同時,深度學習、大數據等新興技術近年來的迅猛發(fā)展,將智能家居的發(fā)展浪潮推向了一個新高度。情感分析也稱為觀點挖掘,是自然語言處理領域的研究熱點之一,其可提取文本中的情感及觀點。傳統(tǒng)機器學習方法可處理許多情感分析問題,通常會根據不同項目的特點選擇不同處理方式,一般需要很長時間來收集、組織與抽象背景知識。深度學習的出現迅速取代了傳統(tǒng)機器學習方法,并成為自然語言處理領域的領頭軍,在各個行業(yè)得到了廣泛應用。與傳統(tǒng)機器學習算法相比,深度學習不取決于人工提取的特性,而具有獨立學習特征的能力,非常適合對非結構化語言文本、序列等類型數據的抽象。
目前,國內外許多研究人員采用長短期記憶模型與循環(huán)神經網絡相結合的方式處理文本信息,并分析文本上下文的情感分類問題,取得了良好效果。其中,深度學習模型有著優(yōu)異表現,即使沒有特征的標注也能提高分類準確率[1]。Wang 等[2]將遞歸神經網絡與隨機概率融合為統(tǒng)一的框架,用于顯式語義與特征向量的共同提取,分類準確率得到明顯提升。但采用這種提取所有方面語義文本的方法,當文本數量龐大時網絡層數會過深。因此,需要對文本中的重點區(qū)域進行突出,否則隨著訓練時長的增加,容易出現梯度消失現象。
在圖像識別領域首次提出注意力機制概念,其使得模型能夠有效注意到特定區(qū)域的具體信息,并獲得更深入的特征信息。近些年,注意力機制被嘗試應用于NLP 領域,結果證明這種特征提取方式更加高效。將注意力機制與循環(huán)神經網絡相結合能夠將文本信息及序列的某一中間時刻狀態(tài)進行融合,使用注意力加權方式計算輸出,同時通過上下文互動監(jiān)測特定信息,能有效解決不同目標的情緒兩極化問題,并提高情感極性預測的準確性。譚皓等[3]提出可利用表情符作為分析文本的注入點,并提出基于表情符注意力機制的情感分析模型;Meng 等[4]利用平行語料庫提升詞典覆蓋率,采用最大化似然估計法對詞語進行標注,以提升情感分類準確率;栗雨晴等[5]通過構建雙語詞典,在新浪微博評論區(qū)提取大量用戶評論進行多種類的文本情感分析。以上方法與語料庫緊密相連,文本語料庫的詞語質量及規(guī)模將會直接影響預測準確率。
本文設計一個能夠隨著用戶語音信息進行自適應改變的沉浸式智能客廳系統(tǒng),對用戶語音信號進行采集,并在云端使用如今已較為成熟的科大訊飛語音識別引擎進行語音到文本的轉換[6-7]。無需構建龐大的語料庫,改用基于注意力機制的LSTM-RNN 網絡分析輸入神經網絡的用戶語音文本信息[8],進而挖掘出用戶的情感觀點,使得控制系統(tǒng)具有思考分析的能力,能夠作出預測,協(xié)調室內各個模塊進行自適應改變。例如,綜合用戶情感因素調控影片播放類型及客廳內的燈光、窗簾、香薰等作出改變,讓用戶能夠沉浸其中,獲得極致體驗。
系統(tǒng)主要包括以下幾個模塊:
(1)語音錄入模塊。獲取原始的用戶語音數據后進行去噪預處理,經A/D 轉換后將信號上傳云平臺,使用科大訊飛引擎將其轉換為文本信息返回到語音模塊。
(2)文本信息分析模塊。在該模塊內部提前使用大量詞語文本進行語言情感信息訓練,構建語義文本庫。將獲取到的文本信息輸入訓練好的神經網絡模型中,輸出的關鍵詞將會被轉換成控制指令,等待下發(fā)給各工作模塊。
(3)指令廣播模塊。指令將以json 格式廣播到各個工作節(jié)點的控制層中,工作節(jié)點對其分析處理完成后,會根據指令進行自適應變化。
(4)工作節(jié)點模塊。由控制層、業(yè)務層與持久層組成,控制層負責接收指令模塊傳輸過來的json 指令,解析指令并下達至業(yè)務層進行相應邏輯處理,最后將指令記錄在持久層中用作歷史備份。下次接收到相同的json 指令則不需要再次解析,直接處理相應邏輯即可,以加快響應速度。
系統(tǒng)模塊總概圖如圖1所示[9-10]。

Fig.1 General diagram of the system module圖1 系統(tǒng)模塊總概圖
反向傳播神經網絡由輸入層、隱含層與輸出層構成。網絡中前一層的輸出都可作為下一層的輸入,使提取到的特征信息可繼續(xù)被下一層使用。輸入層的數據為預處理過的文本信息,可實現分類與預測功能。其網絡結構如圖2所示。

Fig.2 BP neural network structure圖2 BP神經網絡結構
具體訓練過程為:將權重初始化為隨機數,預處理輸入數據,通過神經網絡得到輸出值,每一次訓練都將輸出值與預期值進行比較。用梯度下降法更新權重值,重復訓練過程使誤差變小,最終完成神經網絡訓練。
反向傳播網絡利用前向傳播網絡公式進行計算,前向傳播公式如下[11]:

式中,z(l)為第l層的激活值。第l+1 層包含以下元素:輸入a(l),參數W(l)、b(l),激活函數f(?),中間結果z(l+1),輸出a(l+1)。設神經網絡的損失函數為J(W,b) ∈Rl,且輸入到語音文本的信息集包含m個樣例,采用批量梯度下降算法求解神經網絡。當處理單一樣本(x,y)時,代價函數計算公式如下:

對于一個給定的包含m個樣本的數據集,可定義整體代價函數為:

然后,針對l=nl-1,nl-2,nl-3,… 的各個層,第l層第i個節(jié)點的殘差計算方法如下:

最后,利用批量梯度下降法對目標函數進行優(yōu)化,按照以下計算方法對參數W和b進行更新:

α是學習速率,根據公式,需要計算其中的偏導:

2.2.1 LSTM-RNN模型結構分析
普通神經網絡模型有許多輸入參數,數據傳播方向依賴于上一層的方向,并且數據樣本之間是不相關的,無法對時間序列進行有效的特征訓練,因此不能應用于自然語言處理、語音識別等領域。循環(huán)神經網絡重新定義了神經元之間的關系,即當前時刻的輸入與上一時刻的輸出都會影響此時神經元的輸出,該特性使得神經網絡具備對時間序列的分析能力[12]。傳統(tǒng)RNN 網絡展開結構如圖3所示。

Fig.3 Expanding structure of recurrent neural network圖3 循環(huán)神經網絡展開結構
但是由于文本序列過長,RNN 會導致時間軸上的梯度消失,此外RNN 在處理相關性較強的數據文本時,訓練后的詞向量誤差較大,不能很好地聯系語義文本的上下文關系,經常會作出錯誤判斷。因此,采用LSTM 與RNN 兩種網絡相結合的方法,可使網絡具有記憶功能,能夠綜合上下文所有信息再作出判斷[13-14]。
LSTM 是一種特殊的循環(huán)結構,基于RNN 的結構基礎,每一個LSTM 單元又都包含3 個門結構:輸入門、輸出門與遺忘門。門與門之間通過嚴格的限制關系使詞向量之間的依賴性加強,訓練后的網絡會具有更強的普適性與精確度。
RNN 與LSTM 結構對比如圖4 所示。其中,LSTM 內部結構如圖5 所示。由圖5 可以看到,整體分為輸入與輸出兩部分,而每部分都由C和h組成。這里h表示隱藏狀態(tài),C表示細胞狀態(tài)。
遺忘門是指以一定概率控制上一層LSTM 單元狀態(tài)被遺忘的程度,LSTM 遺忘門如圖6所示。
上一時刻序列的隱藏狀態(tài)h(t-1)與此時刻的序列數據x(t)經過激活函數sigmoid,得到遺忘門的輸出f(t)。在sig?moid 的特性限制下,f(t)會在[0,1]區(qū) 間內,所以f()t代表上一層隱藏細胞狀態(tài)被遺忘的概率,數學表達式為:

輸入門負責此時刻的序列輸入,LSTM 輸入門如圖7所示。
輸入門由兩部分組成,一部分通過sigmoid 激活函數輸出i(t),另一部分通過tanh 激活函數輸出a(t)。數學表達式為:


Fig.4 Structural comparison of RNN and LSTM圖4 RNN與LSTM 結構對比

Fig.5 LSTM unit structure圖5 LSTM 單元結構

Fig.6 LSTM forgetting gate圖6 LSTM 遺忘門
然后細胞狀態(tài)c(t)會受到遺忘門與輸入門的共同影響,如圖8所示。
此時刻細胞狀態(tài)c(t)由兩部分乘積組成,一部分為上一時刻細胞狀態(tài)c(t-1)與遺忘門輸出f(t)的乘積,另一部分為輸入門i(t)與a(t)的乘積。數學表達式為:


Fig.7 LSTM input gate圖7 LSTM 輸入門

Fig.8 LSTM cell status update圖8 LSTM 細胞狀態(tài)更新
新的隱藏狀態(tài)更新后,LSTM 輸出門如圖9所示。
此時刻隱藏狀態(tài)h(t)由兩部分組成,一部分為σ(t),由上一時刻序列隱藏狀態(tài)h(t-1)與此時刻序列數據x(t)及sig?moid 激活函數得到,另一部分由隱藏狀態(tài)c(t)與tanh 激活函數構成。數學表示式為:


Fig.9 LSTM output gate圖9 LSTM 輸出門

綜上,t時刻的序列預測輸出數學表達式為:

2.2.2 LSTM-RNN反向傳播算法分析
使用梯度下降法是為了更新變量傳播模型參數,在LSTM 中計算出兩個隱藏狀態(tài)h(t)與c(t)基于損失函數的偏導數,具體如下:

在最后序列τ位置處的梯度公式為:

情感分析是指對帶有感情色彩的文本進行信息挖掘,分析出其中隱含的情感傾向,是近年來自然語言處理領域的新熱點之一?;贚STM 的情感分析概圖如圖10所示。

Fig.10 Sentiment analysis diagram based on LSTM圖10 基于LSTM 的情感分析概圖
人腦會關注事物的重要部分,注意力機制就是基于這種思想抽象出來的模型。事物的主要部分被賦予了更大權重,并著重判別這部分,從而使模型更加關注重要信息的優(yōu)化訓練過程。近年來,這種方法被引入到自然語言處理領域,根據當前的文本詞語將輸出矩陣分配給不同的塊進行特定表示[15]。
根據LSTM 產生的隱藏層特征H=[h1,h2,…,hN]構建注意力機制的輸入,H?Rd*N,其中d表示隱藏層長度,N為輸入的文本信息長度。注意力機制最終產生注意力權重矩陣α和特征表示ν,計算公式如下:

為了增加對重要信息的提取,本文提出基于注意力機制的用戶情感分析模型。首先,將整句文本拆分成詞,采用獨熱編碼形式,通過訓練好的詞嵌入矩陣將其轉化為具有特征信息含義的詞向量,注入LSTM 層,輸出的結果可視為隱藏層;然后,針對不同部分分配不同的注意力權重值α,重構新的輸入,再注入RNN 層;在RNN 層中只關心最后t時刻序列的輸出,注入softmax 情感分析層得到預測的概率結果,并貼上對應的情緒標簽。基于注意力機制的模型如圖11所示[16-17]。
模型網絡結構主要包含5 層:詞向量輸入層、LSTM層、注意力計算層、RNN 層、情感預測層。詞向量層把語義文本的獨熱向量通過已訓練好的嵌入矩陣轉換為具有編碼關系的詞向量;LSTM 層聯系上下文對詞向量進行建模,每個LSTM 輸出結果都會被注意力計算層分配不同的權重值;經過LSTM 與注意力機制聯合處理過的中間向量已隱含了聯系全文的含義,因此將其直接注入RNN 層中不會產生語義分析的偏差;情感預測層會基于特定的情感特征向量進行預測,根據輸出概率所在區(qū)域,即能得知用戶情感傾向[18]。

Fig.11 Model based on attention mechanism圖11 基于注意力機制的模型
基于注意力機制的情感分析模型輸入由整句文本分詞后的詞向量組成,每個詞語初始均用獨熱向量表示。為增強向量之間的關聯性,需通過詞嵌入矩陣將其轉換為語義詞向量。詞嵌入矩陣訓練難度大,所需的數據集非常多,而在國內有很多公司開源了已訓練好的詞嵌入矩陣,根據所需下載相應維度即可。處理好的詞向量為ws=,其中n為語義文本序列長度[19]。
最開始采用LSTM 訓練語義詞向量,在時刻i的輸入為:

式中,hi是向前傳播時LSTM 在時刻i隱藏狀態(tài)的輸出。在語義文本的s層產生的特征序列為hs=。
為LSTM 每一時刻輸出值分配一個合適的注意力權重α,a

其中,e

Fig.12 Attention weight training graph圖12 注意力權重訓練圖
將具備關聯特征的詞向量輸入RNN 層中,RNN 網絡具有記憶功能,可高效地對詞向量之間的非線性特征進行學習。同時此層還起到了訓練層與情感分析層之間的過渡作用,大幅降低了單一訓練可能導致的情感誤判概率。
語義詞向量的情感傾向預測需要對上下文信息進行綜合考慮,因此本文已在搭配注意力機制的LSTM-RNN 層中提取了特征信息。針對RNN 層中最后t時刻的隱藏狀態(tài),通過softmax 函數計算出預測概率,表達式為:

其中,c表示情感標簽個數,pc表示情感標簽c的預測概率[20-21]。用戶的情緒預測分類如表1所示。

Table 1 Classification of emotion prediction表1 情緒預測分類
根據預測概率所在區(qū)間,模型可判別出此時用戶屬于哪種情感。每種情感會對應不同的Emotion id,在json 指令集中預測出的情感種類會以key/value 形式存儲并進行傳輸。當各個工作節(jié)點收到指令后會解析json 串,并根據具體的Emotion id 值作出相應的自適應改變。
選取交叉熵作為優(yōu)化損失函數,其中D表示待訓練的數據集?;谧⒁饬C制的語義情感分析模型損失函數如下[22]:
使用分詞器對用戶語義文本進行分詞,過濾掉長度小于3 的語義文本,最后獲得5 000 條可用于訓練模型的詞語并貼上相應標簽,并在預處理階段將其轉換為獨熱向量表示。按照快樂、傷心、生氣、驚恐4 類情感對文本進行人工標注,詞語針對4種情感的分類情況如表2所示。

Table 2 Distribution of words表2 詞語分類
考慮到在日常生活中,快樂和傷心兩個極端情感相對其他類型情感會表現地更多,因此在模型訓練中使用更多數據集進行模型的情感分析學習。
使用word2vec 訓練詞向量,設置語義詞向量維度為100,訓練迭代次數為200,學習率α為0.05。文本長度與注意力權重的維度保持一致,每個單詞的輸出為100維。
使用TensorFlow 框架Keras 快速搭建并訓練注意力機制的LSTM-RNN 模型,設置LSTM 層數為100 層,RNN 層數為100 層。訓練過程將整個詞語庫按照7:2:1 分為訓練集、測試集與驗證集。模型性能評估使用神經網絡的通用指標,即準確率P、召回率R和F1值。F1表達式為:

為體現出LSTM-RNN 模型在情感分析中的準確性與高效性,以及采用注意力機制后模型對重要信息部分和較不重要信息部分判別的敏感性加強,對RNN 模型、注意力機制的RNN 模型、LSTM-RNN 模型與本文模型的性能進行比較,如表3所示。

Table 3 Comparison of 4 models表3 4種模型比較
分析不同模型的實驗結果可得出以下結論:
(1)由于語義文本中的上下文詞語緊密相連,單純使用RNN 模型盡管訓練速度很快,但是上文特征并沒有很好地傳遞到下文,預測結果不準確。
(2)使用注意力機制后的RNN 模型對整句語義文本的不同部分分配不同權重值,能夠增強模型對數據的敏感性,但其分析上下文特征的能力并沒有得到改善,預測結果并不穩(wěn)定。
(3)改用LSTM-RNN 模型后可很好地解決RNN 中的弊端,上下文特征提取與傳遞能力得到提升,預測情感結果的準確性與穩(wěn)定性有所上升。
(4)本文引入注意力機制的LSTM-RNN 模型各項指標均優(yōu)于以上算法。
實驗結果表明,本文模型在LSTM-RNN 網絡基礎上加入注意力機制,加強了語義文本之間隱含特征的關聯性,并且注意力的存在深度挖掘了語義詞向量的語義權重,使模型針對不同詞向量有著不同敏感度,提升了模型的整體預測效果,穩(wěn)定性也得到了改善。
本文提出一種基于注意力機制的LSTM-RNN 語義文本情感分析模型,在云上利用科大訊飛語音識別引擎將用戶語音信號轉換為語義文本,利用分詞器將文本拆分成單詞以方便后續(xù)詞向量轉換。采用LSTM-RNN 模型進行特征訓練,利用注意力機制,根據語義子句對詞匯賦予不同注意權重進行具有程度差異的特征融合,最終在注意力機制基礎上形成特征向量,得到更精確的語義向量表示。實驗結果表明,該模型能較為有效地根據用戶表達的語言信息預測并挖掘出此時用戶隱含的情感內容,各項指標超過了其他常規(guī)的深度學習算法,且預測結果趨于穩(wěn)定,基本滿足了場景自適應改變的需求,能夠讓用戶沉浸其中。然而,模型中的F1 指標還有待提高,在RNN 層中若采用雙向RNN 效果將更好,但代價是對應的模型訓練時間、控制節(jié)點準備時間及各個工作節(jié)點響應時間也會加長,可能導致用戶體驗的舒適感降低,因此需要從模型的精準度與體驗感兩方面進行綜合權衡,這將是后續(xù)進一步優(yōu)化與改進的重要方向。