**
model
**
Word2Vec使用了一个你可能在其他机器学习中见过的技巧。我们要训练一个简单的神经网络,用一个隐藏层来执行某个任务,但实际上我们不打算把这个神经网络用于我们训练它的任务!相反,我们的目标实际上只是学习隐藏层的权重-我们将看到这些权重实际上是我们要学习的“单词向量”。
1. 独热编码
你不能直接把单词的字符串输入到网络(可能也有相关的技术,但这里用的是单词为基本单位i),所以每个单词给予一个编码,首先建立一个有n个单词单词库,比如第一个是a,则a的独热编码为(1,0,。。。,0)【一共n-1个0】,最后一个是zebra编码为(0,0,。。。,1)【一共n-1个0】
2. model结构
这个网络的输出是一个单一的向量(也有10000个分量),其中包含我们词汇表中每个单词的随机选择的邻近单词的概率。
3. 输入输出
每次输入的是一个单词对的独热编码,比如:
And I said Romeo take me somewhere we can be alone, I’ll be waiting all there’s left to do is run You’ll be the prince and I’ll be the princess It’s a love story
比如选取left为中心词,选取为5的窗口,则有4个单词对:
(left,there’s),
(left,all ),
(left,to),
(left,do)
这里left代表输入,there’s每个都代表一个独热编码,是训练的目标,
比如left是: