語音識別端到端模型解讀:FSMN及其變體模型

摘要:在很長一段時間內,語音識別領域最常用的模型是GMM-HMM。但近年來隨着深度學習的發展,出現了越來越多基於神經網絡的語音識別模型。

一、概述

在很長一段時間內,語音識別領域最常用的模型是GMM-HMM。但近年來隨着深度學習的發展,出現了越來越多基於神經網絡的語音識別模型。在各種神經網絡類型中,RNN因其能捕捉序列數據的前後依賴信息而在聲學模型中被廣泛採用。用得最多的RNN模型包括LSTM、GRU等。但RNN在每一個時刻的計算都需要上一個時刻的輸出作爲輸入,因此只能串行計算,速度很慢。

除此之外,相比於FNN等網絡結構,RNN的訓練易受梯度消失的影響,收斂得更慢,且需要更多的計算資源。前饋序列記憶神經網絡(Feedforward Sequential Memory Networks, FSMN)[1][2]的提出,就是爲了既能保留RNN對序列前後依賴關係的建模能力,又能加快模型的計算速度,降低計算複雜度。而之後提出的cFSMN[3]、DFSMN[4]和Pyramidal FSMN[5],都是在FSMN的基礎上,進一步做出了改進和優化。FSMN、cFSMN和DFSMN都是中科大張仕良博士的工作,Pyramidal FSMN則是雲從科技在2018年刷榜Librispeech數據集時提出的模型。

二、FSMN

圖1. FSMN模型結構

FSMN從本質上來說是一個前饋全連接網絡(FNN),創新之處在於其隱藏層中增加了一個記憶模塊(memory block)。記憶模塊的作用是把每個隱藏狀態的前後單元一併編碼進來,從而實現對序列前後關係的捕捉。具體的計算流程如下:假設輸入序列爲,其中表示t時刻的輸入數據,記對應的第層隱藏層狀態爲,則記憶模塊的輸出爲:

其中,表示逐元素相乘,是需要學習的係數參數。這是單向的FSMN,因爲只考慮了t時刻過去的信息,若要考慮未來的信息,只需把t時刻之後的隱藏狀態也用同樣的方式進行添加,雙向FSMN的計算公式如下:

其中,表示考慮過去信息的階數,表示考慮未來信息的階數。記憶模塊的輸出可以視作t時刻的上下文的信息,與t時刻的隱藏層輸出一起送入下一隱藏層。下一隱藏層的計算方式爲:

FSMN也可以與注意力機制相結合,此時記憶模塊的參數以及輸出的計算方式爲:

三、cFSMN

圖2. cFSMN模型結構

爲了進一步簡化模型,壓縮模型大小,提高訓練和推理速度,cFSMN對FSMN主要做了兩個改進:

通過對權重矩陣進行低秩矩陣分解,將隱藏層拆成兩層;

在cFSMN層的計算中進行降維操作,並只把記憶模塊的輸出送入下一層,當前幀的隱藏狀態不再直接送入下一層。

cFSMN層的具體計算步驟爲:通過一個低秩線性變換將上一層的輸出進行降維,得到的低維向量輸入記憶模塊,記憶模塊的計算類似於FSMN,只是多加一個當前幀的低維向量來引入對齊信息。最後把記憶模塊的輸出進行一次仿射變換和一次非線性變換,作爲當前層的輸出。參照圖2,每個步驟的計算公式如下:

在Switchboard任務上,cFSMN可以在錯誤率低於FSMN的同時,模型大小縮減至FSMN模型的三分之一。

四、DFSMN

圖3. DFSMN模型結構

顧名思義,DeepFSMN (DFSMN)的目的是希望構建一個更深的cFSMN網絡結構。但通過直接堆疊cFSMN層很容易在訓練時遇到梯度消失的情況,受殘差網絡(Residual Network)和高速網絡(Highway Network)的啓發,DFSMN在不同層的記憶模塊之間添加了skip connection。同時,由於語音信號的相鄰幀之間存在重疊和信息冗餘,DFSMN仿照空洞卷積在記憶模塊中引入了步幅因子(stride factor)。參照圖3,第層記憶模塊的計算方式爲:

其中,表示skip connection操作,論文中選擇的是恆等映射(identity mapping)。和分別是記憶模塊在處理過去信息和未來信息時使用的步幅大小。

四、Pyramidal FSMN

Pyramidal FSMN(pFSMN)認爲之前的FSMN系列模型的一個缺點是,底層和頂層的網絡層都會去提取長期上下文信息,這就造成了重複操作。pFSMN提出了金字塔型的記憶模塊,越深的網絡層提取越高級的特徵,即底層網絡層提取音素信息,而頂層網絡層提取語義信息和句法信息。這種金字塔結構可以同時提高精度、減少模型參數量。pFSMN減少了DSFMN中使用的skip connection的數量,只在記憶模塊的維度發生變化時才進行skip connection操作。記憶模塊的計算方式爲:

除了引入金字塔結構,pFSMN的另外兩個改進是:

借鑑圖像處理的方法,在FSMN層之前加入一個6層Residual CNN模塊,用於提取更爲魯棒的語音特徵,並通過降採樣減少特徵維度。

採用交叉熵損失(CE loss)和LF-MMI損失的加權平均來作爲模型訓練時使用的損失函數。引入CE loss的原因是訓練序列數據時很容易出現過擬合的情況,CE loss相當於起到一個正則化的效果。

圖4. Pyramidal FSMN模型結構

參考文獻:

[1] Zhang S, Jiang H, Wei S, et al. Feedforward sequential memory neural networks without recurrent feedback[J]. arXiv preprint arXiv:1510.02693, 2015.

[2] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.

[3] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech Recognition[C]//Interspeech. 2016: 3389-3393.

[4] Zhang S, Lei M, Yan Z, et al. Deep-fsmn for large vocabulary continuous speech recognition[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018: 5869-5873.

[5] Yang X, Li J, Zhou X. A novel pyramidal-FSMN architecture with lattice-free MMI for speech recognition[J]. arXiv preprint arXiv:1810.11352, 2018.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章