本文为阅读过程中记录的中文要点框架,有助于快速理清思路和复习。详情可以看如下原文:
http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/
笔记内容:
本教程主要介绍word2vec的基础skip-gram网络架构,不涉及抽象和概要介绍,直接讲解细节。
一、skip-gram模型
该模型的基本形式非常简单。单隐层的神经网络。
我们要做什么?我们训练网络,并不是为了解决特定task,而是为了学习隐层的权重w,该w即为“词向量”。这种方法,类似于在无监督学习中,用auto-encoder学习特征,而不标记数据。
二、the fake task
建立神经网络执行“假任务”,实际是为了获得w。对于句子中的单词(input),获得nearby单词的概率分布。通过样本文档来训练网络。
窗口为2的训练示例“The quickbrown fox jumps over the lazy dog”:
网络每次学习统计数据中的词对,增加词对中单词的相似度。
三、model details
首先建立词汇表。One-hot vector模型:输入和输出都是one-hot vector维度(输出的one-hot vector实际是概率分布的形式)。隐层中无激活函数,输出用softmax。
四、隐层
输入10000个单词,隐层300个节点,代表300个特征。
则权重w为10000X300。模型最终目标是学习权重,对于输出结果,可直接丢弃。
在此模型中,输入one-hot vector乘以权重w,类似于查找表(输入仅有一个0):
因此,隐层代表的就是输入的wordvector。
五、输出层
Softmax产生的是每个节点为0-1之间、所有节点值之和为1的输出(需要除以总数)。
Ants和car的输出近似度:
每个输出都是依概率取的。例如:对于new,很大概率取york,组成newYork ,但是并不是说每次都会取york,york只是所有可能取值中的一个概率较大的而已。
六、intuition
两个具有相似context的单词,具有相似的词向量,模型会输出很接近的结果。