文献阅读笔记:Word Translation Without Parallel Data
0. 背景
机构:Facebook
作者:Alexis Conneau, Guillaume Lample
发布地方:LCLR 2018
面向任务:无监督机器翻译
论文地址:https://arxiv.org/abs/1710.04087
论文代码:https://github.com/facebookresearch/MUSE
0.1 摘要
已有的先进跨语言词嵌入技术多数严重依赖双语词典或者平行语料。最近研究表明,通过字符级的信息可以减缓对监督数据如平行语料的依赖。虽然这些新技术的成果令人鼓舞,但是仍然无法与监督方法同日而语,且受限于两种语种之间需要共用一个字母表。本文的工作结果表明,使用无监督的方法对齐单语单词嵌入空间而无需使用平行语料即可创建一个双语词典。本文的方案无需使用字符信息,且在一些语种对上的跨语言任务上,能够超越监督式方法。实验证明本文方案对于差别较大的语种(即属于不同语系)如英语-俄语 或 英语-中文 也能够处理得很好。最后,本文还在少语料的English-Esperanto(只有很少的平行语料)上进行试验,从而展示本文的方法在完全无监督机器翻译中的潜在影响。
1. 介绍
能够成功学习到词分布式表征的方法(e.g. Mikolov et al.(2013c;a); Pennington et al. (2014); Bojanowski et al. (2017))多数是建立在Harris (1954)提出的"在相似的上下文中出现的词往往有相似的意思"这一假说基础上的。Levy & Goldberg (2014)在skip-gram中使用负例采样(Mikolov et al. (2013c),相当于在分解词-上下文共现矩阵。共现矩阵中的相应的单词和上下文对的逐点互信息。利用词的共现统计得到的词向量能够反映词 语义的相同或者相反:相似的词在嵌入空间中很近,反之亦然。
Mikolov et al. (2013b)首次提出连续词嵌入空间在不同语言之间表现出类似的结构,即使对于像英语和越南语这种相距甚远的语种。同时他们利用这种相似性学习了一个从源到目标嵌入空间的线性映射。在学习映射的过程中,他们使用了5000对平行词汇作为锚点,并在一个单词翻译任务中评估他们的方法。从此以后,有数个研究组致力于跨语言词嵌入的提升,比如(Faruqui & Dyer (2014); Xing et al. (2015);Lazaridou et al. (2015); Ammar et al. (2016); Artetxe et al. (2016); Smith et al. (2017)),但是这些研究都依赖于双语词典。
近期有学者(Smith et al., 2017)开始尝试降低对于监督式双语词典的依赖,其方案是使用相同的字符构建双语词典。Artetxe et al. (2017)以对齐数字初始化双语词典,再使用迭代法逐渐对齐嵌入空间。这些方法由于共享一份字母表,仅能适用于相似的语种,即同一语系下的近似语种,比如欧洲语言。(Cao et al., 2016)探索使用分布式方法,Zhang et al. (2017b)则尝试使用对抗方法来在不使用无平行语的前提下获得跨语种的词嵌入。这些方法虽然看似诱人,但是其结果性能相比于监督式方法简直惨不忍睹。小结下,当下的方法要么性能不达标,要么仍旧需要对齐的数据集,如平行语料或作为种子点的双语词典。
本文所介绍的方法能够持平或超越当前先进的监督式方法,而不使用任何的跨语种标注数据集。本文方法仅需2个大的单语种语料,分别是源语种和目标语种的语料。本文使用对抗训练的方法,学习一个能够从源语种到目标语种空间的线性映射。该对抗训练有2个步骤:
(1)类似于一个双人游戏,由判别器 discriminator 和映射函数(地位等价于生成器generator)组成。需要训练 discriminator,使其能够区分出映射后源嵌入和目标嵌入。映射函数则被联合训练以欺骗过discriminator。
(2)从上述的共享嵌入空间中抽取出一个合成字典(synthetic dictionary),再用Sch¨ onemann (1966)中的闭型普鲁斯塔斯解法对映射函数进行微调。
由于文本的方法是无监督的,在选择最优模型时也无法用到平行语料。为此,本文提出一个与映射质量强相关的无监督的筛选指标。基于此指标即可用于指导本文模型何时停止训练,及选出最佳的超参数。
总结下,本文的贡献如下:
-
提出一个能够媲美或超越当下先进监督方法的无监督方法。本文无监督方法的验证,是在 词翻译、句子翻译检索和跨语种词相似 这三个任务上进行的。标准的词翻译任务中(词典中词汇量为200k),本文在English-Italian上取得66.2%准确率,而最好的监督方法只能取得63.7%的准确率。
-
引入一个跨域相似度自适应算法以减缓所谓的hubness问题(高维空间中,一个点有成为许多点的近邻点的趋势)。该方法受启发于 Zelnik-manor & Perona (2005)中的self-tuning方法,所不同的是本文的场景是作用于2个域,这就需要考虑近邻点的二分图(bi-partite graph)。该方法能够显著提升性能指标,并同时超越词翻译基准上有监督和无监督中的先进方法。
-
本文还提出一个与映射质量高度相关的无监督准则,并以该准则为训练停止条件和超参数的选择。
-
公布了一个高质量的词典,以及相关的有监督的和无监督的词嵌入
-
证明了本文方案在低资源语种对上的有效性。
2. 模型
本文中,我们始终假设已有两个在各自语种数据集上分开独立训练的词嵌入。本文的目标是致力于学习这2个词嵌入集合的映射关系,即源语种的词嵌入集合通过该映射函数转换后与目标语种的词嵌入很接近或者说重合。Mikolov et al. (2013b)使用一个有n=5000对双语词的词典,再学习一个源空间和目标空间中的线性映射:
其中是嵌入向量的维度,是一个值为实数的矩阵。和是待对齐大小为的词嵌入矩阵。源语种中单词的转换定义为$t=\operatorname{argmax}_{t} \cos{(Wx_s,y_t)} W$为正交矩阵这一限制条件,进一步提升了效果。在这篇文章中他们将方程(1)归结为一个Procrustes问题,所以借鉴 Procrustes 的思想,通过奇异值分解(SVD)来更新W:
本文所提出的无监督方法学习映射的示意图如Figure 1所示:
首先,通过对抗方式学习到一个初始化的;使用最匹配的词作为Procrustes中锚点;最后通过改变空间的度量来提高相对于不太高频单词的性能,如此可以使得这些在稠密区域中的点扩散开来。
2.1 域内对抗
假设词典大小为的源语种和词典大小为的目标语种的词嵌入分别为: 和 。学习一个判别器,使其能够区分随机采样于和的元素。判别器的作用就是尽力鉴别出原始的2个嵌入;就是最终要学习的映射函数,类似生成器,其作用就是尽可能地准确地映射,使得判别器难以判别出是还是。
这种方法与Ganin et al. (2016)的工作相一致,Ganin et al. (2016)提出对输入域学习一个潜在表征不变量,其中的域在本文这里是语种(即源语种和目标语种)。
判别器目标函数:
判别器的参数为。表示判别器认为向量是源语种嵌入(反之为目标语种嵌入)的概率,则判别器的损失函数如下:
映射目标函数:
在无监督设置中,训练使得判别器无法准确地分辨出这2个原始嵌入:
学习算法:
模型的训练方法是根据Goodfellow et al. (2014)中所阐述的标准深度对抗网络的训练流程。对于给定的输入样本,判别器和映射矩阵依次用随机梯度下降法进行更新,以最小化和。
2.3 跨域相似度局部缩放(CSLS)法
为在语种之间产生可靠的匹配对,则需要改善比较的准则,以使得源(语种)单词在目标语种中的最近邻单词,在以该最近邻单词为源单词时候,其目标语种的最近邻单词刚好为最开始的源单词。简单说,二者互为最近邻。CSLS法就是为了找到更多互为近邻的点。
的近邻点集中如果包含有,并不意味着的近邻点中会有,即反过来并不一定成立,两者并非对称的。在高纬空间中,这将导致 hubness 现象,这种现象对基于最近邻规则的配对是有害的。 hubness 现象:有些向量(称作 dubbed hubs),是很多其他点的最近邻,而有些点(anti-hubness)则不是任何点的最近邻。针对该问题,以前的方法多数
将其视为单一的特征分布,然后研究缓解hubness的方法。在本文中,我们有两个域,即两个语种。这种特殊情况,其实也有学者提出基于逆向秩的配对规则和 inverted soft-max (ISF)。我们将在实验部分使用ISF方法进行评估,以作为对比。但这种方法也存在一定的问题:首先,源语种和目标语种单词的相似性更新是不同的。此外,ISF需要 交叉验证 参数, 在没有直接 交叉验证 标准的无监督设置中,该参数的估计是有噪声的。
在本文中,我们使用二部邻域图(bi-partite neighborhood graph),在二部邻域图中词典中的每个单词都与其在目标语种中的个最近邻单词相连接。表示二部图中的源单词经过映射操作之后近邻。中的个近邻都是来自于目标语种。同理,可以定义目标语种的单词关联的近邻为:。我们将源嵌入在目标语种中的个近邻进行平均作为其目标近邻:
其中表示余弦相似度计算。同样地,表示目标语种单词对应在源语种中的近邻。
可以认为是衡量了每个单词的 hubness 。如果一个单词和很多另一语言的单词都很接近,那么值就很高。
我们定义被映射的源单词和目标单词之间的相似度CSLS
如下:
CSLS衡量两个单词(不同语言的)的相似度。单单 靠近还不够,同时这个相似度会被s和t的 hubness 程度惩罚。 这就抑制了某些单词是很多单词的最近邻的情况。
直观上,如此方法可以提升与孤立词向量相关的相似性。相反地,该方法也可以降低向量聚集于同一密集区域的风险。
实验证明CSLS
度量法,无需任何微调参数下即可显著提升词翻译任务中的准确率。
3. 训练和框架选择
3.1 框架
本文采用fastText训练词向量。训练语料是Wikipedia,词嵌入维度是300,所以,映射矩阵的维度是。词统一为小写,且在语料中出现频率高于5。在后处理步骤,只选用频率 top 200k 的词进行后续实验。
对于判别器,其架构为2层,每层神经元个数为2048的多层感知机,选用的**函数是Leaky-ReLU。
3.2 判别器的输入
低频词的嵌入质量一般不如高频词,将低频词输入到判别器的负面影响虽小,却不容忽视。为此,我们仅选用top 50,000 高频词输入到判别器。在训练步骤,输入到判别器的词嵌入是经过均匀采样的。因为发现根据词频进行抽样对结果没有任何明显的影响。
3.3 正交性
Smith et al. (2017)已经展示了正交约束所带来的性能提升。使用正交矩阵有以下好处:
(1)确保了语种对应的词嵌入的质量。正交矩阵保持着保持向量的点积,即L2距离。
(2)使得训练过程更加稳健。本文使用一个简单的更新步骤以确保矩阵在训练过程始终近似保持为正交矩阵。的更新如下:
其中一般取值为0.01。这个方法保证能几乎始终保持是正交的。在实验过程中,也发现矩阵的特征值也始终约等于1。这也进一步佐证了矩阵的正交性。
3.4 生成字典
细调步骤(Procrustes方法)要求在每次迭代时生成一个新字典。为了使Procrustes方法取得更好的效果,最好是在正确词对的基础上进行细调。为此,本文使用2.3节中的CSLS方法来选出更加准确的单词对。为进一步提升词典质量,并确保是基于正确翻译对学习到的,我们仅仅考虑互为最近近邻的单词对。
3.5 无监督模型选择的验证准则
在无监督设置中选择最佳模型是一项具有挑战性,但却非常重要的任务。因为无法使用验证集(使用验证集将意味着我们有并行语料数据)。为了解决这个问题,本文提出一个无监督的准则进行模型选择,该标准量化了源和目标嵌入空间的靠近程度。具体来说,我们考虑 10k 个最常见的源单词, 并使用CSLS
为每个词生成一个翻译。然后,我们计算这些翻译的平均余弦相似度,并将此平均值用作验证标准。发现这个值和word translation accuracy呈现高相关性。
Figure 2 显示了评估得分(前人的工作中有相关的评估方法)与此无监督标准之间的相关性(没有学习率收缩的稳定性)。我们在训练期间将其用作停止标准,并且在我们的所有实验中也用该标准选择超参数。
4. 实验
本文方案与2个baseline模型在跨语言评估任务上进行对比测试。
4.1 评测任务
词翻译(Word translation):
跨语种词义相似(Cross-lingual semantic word similarity):
句子翻译检索(Sentence translation retrieval):
4.2 结果与讨论
Table 1 为利用本文的词典进行词翻译任务的结果。
Table 2 是在词翻译检索任务上与前人方法进行对比的结果。本文的方法较以前的方法有明显的优势。
Table 3 为句子翻译任务的结果。
Table 4为跨语种词相似性任务的结果。Table 5为English-Esperanto上逐词翻译的结果。
baselines:
选用的监督式baseline:式子(2)中Procrustes公式的解,即以Procrustes为baseline。该baseline基于5000个源单词进行训练。在选用相似性度量上,可以用最近邻NN、ISF和CSLS。
跨域相似度局部缩放(CSLS):
该法只有一个参数,但是对于不同的K=5,10,50对结果没有什么影响,所以该参数很稳健,无需校验验证。因此,本文统一选用K=10。在Table 1中可以看出度量准则在Procrustes方法中的影响。对比Procrustes-NN
和Procrustes-CSLS
,可以看出CSLS
在所有语种上都能够带来更稳健的性能提升,在en-eo上甚至达到7.2%。Procrustes-CSLS
整体上要比Procrustes-ISF
来得优秀,且计算更快无需调节超参数。在Table 2中的对比可以看出,在English-Italian词翻译任务上,Procrustes-CSLS
取得了44.9%的结果,这优于此前的全部方法。在Table 3中,我们看看Italian-English的句子翻译任务,加入CSLS
方法能够在准确率上获得巨大提升,比如从53.5%(Procrustes - NN)提升到69.5%(Procrustes - CSLS)。
语种词嵌入的影响:
使用了 CBOW embedding和fasttext的embedding,结果显示fasttext的结果要好很多。其中CBOW 词嵌入在WaCky datasets上训练,两者的对比可以参见Table 2。在这两个变量因素中,我们发现语料的影响更大。在fastText嵌入中,使用了更多关于单词的句法信息;与CBOW嵌入在相同的语料库上训练相比只提升了2%的准确率,而更换语料fastText能够获得18.8%的提升。我们假设这个提升主要源于Wikipedia语料上相似词的共现。Figure 3展示了不同嵌入和不同语料所带来的影响。
对抗方法:
从Table 1可以看出对抗方法提供了一个强有力的系统,该系统能够在不使用平行语料下就学习跨语种嵌入。在es-en和en-fr语种对上,Adv-CSLS分别获得[email protected]=79.7%、77.8%
,这样的结果仅仅比监督方法低3.2%和3.3%。此外,在相距较远的语种(不共享字母表)上,多数的对抗系统都能够取得不错的结果。
细调:用监督方法缩短差距
对抗方式生成的双语词典需要进行细调,以进一步提升性能,缩短本文方法与监督方法(baseline)的差距。在Table 1中,我们观察到本文的无监督方法在en-it语种和en-es语种上甚至超过了监督式的baseline。语种间具有更相似的共现统计,能够使得无监督方法获取更好的性能。监督方法受限于预定义的词典(只有5000源-目标单词对),而在本文的无监督方法中我们可以在细调过程中使用更多的锚点。
5. 相关工作
略
6. 总结
首次展示在不使用平行语料下就可以进行词嵌入空间的对齐。且本文的方法不仅达到也在部分数据上超出先前的监督方法。本文采用对抗训练方式学习源-目标空间的线性映射关系。在学习得到线性映射关系后,可以生成双语词典。再使用Procrustean法进行优化。在优化过程,提出了(1)用于无监督验证的标准(2)CSLS测量方法。