Driven to discover
  • 目录
  • 简介
  • 数学基础
    • 数学基础
      • 线性代数
      • 概率统计
        • 概率基础
        • 连续概率
        • 概率分布
        • 大数与中心极限
      • 时间序列
      • 信息理论
      • 参数估计
      • 优化降梯
        • 极大、极小和鞍点
        • 泰勒及Jacobian、Hessian
        • 连续可微
          • 无约束优化
          • 有约束优化
        • 非连续可微
      • 备查附录
  • 数据挖掘
    • 数据挖掘
      • 数据预分析
      • 数据预处理
        • 数据采样
        • 数据降维
        • 特征选择
      • 模式挖掘
        • 频繁项集
        • 多样项集
        • 基于约束的频繁项集
        • 高维及庞大项集
        • 序列模式
        • 图模式
      • 聚类分析
        • 划分聚类
        • 层次聚类
        • 密度/网格聚类
      • 文本挖掘
        • 短语挖掘与主题模型
        • 实体识别与类型标记
  • 机器学习
    • 机器学习
      • 模型评估与选择
      • 线性模型
      • 决策树模型
      • 支持向量机
      • 贝叶斯分类器
      • 集成学习
        • Bagging
        • Boosting
          • AdaBoost
          • GBDT
          • XGBoost
          • LightGBM
        • 结合策略
      • 概率图模型
        • 贝叶斯网络
        • 隐马尔可夫
        • 条件随机场
  • 网络图模型
    • 网络图模型
      • 大规模图处理
        • 社区检测与搜索
        • 中心度分析
        • 网络形成模型
        • 异构信息网络
      • 网络映射
        • 结构维持的网络映射
        • 性质维持的网络映射
        • 动态网络映射
      • Graph Neural Network
  • 深度学习
    • 深度学习
      • 深度前馈网络
        • 非线性的学习
        • 基于梯度的学习
        • 激活函数
        • 架构设计
        • 前向传播
        • 反向传播
      • 深度学习正则化
        • 参数范数惩罚
        • 作为约束的范数惩罚
        • 正则化和欠约束问题
        • 数据集增强
        • 噪声鲁棒性
        • 半监督学习
        • 多任务学习
        • 提前终止
        • 参数绑定和共享
        • 稀疏表示
        • Bagging和其他集成方法
        • Dropout
        • 对抗训练
        • 切面距离、正切传播和流形正切分类器
      • 深度学习优化
        • 学习和纯优化异同
        • 神经网络优化中的挑战
        • 优化算法
        • 参数初始化策略
        • 优化策略和元算法
      • 卷积网络
        • 卷积运算
        • 卷积动机
        • 池化
      • 循环和递归网络
        • 展开计算图
        • 循环神经网络
        • 长短期记忆
        • 注意力机制
      • 生成对抗网络
      • 多任务学习
      • 技术分析
        • Attention
        • Normalization
  • 增强学习
    • 增强学习
      • 增强学习的数学表达形式
      • 求解增强学习问题
        • 已知环境模型的问题
        • 未知环境模型的问题
  • 计算机视觉
    • 计算机视觉
      • 图像分类
        • LeNet-5
        • AlexNet
        • VGGNet
        • GoogLeNet
        • ResNet
        • DenseNet
      • 目标检测
        • 相关研究
          • 选择性搜索
          • OverFeat
        • 基于区域提名的方法
          • R-CNN
          • SPP-net
          • Fast R-CNN
          • Faster R-CNN
          • R-FCN
        • 端到端的方法
          • YOLO
          • SSD
      • 语义分割
        • 全卷积网络
          • FCN
          • DeconvNet
          • SegNet
          • DilatedConvNet
        • CRF/MRF的使用
          • DeepLab
          • CRFasRNN
          • DPN
        • 实例分割
          • Mask R-CNN
      • 图像检索的深度哈希编码
        • 传统哈希编码方法
        • CNNH
        • DSH
      • 光学字符识别
        • CTC解码
          • 前向后向
          • 目标函数
          • 基本原理
      • 人脸识别
      • 三维重建
  • 自然语言处理
    • 自然语言处理
      • 中文分词技术
      • 词性标注
        • 传统词性标注模型
        • 基于神经网络的词性标注模型
        • 基于Bi-LSTM的词性标注模型
      • 命名实体识别
      • 关键词提取
        • 词频与排序
        • 主题模型
      • 句法分析
        • 基于PCFG的句法分析
        • 基于最大间隔马尔可夫网络的句法分析
        • 基于条件随机场的句法分析
        • 基于移进-归约的句法分析
      • 文本向量化
        • Continuous Bag-of-Word
        • Skip-Gram
        • word2vec(Hierarchical Softmax与Negative Sampling)
        • GloVe
        • fastText
        • Bert
      • 情感分析
        • 文档维度情感分析
        • 句子维度情感分析
        • 方面维度情感分析
        • 其他情感分析任务
      • 机器翻译
        • 神经网络机器翻译基本模型
        • 基于Attention的神经网络机器翻译
        • 基于卷积的机器翻译
  • 搜索推荐广告
    • 搜索推荐广告
      • 搜索
        • 召回
        • 排序
          • 传统匹配模型
          • 深度学习匹配模型
            • Representation Learning
              • DNN-based
              • CNN-based
              • RNN-based
            • Matching Function Learning
              • Matching with word-level learning methods
              • Matching with attention model
            • Matching function learning&Representation learning
            • Query-Doc Relevance matching
              • Based on global distribution of matching strengths
              • Based on local context of matched terms
        • 重排
      • 推荐
        • 召回
        • 排序
          • 传统匹配模型
            • 协同过滤
            • 基于特征
          • 深度学习匹配模型
            • Representation learning
              • 协同过滤
              • 基于特征
            • Matching function learning
              • 协同过滤
              • 基于特征
        • 重排
      • 广告
        • 行业知识
        • 核心技术
          • 发展趋势
          • CTR/CVR
            • 浅层模型
            • 深度模型
          • 智能定向
          • 技术难点
        • 相关技术
  • 计算机基础
    • 计算机基础
      • 数据结构
        • 排序算法
      • 操作系统
      • 计算机网络
      • 计算机组成原理
      • python
        • pandas
      • Bash
      • Spark
      • SQL
      • Excel
  • 经验总结
    • 经验总结
      • 广告应用
        • 人群定向
        • 召回通路
      • 时序预测
        • 统计时序
        • 机器学习
        • 深度学习
      • 图谱探索
        • 标签传播
        • 图谱&网络
      • 策略评估
        • 激励策略
        • 均衡策略
