0%

深度学习基础之词嵌入

本节主要介绍了词嵌入的常用方法:Word2Vec。

Word2Vec

  • 利用中心词来预测上下文词

1.One-hot码

  • 假设字典中1000个单词,则任意一个单词的表示为[0 0 …… 1 0 0……],即只在对应的单词为1,其他位置为0

  • 例如:

    image-20221214092127822

2.嵌入矩阵

image-20221214092549834
  • 若每个词对应300个特征,那么嵌入矩阵为$300\times1000$
  • 表中的权重代表词与对应特征的相关程度

3.Skip-gram模型

  • shkip-gram模型是基于某个词来生成它在文本序列周围的词

  • 而模型训练时“周围的词”取决于skip窗口的大小

    • 若文本序列为:you are the pretty sunshine of my life.

    • 若skip窗口为2,那么中心词pretty、sunshine等的目标可能有如下:

      context Target
      pretty are
      pretty the
      pretty sunshine
      pretty of
      sunshine the
      sunshine pretty
      sunshine of
      sunshine my
      …… ……
  • 模型结构:

    image-20221214094143707
    • 将上表中每个context看成训练样本的输入x,每个target看成训练样本的输出y
    • Skip-gram可以表示为由输入层、隐藏层(不含激活函数)和输出层(激活函数为softmax)组成的神经网络
    • 假设嵌入矩阵对应有300个特征,那么从输入层到隐藏层需要的权重矩阵(即为嵌入向量的转置)为$1000\times300$,从隐藏层到输出层需要的权重矩阵为$300\times1000$

4.负采样

  • 针对计算softmax中分母计算量过大提出的一种解决方案

  • 负采样的定义:在字典中随机选择一个词,标为0,即负样本

    • 若文本序列为:I want a glass of orange juice to go alone with my cereal

    • 则生成的正负样本有如下可能:正样本的生成方式与介绍skip窗口时相同

      context word target
      orange juice 1
      orange king 0
      orange book 0
      orange the 0
      orange of 0
      …… …… ……
      • 其中juice是给定的文本序列中抽取的,则orange-juice对为正样本,记为1
      • king、book、the、of等都是随机中字典中抽取的词,则为负样本,记为0
      • 数据集越大,从字典中挑取的样本个数就越小,反之亦然
  • 模型结构:

    image-20221214195517075
    • 将每个单词所有可能的context与word共同看成训练样本的输入x
    • 每个target看成训练样本的输出y
欢迎来到ssy的世界