word2vec模型

(一)  简介

1.      word2vec中常见的模型有:CBOW(ContinuousBag Of Words Model),Skip-gram(Continuous Skip-gram Model),两者的模型图如下所示:

word2vec模型_第1张图片

由此可见,前者是由上下文推当前词,后者是由当前词推上下文;

2.      word2vec的设计框架有两种,分别为:hierarchicalsoftmax以及negative sampling;

(二)  基于hierarchical softmax框架的CBOW模型

1.      模型图如下:

word2vec模型_第2张图片

(1)      这里的context(w)表示上下各c个词,总共2c个词,每个词假设为m维向量;

(2)      Project Layer对2c个词向量进行累加:

(3)      输出层是一棵哈夫曼树,叶子节点表示语料中的词,每个词的出现频次作为权重进行编码;

(4)      哈夫曼树的设计是为了优化传统神经网络算法的计算效率问题;

2.      参数定义

word2vec模型_第3张图片

3.      哈夫曼树的运算

word2vec模型_第4张图片

(1)      每次节点分裂都是一次二分类过程,其中哈夫曼编码为1则为负类,哈夫曼编码为0则为正类:


(2)      二分类的决策函数如下:


(3)      整棵哈夫曼树的分类函数为:

其中:

 

PS:有了哈夫曼树的分类函数,就可以得到模型的目标函数,梯度下降法可求得参数;

(三)  基于hierarchical softmax框架的skip-gram模型

1.      模型图如下:

word2vec模型_第5张图片

(1)      Input layer以及projectionlayer都是当前词的词向量,m维;

(2)      Output Layer跟CBOW一样,都是哈夫曼树;

2.      哈夫曼树的运算


其中:

 

(四)  基于negative sampling框架的CBOW模型与skip-gram模型

1.      CBOW模型思想:在CBOW模型中,已知词w的上下文context(w),需要预测w,因此,对于给定的context(w),词w就是一个正样本,其他词就是负样本,可以通过采样负样本得到一个关于w的负样本子集NEG(w),因此词的标签可以表示如下:

2.      CBOW模型目标函数表示如下:

其中:

3.      通过梯度下降法优化目标函数,可以得到CBOW模型参数;

PS:skip-gram思想类似;

4.      负采样算法

(1)      词典中的词在语料中出现的次数有高有低,对于那些高频词,被选为负样本的概率就应该比较大,反之,对于那些低频词,其被选中的概率就应该比较小,本质上这是一个带权采样的问题;

(2)      图示如下:

word2vec模型_第6张图片

其中:

(3)      采样规则:每次生成[1,M-1]的一个随机整数r,Table(r)就是一个样本;

参考:word2vec中的数学原理详解


你可能感兴趣的:(自然语言处理)