文献阅读—跨语言词向量—无监督

上一篇博客将了有监督的跨语言词向量训练,这篇博客将无监督的跨语言词向量《A robust self-learning method for fully unsupervised cross-lingual mappings of word embeddings》。

1. 初步构想

XZ分别表示两类语言中独立训练好的词嵌入矩阵,需要自己先训练好,或者拿别人现成的。其中每行代表一个词的词向量,每一列代表词向量的第几维。X的第i行和Z的第i行,没有对应关系,X的第j列和Z的第j列,也没有对应关系。我们需要求一个转换矩阵W_XW_Z以使XW_XZW_Z在同一向量空间。并且设置一个稀疏矩阵DD_{ij}=1代表target语言中的第j个单词是source语言中的第i个单词的翻译。现在的问题有:

  • a)怎么让X的第i行和Z的第i行,有对应关系,怎么让X的第j列和Z的第j列,有对应关系。
  • b)我们如何初始化D以及后期如何更新D
  • c)采用什么样的目标函数,以及如何通过目标函数求出W_XW_Z

2.词向量预处理trick

先对词向量做个预处理吧,先对每个单词的词向量做normalization,再对词向量的每一列去均值,最后再对每个单词的词向量做normalization,原因参考上一篇博客。

3.初始化

这块主要是解决第1部分中的问题a和问题b。

首先要做一个假设,source语言和target语言对应的词向量虽然是独立的,但是其分布形态却非常相似。如下图,左边红色的是英文,右边蓝色的是西班牙文,两种语言中意义一样的词在坐标上的分布非常相近。也就是说,对于英文来说,跟‘four’的相似度排序是【five,three, two,one】,跟‘cuatro(four)’的相似度排序是【cinco(five), tres(three), dos(two), uno(one)】,看出什么了吗,这个相似度排序是一一对应的哦,相应位置上是对方的翻译词,而且,这个相似度排序几乎一样,比如都是【0.9,0.75,0.4,0.2,0.15】,总是相差不大,因为单词间的距离是一样的。记住这个现象!很有用的!

这里先假设source语言和target语言的vocabulary大小一致,维度不一定一致。通过M_X=XX^TM_Z=ZZ^T求相似度矩阵,M_X[i,j]代表了target语言中第i个和第j个单词的相似度,M_Z[i,j]代表了source语言中第i个和第j个单词的相似度,分别把M_XM_Z的每一列排序,变成sort(M_X)sort(M_Z),还记得上面说的现象吗,这时sort(M_X)sort(M_Z)的每一列就是一一对应的哦!解决了列之间的关系。那么对于sort(M_X)的每i行,都可以在sort(M_Z)中找到第j行跟其相似度最高,说明他们可能是一个语义,即互为对方的翻译,那么可以初始化D_{ij}=1,行之间的关系也解决了,D的初始化也解决了。

考虑到给X做SVD,X=USV^T,则M_X=US^2U^T,则\sqrt{M_X}=USU^T更接近于原来X的本质,所以将sort(M_X)sort(M_Z)替换成\sqrt{sort(M_X)}\sqrt{sort(M_Z)}

4. 整体流程

解决第一部分的问题c。使用第三部分初始化D之后,循环下面1)和2)直到收敛。

1)目标函数为

                                           arg\max_{W_X,W_Z} \sum_{i} \sum_{j}D_{ij}(( X_{i\ast } W_X)\cdot (Z_{j\ast }W_Z) )

求出W_X=UW_Z=V,且UV通过奇异值分解得来USV^T=X^TDZ,证明过程和上一篇博客类似,有小伙伴要是有问题可以私信我哦~

2)用上述求好的W_XW_Z来更新D,当arg\max_{k}(X_{i\ast }W_X)\cdot (Z_{k\ast }W_Z),设置D_{ij}=1,否则设置D_{ij}=0

5. 一些非必要trick

  • 更新D的时候使用贪心算法,以一定的概率选最大值更新,其他随机抽取,为了防止陷入局部最优。
  • 基于频率的vocabulary删减,还记得之前假设的source语言和target语言的vocabulary大小一致吗,是通过这个方法实现的哦,当然一方面也是为了减少计算量。
  • 更新D的时候既要考虑arg\max_{k}(X_{i\ast }W_X)\cdot (Z_{k\ast }W_Z),也要考虑arg\max_{i}(X_{i\ast }W_X)\cdot (Z_{k\ast }W_Z),采用一个双向的机制防止陷入局部最优。
  • CSLS retrieval没细看,不补。
  • sysmmetric re-weighting没细看,不补。

6. 实验

实验还没细看,以后补。

猜你喜欢

转载自blog.csdn.net/manmanxiaowugun/article/details/82716642