【Word2Vec】传统词嵌入矩阵训练方法
目录
- 1. Word2Vec 简介
- 2. Word2Vec 的训练方法
- 2.1 Skip-Gram模型
- 2.2 CBOW(Continuous Bag of Words)模型
- 3. Word2Vec 中的词嵌入表示
- 4. 训练过程中是否使用独热编码?
1. Word2Vec 简介
Word2Vec 是一种词嵌入模型,主要通过无监督学习来训练词汇的稠密向量表示。它通过分析大量的语料库,学习到每个词(token)在该语料库中的上下文关系。Word2Vec 使用神经网络模型来生成每个词的嵌入向量,嵌入向量的维度通常远小于词汇表的大小。
2. Word2Vec 的训练方法
Word2Vec 主要有两种训练方式:
- 连续词袋模型(Continuous Bag of Words, CBOW)
- 跳字模型(Skip-gram)
无论是 CBOW 还是 Skip-gram,Word2Vec 都是通过上下文关系来训练词向量的,而不是像 独热编码 那样直接表示每个词。
2.1 Skip-Gram模型
Skip-Gram 模型的目标是,给定一个中心词(target word),预测它的上下文词(context words)。这种方法适用于小数据集,能够更好地捕捉到词汇的稀有用法。
- 输入:中心词(target word)
- 输出:上下文词(context words)
- 例子:
- 如果上下文窗口为 2,给定句子 “The cat sat on the mat”,在 “sat” 这个词的中心下,模型会尝试预测 “The”、“cat”、“on” 和 “the” 这四个词作为上下文。
训练时,Skip-Gram 模型通过最大化目标词和上下文词的条件概率,更新模型中的参数。
2.2 CBOW(Continuous Bag of Words)模型
CBOW 模型的目标是,给定上下文词(context words),预测目标词(center word)。CBOW 适合较大数据集,计算上通常比 Skip-Gram 更高效。
- 输入:上下文词(context words)
- 输出:中心词(target word)
- 例子:
- 给定上下文窗口为 2,句子 “The cat sat on the mat”,在上下文词 “The”、“cat”、“on” 和 “the” 下,CBOW 模型会尝试预测 “sat” 作为中心词。
在训练时,CBOW 模型通过最大化目标词的条件概率来更新参数。
联想成物理中的向量分量合并与分解的操作即可

