词向量模型Word2Vec

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组训练数据

相关推荐
巴里巴气3 分钟前
安装GPU版本的Pytorch
人工智能·pytorch·python
「、皓子~12 分钟前
后台管理系统的诞生 - 利用AI 1天完成整个后台管理系统的微服务后端+前端
前端·人工智能·微服务·小程序·go·ai编程·ai写作
笑衬人心。1 小时前
初学Spring AI 笔记
人工智能·笔记·spring
luofeiju1 小时前
RGB下的色彩变换:用线性代数解构色彩世界
图像处理·人工智能·opencv·线性代数
测试者家园1 小时前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
张较瘦_1 小时前
[论文阅读] 人工智能 + 软件工程 | Call Me Maybe:用图神经网络增强JavaScript调用图构建
论文阅读·人工智能·软件工程
大模型真好玩1 小时前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
Baihai_IDP1 小时前
vec2text 技术已开源!一定条件下,文本嵌入向量可“近乎完美地”还原
人工智能·面试·llm
江太翁1 小时前
Pytorch torch
人工智能·pytorch·python
拓端研究室2 小时前
专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
大数据·人工智能