• 词向量模型Word2Vec



    CBOW和skip-gram的目标都是迭代出词向量字典(嵌入矩阵)——embeddings

    CBOW连续词袋模型

    根据上下文词汇预测目标词汇
    在这里插入图片描述

    例子

    使用study的上下文,表示出study

    例句:We are about to study the idea of deep learning.

    1. 某个词的上下文,需要提前设置一个上下文窗口长度

    窗口长度为1:We are about to study the idea of deep learning. (上下文分别问to和the)
    窗口长度为2:We are about to study the idea of deep learning. (上下文分别为about to 和 the idea)

    1. 设置好窗口的长度后,需要通过窗口内的词语,预测目标词:

    窗口长度为2时,则有如下对应关系:
    We、are、to、study -预测> about
    are、about、study、the -预测> to
    about、to、the、idea -预测> study

    1. CBOW模型是一个神经网络:该神经网络会将接收上下文词语,将上下文词语转换为最有可能得到的目标词。
      eg.如果向神经网络输入 about、to、the、idea四个词,神经网络则输出study这个词。
      在这里插入图片描述

    CBOW模型的embeddings层

    CBOW模型中有一个特殊的层——embeddings层
    embeddings层是一个N*V的矩阵
    N——词表中的词语个数;
    V——词向量的维度
    他就是我们最终希望得到的嵌入矩阵
    在这里插入图片描述
    embeddings层的作用是将我们输入的词语转换成词向量
    在这里插入图片描述

    1.将词语we输入至CBOW,将we转换为One-Hot编码形式,是一个1xN的向量,其中只有与We对应的位置是1,其余位置都是0
    2.将we的One-Hot编码(1xN的向量)与embeddings(NxV的矩阵)相乘,得到we的词向量(1xV的向量)

    相当于从矩阵中选择一个特定的行,从embeddings中查找we的词向量。
    由于某个词的上下文中包括了多个词语,这些词语会同时输入embeddings层,每个词语都会被转换为一个词向量。
    在这里插入图片描述

    多个上下文词的一个统一表示:v=(v1+v2+v3+v4)/ 4
    embeddings层的输出结果:是一个将语义信息平均的向量v

    CBOW模型的线性层

    在embeddings层后会连接一个线性层
    在这里插入图片描述

    橙色标记的线性层
    不设置激活函数
    权重矩阵的维度:VxN
    词向量维度:V
    词表中词语的个数:N
    V个隐藏神经元、N个输出神经元的神经网络

    1. 我们将所有上下文词向量的平均值(向量V),输入该线性层
    2. 通过线性层的计算得到一个1xN的向量
    3. 将1xN的向量再输入至softmax层,最终计算出一个最有可能的输出词,这个词就是CBOW模型的预测目标词
      在这里插入图片描述

    总结

    CBOW模型包括两部分:embeddings层和线性层
    embeddings层:将输入的上下文词语,都转换为一个上下文词向量,并继续求出这些上下文词向量的平均值(代表整个上下文的向量)
    线性层:接收该向量,并将其转换为一个输出向量(输出向量的维度与词汇表的大小相同)
    最后使用softmax函数,将输出向量转换为一个概率分布,表示每个词作为目标词的概率,概率最大的词就是CBOW模型的预测结果
    在这里插入图片描述

    skip-gram跳字模型

    根据目标词汇预测上下文
    在这里插入图片描述

    例子

    使用词语study,预测出它的上下文

    例句:We are about to study the idea of deep learning.

    1. 某个词的上下文,需要提前设置一个上下文窗口长度

    设置窗口长度为2后,根据目标词,预测窗口内的上下文词,study -预测-> about、to、the、idea

    如何使用一个词预测另一个词:
    使用一个词,预测另一个词,尽量使这两个词的词向量接近
    Skip-gram在迭代时,调整词向量:
    在这里插入图片描述
    使目标词的词向量与其上下文的词向量尽可能的接近;
    使目标词的词向量与非上下文词的词向量尽可能的远离。
    因此我们对于给定的目标词,它与它的上下文的词向量相似,与非上下文词的词向量不相似。

    在skip模型中,判断两个词向量是否相似,使用向量点积:
    A·B=a1b1+a2b2+…+anbn
    A=(a1,a2,…,an)
    B=(b1,b2,…,bn)
    向量的点积:衡量了两个向量在同一方向上的强度,点积越大——两个向量越相似,它们对应的词语语义就越接近
    在这里插入图片描述
    需要想办法让study与about的词向量点积尽可能大

    Skip-Gram模型的结构

    在这里插入图片描述
    目标词的概率分布——词汇表中的每个词是目标词的上下文的可能性
    在这里插入图片描述
    词表中的词,与目标词有两种关系:

    1. 上下文词——正样本,标记为1
    2. 非上下文词——负样本,标记为0
      在这里插入图片描述

    基于这一点来优化模型中两个嵌入层——in_embedding和out_embedding
    最后将in_embedding作为skip-gram模型的输出
    在这里插入图片描述
    由此产生的训练数据:有4个上下文词,因此产生4组训练数据
    在这里插入图片描述

  • 相关阅读:
    用户级线程和内核级线程
    服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)
    C语言数据结构之数据结构入门
    MySQL引擎:InnoDB VS MyISAM
    Flink协调器Coordinator及自定义Operator
    【Kotlin 协程】协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )
    LeetCode 1624. 两个相同字符之间的最长子字符串
    Mental相关性网路图 | 环形网路图 | 二分式网路图
    【Python3】【力扣题】290. 单词规律
    探索人工智能的边界:GPT 4.0与文心一言 4.0免费使用体验全揭秘!
  • 原文地址:https://blog.csdn.net/weixin_45427596/article/details/133827084