Revisiting Adversarial Autoencoder for Unsupervised Word Translation with Cycle Consistency and...

2019NAACL的一篇文章,个人觉得很好的一篇文章,将去噪自编码器和回译应用到词对齐的过程中,应用比较灵活。

文章链接:

Revisiting Adversarial Autoencoder for Unsupervised Word Translation with Cycle Consistency and Improved Training

代码链接:

https://ntunlpsg.github.io/project/unsup-word-translation/

摘要

对抗性训练通过将单语嵌入映射到共享空间,在没有任何并行数据的情况下学习双语词典,取得了令人印象深刻的成功。然而,最近的研究表明,在更有挑战性的语言对中,非对抗性方法的表现更出色。在这项工作中,我们重新审视了用于无监督单词翻译的对抗性自动编码器,并提出了两个新的扩展,以产生更稳定的训练和改进的结果。我们的方法包括正则化项来加强循环一致性和输入重建,并将目标编码器作为对抗目标识别器的对手。对欧洲语言、非欧洲语言和低资源语言的大量实验表明,我们的方法比最近提出的对抗性和非对抗性方法具有更强的鲁棒性和更好的性能。

主要内容

MUSE主要有三步:

  1. 通过对抗训练生成种子字典
  2. 通过Procrustes迭代增强初始映射
  3. 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一样,使用使用这些伪平行翻译之间的平均余弦相似度作为验证指标。

实验结果

在这里插入图片描述上面的结果用的是facebook第一篇中词对齐的数据集。
在这里插入图片描述

发布了52 篇原创文章 · 获赞 7 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_38937984/article/details/102610821