首先附上论文地址:Word Translation Without Parallel Data
本文是一个利用对抗的方式将两个embedding空间对齐的工作,并在翻译任务中取得了很好的效果。
方法
有监督方法(背景知识)
首先假设我们已经有两个语言的embedding了,且我们已经有一个字典,包含n对单词,这时候我们实际上是希望能用这个字典来做一个锚点,对齐两个embedding。
Tomas Mikolov[^1]的做法是这样的。假设字典的embedding时 $\lbrace x_i,y_i\ \rbrace_{i \in [1,n]}$ ,这时候我们可以找一个线性的映射 $W$ 来转换某一个语言的投影:
$W^* = {\arg\min}_{W} |WX-Y|_F$
$X$ 和 $Y$ 是字典对应的$d\times n$ 的矩阵, $W$ 是一个 $d\times d$ 的矩阵。
获得了这个 $W$ 之后,对于任何一个没有翻译的单词 s ,我们通过找最近邻的方式找到他的翻译:
$t = \arg\max_t cos(Wx_s, y_t)$
Chao Xing[^2]对这个方法进行了改进,要求 $W$必须是正交,于是问题就转变成了Procrustes问题,可以直接通过对 $YX^T$ 做SVD获得closed form解:
$W^* = {\arg\min}_{W\in O_d(\mathbb R)} |WX-Y|_F = UV^T, \text{with}\ U\Sigma V^T = \text{SVD}(YX^T)$
待续
[^1]:Tomas Mikolov, Quoc V Le, and Ilya Sutskever. Exploiting similarities among languages for machine translation. arXiv preprint arXiv:1309.4168, 2013b.
[^2]:Chao Xing, Dong Wang, Chao Liu, and Yiye Lin. Normalized word embedding and orthogonal transform for bilingual word translation. Proceedings of NAACL, 2015.