Word Embedding
当我们要用一个
v
e
c
t
o
r
vector
vector表示一个word时,会发现1-of-N Encoding具有局限性,无法体现词义之间的联系;做word class也无法体现全面的信息。因此需要 word embedding。
word embedding就是用向量表示词。但这是无监督学习(输入一个词,输出一个向量)。但不可用auto-encoder。其基本思路就是:通过上下文找到这个词的意义。
目前,主要方法有Count based 与 Perdiction based,
Count based
基本思想:让两者的
V
e
c
t
o
r
Vector
Vector的内积与出现次数尽可能接近。
Perdiction based
而对于Prediction-based可以根据给一个句子中的单词来预测下一个单词是谁。
拿出第一个hidden layer即可。
此外,还有些Sharing Parameters等技巧。
有时一个单词的预测太弱了,要输入多个
V
e
c
t
o
r
Vector
Vector时,每个
V
e
c
t
o
r
Vector
Vector的相同位置乘上的权重要相同。
将式子整理一下:
同时,只要每次减掉相同的项,就可以保证权重相同。
如何训练
训练就是要最小化Cross entropy.
Prediction-based Various Architectures
下面还有两种变形
- CBOW:拿两头预测中间
- Skip-gram:拿中间预测两头
Word Embedding
机器在读了大量的文章后,形成了一些点(word)。
将有相同关系的word连在一起,发现他们会形成类似的图形。这代表着我们可以用这个方法来预测word。