天天看點

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

0. 引言

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

seq2seq中文名字就是序列到序列模型。關于他的講解和探究已經有很多通俗易懂的部落格。本篇部落格 旨在紀錄自己對seq2seq模型的了解,希望讀者看到可以有所收獲。

1. Seq2seq Framework

序列到序列模型是一種架構結構,它接受一個序列(單詞、字母、圖像特征等)并輸出另一個序列,由編碼和解碼兩部分構成。如在機器翻譯任務中,一個序列指的是一系列的詞,一個接一個地被處理。同樣,輸出的也是一系列單詞。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

Seq2seq的核心結構是 編碼器+解碼器:

  • 編碼器處理輸入序列中的每一項,将捕獲的資訊編譯成一個向量(對輸入序列的編碼)。
  • 在處理完整個輸入序列後,編碼器将上下文發送給解碼器,解碼器開始逐項生成輸出序列。

在我們自然語言處理領域,很多問題都可用上述這個架構來做,例如閱讀了解、文本摘要、閑聊系統以及看圖說話等等。

下面我們簡單看看機器翻譯領域是如何應用Seq2seq架構來做的。谷歌是最早将序列到序列模型應用到機器翻譯中的。在機器翻譯的情況下,seq2seq的運作模式,

input->encoder->context->decoder->output

。其中

context(

對源文的編碼)是一個向量,代表源文的資訊。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

我們這裡以機器翻譯簡單看一下seq2seq的過程:

文本輸入:我們這裡以輸入法語句子為例子,假設每個單詞可以embedding成四維詞向量,輸入經過嵌入可以如下圖所示:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

編碼器:我們假設編碼器為RNN,每個詞首先轉化為詞向量,一個個地輸入。在每個時間步接受兩個輸入:來自輸入語句的單詞和上一時間步的隐藏狀态。對于RNN我們先用預先設定好的隐狀态 h 0 h_0 h0​來進行初始化。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

解碼器:這裡一般來說是将編碼器的最後一個隐藏狀态傳遞給解碼器當作

context

資訊。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

對于以RNN為基礎結構的seq2seq結構來說,context的準确表示是一個瓶頸,模型很難處理長句。Bahdanau等人,2014年和Luong等人,2015年提出了解決方案:引入一種稱為“注意力機(attention)”的技術,極大地提高了機器翻譯系統的品質。注意力機制使模型能夠有選擇性地關注輸入序列的重要相關部分。

2. attention mechanism

注意力機制(Attention mechanism)源于認知科學,指的是人類會有選擇性地關注一部分資訊而忽略另一部分資訊,也就是說,對于不同的資訊具有不同程度的關注度。這種機制使得人類能夠最大化地利用有限的視覺資源,并且擷取最關鍵的資訊。

2014年,谷歌大腦團隊應用結合了注意力機制的卷積神經網絡在圖像分類以及物體檢測任務上取得了巨大成功。随後的2015年,在自然語言處理領域,結合了注意力機制的循環神經網絡結構也在機器翻譯任務上取得了前所未有的成績。

對于機器翻譯來說,在翻譯不同詞彙的過程中,對源文資訊施加不同的注意力(傳統機器翻譯中的對齊alignment)。

添加注意力後的模型的特點,主要有兩個方面:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation
  • 編碼器向解碼器傳遞更多的資料,編碼器不傳遞編碼階段的最後一個隐藏狀态,而是将所有隐藏狀态傳遞給解碼器。
  • 注意解碼器在産生輸出之前執行額外的步驟,為了聚焦于與該解碼時間步驟相關的輸入部分,解碼的每一時刻執行以下操作:通過編碼器隐藏狀态與解碼器目前隐藏狀态的相關性,對不同的編碼器隐藏狀态打分。打分之後的編碼器隐藏狀态權重相加,并與目前隐藏狀态結合,再進行最後的輸出運算。

    重複下一個時間步驟。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

下面我們簡單來看看訓練後的attention可視化結果:解碼中不同的步驟會專注于不同的編碼器隐狀态。注意,模型并不是預先地将輸出的第一個單詞與輸入的第一個單詞對齊。它實際上是從訓練階段學會了如何對齊語言對中的單詞。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

3. evaluation methods

由于翻譯的多樣性,無法用一般的方式來評判。一般文本生成的任務,都難以有絕對标準的答案 。我們需要了解人工評估需要依賴哪些名額。機器翻譯需要評估的名額比較多,比如充分性、通順性、精确性等。

充分性:該翻譯的資訊是否都翻譯完全。

通順性:翻譯的文本是否通順。

精确性:翻譯的資訊是否精确。

現在流行的評估方式有BLEU和ROUGE。其中BLEU是比較偏向于精确度的,ROUGE是比較偏向召回率的。

3.1 BLEU

核心:比較候選譯文和參考譯文裡的 n-gram 的重合程度,重合程度越高就認為譯文品質越高。unigram用于衡量單詞翻譯的準确性,高階n-gram用于衡量句子翻譯的流暢性。通常取N=1~4,再權重平均。

是以基于詞交集和ngram短語交集設計了一個算法:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

P n P_n Pn​ 指 n-gram 的精确率, W n W_n Wn​指 n-gram 的權重。

B P BP BP 是懲罰因子。BP(Brevity Penalty),翻譯過來就是"過短懲罰"。因為對于超過參考文獻長度的候選譯文已經被上述方法處罰,沒有必要再處罰它們。但是對于小于參考文獻長度的候選譯文,我們引入一個過短懲罰因子,高分數的候選譯文現在必須在長度、單詞選擇和單詞順序上與參考譯文比對。 l r l_r lr​指參考譯文長度。 l c l_c lc​指候選譯文長度。希望譯文更長些。

BLEU的取值範圍是 [ 0 , 1 ] [0,1] [0,1],數值越大表示效果越好。