3. Word2Vec 中的词嵌入表示
在 Word2Vec 中,输入词汇并不直接使用 独热编码,而是通过 嵌入矩阵(embedding matrix)将每个词映射到一个稠密向量空间。这些向量是在训练过程中学习到的。
-
独热编码:独热编码(One-Hot Encoding)是将每个词表示为一个维度为词汇表大小的稀疏向量,其中只有对应词的位置是 1,其他位置是 0。例如,如果词汇表大小是 5,“dog” 在词汇表中的位置是 3,那么它的独热编码表示为
[0, 0, 1, 0, 0]。这种表示方式通常会导致非常稀疏的高维向量,维度非常大,并且无法有效地捕捉词与词之间的关系。 -
词嵌入:而在 Word2Vec 中,每个词会被映射到一个固定维度的 密集向量(通常是 50 到 300 维)。这些向量表示了词与词之间的语义关系,例如,“king” 和 “queen” 会有相似的向量表示。
Word2Vec 的训练方式实际上是通过 嵌入矩阵 来进行的。在训练过程中,模型会根据上下文词来调整每个词的向量,使得在语义空间中,相似的词会有相似的向量。
4. 训练过程中是否使用独热编码?
是的,在 Word2Vec 中,一般会先将词转换成独热编码(one-hot encoding)向量,再通过嵌入矩阵转换成稠密的低维嵌入向量。
这里是一个简化的流程:
-
独热编码:假设词汇表大小为
V,每个词用一个V维的独热编码向量表示。例如,如果“喜欢”是词汇表中的第i个词,则它的独热编码在第i个位置为 1,其他位置为 0。 -
嵌入矩阵:设嵌入矩阵
W的维度是V × d,其中d是嵌入的维度。嵌入矩阵W存储了每个词的嵌入向量(每行对应词汇表中的一个词)。 -
嵌入向量:将独热编码向量
o乘以嵌入矩阵W,得到词的嵌入向量e。计算过程为e = o × W,结果就是一个d维的嵌入向量。
这样,每个词的独热编码就被映射到一个稠密、低维的嵌入空间中,用以捕获词与词之间的语义关系。
相关文章:
【Word2Vec】传统词嵌入矩阵训练方法
目录 1. Word2Vec 简介2. Word2Vec 的训练方法2.1 Skip-Gram模型2.2 CBOW(Continuous Bag of Words)模型 3. Word2Vec 中的词嵌入表示4. 训练过程中是否使用独热编码? 1. Word2Vec 简介 Word2Vec 是一种词嵌入模型,主要通过无监督…...
电脑不显示wifi列表怎么办?电脑不显示WiF列表的解决办法
有用户会遇到电脑总是不显示wifi列表的问题,但是不知道要怎么解决。随着无线网络的普及和使用,电脑无法显示WiFi列表的问题有时会让人感到困扰。电脑不显示WiFi列表是很常见的问题,但这并不意味着你无法连接到网络。不用担心,这个…...
详解 Dockerfile:从入门到实践
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖包打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化。Dockerfile 是一个文本文件,其中包含了一系列命令,用…...
随机变量的概率分布
第 5 章——概率分布 5.2 随机变量的概率分布 【例5-1】 计算期望值、方差、标准差 【代码框5-1】 计算期望值、方差、标准差 import pandas as pd import numpy as np example5_1 = pd.read_csv(./pydata/example/chap05/example5_1.csv)# 计算期望值 mymean = sum...
Kafka生产者如何提高吞吐量?
批量发送:生产者可以配置 batch.size 参数,将多个消息打包成一个批次发送。这样可以减少网络通信的次数,提高吞吐量。inger.ms:设置 linger.ms 参数,可以让生产者在发送消息前等待一段时间,以便收集更多的消…...
mysql:解决windows启动失败无报错(或长时间未响应)
前言 遇到好多次在修改配置文件后,mysql无法启动的问题了,这里给出一个可能原因的解决方案。 由于mysql需要修改配置文件,所以我在winserver2012服务器上更改了配置文件my.ini mysql5.7配置文件默认地址:C:\ProgramData\MySQL\MyS…...
【山——回文判断】
题目 代码 #include <bits/stdc.h> using namespace std; bool check(int num) {string s to_string(num);int l 0, r s.size() - 1;while (l < r){if (l && s[l] - s[l - 1] < 0)return false;if (s[l] ! s[r--])return false;}if (l && l r…...
FPGA学习笔记#7 Vitis HLS 数组优化和函数优化
本笔记使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,主要根据教程:跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 学习笔记:《FPGA学习笔记》索引 FPGA学习笔记#1 HLS简介及…...
欧几里得算法python
一、问题描述 求最大公约数 class Fraction:def __init__(self, a, b):self.a aself.b bx self.gcd(a, b)self.a / xself.b / xdef gcd(self, a, b):while b >0:r a % ba bb rreturn adef zgs(self, a, b):x self.gcd(a, b)return a / x * bdef __add__(self, other…...
【layui】echart的简单使用
图表类型切换(柱形图和折线图相互切换) <title>会员数据</title><div class"layui-card layadmin-header"><div class"layui-breadcrumb" lay-filter"breadcrumb"><a lay-href""&g…...
ios打包文件上传App Store windows工具
在苹果开发者中心上架IOS APP的时候,在苹果开发者中心不能直接上传打包文件,需要下载mac的xcode这些工具进行上传,但这些工具无法安装在windows或linux电脑上。 这里,我们可以不用xcode这些工具来上传,可以用国内的香…...
vue2项目启用tailwindcss - 开启class=“w-[190px] mr-[20px]“ - 修复tailwindcss无效的问题
效果图 步骤 停止编译"npm run dev"安装依赖 npm install -D tailwindcssnpm:tailwindcss/postcss7-compat postcss^7 autoprefixer^9 创建文件/src/assets/tailwindcss.css,写入内容: tailwind base; tailwind components; tailwind utiliti…...
mysql中数据不存在却查询到记录?
前言 首先看下面的查询语种 select * from AudioKnowledgeChatInfo where AudioId297795550566600706; 查询结果如下 看到上面的查询结果,是不是一脸懵?这audioId明显不对啊,怎么查询到了? 原因剖析 首先我们来看看数据库表…...
vue3+elementplus+虚拟树el-tree-v2+多条件筛选过滤filter-method
筛选条件 <el-inputv-model"searchForm.searchTreeValue"input"searchTreeData"style"flex: 1; margin-right: 0.0694rem"placeholder"请输入要搜索的设备"clearable/><imgclass"refresh-img"src"com_refres…...
【C#设计模式(4)——构建者模式(Builder Pattern)】
前言 C#设计模式(4)——构建者模式(Builder Pattern) 运行结果 代码 public class Computer {private string part1 "CPU";private string part2 "主板";private string part3 "内存";private string part4 "显卡";private st…...
LabVIEW实验室液压制动系统
压制动系统是许多实验设备的重要安全组件,尤其在高负荷、高速实验环境下,制动系统的性能对设备和操作人员的安全至关重要。传统的实验室液压制动系统监测方法存在数据采集实时性差、精度低、故障预警不及时等问题。为了提高实验安全性和设备运行的稳定性…...
解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated
问题:Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 解决方式ÿ…...
【寻找重复数字】——脑筋急转弯...
寻找重复数字 287. 寻找重复数 题目难度 中等 相关标签与企业信息 [相关标签] [相关企业] 题目描述 给定一个包含 n 1 n 1 n1 个整数的数组 nums,其数字都在 [ 1 , n ] [1, n] [1,n] 范围内(包括 1 1 1 和 n n n),可…...
AI基础知识
目录 1.激活函数:one: 激活函数的作用:two: sigmoid函数:three: tanh函数:four: ReLu:five: Leaky ReLU 2.Softmax函数3.优化器:one: 优化器的作用:two: BGD(批梯度下降):three: SGD(随机梯度下降):four: MBGD(Mini Ba…...
ubuntu 22.04 硬件配置 查看 显卡
ubuntu 22.04 硬件配置 查看 显卡 1. 参考文档 ubuntu 安装 nvidia 驱动 https://blog.51cto.com/u_13628828/7056095 input: HDA NVidia HDMI/DP,pcm3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input11 input: HDA NVidia HDMI/DP,pcm7 as /devices/…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