Powered by GitBook
On this page
  • One-word context
  • 模型结构
  • 模型训练
  • Multi-word context
  • 模型结构
  • 模型训练
  • Source
  1. 自然语言处理
  2. 自然语言处理
  3. 文本向量化

Continuous Bag-of-Word

Previous文本向量化NextSkip-Gram

Last updated 6 years ago

Continuous Bag-of-Word(CBOW)顾名思义,即连续词袋模型,即文本以单个词为最小单位,像“support vector machine”词组也会被当做三个独立的词考虑,且是连续词袋,即目标词的前后词也作为因素考虑。

One-word context

模型结构

下图为网络模型例子,词汇表大小为 VVV;隐藏层宽度为 NNN(即我们想要的词向量维度),各层连接为全连接方式;输入为one-hot编码的向量,即词汇表出现的 VVV 个非重复词,一个词 www 的向量 (x1,x2,…,xV)(x_1,x_2,\dots,x_V)(x1​,x2​,…,xV​) 为对应 xwx_wxw​ 的位置为 111 ,其他位置都为 000 ;真实的 yyy 为文本中输入词的下一个词的one-hot编码的向量。

输入层和隐藏层间的权重可由一个 V×NV\times NV×N 的矩阵 WWW 表示。 WWW 的每一行是一个 NNN 维向量,表示输入层对应的词向量 vwv_wvw​ 。

W=[w11  w12  …  w1Nw21  w22  …  w2N…  …  …  …wV1  wV2  …  wVN]W = \left[ \begin{matrix} w_{11} \ \ w_{12} \ \ \dots\ \ w_{1N}\\ w_{21} \ \ w_{22} \ \ \dots\ \ w_{2N}\\ \dots \ \ \dots \ \ \dots\ \ \dots\\ w_{V1} \ \ w_{V2} \ \ \dots\ \ w_{VN}\\ \end{matrix} \right] W=​w11​  w12​  …  w1N​w21​  w22​  …  w2N​…  …  …  …wV1​  wV2​  …  wVN​​​

