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

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

1. 初步构想

文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督分别表示两类语言中独立训练好的词嵌入矩阵,需要自己先训练好,或者拿别人现成的。其中每行代表一个词的词向量,每一列代表词向量的第几维。文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督行和文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督行,没有对应关系,文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督列和文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督列,也没有对应关系。我们需要求一个转换矩阵文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督以使文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督在同一向量空间。并且设置一个稀疏矩阵文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督代表target语言中的第文献阅读—跨语言词向量—无监督个单词是source语言中的第文献阅读—跨语言词向量—无监督个单词的翻译。现在的问题有:

  • a)怎么让文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督行和文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督行,有对应关系,怎么让文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督列和文献阅读—跨语言词向量—无监督的第文献阅读—跨语言词向量—无监督列,有对应关系。
  • b)我们如何初始化文献阅读—跨语言词向量—无监督以及后期如何更新文献阅读—跨语言词向量—无监督
  • c)采用什么样的目标函数,以及如何通过目标函数求出文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督

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大小一致,维度不一定一致。通过文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督求相似度矩阵,文献阅读—跨语言词向量—无监督代表了target语言中第文献阅读—跨语言词向量—无监督个和第文献阅读—跨语言词向量—无监督个单词的相似度,文献阅读—跨语言词向量—无监督代表了source语言中第文献阅读—跨语言词向量—无监督个和第文献阅读—跨语言词向量—无监督个单词的相似度,分别把文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督的每一列排序,变成文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督,还记得上面说的现象吗,这时文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督的每一列就是一一对应的哦!解决了列之间的关系。那么对于文献阅读—跨语言词向量—无监督的每文献阅读—跨语言词向量—无监督行,都可以在文献阅读—跨语言词向量—无监督中找到第文献阅读—跨语言词向量—无监督行跟其相似度最高,说明他们可能是一个语义,即互为对方的翻译,那么可以初始化文献阅读—跨语言词向量—无监督,行之间的关系也解决了,文献阅读—跨语言词向量—无监督的初始化也解决了。

考虑到给文献阅读—跨语言词向量—无监督做SVD,文献阅读—跨语言词向量—无监督,则文献阅读—跨语言词向量—无监督,则文献阅读—跨语言词向量—无监督更接近于原来文献阅读—跨语言词向量—无监督的本质,所以将文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督替换成文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督

4. 整体流程

解决第一部分的问题c。使用第三部分初始化文献阅读—跨语言词向量—无监督之后,循环下面1)和2)直到收敛。

1)目标函数为

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

求出文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督,且文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督通过奇异值分解得来文献阅读—跨语言词向量—无监督,证明过程和上一篇博客类似,有小伙伴要是有问题可以私信我哦~

2)用上述求好的文献阅读—跨语言词向量—无监督文献阅读—跨语言词向量—无监督来更新文献阅读—跨语言词向量—无监督,当文献阅读—跨语言词向量—无监督,设置文献阅读—跨语言词向量—无监督,否则设置文献阅读—跨语言词向量—无监督

5. 一些非必要trick

  • 更新文献阅读—跨语言词向量—无监督的时候使用贪心算法,以一定的概率选最大值更新,其他随机抽取,为了防止陷入局部最优。
  • 基于频率的vocabulary删减,还记得之前假设的source语言和target语言的vocabulary大小一致吗,是通过这个方法实现的哦,当然一方面也是为了减少计算量。
  • 更新文献阅读—跨语言词向量—无监督的时候既要考虑文献阅读—跨语言词向量—无监督,也要考虑文献阅读—跨语言词向量—无监督,采用一个双向的机制防止陷入局部最优。
  • CSLS retrieval没细看,不补。
  • sysmmetric re-weighting没细看,不补。

6. 实验

实验还没细看,以后补。