2019NAACL的一篇文章,個人覺得很好的一篇文章,將去噪自編碼器和回譯應用到詞對齊的過程中,應用比較靈活。
文章鏈接:
代碼鏈接:
https://ntunlpsg.github.io/project/unsup-word-translation/
摘要
對抗性訓練通過將單語嵌入映射到共享空間,在沒有任何並行數據的情況下學習雙語詞典,取得了令人印象深刻的成功。然而,最近的研究表明,在更有挑戰性的語言對中,非對抗性方法的表現更出色。在這項工作中,我們重新審視了用於無監督單詞翻譯的對抗性自動編碼器,並提出了兩個新的擴展,以產生更穩定的訓練和改進的結果。我們的方法包括正則化項來加強循環一致性和輸入重建,並將目標編碼器作爲對抗目標識別器的對手。對歐洲語言、非歐洲語言和低資源語言的大量實驗表明,我們的方法比最近提出的對抗性和非對抗性方法具有更強的魯棒性和更好的性能。
主要內容
MUSE主要有三步:
- 通過對抗訓練生成種子字典
- 通過Procrustes迭代增強初始映射
- CSLS選擇最近鄰
本文的方法還是以上的三步,只是每一步做了增強。
第一步增加了對抗自編碼器模型來學習初始映射。兩種語言各有一個去噪自編碼器(encoder-decoder模型)。兩種語言X、Y,他們去噪自編碼器的encoder輸出分別爲:zx、zy。原來的方法是通過對抗訓練找到X詞嵌入到Y詞嵌入的映射,而本文是通過對抗訓練來找到zx到zy的映射。其實相當於先用自編碼器提取句子的語義結構,自編碼器本來就可以用來生成詞嵌入,encoder的輸出就相當於二次提取的詞嵌入,相比於輸入時的詞嵌入,它學到了更多的句子結構。這樣得到的映射效果更好一些,這個方法確實很好。
如圖所示,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一樣,使用使用這些僞平行翻譯之間的平均餘弦相似度作爲驗證指標。