WWW 的第 iii 行是 vwTv_w^TvwT​ ,给定一个词 xk=1x_k=1xk​=1 且 xk′=0x_{k'}=0xk′​=0 对于 k′≠kk'\neq kk′=k (即这个词的one-hot向量只有 kkk 位置为 111 ),我们可得:

h=WTx=W(k,⋅)T:=vwITh=W^Tx=W^T_{(k,\cdot)}:=v^T_{w_I}h=WTx=W(k,⋅)T​:=vwI​T​ (1)

其实就是将 WWW 的第 kkk 行复制给了 hhh ,因为 xxx 只有在第 kkk 位置是 111 (因为输入是one-hot,经过矩阵相乘其实就是把权重 WWW 对应行的值传递给下一层)。 vwIv_{w_I}vwI​​ 即是输入词 wIw_IwI​ 的向量表示。(这就意味着隐藏层的激活函数是线性的即可,不需要使用ReLU之类的对它们进行非线性变换。比如Multi-word context model中直接把这层的输入进行加权求和传给下层)

隐藏层到输出层的权重可用一个 N×VN\times VN×V 的矩阵 W′={wij′}W'=\{w'_{ij}\}W′={wij′​} 表示:

W′=[w11′  w12′  …  w1N′w21′  w22′  …  w2N′…  …  …  …wV1′  wV2′  …  wVN′]W' = \left[ \begin{matrix} w'_{11} \ \ w'_{12} \ \ \dots\ \ w'_{1N}\\ w'_{21} \ \ w'_{22} \ \ \dots\ \ w'_{2N}\\ \dots \ \ \dots \ \ \dots\ \ \dots\\ w'_{V1} \ \ w'_{V2} \ \ \dots\ \ w'_{VN}\\ \end{matrix} \right] W′=​w11′​  w12′​  …  w1N′​w21′​  w22′​  …  w2N′​…  …  …  …wV1′​  wV2′​  …  wVN′​​​

基于权重,我们对于每一个词汇表里的词可计算一个分数 uju_juj​:

uj=vwj′Thu_j=v_{w_j}'^T huj​=vwj​′T​h (2)

其中 vwj′v'_{w_j}vwj​′​ 是 W′W'W′ 第 jjj 列。然后我们用softmax去获得这个词的后验分布,是一个多项式分布:

p(wj∣wI)=yj=exp⁡(uj)∑j′=1Vexp⁡(uj′)p(w_j|w_I)=y_j=\frac{\exp(u_j)}{\sum\limits_{j'=1}^V\exp (u_{j'})}p(wj​∣wI​)=yj​=j′=1∑V​exp(uj′​)exp(uj​)​ (3)

其中 yjy_jyj​ 是输出层第 jjj 个单元的输出。结合输入层到隐藏层 h=WTx=W(k,⋅)T:=vwITh=W^Tx=W^T_{(k,\cdot)}:=v^T_{w_I}h=WTx=W(k,⋅)T​:=vwI​T​ 和隐藏层到输出层 uj=vwj′Thu_j=v_{w_j}'^T huj​=vwj​′T​h 公式代入softmax,我们得到:

