标签:machine ocr sina data 变换 facebook 词向量 roc word2vec
相似的上下文中的单词具有相似的语义;在两个不同语言的词向量空间中,两个具有相似语义的单词在各自空间中具有相似的相对空间位置,因此只要学习一个线性映射就可以实现大致的对齐。
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】仅由单语数据生成双语词典
标签:machine ocr sina data 变换 facebook 词向量 roc word2vec
原文地址:https://www.cnblogs.com/duye/p/9771649.html