斯坦福大學-自然語言處理與深度學習(CS224n)筆記 第十一課 NMT與RNN的進一步討論

本課概要

1、gated recurrent units比如GRUs和LSTM的再次回顧
2、機器翻譯評估
3、單詞生成問題

一、 gated recurrent units比如GRUs和LSTM的再次回顧

在RNN的後饋計算中,很容易出現梯度消失的問題。


梯度消失的原因是因爲RNN結構中,所有的節點是一個一個按順序相連的,所以權值矩陣就會依次相乘,很容易造成梯度消失。

而在GRUs中,長距離的節點之間也可以直接相連,這樣就可以避免梯度消失。

通過加入更新門(update gate)和重置門(reset gate),構成GRUs,調整之間的關係。

RNN和GRU的比較

GRUs和LSTM比較

對LSTM的圖示解釋(圖中的色塊對應右邊同色的解釋部分)
在這裏插入圖片描述基於LSTM的這些改進,LSTM會RNN能記憶更多。

訓練Gated RNN的一些建議

  • 使用LSTM或者GRU:它可以使得事情變得更加簡單
  • 初始化循環權值矩陣爲正交
  • 以比較小的數字初始化其他矩陣
  • 將遺忘門的bias初始化爲1
  • 使用自適應的學習率算法(adaptive learning rate algorithms),如Adam, AdaDelta, …
  • 剪裁梯度的範數(the norm of the gradient):對Adam和AdaDelta.而言,1-5是比較合適的
  • 要麼垂直的dropout,要麼學習怎麼正確的水平也進行dropout
  • 要學會耐心!

模型集成(ensemble)

  • 我們可以訓練8-10個模型,然後計算預測結果的平均數
  • 一般而言,集成模型的結果都會比較好
    在這裏插入圖片描述

二、機器翻譯評估

1、總述

一共有三種可能的評估途徑

  • 人工評估
    • SSER(subjective sentence error rate),即主觀句子錯誤率
    • 正確/不正確
    • 充分性與流利性(5或者7級打分)
    • 錯誤分類
    • 翻譯的比較排名
  • 利用那些使用MT作爲一個子部分的應用
    • 比如基於外文文獻的問答系統(question answering),主要的問題是很多翻譯的方面無法評估到,比如翻譯的流暢程度
  • 自動度量
    • 單詞錯誤率((word error rate)
    • BLEU (Bilingual Evaluation Understudy)

2、BLEU介紹

  • 首先,我們對一段機器翻譯,需要有對應的人工翻譯,我們稱之爲對照翻譯(reference translation)。

  • 接着,計算N元準確率:機器翻譯的N元組中有多少可以在對照翻譯中找到?(對照組中某個詞如果已經在機器翻譯中對應過了,那麼就不可以再使用它對應機器翻譯中的第二個對應詞了,比如機器翻譯中出現兩個airport當對照翻譯中也出現兩個的話纔會全部是正確;這樣就不可以使用“the the the the”來作弊)

  • 接着,簡潔懲罰(Brevity Penalty):如果機器翻譯的長度要小於人工翻譯的長度的話,就要受到懲罰。

  • BLEU是N元準確率的加權調和平均(geometric mean),然後在乘以一個簡潔懲罰(Brevity Penalty)。

  • 計算公式:

  • 一個具體的計算例子:BLUE4只計算N≤4的N元組。

評估還有可能遇到的一個問題是:很有可能機器翻譯的質量是很高的只是恰好和人類翻譯的不一致。一個解決方法是準備多篇對照翻譯。
在這裏插入圖片描述
一開始BLUE的評估效果很好,和人類判斷一致。但是當BLUE成爲了一個評估標準了以後,BLUE和人類判斷的相關性反而降低了。這也是爲什麼google翻譯沒有那麼好的原因。
在這裏插入圖片描述

三、單詞生成問題

在翻譯的過程中,大量的算力會花在計算softmax上,所以這個問題需要改進。

  • 如果我們對生成的詞彙(vocabulary)有所限制的話,得到的結果是生成的句子中都是未知<unk>

  • 另外一種想法是對softmax進行一定的限制

    • 層級模型(Hierarchical models):樹結構詞彙,非常複雜並且對樹結構敏感[Morin & Bengio, AISTATS’05], [Mnih& Hinton, NIPS’09].
    • 噪音對比估計( Noise-contrastive estimation):二分類[Mnih& Teh, ICML’12], [Vaswaniet al., EMNLP’13].
    • 這兩種方法無法利用GPU進行提升
  • 另外一種想法是Large-vocab NMT(SébastienJean, KyunghyunCho, Roland Memisevic, YoshuaBengio. On Using Very Large Target Vocabulary for Neural Machine Translation. ACL’15. )

    • 在訓練的時候,每次使用詞彙的一個子集來進行訓練,每個子集中含有V’個詞彙。將訓練集分成不同的好幾個子集,每個子集中會有τ個目標單詞, |Vʹ| = τ。在實踐中,|V| = 500K, |Vʹ| = 30K or 50K.

      舉例來說,當τ=5時:
      在這裏插入圖片描述
    • 在測試的時候,選擇K個頻率最高的單詞作爲候選,再加上K’個候選的單詞,兩者構成候選列表;基於此選出翻譯。一般而言,Kʹ = 10 or 20, K = 15k, 30k, or 50k.

至此這節課結束了,但是ppt還有內容,待續。

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