Unsupervised Learning: Word Embedding(词嵌入)

词嵌入介绍

• Machine learns the meaning of words from reading
a lot of documents without supervision。
机器在没有监督的情况下从许多文件学到词语的意义。
Unsupervised Learning: Word Embedding(词嵌入)
我们可以像下图一样将这些词语分成三类,但是仅仅是按word class分的话看不出来这些类之间有什么联系,所以用word embedding的方式,我们就可以看到每个词在二维平面的分布。横坐标可以看成是否是生物,纵坐标可以看成是否表示动的词。
Unsupervised Learning: Word Embedding(词嵌入)
一个单词可以从它的上下文去理解。如下图所示,马英九和蔡英文在某些方面就相似。
Unsupervised Learning: Word Embedding(词嵌入)

如何利用上下文

这里我们提出了两个方法:

count based

如果word1与word2同时出现的概率一样,那么word1和word2的向量应该很类似。我们将这两个向量V1与V2做内积,然后越接近word1和word2在同一篇文章中出现的次数越好。
Unsupervised Learning: Word Embedding(词嵌入)

prediction based

收集数据,比如数据集有一句话潮水退了就知道谁。。。
那么我给神经网络输入潮水,退了,那么它就应该预测出一个结果,越和就字越像,那么结果就越好。反正就是使交叉熵最小。
Unsupervised Learning: Word Embedding(词嵌入)
将所预测单词的前一个单词的向量传入,使用第一层的神经元的输出作为word vector,V(w)。如下图,假设隐藏层的输出就是z1和z2,那么向量就是(z1,z2),我们在平面图画出这些点。
Unsupervised Learning: Word Embedding(词嵌入)

Unsupervised Learning: Word Embedding(词嵌入)
上述我们都是输入一个向量,下面我们将所预测单词的前几个单词的向量都输入,这样预测效果会准一些。如下图,我们强制使两个w相同。这样的目的是减少参数的使用量,提高效率。
Unsupervised Learning: Word Embedding(词嵌入)
相同颜色的w的值是一样的。
Unsupervised Learning: Word Embedding(词嵌入)
下面还有两种变体。见图知意,就不用多解释了。
Unsupervised Learning: Word Embedding(词嵌入)

词嵌入的一些细节

如下图,我们可以看到这些单词之间是有联系的。
Unsupervised Learning: Word Embedding(词嵌入)
Unsupervised Learning: Word Embedding(词嵌入)
然后我们可以利用向量相减的方式,比如hotter-hot与bigger-big的结果应该是类似的。
Unsupervised Learning: Word Embedding(词嵌入)
多语言嵌入,我们知道一个单词的中文和英文的向量完全不一样,那么找出来的点肯定也不一样,于是我们可以找一个神经网络,去专门找某单词中文与英文的关系。
Unsupervised Learning: Word Embedding(词嵌入)
我们也可以直接对文本进行词嵌入。
Unsupervised Learning: Word Embedding(词嵌入)

Unsupervised Learning: Word Embedding(词嵌入)
理解一句话,单词的顺序是不能被忽视的。下面的例子就说明了同一个bag-of-word(词袋模型)所表达的意思不一样。
Unsupervised Learning: Word Embedding(词嵌入)
下面是一些词袋模型的paper,仅供参考
Unsupervised Learning: Word Embedding(词嵌入)