3.2 ROUGE

專注于召回率(關注有多少個參考譯句中的 n- gram出現在了輸出之中)而非精度(候選譯文中的n-gram有沒有在參考譯文中出現過)。ROUGE 是一種常用的機器翻譯和文章摘要評價名額,由 Chin-Yew Lin 提出,其在論文中主要提出了 3種 ROUGE 方法:

  • ROUGE-N: 在 N-gram 上計算召回率
  • ROUGE-L: 考慮了機器譯文和參考譯文之間的最長公共子序列
  • ROUGE-W: 改進了ROUGE-L,用權重的方法計算最長公共子序列

3.2.1 ROUGE-N

ROUGE-N 主要統計 N-gram 上的召回率,對于 N-gram,可以計算得到 ROUGE-N 分數,計算公式如下:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

公式的分母是統計在參考譯文中 N-gram 的個數,而分子是統計參考譯文與機器譯文共有的 N-gram 個數。

3.2.2 ROUGE-L

ROUGE-L 中的 L 指最長公共子序列 (longest common subsequence, LCS),ROUGE-L 計算的時候使用了機器譯文 C C C和參考譯文 S S S的最長公共子序列,計算公式如下:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

公式中的 R L C S R_{LCS} RLCS​ 表示召回率,而 P L C S P_{LCS} PLCS​ 表示精确率, F L C S F_{LCS} FLCS​ 就是 ROUGE-L。一般 beta 會設定為很大的數,是以 F L C S F_{LCS} FLCS​ 幾乎隻考慮了 R L C S R_{LCS} RLCS​ (即召回率)。注意這裡 beta 大,則 F F F 會更加關注 R R R,而不是 P P P。如果 beta 很大,則 P L C S P_{LCS} PLCS​ 那一項可以忽略不計。

3.2.3 ROUGE-W

由于ROUGE-L在計算最長公共子序列時,對于子序列的連續性沒有限制,即兩個詞彙之間可以有任意長度的代溝,但是這不一定是合理的。兩個生成文本與參考文本都具有同樣的最大公共子序列,此時ROUGE-L的值一樣大,但是第一個生成文本的比對是連續的,而第二個生成文本的比對是不連續的,是以,應該是第一個生成文本的品質相對好一點才對,是以ROUGE-W在ROUGE-L的基礎上對連續性添加一個權重。

3.2.4 ROUGE-S

ROUGE-S 也是對 N-gram 進行統計,但是其采用的 N-gram 允許"跳詞 (Skip)",即跳躍二進制組(skip bigram)。例如句子 “I have a cat” 的 Skip 2-gram 有: (I, have),(I, a),(I, cat),(have, a),(have, cat),(a, cat)。

4. training mechanism

4.1 Teacher forcing

訓練疊代過程早期的RNN預測能力非常弱,幾乎不能給出好的生成結果。如果某一個unit産生了垃圾結果,必然會影響後面一片unit的學習。teacher forcing最初的motivation就是解決這個問題的。圖下圖所示,錯誤結果會導緻後續的學習都受到不好的影響,導緻學習速度變慢,難以收斂。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

Teacher forcing 每次不使用上一個state的輸出作為下一個state的輸入,而是直接使用訓練資料的标準答案(ground truth)的對應上一項作為下一個state的輸入。

Teacher Forcing同樣存在缺點: 一直靠老師帶的孩子是走不遠的。因為依賴标簽資料,在訓練過程中,模型會有較好的效果,但是在測試的時候因為不能得到ground truth的支援,是以如果目前生成的序列在訓練過程中有很大不同,模型就會變得脆弱。也就是說,這種模型的cross-domain能力會更差,也就是如果測試資料集與訓練資料集來自不同的領域,模型的performance就會變差。

那有沒有解決這個限制的辦法呢?

4.2 Teacher Forcing的改進

4.2.1 Beam Search

該方法對詞表中每一個單詞的預測機率執行搜尋,生成多個候選輸出序列。通過這種啟發式搜尋(heuristic search),可減小模型學習階段performance與測試階段performance的差異。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

4.2.2 Curriculum Learning

如果模型預測的是實值(real-valued)而不是離散值(discrete value),那麼beam search就力不從心了。因為beam search方法僅适用于具有離散輸出值的預測問題,不能用于預測實值(real-valued)輸出的問題。

使用一個機率 p p p去選擇使用ground truth的輸出 y ( t ) y(t) y(t)還是前一個時間步驟模型生成的輸出 h ( t ) h(t) h(t)作為目前時間步驟的輸入 x ( + 1 ) x(+1) x(+1)。這個機率 p p p會随着時間的推移而改變,稱為計劃抽樣(scheduled sampling),訓練過程中force learning的機率會漸漸變小。一開始老師帶着學,後面慢慢放手讓學生自主學。

5. Machine Translation

最後我們拿機器翻譯為例子,在此總結一下seq2seq模型。如下圖所示,訓練的時候采用的是Teacher forcing。測試的時候使用的是上一時刻預測出來的token。

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

簡單的seq2seq架構(不含有Attention)的機器翻譯示意圖如下圖示:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

Seq2seq+Attention的機器翻譯架構如下圖所示:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

整個前向傳播的流程如下所示:

Seq2seq模型詳解(attention mechanism+evaluation methods +Curriculum +Machine Translation)0. 引言1. Seq2seq Framework2. attention mechanism3. evaluation methods4. training mechanism5. Machine Translation

參考資料

1. 注意力用的是過濾器,而非探照燈

https://neu-reality.com/2019/10/how-brain-pays-attention/

2. What is Teacher Forcing for Recurrent Neural Networks?

https://machinelearningmastery.com/teacher-forcing-for-recurrent-neural-networks/

繼續閱讀