p(wj∣wI)=exp⁡(vwj′T)vwI∑j′=1Vexp⁡(vwj′′′TvwI)p(w_j|w_I)=\frac{\exp(v_{w_j}'^T)v_{w_I}}{\sum\limits_{j'=1}^V\exp(v_{w_{j'}'}'^Tv_{w_I})}p(wj​∣wI​)=j′=1∑V​exp(vwj′′​′T​vwI​​)exp(vwj​′T​)vwI​​​ (4)

这里 vwv_wvw​ 和 vw′v_w'vw′​ 是词 www 的两种表达形式。 vwv_wvw​ 源自输入层到隐藏层权重矩阵 WWW 的行, vw′v_w'vw′​ 源自隐藏层到输出层权重矩阵 W′W'W′ 的列。我们将 vwv_wvw​ 和 vw′v'_wvw′​ 分别称为“输入向量”和“输出向量”。

模型目标是最大化 p(wj∣wI)=exp⁡(vwj′T)vwI∑j′=1Vexp⁡(vwj′′′TvwI)p(w_j|w_I)=\frac{\exp(v_{w_j}'^T)v_{w_I}}{\sum\limits_{j'=1}^V\exp(v_{w_{j'}'}'^Tv_{w_I})}p(wj​∣wI​)=j′=1∑V​exp(vwj′′​′T​vwI​​)exp(vwj​′T​)vwI​​​ ,即模型输入 wIw_IwI​,模型输出wOw_OwO​(表示它的index在输出层为j∗j^*j∗) 与真实yyy(输入词的下一个词的one-hot向量)一致。即 yyy 向量第 kkk 位为 111,其他为 000 ,我们期望的最佳模型是输出层第 kkk 个单元为 111 ,其他为 000 。模型使用反向传播进行训练。

模型训练

1)隐藏层到输出层权重更新

训练目标即最大化 p(wj∣wI)=exp⁡(vwj′T)vwI∑j′=1Vexp⁡(vwj′′′TvwI)p(w_j|w_I)=\frac{\exp(v_{w_j}'^T)v_{w_I}}{\sum\limits_{j'=1}^V\exp(v_{w_{j'}'}'^Tv_{w_I})}p(wj​∣wI​)=j′=1∑V​exp(vwj′′​′T​vwI​​)exp(vwj​′T​)vwI​​​ , 公式(4)代表的就是给定上下文信息(这里为一个单词 wIw_IwI​ )以及其权重矩阵的情况下,预测其实际输出单词(即上下文信息的中心词 wOw_OwO​)的条件概率

max⁡p(wO∣wI)=max⁡yj∗\max p(w_O|w_I)=\max y_{j^*}maxp(wO​∣wI​)=maxyj∗​ (5)

=max⁡log⁡yj∗=\max \log y_{j^*} =maxlogyj∗​ (6)

=uj∗−log⁡∑j′=1Vexp⁡(uj′):=−E= u_{j^*}-\log \sum\limits_{j'=1}^V\exp(u_{j'}):= -E=uj∗​−logj′=1∑V​exp(uj′​):=−E (7)

上式给了损失函数的定义,即 E=−log⁡p(wO∣wI)E = -\log p(w_O|w_I)E=−logp(wO​∣wI​) ,我们旨在最小化 EEE 。 uj∗u_{j^*}uj∗​ 的表示方式由公式(2)而来, j∗j^*j∗ 则为实际输出单词的索引下标。我们注意到该损失函数可以理解为一种特殊情形下的交叉熵计算。

首先我们对损失函数 EEE 求关于uju_juj​ 的偏导数,我们可得

∂E∂uj=yj−tj:=ej\frac{\partial E}{\partial u_j}=y_j-t_j:=e_j∂uj​∂E​=yj​−tj​:=ej​ (8)

上式给出了 eje_jej​ 的定义,其中 tjt_jtj​ 只有在第 jjj 个单元是所期待的输出词(即真实的 yyy )时才为 111 ,其他情况下为 000 。这个导偏数其实就是表示在输出层的预测误差 eje_jej​ 。

我们根据链式法则求出损失函数 EEE 关于矩阵 W′W'W′元素wij′w'_{ij}wij′​ 的偏导数以获得隐藏层到输出层权重的梯度

∂E∂wij′=∂E∂uj∂uj∂wij′=ej⋅hi\frac{\partial E}{\partial w'_{ij}}=\frac{\partial E}{\partial u_j}\frac{\partial u_j}{\partial w'_{ij}}=e_j\cdot h_i∂wij′​∂E​=∂uj​∂E​∂wij′​∂uj​​=ej​⋅hi​ (9)

因此,用随机梯度下降法,我们可以得到隐藏层到输出层的权重更新公式:

wij′(new)=wij′(old)−η⋅ej⋅hiw'^{(new)}_{ij}=w'^{(old)}_{ij}-\eta\cdot e_j\cdot h_iwij′(new)​=wij′(old)​−η⋅ej​⋅hi​ (10)

或者 vwj′(new)=vwj′(old)−η⋅ej⋅h    for j=1,2,…,Vv'^{(new)}_{w_j}=v'^{(old)}_{w_j}-\eta\cdot e_j\cdot h\ \ \ \ for\ j=1,2,\dots,Vvwj​′(new)​=vwj​′(old)​−η⋅ej​⋅h    for j=1,2,…,V (11)

其中 η>0\eta>0η>0 是学习率, ej=yj−tje_j=y_j-t_jej​=yj​−tj​ , hih_ihi​ 是隐藏层第 iii 个单元; vwj′v'_{w_j}vwj​′​ 是 wjw_jwj​ 的输出向量。这个更新公式其实就表明了我们需要查看词汇表中每一个可能的词,比较网络的输出yjy_jyj​与期望的输出(实际值) tjt_jtj​:

  • (1)如果 yj>tjy_j>t_jyj​>tj​,那么就从向量 vwj′v'_{w_j}vwj​′​ 中减去隐藏向量 hhh 的一部分(例如 vwIv_{w_I}vwI​​ ),这样向量 vwj′v'_{w_j}vwj​′​

  • 就会与向量 vwIv_{w_I}vwI​​ 相差更远。

  • (2)如果 yj<tjy_j<t_jyj​<tj​ (这种情况只有在 tj=1t_j=1tj​=1 时,才会发生,此时 wj=wOw_j=w_Owj​=wO​),则将隐藏向量 hhh

  • 的一部分加入 vwO′v'_{w_O}vwO​′​ ,使得 vwO′v'_{w_O}vwO​′​ 与 vwIv_{w_I}vwI​​ 更接近

  • (3)如果 yjy_jyj​ 与 tjt_jtj​ 非常接近,则此时 ej=yj−tje_j = y_j-t_jej​=yj​−tj​ 由于公式(8)非常接近于 000 ,故更新参数基

  • 本没什么变化

2)输入层到隐藏层权重更新

我们继续对损失函数 EEE 求关于隐藏层 hih_ihi​ 的偏导数,得:

∂E∂hi=∑j=1V∂E∂uj∂uj∂hi=∑j=1Vejwij′:=EHi\frac{\partial E}{\partial h_i}=\sum\limits_{j=1}^V\frac{\partial E}{\partial u_j}\frac{\partial u_j}{\partial h_i}=\sum\limits_{j=1}^Ve_jw'_{ij}:=EH_i∂hi​∂E​=j=1∑V​∂uj​∂E​∂hi​∂uj​​=j=1∑V​ej​wij′​:=EHi​ (12)

其中 hih_ihi​ 为隐藏层第 iii 个神经单元的输出; uju_juj​ 在公式(2)中已经定义,表示输出层第 jjj 个神经单元的输入; ej=yj−tje_j = y_j-t_jej​=yj​−tj​ 为输出层第 jjj 个单元的预测误差。因此 EHEHEH 应该是一个 NNN 维度向量,它的每个元素代表的是词汇表中的每个单词的预测误差 eje_jej​ 与其输出向量 wij′w'_{ij}wij′​ 在 j=1j=1j=1 到 VVV 上的乘积之和。

接下来,我们需要求出损失函数 EEE 关于权重矩阵 WWW 的偏导数。首先,分解公式(1),我们知道隐藏层激活单元的输出 hih_ihi​ 是输入层 xxx 与权重的线性组合,即

hi=∑k=1Vxk⋅wkih_i = \sum\limits_{k=1}^Vx_k\cdot w_{ki}hi​=k=1∑V​xk​⋅wki​ (13)

因此对于权重矩阵 WWW 的每一个元素,我们求关于 EEE 的偏导数,得到

∂E∂wki=∂E∂hi∂hi∂wki=EHi⋅xk\frac{\partial E}{\partial w_{ki}}=\frac{\partial E}{\partial h_i}\frac{\partial h_i}{\partial w_{ki}}=EH_i\cdot x_k∂wki​∂E​=∂hi​∂E​∂wki​∂hi​​=EHi​⋅xk​ (14)

因此我们利用张量乘积的方式,便可得到

∂E∂W=x⊗EH=xEHT\frac{\partial E}{\partial W}=x\otimes EH=xEH^T∂W∂E​=x⊗EH=xEHT (15)

我们再次得到了一个 N×VN\times VN×V 的矩阵。由于 xxx 向量只有一个非 000 元素,因此 ∂E∂W\frac{\partial E}{\partial W}∂W∂E​ 只有一行是 NNN 维非 000 向量 EHTEH^TEHT ,因此矩阵 WWW 的更新公式为

vwI(new)=vwI(old)−ηEHTv^{(new)}_{w_I}=v^{(old)}_{w_I}-\eta EH^TvwI​(new)​=vwI​(old)​−ηEHT (16)

其中 vwIv_{w_I}vwI​​ 是矩阵 WWW 的其中一行,是唯一的上下文单词的“输入向量”,也是矩阵 WWW唯一的导数非 000 的行向量。除了 vwIv_{w_I}vwI​​ 以外,矩阵 WWW 的其他行向量在参数更新迭代过程中都会保持不变(因为其导数为 000 )

与矩阵 W′W'W′ 的更新过程相似,对于公式(16),我们分析如下:

  • (1)如果过高地估计了某个单词 wjw_jwj​ 作为最终输出单词的概率(即: yj>tjy_j>t_jyj​>tj​ ),则上下文单词

  • wIw_IwI​ (context word )的输入向量与单词 wjw_jwj​ 的输出向量在更新的过程中会相差越来越大。

  • (2) 如果相反,某个单词 wjw_jwj​ 作为最终输出单词的概率被低估(即: yj<tjy_j<t_jyj​<tj​ ),则单词 wIw_IwI​ 的输

  • 入向量与单词 wjw_jwj​ 的输出向量在更新过程中会越来越接近。

  • (3) 如果对于单词 wIw_IwI​ 的概率预测是准确的,则对于单词的输入向量在更新过程中几乎保持不变。

因此,上下文单词 wIw_IwI​ (context word )的输入向量的更新取决于词汇表中所有单词的预测误差。预测误差越大,则该单词对于上下文单词的输入向量的更新过程影响越大。

Multi-word context

根据字面意思我们就可以看出,基于multi-word context的CBOW模型就是利用多个上下文单词来推测中心单词target word的一种模型。比如下面这段话,我们的上下文大小取值为4,特定的这个词是"Learning",也就是我们需要的输出词向量,上下文对应的词有8个,前后各4个,这8个词是我们模型的输入。由于CBOW使用的是词袋模型,因此这8个词都是平等的,也就是不考虑他们和我们关注的词之间的距离大小,只要在我们上下文之内即可。

模型结构

其隐藏层的输出值的计算过程为:首先将输入的上下文单词(context words)的向量叠加起来并取其平均值,接着与输入层到隐藏层的权重矩阵相乘,作为最终的结果,公式如下:

h=1CWT(x1+x2+⋯xC)h = \frac{1}{C}W^T(x_1+x_2+\cdots x_C)h=C1​WT(x1​+x2​+⋯xC​) (17)

=1C(vw1+vw2+⋯+vwC)T=\frac{1}{C}(v_{w_1}+v_{w_2}+\cdots+v_{w_C})^T=C1​(vw1​​+vw2​​+⋯+vwC​​)T (18)

其中 CCC 为上下文单词的个数, w1,w2,…,wCw_1,w_2,\dots,w_Cw1​,w2​,…,wC​ 为上下文单词, vwv_wvw​ 为单词 www 的输入向量。损失函数为

E=−log⁡p(wO∣wI,1,…,wI,C)E = -\log p(w_O|w_{I,1},\dots,w_{I,C})E=−logp(wO​∣wI,1​,…,wI,C​) (19)

=−uj∗+log⁡∑j′=1Vexp⁡(uj′)=-u_{j^*}+\log \sum\limits_{j'=1}^V\exp(u_{j'})=−uj∗​+logj′=1∑V​exp(uj′​) (20)

=−vwO′T⋅h+log⁡∑j′=1Vexp⁡(vwj′T⋅h)= -v_{w_O}'^T\cdot h+\log\sum\limits_{j'=1}^V\exp(v_{w_j}'^T\cdot h)=−vwO​′T​⋅h+logj′=1∑V​exp(vwj​′T​⋅h) (21)

网络结构如下:

模型训练

1)隐藏层到输出层权重更新

同样,由隐藏层到输出层的权重更新公式与One-word context模型下的一模一样,即类似于公式(11),我们直接写在下面:

vwj′(new)=vwj′(old)−η⋅ej⋅h    for j=1,2,…,Vv'^{(new)}_{w_j}=v'^{(old)}_{w_j}-\eta\cdot e_j\cdot h\ \ \ \ for\ j=1,2,\dots,Vvwj​′(new)​=vwj​′(old)​−η⋅ej​⋅h    for j=1,2,…,V (22)

2)输入层到隐藏层权重更新

由输入层到隐藏层的权重矩阵更新公式与公式(16)类似,只不过现在我们需要对每一个上下文单词 wI,cw_{I,c}wI,c​ 都执行如下更新公式:

vwI,c(new)=vwI,c(old)−1CηEHT    for c=1,2,…,Cv^{(new)}_{w_{I,c}}=v^{(old)}_{w_{I,c}}-\frac{1}{C}\eta EH^T \ \ \ \ for\ c=1,2,\dots,CvwI,c​(new)​=vwI,c​(old)​−C1​ηEHT    for c=1,2,…,C (23)

其中 vwI,cv_{w_{I,c}}vwI,c​​ 为context中第 ccc 个单词的输入向量; η\etaη 为正学习速率; EH=∂E∂hiEH = \frac{\partial E}{\partial h_i}EH=∂hi​∂E​ 由公式(12)给出。

Source

《word2vec Parameter Learning Explained》论文学习笔记_lanyu_01的博客-CSDN博客
word2vec原理(一) CBOW与Skip-Gram模型基础 - 刘建平Pinard - 博客园
Logo
Logo