当前位置: 首页 > news >正文

【Word2Vec】Skip-gram 的直观理解(深入浅出)

01 什么是skip-gram

一句话来说就是,给定中心词,然后预测其周围的词:

在这里插入图片描述

02 模型结构

在这里插入图片描述

  1. 对于skip-gram来说,输入是一个[1 x V]维的ont-hot向量,其中V为词表大小,值为1的那一项就表示我们的中心词
  2. 经过一个[V x N]的矩阵得到一个[1 x N]的向量,这个向量就是我们需要的词的embedding表示
  3. 然后[1 x N]的向量经过一个[N x V]的矩阵得到一个[1 x V]的向量,这个向量的值就是中心词与词表中其他词的相似度,经过softmax就是中心词旁边周围词出现的概率
  4. 优化目标:经过训练[V x N][N x V]这两个矩阵,使得最后目标词与周围词的出现概率最大,而与除了周围词以外的词概率最小(负采样,这里不详细展开了)。

03 直观理解skip-gram流程

这里的每一步,对应了 02 模型结构 中的步骤。

这里我们举一个例子,一步步推导是怎么走的,这样更加直观:

以这句话为例:I love machine learning

我们随机初始化两个矩阵:

[V x N]的矩阵为:
[0.1, 0.2]
[0.3, -0.2]
[0.5, 0.4]
[-0.1, 0.3]

其中,V为4,表示词表中有4个单词,N为2表示我们想讲词向量映射为2(这个N是超参数,可以自己设定)。

注意这里为了文章简洁,使用两个相同矩阵,只是转置了一下,真实情况中一般是随机初始化的(大概率不同)。

1. 输入[1 x V]向量

假设我们的目标词是love,那么输入向量就是[0, 1, 0, 0]

2. 经过一个[V x N]的矩阵得到一个[1 x N]的向量

输入向量 x [V x N]的矩阵的直观理解就是:将词映射成embeding

以所举例子所示,向量 x 矩阵的结果就是:

I      -> [0.1, 0.2]
love   -> [0.3, -0.2]
machine-> [0.5, 0.4]
learning -> [-0.1, 0.3]

也就是将love从ont-hot向量映射为[0.3, -0.2]这个embedding。

3. [1 x N]的向量经过一个[N x V]的矩阵得到一个[1 x V]的向量

这个过程即做预测,skip-gram的预测过程就是找出跟中心词最相近的词,向量表示最简单就是看向量乘积,越高说明越相似。

比如,如果想知道love和I、machine之间的相似度:

在这里插入图片描述

4. 优化目标

使用交叉熵损失函数,目标是最小化目标词真实上下文词之间的预测误差(注意是真实上下文)。

对于该例子就是:

在这里插入图片描述

然后反向传播计算损失,不断优化两个矩阵,最后使得总损失最小,直观理解就是目标词与周围词的出现概率最大

  • 训练完成后的第一个矩阵的每一行,就对应着每个词的embedding表示;
  • 训练完成后,在做预测时:给定一个词,想知道他的上下文词是谁,就看3. 的结果[1 x V]的向量值最大的n个元素,就对应最可能的n个上下文词。
http://www.lryc.cn/news/543795.html

相关文章:

  • 在MacOS上打造本地部署的大模型知识库(一)
  • (21)从strerror到strtok:解码C语言字符函数的“生存指南2”
  • DeepSeek推出DeepEP:首个开源EP通信库,让MoE模型训练与推理起飞!
  • 1.2 Kaggle大白话:Eedi竞赛Transformer框架解决方案02-GPT_4o生成训练集缺失数据
  • 数据结构-顺序表专题
  • docker和containerd从TLS harbor拉取镜像
  • kafka-关于ISR-概述
  • el-input实现金额输入
  • C++11智能指针
  • 安装Git(小白也会装)
  • 驭势科技9周年:怀揣理想,踏浪前行
  • 一款在手机上制作电子表格
  • Python解决“比赛配对”问题
  • 【AI论文】RAD: 通过大规模基于3D图形仿真器的强化学习训练端到端驾驶策略
  • Web开发:ORM框架之使用Freesql的导航属性
  • 【docker】namespace底层机制
  • 【每天认识一个漏洞】url重定向
  • 端口映射/内网穿透方式及问题解决:warning: remote port forwarding failed for listen port
  • Polardb开发者大会
  • 从二维随机变量到多维随机变量
  • Vulnhub靶场 Kioptrix: Level 1.3 (#4) 练习
  • 权重生成图像
  • 实时时钟(RTC)/日历芯片PCF8563的I2C读写驱动(2):功能介绍
  • 猿大师播放器:HTML内嵌VLC播放RTSP视频流,无需转码,300ms级延迟,碾压服务器转码方案
  • 牛客刷题自留-深度学习
  • AI 时代下,操作系统如何进化与重构?
  • Hadoop最新版本hadoop-3.4.1搭建伪分布式集群以及相关报错解决
  • Android SDK与NDK的区别
  • 【保姆级视频教程(二)】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测!
  • smolagents学习笔记系列(八)Examples - Master you knowledge base with agentic RAG