当前位置:   article > 正文

【深度学习】Embedding之word2vec_embedding word2vec

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模型的输出,得到的结果是,每一个词语到达目标词语的概率。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/400121
推荐阅读
相关标签
  

闽ICP备14008679号