Machine Translation仅由单语数据生成双语词典
Posted duye
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Machine Translation仅由单语数据生成双语词典相关的知识,希望对你有一定的参考价值。
Word translation without parallel data
考虑在只有单语数据的情况下,如何生成双语词典。
基于假设:
相似的上下文中的单词具有相似的语义;在两个不同语言的词向量空间中,两个具有相似语义的单词在各自空间中具有相似的相对空间位置,因此只要学习一个线性映射就可以实现大致的对齐。
实现步骤:
A:对于语言X和Y,首先,各自训练词向量矩阵(300维)。
? 这里学习词向量用的是facebook的fastText而不是Word2vec。
B:学习旋转矩阵W,实现近似对齐。这里用到的方法是对抗学习:
? b1:首先学习一个判别器,使用的方法是多层感知机,判别器的作用是区分在矩阵W作用下X的词向量仍然属于X语言,Y词向量依然属于Y语言,使得这个概率尽量大;
? b2:而矩阵W的作用是,使得判别器尽可能区分不了WX与Y,即经W变换后的X词向量,和Y的词向量差别最小。
? 综合来说,即最小化下面两个目标函数:
C:优化W矩阵。
上 面的学习并没有考虑不同频率的单词会给学习带来很大的影响。X中频率小的单词可能在向Y的映射中根本就没有一个匹配,这样在B中训练W时,频率的问题可能带来很大的影响,因此在C步骤中我们消除这种影响:考虑频度最高的单词(如5k),用(min |WX - Y|)的方法建立一个暂时的假的词典,利用特定提高方法(使用的是Procrustes algorithm),不断迭代,这个过程不断更新词典和W,得到更新的W。实验发现,这个做法的提高并不是很大。
D:进行最终的翻译。
这里的翻译并不是指用W直接旋转X后得到Y,而是重新定义了单词与单词之间的距离度量,称作CSLS。CSLS的做法是定义一个二部图,即:对于X每个单词,找到Y中与它距离最近的K个单词,作为它的邻居,Y亦然。之后,定义新的距离度量为:
这样,最终根据这个度量最小找到X在Y中的翻译单词到底是哪个。对X中每一个单词都应用上述步骤,最终得到双语词典。
以上是关于Machine Translation仅由单语数据生成双语词典的主要内容,如果未能解决你的问题,请参考以下文章
On the use of BERT for Neural Machine Translation论文阅读
On the use of BERT for Neural Machine Translation论文阅读
论文解读:Semantic Neural Machine Translation using AMR
神经网络机器翻译Neural Machine Translation: Encoder-Decoder Architecture
Neural_machine_translation_with_attention_v4a
《Neural Machine Translation: Challenges, Progress and Future》译文分享