讀Attention文章1

簡介部分:

  • 對於機器翻譯,之前的做法就是把輸入壓縮成一個向量,然後對這個encode後的向量進行decode,這種方法處理長句子比較難,尤其當句子的長度長於訓練集中的語料庫
  • 本問提出的模型,當翻譯生成一個詞語的時候,我們在輸入的序列中找到與目標詞y(t)最相關的信息,模型預測目標基於這些位置信息的上下文的語義向量 以及 已預測出來的詞(y1,y2,...,y(t-1) )  共同進行。
  • 本文提出的模型與encoder-decoder 最大的區別在於,encoder-decoder模型在於把全部輸入的序列壓縮成一個固定的向量,而本文的提出的模型是選取輸入序列中的部分對目標詞進行預測

舉箇中譯英的例子:

我的/名字/叫做/推推

my name is tuitui 

如果,我們要將 “名字” 翻譯 成  “name” ,輸入序列中 “名字” 對於翻譯結果 name,更加重要一些,這個就是attention的意思,注意力,集中在sequence的部分  

 

背景:神經機器翻譯

  • 目標是argmax p(y|x) , 有些文章提出了基於RNN(LSTM) 的模型取得了顯著的效果(state-of-the-art)
  • RNN encoder-decoder模型
    • 隱藏層單元部分,例如f 爲LSTM
    • encoder部分,例如 q({h1,h2,..,hT})=hT,即取最後一個隱藏單元作爲輸入向量的壓縮結果
    • decoder部分,根據c 和 先前預測出的y1,y2,....,yt-1 來預測 yt ,即,g是一個非線性函數,st 是隱藏單元
    • 對於生成一個句子來(y1,y2,...,yT)說,即

               

 

3. 校準和翻譯 - 重點,本問提出的模型,有一些創新點

 

  • encoder 部分:

採用了雙向RNN進行編碼,一個詞的前後信息都考慮進去

  • decoder部分:

上面的圖看着還是有點模糊,我重新畫一個   

 

我畫的圖,是基於 input sequence 的長度爲4,預測目標y1的過程

可以看到y1 由 c1,y0,s1 構成

s1 由 s0,y0,c1構成

c1 由 經過softmax 後的 e11,e12,e13,e14構成 

注意 c的下標 和 目標y的下標是一致的 ; eij 表示 輸入部分第j個hidden unit 對 輸出第j個目標的重要性,當然,中間會涉及si-1

si 來傳遞到yj

 

具體公式文章中是如下說明的

 

 

模型的一些細節

  • RNN的結構,採用了 gated hidden unit 結果,這個結構跟LSTM有點類似,作者也是受到LSTM啓發得來的,結構如下

reset gate 

update gate 

主要用於計算hidden unit 

其中

 

一些說明:

當reset gate 趨近0的時候,就會忽略 h(t-1),丟掉一些不相關的信息

當update gate 用於記憶long-term信息

每個hidden unit 是有獨立的reset 和update gate

 

 

  • align 模型

其中 v,w,u 都是權重矩陣,其中Ua*hj 可以預先算好,因爲和Si 沒有關係呢

  • decoder 部分的si ,相比encoder部分的hiddencell, 多了一個Ci 

初始的s0 爲 

 

目標函數

refer:

https://arxiv.org/pdf/1409.0473.pdf NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

https://arxiv.org/pdf/1406.1078.pdf Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章