【深度学习】Embedding之word2vec

一、word2vec概述

word2vec是一个浅层神经网络模型,用于将单词转换为向量,该模型主要有两种类型:
1. CBOW 连续词袋模型
2. skip-gram 跳字模型
CBOW和skip-gram的目标都是迭代出词向量字典(嵌入矩阵)。

二、CBOW 连续词袋模型

1、概述

CBOW神经网络会接收上下文词语,将上下文词语转换为最有可能的目标词。

2、模型结构

1

3、猜想

假设我们有一个句子:
We are about to study the idea of deep learning.
我们能否用上面画线句子来表示出study呢?

这时,我们需要一个大小为n的窗口。
2
具体一些:

在这里插入图片描述

4、过程

对于上下文中输入的其中一个词进行分析:

  1. 输入词首先进行one-hot编码成为一个1行n列的向量,再经过embeddings层,embeddings层是一个N * V的矩阵,N代表词表中的词语个数,V代表词向量的维度,经过该层之后是一个1行V列的词向量。
    在这里插入图片描述
  2. 之后每一个词语都进行这样的操作,将输出结果传送到线性层,通过线性层我们可以得到1*N的向量,再通过softmax得到了目标词向量,为1的地方就是模型的预测结果。
    在这里插入图片描述
  3. 线性层:上下文中包括了多个词语,每个词语经过embeddings层都会得到一个词向量,多个上下文统一表示为 V = 1 4 ( V 1 + V 2 + V 3 + V 4 ) V=\frac{1}{4}(V_1 + V_2 + V_3 + V4) V=41(V1+V2+V3+V4),输出结果为将语义平均的向量化V。
    在这里插入图片描述

三、skip-gram跳字模型

1、概述

skip-gram是用目标词来预测上下文。

2、猜想

假设我们有一个句子:
We are about to study the idea of deep learning.
我们能否用study来预测上下问呢?

我们有一个大小为n的窗口。
在这里插入图片描述
使用一个词来预测另外一个词,尽量使这两个词的词向量接近,在skip-gram迭代的过程中,不断调整词向量:
1. 让目标词与上下文的词向量尽可能地接近。
2. 让目标此与非上下文的词向量尽可能地远离。

判断两个词向量是否接近使用向量的点积
A = ( a 1 , a 2 , . . . , a n ) A = (a_1, a_2, ..., a_n) A=(a1,a2,...,an)
B = ( b 1 , b 2 , . . . . , b n ) B = (b_1, b_2, ...., b_n) B=(b1,b2,....,bn)
A ⋅ B = a 1 ⋅ b 1 + . . . . . . + a n ⋅ b n A \cdot B= a_1 \cdot b_1 + ......+ a_n \cdot b_n AB=a1b1+......+anbn
向量的点积衡量了向量在同一方向上的强度,点积越大,两个向量越相似,它们对应的语义也就越相似。
在这里插入图片描述

3、结构

in_embedding作为skip-gram模型的输出,得到的结果是,每一个词语到达目标词语的概率。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值