天天看點

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Pre-Neural Machine Translation

機器翻譯(MT)是将⼀個句⼦ x 從⼀種語⾔( 源語⾔ )轉換為另⼀種語⾔( ⽬智語⾔ )的句⼦ y 的任務。

  • 核⼼想法:從資料中學習機率模型。
  • 我們想要找到最好的英語句⼦ y ,給定法語句⼦ x
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • 使⽤Bayes規則将其分解為兩個元件從⽽分别學習
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

P(x|y)

  • 翻譯模型
  • 分析單詞和短語應該如何翻譯(逼真)
  • 從并⾏資料中學習

P(y)

- 語⾔模型  
- 模型如何寫出好英語(流利)  
- 從單語資料中學習
           

對⻬是翻譯句⼦中特定詞語之間的對應關系。

注意:有些詞沒有對應詞
           

對⻬可以是多對⼀的

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

對齊可以是一對多的

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

對齊可以是多對多(短語級)

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Decoding for SMT

如何計算argmax

  • 我們可以列舉所有可能的 y 并計算機率? 太貴了
  • 使⽤啟發式搜尋算法搜尋最佳翻譯,丢棄機率過低的假設
  • 這個過程稱為解碼
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • SMT是⼀個巨⼤的研究領域
  • 最好的系統⾮常複雜
  • 數以百計的重要細節我們還沒有提到
  • 系統有許多分别設計⼦元件⼯程
    • 很多功能需要設計特性來擷取特定的語⾔現象
  • 需要編譯和維護額外的資源
    • ⽐如等價短語表
  • 需要⼤量的⼈⼒來維護
    • 對于每⼀對語⾔都需要重複操作

Neural Machine Translation

  • 神經機器翻譯是利⽤單個神經⽹絡進⾏機器翻譯的⼀種⽅法
  • 神經⽹絡架構稱為sequence-to-sequence (⼜名seq2seq),它包含兩個RNNs

Neural Machine Translation (NMT)

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

編碼器RNN⽣成源語句的編碼;源語句的編碼為解碼器RNN提供初始隐藏狀态;解碼器RNN是⼀種以編碼為條件⽣成⽬标句的語⾔模型.

Sequence-to-sequence is versatile!

  • sequence-to-sequence 模型是 Conditional Language Model 條件語⾔模型的⼀個例⼦
  • 語⾔模型,
    • 因為解碼器正在預測⽬标句的下⼀個單詞 y
    • 有條件的,因為它的預測也取決于源句 x
  • NMT直接計算 P(y|x)
    • 深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
      上式中最後⼀項為,給定到⽬前為⽌的⽬标詞和源句 x ,下⼀個⽬标詞的機率

seq2seq被優化為⼀個單⼀的系統。反向傳播運⾏在“端到端”中

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Greedy decoding

我們了解了如何⽣成(或“解碼”)⽬标句,通過對解碼器的每個步驟使⽤ argmax

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

上圖是貪婪解碼(每⼀步都取最可能的單詞).貪婪解碼的問題:沒有辦法撤銷決定。

Exhaustive search decoding

  • 理想情況下,我們想要找到⼀個(⻓度為 T )的翻譯 y 使其最⼤化:
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Beam search decoding

  • 核⼼思想 :在解碼器的每⼀步,跟蹤 k 個最可能的部分翻譯(我們稱之為 hypotheses 假設 )。
    • k是Beam的⼤⼩(實際中⼤約是5到10):
      深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
      1.分數都是負數,分數越⾼越好。 2.我們尋找得分較⾼的假設,跟蹤每⼀步的 top k 個部分翻譯。波束搜尋不⼀定能找到最優解,但⽐窮舉搜尋效率⾼得多。

Beam search decoding: example

計算下一個詞的機率分布
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

取前k個單詞并計算分數

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

對于每⼀次的 k 個假設,找出最前⾯的 k 個單詞并計算分數

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

在k^2 的假設中,保留 k 個最⾼的分值,如 t = 2 時,保留分數最⾼的 pie 和 with

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

在k^2 的假設中,保留 k 個最⾼的分值,如 t = 2 時,保留分數最⾼的 a 和 one

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

這裡pie 是得分最高的超參數

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

