《word2vec中的数学》内容摘要(二、基于Hierarchical的CBOW模型)

本文深入探讨了HierarchicalSoftmax技术在CBOW和Skip-gram模型中的应用,详细解析了这两种模型的网络结构、目标函数、条件概率计算方法以及参数更新算法。通过实例说明了如何利用Huffman树优化模型训练过程,提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2、基于框架Hierarchical Softmax的模型

下面介绍基于Hierarchical Softmax的两个模型——CBOW模型和Skip-gram模型。两者的结构如下:

两个模型都包含三层:输入层、投影层和输出层。前者是在已知当前词w_t的上下文(context)w_{t-2}, w_{t-2},...,w_{t+1},w_{t+2}的前提下,预测当前词w_t;后者是在已知当前词w_t的前提下,预测其上下文w_{t-2}, w_{t-2},...,w_{t+1},w_{t+2}。CBOW模型的目标函数是对数似然函数

                                                                 L=\sum_{w \in C}\ln{p(w|Context(w))}

其中p(w|Context(w))softmax函数。Skip-gram模型的目标函数也是对数似然函数

                                                                L=\sum_{w \in C}\ln{p(Context(w)|w)}

 

(1)CBOW模型

① 网络结构

CBOW模型的网络结构包括三层:输入层、投影层和输出层。以(Context(w),w)为例:

输入层: 包含Context(w)2c个词的词向量\boldsymbol{v}(Context(w)_1),\boldsymbol{v}(Context(w)_2),...,\boldsymbol{v}(Context(w)_{2c}) \in \mathbb{R}^m,其中m为词向量的长度。

投影层:将输入层的2c个词向量求和累加,即\boldsymbol{x}_{\boldsymbol{w}}=\sum^{2c}_{i=1}\boldsymbol{v}(Context(w)_i) \in \mathbb{R}^m

 c 输出层:输出对应一棵二叉树,它是以语料中出现过的词当叶子结点,以各词在语料中出现的次数当权值构造出来的Huffman树。该树的叶子结点共N(=|D|)个,分别对应词典D中的词。

② 梯度计算及参数更新公式

考虑Huffman树中的某个叶子结点,假设它对应词典D中的词w,记

a、p^w:从根结点出发到达w对应叶子结点的路径;

b、l^w:路径p^w中包含结点的个数;

c、p^w_1,p^w_2,...,p^w_{l^w}:路径p^w中的l^w个结点,其中p^w_1表示根结点,p^w_{l^w}表示词w对应的结点;

d、d^w_2,d^w_3,...,p^w_{l^w} \in \{0,1\}: 词w的Huffman编码,它由l^w-1位编码构成,d^w_j表示路径p^w中第j个结点对应的编码(根结点不对应编码)。

e、\boldsymbol{\theta}^w_1,\boldsymbol{\theta}^w_2,...,\boldsymbol{\theta}^w_{l^w-1} \in \mathbb{R}^m: 路径p^w中非叶子结点对应的向量,\boldsymbol{\theta}^w_j表示路径p^w中第j个非叶子结点对应的向量。

w=“足球”为例。如下图,红线表示路径p^w,长度为l^w=5p^w_1,p^w_2,...,p^w_5为路径p^w上的5个结点。d^w_2,d^w_3,d^w_4,p^w_5分别为1,0,0,1,\boldsymbol{\theta}^w_1,\boldsymbol{\theta}^w_2,\boldsymbol{\theta}^w_3,\boldsymbol{\theta}^w_4为路径p^w上4个非叶子结点对应的向量。

 条件概率函数的计算。从根结点到达“足球”这个叶子结点,中间经历了4次分支,每一次分支都可视为进行了一次二分类。在word2vec中约定:

                                                          Label(p^w_i)=1-d^w_i,i=2,3,...,l^w

即将一个结点进行分类时,分到左边的是负类,分到右边的是正类。一个结点被分为正类和负类的概率分别为

                                                                \sigma(\boldsymbol{x}^T_{\boldsymbol{w}}\boldsymbol{\theta})=\frac{1}{1+e^{-\boldsymbol{x}^T_{\boldsymbol{w}}\boldsymbol{\theta}}} 和 1-\sigma(\boldsymbol{x}^T_{\boldsymbol{w}}\boldsymbol{\theta})

所以上述4个二分类的概率如下:

    1、第1次:p(d^w_2|\boldsymbol{x}_w, \boldsymbol{\theta}^w_1)=1-\sigma(\boldsymbol{x}^T_w\boldsymbol{\theta}^w_1);

    2、第2次:p(d^w_3|\boldsymbol{x}_w, \boldsymbol{\theta}^w_2)=\sigma(\boldsymbol{x}^T_w\boldsymbol{\theta}^w_2)

    3、第3次:p(d^w_4|\boldsymbol{x}_w, \boldsymbol{\theta}^w_3)=\sigma(\boldsymbol{x}^T_w\boldsymbol{\theta}^w_3)

    4、第4次:p(d^w_5|\boldsymbol{x}_w, \boldsymbol{\theta}^w_4)=1-\sigma(\boldsymbol{x}^T_w\boldsymbol{\theta}^w_4)

所以

                                                  p(football|Context(football))=\prod^5_{j=2}p(d^w_j|\boldsymbol{x}_w,\boldsymbol{\theta}^w_{j-1})

总结:对于字典D中的任何词w,Huffman树中必有从根结点到词w对应结点的路径p^wp^w上存在l^w-1个分支,将每个分支看作一次二分类,每一次分类产生一个概率,将这些概率乘起来,就是p(w|Context(w)),即

                                                        p(w|Context(w))=\prod^{l^w}_{j=2}p(d^w_j|\boldsymbol{x}_w, \boldsymbol{\theta}^w_{j-1})

其中

                                            p(d^w_j|\boldsymbol{x}_w,\boldsymbol{\theta}^w_{j-1})=\left[\sigma(\boldsymbol{x}_w^T\boldsymbol{\theta}^w_{j-1}) \right ]^{1-d^w_j}\left[1-\sigma(\boldsymbol{x}_w^T\boldsymbol{\theta}^w_{j-1}) \right ]^{d^w_j}

损失函数取对数似然函数:

                                                                 

对数损失函数

设大括号中的连加项为:

连加项

然后使用随机梯度上升法来更新参数:每取一个样本(Context(w), w), 对目标函数中的所有参数做一次刷新。目标函数L中的参数包括向量\mathbf{x}_{w},\mathbf{\theta}^{w}_{j-1}, w\in \textit{C},j=2,3,...,l^{w}.  L(w,j)关于\mathbf{\theta}^{w}_{j-1}的梯度为

于是\theta^{w}_{j-1}的更新公式为

L(w,j)\textbf{x}_w\theta^{w}_{j-1}是对称的,所以

\textbf{x}_w表示Context(w)中各词词向量\textup{v}(\widetilde{w}),\widetilde{w}\in Context(w)的累加,\textup{v}(\widetilde{w})的更新公式为

③ 参数更新算法

    设样本为(Context(w), w),基于框架Hierarchical Softmax的CBOW的梯度上升法更新各参数的伪代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值