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》译文分享