回溯以獲得完整的假設

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Beam search decoding: stopping criterion

  1. 在貪⼼解碼中,我們通常解碼到模型産⽣⼀個 令牌
  2. 在 Beam Search 解碼中,不同的假設可能在不同的時間步⻓上産⽣ 令牌
    • 當⼀個假設⽣成了 令牌,該假設完成
    • 把它放在⼀邊,通過 Beam Search 繼續探索其他假設
  3. 通常我們繼續進⾏ Beam Search ,直到:
    • 我們到達時間步⻓ T (其中 T 是預定義截⽌點)
    • 我們⾄少有 n 個已完成的假設(其中 n 是預定義截⽌點)

Beam search decoding: finishing up

  1. We have our list of completed hypotheses.
  2. How to select top one with highest score?
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

SMT vs NMT

Advantages of NMT

與SMT相⽐,NMT有很多優點:1.更好的性能2.更流利3. 更好地使⽤上下⽂4.更好地使⽤短語相似性5.單個神經⽹絡端到端優化6.沒有⼦元件需要單獨優化7.對所有語⾔對使⽤相同的⽅法

Disadvantages of NMT?

1.SMT相⽐NMT的可解釋性較差2.難以調試3.NMT很難控制4.安全問題

Attention

Sequence-to-sequence: the bottleneck problem

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

源語句的編碼需要捕獲關于源語句的所有資訊.資訊瓶頸!

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Attention作用:

  • 注意⼒為瓶頸問題提供了⼀個解決⽅案
  • 核⼼理念 :在解碼器的每⼀步,使⽤ 與編碼器的直接連接配接 來專注于源序列的特定部分
  • ⾸先我們将通過圖表展示(沒有⽅程),然後我們将⽤⽅程展示
深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • 将解碼器部分的第⼀個token 與源語句中的每⼀個時間步的隐藏狀态進⾏ Dot
  • Product 得到每⼀時間步的分數
  • 通過softmax将分數轉化為機率分布
  • 在這個解碼器時間步⻓上,我們主要關注第⼀個編碼器隐藏狀态(“he”)
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • 利⽤注意⼒分布對編碼器的隐藏狀态進⾏權重求和
  • 注意⼒輸出主要包含來⾃于受到⾼度關注的隐藏狀态的資訊
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • 連接配接的 注意⼒輸出 與 解碼器隐藏狀态 ,然後⽤來計算
    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:
  • 有時,我們從前⾯的步驟中提取注意⼒輸出,并将其輸⼊解碼器(連同通常的解碼器輸⼊)。

    -

    深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Attention: in equations

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

Attention is great

  • 注意⼒顯著提⾼了NMT性能
    • 這是⾮常有⽤的,讓解碼器專注于某些部分的源語句
  • 注意⼒解決瓶頸問題
    • 注意⼒允許解碼器直接檢視源語句;繞過瓶頸
  • 注意⼒幫助消失梯度問題
    • 提供了通往遙遠狀态的捷徑
  • 注意⼒提供了⼀些可解釋性
    • 通過檢查注意⼒的分布,我們可以看到解碼器在關注什麼
    • 我們可以免費得到(軟)對⻬
    • ⽹絡隻是⾃主學習了對⻬

Attention is a general Deep Learning technique

  • 注意⼒是改進機器翻譯的序列到序列模型的⼀個很好的⽅法。可以在許多體系結構(不僅僅是seq2seq)和許多任務(不僅僅是MT)中使⽤注意⼒。
  • 注意⼒的更⼀般定義
    • 給定⼀組向量 值 和⼀個向量 查詢 ,注意⼒是⼀種根據查詢,計算值的權重和的技術
  • 我們有時說 query attends to the values
  • 例如,在seq2seq + attention模型中,每個解碼器的隐藏狀态(查詢)關注所有編碼器的隐藏狀态(值)
  • 直覺
    • 權重和是值中包含的資訊的選擇性彙總,查詢在其中确定要關注哪些值
    • 注意是⼀種擷取任意⼀組表示(值)的固定⼤⼩表示的⽅法,依賴于其他⼀些表示(查詢)。

There are several attention variants

深度不學習 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention參考:

采取softmax來獲得注意⼒分布。使⽤注意⼒分布對值進⾏權重求和:從⽽得到注意輸出 (有時稱為上下⽂向量)。

參考:

  • 斯坦福CS224N深度學習⾃然語⾔處理2019冬學習筆記⽬錄 (課件核⼼内容的提煉,并包含作者的⻅解 與建議)
  • 斯坦福⼤學 CS224n⾃然語⾔處理與深度學習筆記彙總 {>>這是針對note部分的翻譯<<}

繼續閱讀