Attention based model for speech recognition
Shrimp Chen 04/15/2018
Attention based model常被應用在NLP和圖像等領域,但在與語音識別領域中的解釋和說明不是很全面,因此,以下對其應用在語音識別上做個介紹。
Attention相較於傳統LSTM的技術優勢是?它能解決CNN、RNN所解決不了的什麼難題?
目前常用的encoder-decoder的結構模型非常熱門,因為在許多領域較其他傳統模型的方法表現更好,然而,這種模型在輸入序列非常長的時候,model難以學到合理的向量來表示。
Section 1. Introduction:
序列中的attention
使用傳統encoder和decoder的RNN model先用一些LSTM單元來對輸入序列進行學習,編碼成固定的向量,然後再用一些LSTM單元來讀取這種向量並解碼為輸出序列,此種模型解決許多較難的序列預測問題(e.g. 文本翻譯)。
attention機制的概念是:打破傳統encoder和decoder在編碼時,都依賴於內部一個固定長度向量的限制。透過保留LSTM編碼器對輸入序列的中間輸出結果,然後訓練一個模型來對這些輸入進行選擇性的學習,並且在模型輸出時將輸出序列與之進行關聯。
Attention是一種weight向量或矩陣,其一直被用在encoder-decoder的架構中。當weight越大,代表context對輸出越重要。許多計算方式的核心都是透過神經網路學習而得到對應的權重。通常第i步的output Yi和Attention的權重aij相關,而權重aij與decoder的第i-1步隱藏狀態、encoder的第j層狀態hj相關。
首先,Attention的架構圖如圖一,其ecnoder端是一個BiRNN架構,Decoder中第i步的output Yi和Attention的權重hj相關。
其輸出Yi為:
其中,genreate的架構為RNN的decoder,Si-1為decoder中第i-1個狀態,gi表示glimpse,即attention和隱藏層H相乘之後的結果,glimpse為:
此式中,aij即為attention的權重,hj為encoder的第j個隱藏狀態。
si為decoder中的隱藏狀態,依賴著si-1、gi、yi,如下列所示:
以上為attention的用法,接著來看權重aij是如何得到的? aij是eij經過softmax的結果。
eij計算方式如下:其為content-based attention,W、V和b皆為學到的參數。
從eij的計算方式中我們得知aij是和decoder的第i-1步隱藏狀態si-1、encoder的第j層隱藏狀態hj相關
eij還有其他的計算方式:把上一步驟中的ai-1加入到進來,成為location based attention,下圖的F為卷積操作
aij還有sharpen的實現方式,其中β > 1
和smooth方式:
以上就是attention在語音識別的初步用法。
Section 2. Application:
基於attention機制的LSTM/RNN模型應用在以下的5個領域:機器翻譯、圖片掃描、語義蘊含、語音識別和文本摘要。
a
ttention在語義蘊含(entailment)的應用
輸入:給定一個用英文描述的前提和假設,輸出假設與前提是否矛盾、相關或成立?
e.g. 前提:在一個婚禮派對上拍照 假設:有人結婚了,在這個例子中的假設是成立的。attention機制被用於關聯假設和前提描述文本之間詞與詞的關係。
加入attention機制,同時讀取前提和假設兩個描述的文本序列並且判斷假設是否成立,來找出假設和前提穩笨中詞/短語之間的對齊關係,效能提升了2.6% [3]。下圖是把entailment可視化。
attention在語音識別上的應用
輸入:給定一個英文語音片段,輸出:對應的音素序列,attention機制被應用在對輸出序列的每個音素和輸入語音序列中一些特定幀進行關聯。基於attention機制的端到端可訓練語音識別模型,能夠結合文本內容和位置訊息來選擇輸入序列中下一個進行編碼的位置,此模型的優點是能夠識別長度比訓練數據長得多的語音輸入[4]。該模型的可視化如下圖
Bahdanau將attention based model應用在 LVCSR中,分別做出了三種修改:
(1) 對attention的計算範圍提升為2W,加快訓練和編碼
(2)RNN結構為GRU,對RNN增加了時序上的pool,減少RNN長度和計算量
(3)加入n-gram,支持WFST解碼
其attention相關的結構如下圖二,圖二中的ct相當於Section 1中介紹的glimpse gi。
此架構最低的WER = 9.3%,已經達到2015年CTC +3-gram的水準,但是依然還有兩個問題:
(1) 適合語音識別,對長句子識別比較差。
(2) noisy data的時候,訓練不穩定。
同時,經典的Listen, Attend and Spell [1]裡,encoder RNN又稱為listener。listener為一個金字塔RNN架構,用來把低維的語音信號轉成高維特徵,而金字塔RNN架構可加快訓練收斂的速度。decoder RNN又稱為speller。speller為RNN架構,藉由attention的機制,把高維特徵轉成對應的文本句子,此整體架構結合語言模型最好的WER = 10.3%。
上圖三,反映了attention自身的侷限性:句子太短(字數在5個字以內)或者句子太長(超過16個字),是別錯誤率都非常高。
因此,當我們把基於語音聲學模型對attention和CTC進行建模,共用一個encoder,decoder分為CTC和attention兩個,通過權重λ來給定不同的權重比,CTC作為輔助,使得attention盡快收斂,架構如下圖四。
其架構的loss function為:
在encoder結構為BLSTM,每層320個節點,decodre為單向LSTM,節點也為320個。在λ為0.2、0.5、0.8的情況下,模型收斂的情況如下圖五:
對比藍色的attention和紅色的CTC模型,我們看到 MTL \(CTC+attention\)模型收斂的更快,這是因為初始階段的CTC對齊得更準確,使得attention收斂的更快,最終的CER如下表一所示。λ在0.5或0.8的情況下,字的正確率超過了attention和的CTC模型。
Section 3. Future Works:
google針對attention based model提出了self-attention和multi-head attention架構,而Facebook提出的attention based model在CNN機器翻譯領域達到了state-of-art的水準。attention會更加廣泛的被應用在語音識別領域中,逐漸使用multiple 'hops'的形式,且針對長句和短句語音進行優化。attettion應用在LSTM/RNN模型中解決了以下存在的序列預測問題,因此效果可以有顯著的提升。
採用傳統encoder
&
decoder結構的LSTM/RNN模型,會將不同長短的輸入都編碼長一個固定長度的向量表示,這對於長輸入序列的學習效果會很差,也代表了解碼效果很差。而attention機制克服了固定長度的編碼問題,原理是在模型輸出時,會選擇性的考慮輸入中對應的相關訊息。因此使用attention機制的方法被廣泛運用在各種序列預測的任務上,包括文本翻譯和語音識別等等。
[0] Attention based model for 语音识别 retrieved fromhttps://zhuanlan.zhihu.com/p/28462545
[1] W. Chan, N. Jaitly, Q. Le, and O. Vinyals, “Listen, attend and spell: A neural network for large vocabulary conversational speech recognition”
[2] 一文讀懂Attention:Facebook曾拿CNN秒殺谷歌,現如今谷歌拿它秒殺所有人
。retrieved fromhttps://kknews.cc/zh-tw/tech/e8e4poz.html
[3]Reasoning about Entailment with Neural Attention, 2016。retrieved fromhttps://arxiv.org/abs/1509.06664
[4]Attention-Based Models for Speech Recognition, 2015。 retrieved fromhttps://arxiv.org/abs/1506.07503