Sequence Models — week 3

Kevin Chiu
CodingJourney
Published in
3 min readAug 26, 2019

Week 3: Sequence models & Attention mechanism

上一篇:week 2

1. Various sequence to sequence architectures

1.1 Basic Models

先複習一下基本的sequence to sequence model 以及 image caption(圖片標註<看圖說故事>)的應用

1.2 Picking the most likely sentence

Andrew在這邊介紹條件語言模型,用機器學習翻譯(e.g.從英文翻成法文)是把x<1>, …, x<Tx>(紅色encoder部分)丟進Language model裡,再算出基於x<1>, …, x<Tx>的y<1>, …, y<Ty>條件機率,也就是得到英文基於法文的條件機率的翻譯句子。

最後得到下右圖的結果,那要怎麼選出正確機率最大的句子呢?

我們會使用Beam Search (定向搜尋)這個演算法。

在這邊有特別提到為什麼不使用貪婪演算法(greedy algorithm),因為貪婪演算法在本例中會一次選出一個最佳機率的詞然後繼續選下一個,但這樣的翻譯方式並不一定夠準確。因此需要用Beam search algorithm來處理機器翻譯的問題。

1.3 Beam Search Algorithm 定向搜尋演算法

相較於貪婪演算法一次只選一種最佳解,定向搜尋會考慮多重替代方案

當設定B=3,在每次定向搜尋都會給出3種方案,再慢慢往下延伸。從下圖可以看到:第一步驟選出三個最佳機率的字詞,第二步驟是計算這三個字詞在模型中最佳機率的下一個詞( P(y<1>, y<2>, …,y<Tx>|x)),並繼續類推。

1.4 Refinements to Beam Search

介紹完Beam Search的基本概念,我們要繼續讓定向搜尋更優化。在這章節我們要正規化原本的定向搜尋公式,如下圖。

那關於前面提到的B大小要怎麼決定呢?一般來說很常看到B被設定在10,但這個值的設定大小取決於應用的領域。

相較於演算法常見的BFS, DFS,Beam Search Algorithm的速度快很多,卻不一定能找到絕對的最大值。

1.5 Error analysis in beam search

從Error analysis來決定是定向搜尋演算法的錯誤或是RNN模型的錯誤,在訓練過程中讓我們釐清整個模型需要做哪些修改。從下圖的範例,我們要分析為什麼模型訓練出來的是錯誤的翻譯,並得出 case 1 & case 2 的各自問題(Bean search error & RNN model error)。

1.6 BLEU score (bilingual evaluation understudy)

如果有多個都很好的翻譯,要怎麼計算哪一個的準確度最高呢?在這個章節我們介紹bleu score。

1.7 Attention Model Intuition 注意力模型

Sequence to Sequence(Seq2Seq)+Bleu 的任務目標是:輸入一個序列,輸出另一個序列。這種任務形式普遍存在於翻譯、對話、文本摘要生成等多種NLP任務中,然而,這種方法的缺點是會隨著句子的增加,而使錯誤慢慢增加(bleu score 減少),例如:當我們翻譯一句話中某個單詞時,跟它相鄰詞的參考價值,往往要大於遠離它的詞。Attention Model Intuition便是要解決這個問題。

Attention mechanism

Attention Mechanism與人類對外界事物的觀察機制很類似,當人類觀察外界事物的時候,一般不會把事物當成一個整體去看,往往傾向於根據需要選擇性的去獲取被觀察事物的某些重要部分,比如我們看到一個人時,往往先Attention到這個人的臉,然後再把不同區域的資訊組合起來,形成一個對被觀察事物的整體印象。

Attention是一種用於提升基於RNN(LSTM或GRU)的Encoder + Decoder模型的效果的的機制(Mechanism),一般稱為Attention Mechanism。Attention Mechanism目前非常流行,廣泛應用於機器翻譯、語音識別、影象標註(Image Caption)等很多領域,之所以它這麼受歡迎,是因為Attention給模型賦予了區分辨別的能力,例如,在機器翻譯、語音識別應用中,為句子中的每個詞賦予不同的權重,使神經網路模型的學習變得更加靈活(soft)。

同時Attention本身可以做為一種對齊關係,解釋翻譯輸入/輸出句子之間的對齊關係,解釋模型到底學到了什麼知識,為我們開啟深度學習的黑箱,提供了一個視窗。

2. Speech recognition — Audio data

2.1 Speech recognition

現今語音辨識的資料集常常是超過100,000 hour的,在這章節,我們要透過之前介紹的Attention model來實作語音辨識

其中會應用到CTC cost function(Connection is Temporal Classification),CTC 讓RNN能生成blank character,以下圖為例:透過CTC 輸出y<..>: ttt_h_eee___ ___qqq___ 來代表 ”the q…”,從下面範例的1000個輸出組合成19個character。

2.2 Trigger Word Detection

下圖的trigger範例,兩條直線就是指收到trigger word開始,將前面的輸出y<t>設成0,將trigger word開始的數個輸出設成1,若持續收到trigger word則重複相同的步驟。

Conclusion

#assignment 1: Neural Machine Translation with Attention

#assignment 2: Trigger word detection

--

--