自然语言处理 - 文本数值化 - Word Embedding - CBOW 与 Skip-gram

自然语言处理 - 文本数值化 - Word Embedding - CBOW 与 Skip-gram

Word Embedding 是自然语言处理中常用的文本特征处理方法。

所谓 Embedding,是指将文本空间中的各个 word,嵌入 到另一个数值空间,用新的词向量来表示。

语料库中的 word 往往非常多,而用来表示它们的新的词向量的维数相比 word 个数少,所以嵌入这种表示方法蕴含着 降维 的意思。这种嵌入可以视作一种 映射

  • Word Embedding

    Word Embedding 模型的结构为浅层的神经网络,主要包括三层:输入层、投影层以及输出层。

    • CBOW (Continue Bag-of-Words)

      CBOW 是根据上下文 { w t − n , w t − n + 1 , w t + n , w t + n + 1 } \{w_{t-n}, w_{t-n+1}, w_{t+n}, w_{t+n+1}\} {wtn,wtn+1,wt+n,wt+n+1} 预测当前词.

      假设语料库中共有 10000 个词,我们最终想以 300 300 300 维的词向量来表示每一个词.
      那么每个 w i w_i wi 都是一个以 one-hot 表示的 ( 1 ∗ 10000 ) (1*10000) (110000) 的向量,窗口大小为 4,即当前词前后 2 个词作为上下文:

      1. 将每个 w i w_i wi 乘上同一个 ( 10000 ∗ 300 ) (10000 * 300) (10000300) 的参数矩阵 E h E_h Eh,分别得到 ( 1 ∗ 300 ) (1*300) (1300) 的结果,共 4 个(在计算时,参数矩阵中仅有一行会被“激活”,因为与 one-hot 向量相乘,只有为 1 的那一列参与到与参数矩阵相乘中,其余都为 0);

      2. 而后,将所有上下文 w i w_i wi 的结果求和除以窗口大小 4,得到一个 ( 1 ∗ 300 ) (1*300) (1300) 的投影层;

      3. 接下来将 ( 1 ∗ 300 ) (1*300) (1300) 的投影层乘上一个 ( 300 ∗ 10000 ) (300*10000) (30010000) 的参数矩阵 H o H_o Ho,并通过 Softmax 获取最终预测结果;

      4. 之后将 ( 1 ∗ 10000 ) (1*10000) (110000) 的预测结果与当前词的真实 one-hot 向量 w ∗ ( 1 ∗ 10000 ) w_* (1*10000) w(110000) 构建交叉熵或平方损失等损失函数,并利用反向传播算法更新参数;

      5. 训练结束后,最终参数矩阵 E h E_h Eh 则为我们需要的 Words Vector,参数矩阵中每一个行向量代表一个词的编码。

      因为输入数据为 one-hot 向量,所以一个 word 的输入向量与参数矩阵相乘相当于选取参数矩阵中的一行。权重矩阵其实就是每个词的向量编码一行一行的堆叠起来的。所以说之前的稀疏 one-hot 向量就转变为了稠密的矩阵,而这个稠密矩阵有几列取决于我们自己定义的隐藏层的宽度,即设定的 300 维。

      Word2Vec 会按照窗口大小选取相应数量的输入词,在上述例子中,每 4 个词为一个样本,而且这个样本是 Word2Vec 自动选出来、自动生成的。这些样本中,相互之间距离越近的词出现在一个样本中的概率越大,而距离越远的词同时出现在一个样本中的概率越小。所以在所有样本中,一个词与距离近的、联系紧密的词所构成的样本数量多,那么 Word2Vec 则将学会这种样本分布并反映到参数矩阵中。

      那么给定一个输入单词,在 Softmax 输出的结果中,距离它近的词会被赋予更高的概率,离得远的词的概率相对较低。
      在这里插入图片描述
      (图为 CBOW 模型 ↑)

    • Skip-Gram

      Skip-Gram 与 CBOW 类似,不过它是根据当前词 w t w_t wt 预测上下文 { w t − n , . . . , w t − 1 , w t + 1 , . . . , w t + n } \{w_{t-n}, ..., w_{t-1}, w_{t+1}, ..., w_{t+n}\} {wtn,...,wt1,wt+1,...,wt+n}

      Skip-Gram 的训练有两种方式:

      1. 所谓根据当前词预测上下文是指,一共进行窗口大小次的预测,每次预测上下文中的一个词。

      2. 或者,如果上下文不是 One-Hot ,而是 Four-Hot,达到同时训练上下文的效果。那么在最终的输出层,Softmax 则输出概率最大的前 4 个词,真实的上下文为对应的 Four-Hot 向量。
        在这里插入图片描述
        (图为第一种训练方式 ↑)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值