vector2word入门

独热编码

考虑一下的三个特征:
[“male”, “female”]
[“from Europe”, “from US”, “from Asia”]
[“uses Firefox”, “uses Chrome”, “uses Safari”, “uses Internet Explorer”]

将它换成独热编码后,应该是:
feature1=[01,10]
feature2=[001,010,100]
feature3=[0001,0010,0100,1000]

独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。

优缺点分析

优点:使数据离散化;一定程度上起到了扩充特征的作用
缺点:在词袋模型中,不考虑词与词之间的顺序;假设词与词之间相互独立,互不影响;特征稀疏,且容易导致维度灾难。

Distributed representation

通过训练,将每个词都映射到一个较短的词向量上来,从而降低维度。

word2vec

先看word2vec结构:
vector2word入门_第1张图片
输入时one-hot vector形式,output layer通过softmax输出结果,维度跟input layer维度相同。当模型训练好以后,我们会得到隐层的权重矩阵
这个模型一般分为CBOW与Skip-Gram两种模型。CBOW模型的输入是某个特征词的上下文词的对应词向量,输出就是这个特定的一个词的词向量。Skip-Gram跟CBOW思路相反,即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。
CBOW适合小型数据库,skip-gram适合大型语料库。
CBOW与skip-gram模型如下,其中wt为一个词
vector2word入门_第2张图片
vector2word入门_第3张图片

CBOW

CBOW训练模型如下图所示:
vector2word入门_第4张图片
输入层:上下文单词的one-hot(词向量维度为V,上下文单词个数为C)
隐层:权重举证W
输出权重:权重W‘
输出:通过softmax得到一组概率分布,概率最大的对应词应与label误差越小越好。
通过梯度下降法更新W和W’这个W正是我们需要的。
具体例子如下:

vector2word入门_第5张图片
窗口大小是2,表示选取coffee前面两个单词和后面两个单词作为输入。

Skip-Gram

Skip-Gram是给定一个词,进而预测上下文。
具体例子。选定句子“The quick brown fox jumps over lazy dog”。假设window_size = 2,即选择input word前后各两个词和input word进行组合。蓝色表示input word。
vector2word入门_第6张图片
我们的模型将会从每对单词出现的次数中习得统计结果。例如,我们的神经网络可能会得到更多类似(“中国“,”英国“)这样的训练样本对,而对于(”英国“,”蝈蝈“)这样的组合却看到的很少。因此,当我们的模型完成训练后,给定一个单词”中国“作为输入,输出的结果中”英国“或者”俄罗斯“要比”蝈蝈“被赋予更高的概率。

参考

作者:缺省之名
链接:https://www.jianshu.com/p/471d9bfbd72f
来源:简书

你可能感兴趣的:(Machine,Learning)