word2vec模型

(一)  简介

1、传统的词向量一般用one-hot表示,通常面临两个问题:(1)高维稀疏的向量带来计算成本;(2)不同的词向量彼此正交,无法衡量词之间的相似度。而distributed representation通过训练,可以得到每个词的低维稠密向量,不仅计算成本低,而且可以通过向量的距离计算来表示词与词之间的相似度。word2vector就是一个将词进行低维稠密向量化的工具。

2、word2vector的训练过程可以看成是单隐层的网络结构,如下所示:

其中输入层是一个one-hot向量,隐层是一个N维稠密向量,输出层是一个V维稠密向量,W表示词典的向量化矩阵,也是输入到隐层以及隐层到输出的权重参数;因此输入层到隐层表示对上下文词进行向量化,而隐层到输出层,表示计算上下文词与词典的每个目标词进行点积计算(softmax过程)。word2vec中常见的模型有:CBOW(Continuous Bag Of Words Model),Skip-gram(Continuous Skip-gram Model),两者的模型图如下所示:

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

3、 根据训练的优化方法,word2vec的设计框架有两种,分别为:hierarchical softmax以及negative sampling;

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

1、模型图如下:

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

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

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

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

2、参数定义

3、哈夫曼树的运算

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

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

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

其中:

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

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

1、模型图如下:

(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)      图示如下:

其中:

 

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

(五)  总结

1、在w2v中,由隐层到输出层是一个全连接的softmax结构(超大规模分类问题),每次前向都需要做归一化操作,每次后向都需要更新所有的参数,因此计算耗时。

2、对于层级softmax,每个类别都是一个叶子节点,所有叶子节点的概率输出和为1,这是基于哈夫曼的特性,每次前向不需要做归一化,每次后向也只更新根节点到叶子节点路径上的参数(平均logN),因此计算效率高。

3、对于负采样算法,主要两个改进点:(1)将softmax函数改为sigmoid函数,因此前向不需要做归一化;(2)通过负采样构造正负样本集,因此每次后向只更新部分对应的参数。

4、层级softmax跟负采样都是对原始softmax算法的改进,前者是将n分类问题拆解成logn个层级二分类问题,后者是将n分类问题拆解成n个二分类问题。

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

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值