沈 然,王慶娟,金良峰,丁 麒
(國網(wǎng)浙江省電力有限公司營銷服務(wù)中心,杭州 311121)
在電力運營過程中,電力客戶服務(wù)平臺為企業(yè)與海量用戶之間的溝通提供一種有效的方式[1]。公司電力客服業(yè)務(wù)存在坐席人員流動性大、業(yè)務(wù)水平參差不齊、部分人員對電力客服業(yè)務(wù)領(lǐng)域知識儲備有所不足等問題,可能導(dǎo)致其解答用戶訴求精準(zhǔn)度低、時效性差,無法及時解決用戶問題,增加了用戶的投訴。為了解決這些問題,提升電網(wǎng)客服服務(wù)質(zhì)量,電網(wǎng)客服系統(tǒng)需要量化客戶訴求中的情感因素,以便快速了解客戶的訴求焦點,并根據(jù)客戶情感反饋來評估具體事項的實施效果,這對電力企業(yè)具有十分重要的意義[2]。
語音情感識別是人工智能算法核心應(yīng)用之一,在語音信號處理和情感分析等方面具有重要的應(yīng)用價值,也是當(dāng)下學(xué)術(shù)界熱門的研究方向[3]。將語音情感識別應(yīng)用到電力運營過程中的客戶語音情感識別,可以為電網(wǎng)公司提供有價值的客戶情感反饋,為后續(xù)決策提供數(shù)據(jù)支持。相關(guān)研究表明,人的情感會影響到發(fā)音器官的運動,當(dāng)人的心情是積極的時候,聲音是清脆、高昂的;而當(dāng)人的心情是消極的時候,聲音則是沉悶、無力的。在學(xué)術(shù)研究中[4],語音情感識別是通過語音信號來分析和推測用戶情感的方法,它能夠根據(jù)采集到的語音信號,判斷人在發(fā)聲過程中的情感。經(jīng)典的語音情感識別方法一般先從語音信號中提取特征表示,然后訓(xùn)練分類算法完成情感分類。在語音情感識別任務(wù)中,語音信號的特征選擇具有重要的作用,常用的語音信號特征包括基音、語速、強度(韻律特征)、線性預(yù)測倒譜系數(shù)、梅爾頻率倒譜系數(shù)(頻譜特征)等[5]。然而,這些特征都是領(lǐng)域?qū)<彝ㄟ^個人經(jīng)驗設(shè)計的,這些人工設(shè)計的特征在通用的語音任務(wù)上取得了較好的效果,但是在特定的語音情感分類任務(wù)上面往往表現(xiàn)不佳。因此學(xué)術(shù)界開始研究使用以神經(jīng)網(wǎng)絡(luò)等為代表的端到端的語音情感分類方法,以此從數(shù)據(jù)中自動學(xué)習(xí)語音數(shù)據(jù)的特征表示。
近年來,機器學(xué)習(xí)和深度學(xué)習(xí)算法得到了快速發(fā)展,并由此產(chǎn)生了包括CNN(卷積神經(jīng)網(wǎng)絡(luò))、LSTM(長短期記憶網(wǎng)絡(luò))等在內(nèi)的一大批優(yōu)秀的算法,基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)在語音情感識別任務(wù)中表現(xiàn)出優(yōu)異的性能[6]。相對于傳統(tǒng)的利用手工特征訓(xùn)練分類模型的語音情感識別方法,該方法可以將特征自主學(xué)習(xí)融合到模型訓(xùn)練過程中,并達到很好的識別效果。然而,傳統(tǒng)的基于神經(jīng)網(wǎng)絡(luò)等學(xué)習(xí)方法需要專家根據(jù)任務(wù)和經(jīng)驗預(yù)先設(shè)計神經(jīng)網(wǎng)絡(luò)模型,這些模型都是由專家通過大量的試錯過程手動設(shè)計的,這意味著即使是專家也需要大量的資源和時間來創(chuàng)建性能良好的模型,這限制了神經(jīng)網(wǎng)絡(luò)在語音情感分類任務(wù)上的應(yīng)用[7]。
為了簡化算法流程,將人類從機器學(xué)習(xí)模型設(shè)計的過程解放出來,讓模型設(shè)計過程更加智能,學(xué)術(shù)界一直在探索讓算法自動尋找最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)的方法[8]。自動機器學(xué)習(xí)是指將深度神經(jīng)網(wǎng)絡(luò)的設(shè)計和訓(xùn)練進行自動化端到端流程的過程,并應(yīng)用適當(dāng)?shù)臄?shù)據(jù)預(yù)處理、特征工程、模型選擇和模型評估來解決特定任務(wù)。這一概念的思路就是在智能搜索和算法優(yōu)化的基礎(chǔ)上,由算法本身去尋找特定任務(wù)的具體數(shù)據(jù)處理與識別算法和方案,從而代替專家進行網(wǎng)絡(luò)模型設(shè)計和算法求解,并且這種方法設(shè)計的神經(jīng)網(wǎng)絡(luò)模型能在應(yīng)用效果上超過大部分專家。自動機器學(xué)習(xí)技術(shù)對于降低構(gòu)建機器學(xué)習(xí)系統(tǒng)的人力和時間成本具有十分重要的價值,得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[9]。
為了根據(jù)電網(wǎng)客戶語音情感分類任務(wù)需求提供的數(shù)據(jù),靈活使用最先進的深度學(xué)習(xí)模型,自動確定最適合特定應(yīng)用的模型架構(gòu)和學(xué)習(xí)策略,解決算法應(yīng)用過程中過多依賴人工算法設(shè)計的問題,本文利用自動機器學(xué)習(xí)算法進行語音情感分類自動識別研究。從而簡化了算法使用邏輯,提升電網(wǎng)客戶服務(wù)的智能便捷化和響應(yīng)水平,降低人工智能的落地難度,提升客戶服務(wù)的智能便捷化響應(yīng)水平,為企業(yè)級客戶服務(wù)AI(人工智能)中臺奠定基礎(chǔ)[10]。
人工設(shè)計的網(wǎng)絡(luò)如DenseNet(密集連接卷積網(wǎng)絡(luò))、VGG、ResNet(深度殘差網(wǎng)絡(luò))等結(jié)構(gòu),是通過卷積、池化、全連接等網(wǎng)絡(luò)層搭建出來的。自動機器學(xué)習(xí)算法為了得到最終神經(jīng)網(wǎng)絡(luò)框架,也需要預(yù)先定義類似的操作集合來構(gòu)成待求解模型的搜索空間[11]。為了完成對網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的建模和自動化,通過搜索的方法得到最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu),結(jié)合過去研究過程中對經(jīng)典問題進行模型設(shè)計的經(jīng)驗,通??梢詼p小所設(shè)計的搜索空間、簡化搜索過程,并且能夠提高模型的性能。
為了針對電網(wǎng)客戶語音情感分類任務(wù)獲得更好的性能效果,本文采用基于細胞神經(jīng)結(jié)構(gòu)和元架構(gòu)的方式進行模型搜索[12]。與常用的鏈?zhǔn)剿阉鞑煌摲椒ㄊ紫仍谛〉臄?shù)據(jù)集上搜索出最合適的細胞結(jié)構(gòu),然后將其遷移到大數(shù)據(jù)集的細胞上。這就可以避免在大數(shù)據(jù)集上不斷訓(xùn)練搜索而給網(wǎng)絡(luò)帶來巨大的計算量,利用有限的計算資源達到最好的效果,同時盡可能將更多的步驟自動化。同時,為了提高效率,會引入歷史上模型的設(shè)計經(jīng)驗來指導(dǎo)搜索過程。
1)為了實現(xiàn)神經(jīng)結(jié)構(gòu)細胞和元架構(gòu)的搜索,首先需要解決神經(jīng)結(jié)構(gòu)細胞的搜索空間設(shè)計問題。為了快速獲得合適的細胞結(jié)構(gòu),只搜索簡單的單層搜索結(jié)構(gòu)。為此,假設(shè)每個細胞由一個輸入節(jié)點和一個輸出節(jié)點組成,而一個細胞的輸出可以通過一個結(jié)合操作對所有中間節(jié)點的輸出進行整合。針對處理語音信號的神經(jīng)網(wǎng)絡(luò)的細胞結(jié)構(gòu),其基本組成單位如表1所示。
表1 CNN搜索空間設(shè)計
2)細胞搜索的范圍確定后,就可以設(shè)計與之對應(yīng)的元架構(gòu)空間。為了方便大規(guī)模的數(shù)據(jù)集處理以及不同尺度的特征要求,本文引入了2種細胞單元架構(gòu),一種保留輸入數(shù)據(jù)的維度,另一種降低輸入數(shù)據(jù)的維度。元架構(gòu)構(gòu)建采用固定元架構(gòu)的方式。每個細胞結(jié)構(gòu)將重復(fù)多次,但是他們的具體權(quán)值參數(shù)將通過具體數(shù)據(jù)進行訓(xùn)練得到。
在具體應(yīng)用中,對于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的第l層,記其中的基本操作結(jié)構(gòu)集合為每個基本操作都有唯一的輸入和數(shù)據(jù)節(jié)點,定義操作的神經(jīng)網(wǎng)絡(luò)圖模型的鄰接矩陣為Gl=其中,=k表示數(shù)據(jù)節(jié)點i和j之間的操作為k。那么網(wǎng)絡(luò)的構(gòu)建可以采用層次化的構(gòu)建完成,即第l層的結(jié)構(gòu)為第l-1 層的結(jié)構(gòu)組裝產(chǎn)生,具體過程通過ASSEM函數(shù)實現(xiàn):
通過該網(wǎng)絡(luò)結(jié)構(gòu),數(shù)據(jù)節(jié)點i的特征圖xi為它的所有前驅(qū)數(shù)據(jù)節(jié)點的特征圖xj組合得到,具體過程通過merge函數(shù)實現(xiàn):
在自動機器學(xué)習(xí)算法中,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索策略主要研究使用什么樣的算法能夠高效準(zhǔn)確地從搜索空間中找到最優(yōu)的模型結(jié)構(gòu)和超參數(shù)[13]。制定搜索策略一般化的過程是:根據(jù)基本的策略規(guī)則創(chuàng)建初始網(wǎng)絡(luò);然后對其進行訓(xùn)練,并在驗證集合上進行測試;最后根據(jù)網(wǎng)絡(luò)測試結(jié)果和性能的反饋來優(yōu)化這些策略規(guī)則。這3個步驟是一個更新迭代的過程,通過不斷地優(yōu)化策略可以實現(xiàn)對網(wǎng)絡(luò)模型進行迭代更新。最新學(xué)術(shù)研究發(fā)現(xiàn),強化學(xué)習(xí)、梯度優(yōu)化和貝葉斯優(yōu)化等搜索策略在自動機器學(xué)習(xí)模型搜索中具有出色表現(xiàn),3種方法在實驗中的表現(xiàn)始終優(yōu)于隨機搜索[14]。
在這3種方法中,梯度優(yōu)化具有較高的求解效率,但是求解過程中,需要將離散的模型參數(shù)進行連續(xù)化表示,在此過程中會帶來性能損失。貝葉斯優(yōu)化利用高斯過程來估計模型的參數(shù),建模時需要對參數(shù)的先驗分布進行假設(shè),但是因為模型參數(shù)的復(fù)雜性,往往難以對參數(shù)分布設(shè)計合理的先驗。強化學(xué)習(xí)是更為常用的自動機器學(xué)習(xí)求解算法,它不依賴于參數(shù)的先驗分布,得到的模型也能達到較好的性能。因此,本文利用強化學(xué)習(xí)[15]進行模型求解。由于機器學(xué)習(xí)的推理模型的映射和連接性通??梢酝ㄟ^變長字符串表示,因此基于NASNet 算法[16],通過一個RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))[17]作為控制器來生成這個字符串,進而對應(yīng)到特定的網(wǎng)絡(luò)結(jié)構(gòu)。
算法如圖1 所示,通過RNN 控制器采樣得到某一個特定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并在該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)下利用語音情感分類數(shù)據(jù)訓(xùn)練模型,然后得到相應(yīng)的驗證集上的準(zhǔn)確率。使用該準(zhǔn)確率來表征本次搜索得到的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的好壞,進而將此作為信號來訓(xùn)練RNN 控制器。RNN 控制器每次的輸出結(jié)果為一個特定的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),把RNN控制器中每一步輸出的結(jié)果看作是強化學(xué)習(xí)中的行動,對應(yīng)的狀態(tài)就是控制器到第t步為止生成的網(wǎng)絡(luò)結(jié)構(gòu)。該強化學(xué)習(xí)問題在一個軌跡結(jié)束之后會給出一個反饋R,也就是該神經(jīng)網(wǎng)絡(luò)結(jié)果對應(yīng)的驗證集上的損失。這樣就可以使用強化學(xué)習(xí)方法來更新RNN控制器權(quán)重,即通過最大化反饋期望的方式來優(yōu)化控制器RNN。
圖1 基于強化學(xué)習(xí)的自動機器學(xué)習(xí)搜索算法
式中:a為RNN 控制器預(yù)測得到的超參數(shù);T為其長度;θ為RNN 控制器的參數(shù);(·)為1到T時刻反饋值R的期望;模型的訓(xùn)練過程為最大化J(θ)的過程。
對于強化學(xué)習(xí)生成的神經(jīng)網(wǎng)絡(luò),利用語音情感分類數(shù)據(jù)進行訓(xùn)練,并且記錄得到的這個神經(jīng)網(wǎng)絡(luò)結(jié)果在驗證集上的誤差,以此誤差更新RNN控制器的權(quán)重。此外,算法還使用了啟發(fā)式方法輔助網(wǎng)絡(luò)結(jié)構(gòu)的搜索,即根據(jù)空間激活的大小靈活調(diào)整卷積核的個數(shù),以使得隱藏狀態(tài)的維度保持在一個相對穩(wěn)定的范圍。
在算法求解過程中,首先定義強化學(xué)習(xí)的操作空間為前文中得到的元架構(gòu),強化學(xué)習(xí)的狀態(tài)空間為根據(jù)現(xiàn)有架構(gòu)的參數(shù)序列,記t時刻狀態(tài)為st。為了得到最優(yōu)的網(wǎng)絡(luò)模型并以此訓(xùn)練客戶情感分類模型,該問題等價于最大化以下的目標(biāo)函數(shù):
式中:P(at|a1:(t-1);θ)為當(dāng)前狀態(tài)下,選取下一個動作at的概率。
在強化學(xué)習(xí)中,式(4)存在不同的表達方法。本文中利用Q-learning(Q學(xué)習(xí)粒子群算法)進行函數(shù)的求解,則式(4)等價于:
式中:Q值為通過強化學(xué)習(xí)得到的模型在情感分類任務(wù)上得到較高準(zhǔn)確率的概率,通過構(gòu)建的神經(jīng)網(wǎng)絡(luò)預(yù)測得到;β和γ分別為不同損失的權(quán)重系數(shù);R值為利用得到的模型在情感分類任務(wù)中的準(zhǔn)確率,通過函數(shù)Lval(·)求得;A為動作集合。
式中:Xtrain和Ytrain分別為情感分類任務(wù)中的語音數(shù)據(jù)和相應(yīng)的標(biāo)簽;w為構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型參數(shù)。
整個算法的求解過程如表2所示。
表2 基于強化學(xué)習(xí)的情感分類模訓(xùn)練過程
為了驗證本文提出的自動機器學(xué)習(xí)客戶語音情感分類算法的有效性,利用浙江省電力公司客戶服務(wù)中心電話客服平臺現(xiàn)有系統(tǒng),收集客戶語音片段共計2 799 段。這些片段人工劃分為兩類,一類是2 000 段中性情感的語音,另一類是799 段憤怒的語音。這些片段都被裁剪到固定長度,使得每個語音樣本均能用一個等長的序列表示,從而得到預(yù)處理后的語音序列。對每個語音片段利用開源預(yù)訓(xùn)練語音模型VGGish[18],作為主干網(wǎng)絡(luò)提取每個語音片段的矢量表示。
整個實驗過程在Ubuntu18.04 操作系統(tǒng)下的TensorFlow2.0平臺上進行,自動機器學(xué)習(xí)算法庫采用AutoKeras。每次實驗過程中,從第1 個類別中隨機選取799 個語音片段,與第2 個類別的799個片段合并,作為此情感分類任務(wù)的數(shù)據(jù)集,并按照0.7、0.2、0.1 的比例劃分訓(xùn)練集、驗證集和測試集。在嘗試的所有模型上分別迭代100次,選出最優(yōu)的模型作為最終結(jié)果。
實驗過程中,除了模型結(jié)構(gòu)外,對分類模型的其他參數(shù)進行了如下嘗試:
1)全連接層輸出維度的選擇:對于不同的全連接層,嘗試64、128、256、512、1 024 等不同維度。
2)全連接層的層數(shù):對于模型中全連接層的層數(shù),嘗試2、3、4、5、6、7、8 等不同的層數(shù)(不包括最后的分類全連接層)。
3)dropout 的使用:主要測試了使用dropout(x,p=0.5)、dropout(x,p=0.2)以及不使用dropout這3種策略。
4)歸一化選擇:嘗試BatchNorm 和Layer-Norm這2種歸一化方法[19]。
訓(xùn)練得到的模型的實驗結(jié)果采用分類準(zhǔn)確率進行評價,其計算公式為:
即測試集合上,模型預(yù)測正確數(shù)量所占總量的比例。
通過自動機器學(xué)習(xí)算法,得到的最終模型為:
1)BatchNorm層。
2)3×1普通卷積層。
3)細胞結(jié)構(gòu)1:3×1 普通卷積層;3×1 平均池化層;3×1普通卷積層;全連接層。
4)細胞結(jié)構(gòu)2:3×1 普通卷積層;5×1 普通卷積層;全連接層;3×1普通卷積層。
5)輸出通道數(shù)為1的1×1普通卷積層。
6)輸出維度為512 的全連接層加ReLU 激活函數(shù)。
7)最后通過一個全連接層以及softmax函數(shù)得到模型的分類預(yù)測輸出。
通過搜索算法得到的模型類似經(jīng)典分類任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)。它首先采用BatchNorm 操作對數(shù)據(jù)進行歸一化,利用帶池化的操作細胞結(jié)構(gòu)1對數(shù)據(jù)進行相關(guān)性分析和降維,然后利用細胞結(jié)構(gòu)2進行進一步特征提取,再利用輸出通道數(shù)為1 的1×1卷積降低輸入通道,并利用兩層全連接層提取特征,最終利用softmax函數(shù)完成分類任務(wù)。
從所有模型中選出驗證集上準(zhǔn)確率最高的模型,并最終在測試集上進行測試。訓(xùn)練過程中得到的最好的模型在測試集上的準(zhǔn)確率為90.93%。結(jié)果相應(yīng)的混淆矩陣如表3所示,可見實現(xiàn)了一個比較高的識別率。
表3 分類結(jié)果混淆矩陣
為了驗證自動機器學(xué)習(xí)在模型搜索上的優(yōu)越性,將自動搜索得到的模型和其他常用語音分類算法進行了對比,實驗結(jié)果如表4所示。其中包括了MFCC(梅爾倒譜系數(shù))+SVM(支持向量機)和LPCC(線性預(yù)測倒譜系數(shù))+SVM 為經(jīng)典的手工特征分類方法[5],ResNet_1D為根據(jù)經(jīng)典分類網(wǎng)絡(luò)模型ResNet18 設(shè)計的語音分類網(wǎng)絡(luò),其中的二維卷積改成了適合語音信號的一維卷積,LSTM+softmax 是利用循環(huán)神經(jīng)網(wǎng)絡(luò)進行語音分類的方法。表4實驗結(jié)果表明,利用自動機器學(xué)習(xí)算法得到的神經(jīng)網(wǎng)絡(luò),具有更好的情感分類性能。
表4 不同分類算法準(zhǔn)確率
此外,不同的搜索策略對最終的神經(jīng)網(wǎng)絡(luò)模型具有較大影響。在實驗過程中,利用強化學(xué)習(xí)、梯度優(yōu)化和貝葉斯優(yōu)化3種搜索策略進行網(wǎng)絡(luò)結(jié)構(gòu)搜索。梯度優(yōu)化和貝葉斯優(yōu)化得到的網(wǎng)絡(luò)結(jié)構(gòu)和本文采用的強化學(xué)習(xí)得到的結(jié)構(gòu)較為類似,但是梯度優(yōu)化算法得到的結(jié)構(gòu)缺少BatchNorm 層,貝葉斯優(yōu)化算法得到的結(jié)構(gòu)中部分卷積為3×1深度分離卷積。3個方法得到的模型經(jīng)訓(xùn)練后在最終的測試集上得到的分類準(zhǔn)確率如表5所示。實驗結(jié)果表明,利用強化學(xué)習(xí)在該問題上得到的模型具有更高的準(zhǔn)確率。
表5 不同搜索策略的模型分類準(zhǔn)確率
對電網(wǎng)客戶語音中隱含的情感信息進行深度挖掘是提高電力企業(yè)客戶滿意度及客服主動服務(wù)意識的有效手段。實現(xiàn)量化客戶訴求情感分析,有利于快速了解客戶的關(guān)注焦點,減少投訴的發(fā)生。為了實現(xiàn)采用最新的人工智能算法對客戶語音進行準(zhǔn)確情感識別的目的,本文提出了一種基于自動機器學(xué)習(xí)的電網(wǎng)客戶情感自動分類算法。該算法通過構(gòu)建神經(jīng)網(wǎng)絡(luò)搜索空間和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索2個模塊完成神經(jīng)網(wǎng)絡(luò)模型的設(shè)計。算法在國網(wǎng)浙江省電力有限公司客戶服務(wù)中心收集的數(shù)據(jù)集上進行了驗證。驗證結(jié)果表明,該算法具有較高的識別率。