中科院計算所副研究員馮洋:神經機器翻譯的訓練改進和解碼提速
2. 可導的序列級目標

接下來介紹如果解決詞級匹配的對于好一點的匹配和差的匹配一視同仁的問題。

這個是我們在EMNLP 2018上所做的工作。通過使用可導的序列級目標來解決詞級匹配的問題。

首先介紹一下傳統的序列級損失函數。傳統的序列級損失函數基本上都是基于N-gram正確率的損失函數,比如,BLEU,GLEU等等。計算方法為,命中n-gram的個數/總共的n-gram的個數(candidate),其中n-gram的個數為其每個詞語出現頻次的乘積。

直接使用BLEU不可到的原因是因為操作中有argmax,為了使其可導,我們使用token的預測概率,而非使用argmax。這個方法和直接用BLEU作為Score,然后reinforce算法直接訓練對比有啥優勢?由于reinforce算法的方差比較大,所以在訓練的時候是很難收斂的。而使用傳統的梯度下降的方法,訓練過程就會平穩的多。

這里是3-gram的例子,其中output是概率最高的詞,3-gram概率的是由獨立Token的輸出概率相乘得到結果,然后求和會得到The total probabilistic count of 3-grams。將匹配上的3-gram的概率拿出來求和作為分子,Total probabilistic count作為分母,計算得到 Precision of 3-grams。這就是我們的loss。

這個例子用來展示整個的訓練過程,這里需要注意的一點就是,和傳統的teacher forcing方式不同,這里當前步輸入的為上一步預測的結果(貪心搜索得到的結果),而不是ground truth的值。剩下的就是按照上頁slides介紹的來計算loss。對于loss采用傳統的梯度下降算法即可。下面貼的是在數據集上的結果。

從結果中可以看出,2-gram比4-gram的效果要好,這里我們給出的解釋是,過多的使用自己生成的去計算的話,會存在一定程度上的錯誤累積。

在訓練的時候,也是可以通過teacher forcing的方式來訓練的,但是從圖中可以看出,teacherforcing的方式收斂的比較快,但是效果不如greedy search的方式好。
請輸入評論內容...
請輸入評論/評論長度6~500個字


分享













