word2vec原理简述_word2vec keras

word2vec原理简述_word2vec keras简要描述Word2Vec原理

word2vec

参考pdf

0. 预备知识

需要了解的预备知识包括sigmoid激活函数即其导数形式;逻辑回归处理二分类问题;Huffman树编码

1. 词向量

目的是将自然语言数学化。最简单的一种词向量是one-hot向量,缺点是容易受到维数灾难的困扰,且不适用于深度学习,无法刻画词之间的相似性。

由此引入Distributed Representation,通过训练将某种语言的每一个词映射成一个固定长度的向量,所有的词向量构成一个向量空间,在这个向量空间中引入“距离”,反应词之间的相似性。

例如
在这里插入图片描述

2. 基于Hierarchical Softmax的模型

word2vec有两种重要的模型:CBOW模型Skip-gram模型
在这里插入图片描述
两个模型都包含三层:输入层、投影层和输出层

  • CBOW模型是在已知 w t w_{t} wt的上下文 w t − 2 , w t − 1 , w t + 1 , w t + 2 w_{t-2}, w_{t-1}, w_{t+1}, w_{t+2} wt2,wt1,wt+1,wt+2的前提下,预测当前词 w t w_{t} wt
  • Skip-gram模型是在已知当前单词的情况下,预测上下文

2.1 CBOW 模型

  1. 输入层:包括上文c个词向量,下文c个词向量
  2. 投影层:将输入层2c个向量做累加,传入输出层
  3. 输出层:构造Huffman树,以对数似然函数作为目标函数值。

在这里插入图片描述
对于某个词w, 从根节点到w所在叶子节点构成唯一一条0,1路径。例如4位的Huffman编码,意味着经过了4个分支,可以认为进行了4次二分类。相应的概率就是 p ( d j w ∣ x w , θ j − 1 w ) p(d_{j}^{w}|x_{w}, \theta^{w}_{j-1}) p(djwxw,θj1w),即在当前输入和当前非叶子结点权重的条件下,被分为d类的概率。用这个对数似然函数进行梯度上升(追求最大值)能达到更新参数(词向量、非叶子结点权重)。

CBOW伪代码

输入:(Context(x), w)
在这里插入图片描述

2.2 Skip-gram

  1. 输入层:只包含当前词w的词向量
  2. 投影层:恒等映射,多余的
  3. 输出层:Huffman树
    在这里插入图片描述

Skip-gram伪代码

在这里插入图片描述

3. 基于Negetive Sampling的模型

不在利用Huffman树,而是采用随即负采样,可替代Hierarchical Softmax。

3.1 CBOW模型

已知上下文Context(w)需要预测w,则w就是一个正样本,其他词就是负样本。目标函数 p ( u ∣ C o n t e x t ( w ) ) = [ σ ( X w T θ u ) ] L w ( u ) ⋅ [ 1 − σ ( X w T θ u ) ] 1 − L w ( u ) p(u|Context(w)) = [\sigma(X^{T}_{w}\theta^{u})]^{L^{w}(u)} · [1-\sigma(X^{T}_{w}\theta^{u})]^{1-L^{w}(u)} p(uContext(w))=[σ(XwTθu)]Lw(u)[1σ(XwTθu)]1Lw(u)

伪代码

在这里插入图片描述

3.2 Skip-gram模型

标签
在这里插入图片描述
目标函数
在这里插入图片描述

Skip-gram伪代码

在这里插入图片描述

架构君码字不易,如需转载,请注明出处:https://javajgs.com/archives/222583
0
 

发表评论