2019NAACL的一篇文章,個人覺得很好的一篇文章,将去噪自編碼器和回譯應用到詞對齊的過程中,應用比較靈活。
文章連結:
Revisiting Adversarial Autoencoder for Unsupervised Word Translation with Cycle Consistency and Improved Training
代碼連結:
https://ntunlpsg.github.io/project/unsup-word-translation/
摘要
對抗性訓練通過将單語嵌入映射到共享空間,在沒有任何并行資料的情況下學習雙語詞典,取得了令人印象深刻的成功。然而,最近的研究表明,在更有挑戰性的語言對中,非對抗性方法的表現更出色。在這項工作中,我們重新審視了用于無監督單詞翻譯的對抗性自動編碼器,并提出了兩個新的擴充,以産生更穩定的訓練和改進的結果。我們的方法包括正則化項來加強循環一緻性和輸入重建,并将目标編碼器作為對抗目辨別别器的對手。對歐洲語言、非歐洲語言和低資源語言的大量實驗表明,我們的方法比最近提出的對抗性和非對抗性方法具有更強的魯棒性和更好的性能。
主要内容
MUSE主要有三步:
- 通過對抗訓練生成種子字典
- 通過Procrustes疊代增強初始映射
- CSLS選擇最近鄰
本文的方法還是以上的三步,隻是每一步做了增強。
第一步增加了對抗自編碼器模型來學習初始映射。兩種語言各有一個去噪自編碼器(encoder-decoder模型)。兩種語言X、Y,他們去噪自編碼器的encoder輸出分别為:zx、zy。原來的方法是通過對抗訓練找到X詞嵌入到Y詞嵌入的映射,而本文是通過對抗訓練來找到zx到zy的映射。其實相當于先用自編碼器提取句子的語義結構,自編碼器本來就可以用來生成詞嵌入,encoder的輸出就相當于二次提取的詞嵌入,相比于輸入時的詞嵌入,它學到了更多的句子結構。這樣得到的映射效果更好一些,這個方法确實很好。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB5ENrpnT6tGRPpHOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyUzM0AzM0cTM3EDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
如圖所示,zx到zy,zy到zx兩種線性映射G和F。L_x、L_y兩個鑒别器。鑒别器用來識别輸入是來自本語言encoder輸出還是其他語言encoder輸出的映射。鑒别器結構和MUSE中相同。鑒别器L_x損失函數:
鑒别器損失函數:
但是,在袋級别進行映射通常不足以學習各個單詞級别的映射。實際上,存在無限數量的可能映射比對相同的目标分布。是以需要添加一些限制條件。
文中考慮的第一種限制形式是循環一緻性,以確定将源代碼zx翻譯到目智語言代碼空間,并将其反向翻譯回原始空間時保持不變。模型将映射後的向量反向翻譯回映射前的向量,并且重構原始詞嵌入(去噪自編碼器decoder來實作)。這樣生成器就不會跑偏。
cycle consistency loss in one direction:
post-cycle reconstruction loss:
總的損失函數:
除此之外本文同MUSE一樣,将兩個映射矩陣W_G、W_F做正交處理。
算法整體流程:
驗證标準跟MUSE一樣,使用使用這些僞平行翻譯之間的平均餘弦相似度作為驗證名額。
實驗結果
上面的結果用的是facebook第一篇中詞對齊的資料集。