LAS:
listen, attented and spell,Google
思想:
sequence to sequence的思想,模型分為encoder和decoder兩部分,首先將任意長的輸入序列通過encoder轉化為定長的特征表達,然后輸入到decoder再轉化為任意長的輸出序列;相比於傳統sequence to sequence在decoder部分引入attention機制,讓模型自學習特征相關性,有助於提升識別效果,對靜音和噪聲具有較好魯棒性

其中,輸入序列x=(x1,x2,x3,....xT),每個時間片聲學特征為40維logfbank; 隱層狀態h=(h1,h2,h3,....,hU),U<T; 輸出序列y=(<sos>,y1,y2,y3,....,yS,<eos>),<sos>和<eos>分別代表起始和結束符號
模型:
- encoder采用1 BLSTM(512)+3 pBLSTM(512)的金字塔狀結構,能夠將原始時間片減少到1/8,從而剔除冗余信息,加速decoder部分訓練;

其中, i為第i個時間片,j為第j個隱層;
- decoder采用兩層的單向LSTM(521)結構,且引入attention機制


其中,
Φ和ψ表示MLP網絡

- 目標函數:最大化每個時間片的log概率


- 解碼:beam width=32的beam search+n-gram Rescore

其中,|y|
c為字符長度,實驗中λ=0.008
細節:
- pBLSTM結構能夠有效解決模型收斂緩慢和識別效果較差的問題,這種金字塔結構可以減少上層隱層的輸出時間片個數,從而剔除冗余信息,加速deocder訓練
- LSTM結構相比傳統RNN,能夠有效緩解梯度彌散,網絡采用均勻分布進行初始化u(-0.1~0.1)
- attention機制能夠自學習特征相關性,一定程度上屏蔽干擾信息,比如靜音、噪聲等
- decoder部分在訓練時,如果采用當前時間片的輸入為上一時刻的標簽這種模式;那么在測試時,模型因為無法利用groundtruch信息而影響識別結果;論文在訓練中采用10%的概率采用上一時刻的預測輸出作為當前時刻的輸入,從而緩解訓練和測試的差異性
- 解碼時采用beam search+LM Rescore形式,能夠帶來5%的提升效果
- 解碼時,每一時刻的輸出概率進行歸一化處理,緩解模型偏向較短的路徑
- 論文還證明了,相比於CTC結構,網絡結構具有學習隱式語言模型的能力,比如“triple a”和“aaa”
- 數據部分采用2000小時的Google voice search utterances,抽取10小時dev set和16小時test set;此外,采用混響和噪聲增強使的數據量擴大了20倍
效果:
- 模型在最優的情況下取得了clean 10.3%和noise 12.0%的WER
- LM Rescore帶來了5%的效果提升
- decoder訓練時采用sample方式將上一時刻預測輸出作為當前時刻輸入,帶來了2%的提升

- google state-of-the-art模型CLDNN clean 8.0%和noise 8.9%;論文分析原因在於CLDNN中采用了CNN的前置結構,CNN作為淺層特征提取器,能夠增強頻域不變形,為LSTM提供更強大的特征表達
- 作者對LAS進行了基於pytorch的代碼實現,並使用kaldi做數據准備、特征提取和cmvn;並在aishell1上進行了訓練
- 實現中,模型的輸入是240維fbank特征
- 模型的encoder部分采用3層BLSTM結構,結點數為256,采用droput=0.2
- deocder采用1層LSTM,結點數512
- attention結構中,MLP網絡采用兩層線性層,第一層線性層輸出維度512,激活函數tanh,第二層線性層輸出維度為字典個數4203,MLP輸出后接softmax
- 解碼部分采用beam width=30的beam search算法得到最終的最優解碼,未使用額外的LM
- 優化函數adam
- aishell1 test cer: 13.2%

Reference:
[1] https://arxiv.org/pdf/1508.01211.pdf