八、词嵌入语言模型(Word Embedding)
词嵌入(Word Embedding, WE),任务是把不可计算、非结构化的词转换为可以计算、结构化的向量,从而便于进行数学处理。
一个更官方一点的定义是:词嵌入是是指把一个维数为所有词的数量的高维空间(one-hot形式表示的词)【嵌入】到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。
Word Embedding 解决了 One-Hot 独热编码的两个问题。参考:一、独热编码(One-Hot)
- Word Embedding 矩阵给每个单词分配一个固定长度的向量表示,这个长度可以自行设定,实际上会远远小于字典长度,将词向量映射到了一个更低维的空间。
- Word Embedding 矩阵使两个词向量之间的夹角值(最常用到的相似度计算函数是余弦相似度(cosine similarity))作为他们之间关系的一个衡量,保持词向量在该低维空间中具备语义相似性,越相关的词,它们的向量在这个低维空间里靠得越近。
Word Embedding 示例图:参考Word Embedding介绍
展示将 “way back into love” 翻译成中文的过程:

第一步:将 “way back into love” 四个词分别用四个不同的向量表示(图中采用 One-Hot 独热编码方式为例);
第二步:通过 Word2vec/GloVe 等词嵌入Word Embedding 方法提取文本特征,并将这四个高维向量进行降维,得到四个词各自对应的 embedding(图中以 2 维向量作为示例)。
第三步:需要再经过 Model 之后做进一步的提取文本特征,才能得到对 “way back into love” 的翻译结果。
1 Word2Vec
Word2Vec 中有两种基本的模型:CBOW 和 Skip-Gram。参考自然语言处理与词嵌入
1.1 连续词袋模型(CBOW)
连续词袋模型(Continuous Bag-of-Words Model, CBOW)是通过用环境中的每一个词去预测中心词。相当于一句话中扣掉一个词,让你猜这个词是什么。其本质是通过背景词(context word)来预测一个单词是否是中心词(center word)。
CBOW 示例:参考更详细的示例解析
| 我 | XX | 你 | ... |
| 输入 | 输出 | 输入 | ... |
- 在 CBOW 中,会定义一个为 window_size 的参数,假如 window 的大小为 1,那么中心词的前 1 个词和后面 1 个词就被选入了我们的窗口里,以 XX 为例,上下文的词为 ['我', '你'] 。
- 然后模型先将每个字符处理为 One-Hot 形式,其中维度大小为词表的大小(不同词的个数)。例如,一篇文章由 1000 个不同的词构成,那么词表大小即为1000,每个词的 One-Hot 编码大小为 1*1000。
- 接着,将 One-Hot 向量进行相加。获得了一个输入向量以及目标向量后,将输入向量 X输入全连接层(设置好维度参数)中,进行参数的优化训练。(这里优化的目标是让模型能够学的词与词之间的上下文关系,我们的代价函数就是使得 sofamax 中预测的分布 y 与真实值 Y 这两个矩阵的交叉熵最小化,也可以最小化这两个矩阵的差平方,即损失值)
- 训练结束后,对我们真正有用的是隐藏层中的权重 W,这就是我们所需要的词向量。
CBOW 原理图:

1.2 Skip-Gram
Skip-Gram 是通过用中心词来预测上下文。其本质则是在给定中心词(center word)的情况下,预测一个词是否是它的上下文(context word)。
CBOW 示例:参考网络模型是如何计算的
| XX | 爱 | XX |
| 输出 | 输入 | 输出 |
Skip-Gram 原理图:

- 输入的中心词 One-Hot 独热编码向量
- 输入乘以 center word 的矩阵 W 得到词向量
- 词向量乘以另一个context word 的矩阵 W(t) 得到对每个词语的相似度
- 对相似度得分取 Softmax 得到概率,与答案对比计算损失。
我们提到预测中心词和上下文的最终目的还是通过中心词和上下文,去训练得到单词语义上的关系,同时还做了降维,最终得到想要的 embedding 了。
1.3 缺点
由于词和向量是一对一的关系,所以 Word2vec 无法解决多义词的问题。
2 GloVe
GloVe 的全称叫 Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。参考GloVe
共现矩阵(Co-Occurrence Matrix)指的是矩阵中的每一个元素 Xij 代表单词 i 和上下文单词 j 在特定大小的上下文窗口(context window)内共同出现的次数。
例如,语料库(corpus)中有如下两句话:
- 句子1:小唐喜欢看电视剧,小王也喜欢看电视剧
- 句子2:小唐还喜欢看电影
有以上两句话,设置滑窗为2,可以得到一个词典为:{'小唐', '小王', '还', '也', '喜欢', '看', '电视剧', '电影'}。这样我们可以得到一个共现矩阵(对称矩阵):
| 小唐 | 小王 | 还 | 也 | 喜欢 | 看 | 电视剧 | 电影 | |
| 小唐 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
| 小王 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 还 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 也 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
| 喜欢 | 1 | 0 | 1 | 1 | 0 | 3 | 0 | 0 |
| 看 | 0 | 0 | 0 | 0 | 3 | 0 | 2 | 1 |
| 电视剧 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| 电影 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
GloVe 模型仅对单词共现矩阵中的非零元素训练,从而有效地利用全局统计信息,并生成有意义的子结构向量空间。给出相同的语料库,词汇,窗口大小和训练时间,它的表现都优于 Word2Vec,它可以更快地实现更好的效果,并且无论速度如何,都能获得最佳效果。
相关文章:
八、词嵌入语言模型(Word Embedding)
词嵌入(Word Embedding, WE),任务是把不可计算、非结构化的词转换为可以计算、结构化的向量,从而便于进行数学处理。 一个更官方一点的定义是:词嵌入是是指把一个维数为所有词的数量的高维空间(one-hot形式…...
重学SpringBoot3-WebMvcConfigurer接口
摘要: 本文详细介绍了SpringBoot 3中的WebMvcConfigurer接口,旨在帮助读者深入理解其原理和实现,从而能够更好地使用SpringBoot进行Web开发。阅读本文需要大约30分钟。 关键词:SpringBoot, WebMvcConfigurer, SpringMVC, Web开发…...
《深入理解springCloud与微服务》笔记
第一章 微服务介绍 1.3 微服务的不足 1.3.2 分布式事务 CAP 理论,即同时满足“一致性”“可用性”和“分区容错”是 件不可能的事。 Consistency :指数据的强一致性。如果写入某个数据成功,之后读取,读到的都是新写入的数据&a…...
Vivado原语模板
1.原语的概念 原语是一种元件! FPGA原语是芯片制造商已经定义好的基本电路元件,是一系列组成逻辑电路的基本单元,FPGA开发者编写逻辑代码时可以调用原语进行底层构建。 2.原语的分类 原语可分为预定义原语和用户自定义原语。预定义原语为如and/or等门级原语不需要例化,可以…...
【linux本地安装tinycudann包教程】
【linux本地安装tinycudann包教程】 tiny-cuda-nn官网链接 如果你是windows 10系统的,想要安装tiny-cuda-nn可以参考我的文章——windows 10安装tiny-cuda-n包 根据官网要求:C++要求对应14,其实这样就已经告诉我们linux系统中的gcc版本不能高于9,同时下面又告诉我们gcc版…...
使用Nginx进行负载均衡
什么是负载均衡 Nginx是一个高性能的开源反向代理服务器,也可以用作负载均衡器。通过Nginx的负载均衡功能,可以将流量分发到多台后端服务器上,实现负载均衡,提高系统的性能、可用性和稳定性。 如下图所示: Nginx负…...
什么护眼台灯效果好?热门护眼台灯全方位测评推荐
台灯可以说是佳佳必备,尤其是家中有正在上学的孩子的更是需要一款好的台灯,不管是看书、写字都离不开台灯。不过很多家长在挑选台灯时往往仅关注到光线亮度是否充足,而忽略掉光线均匀度、舒适度等等方面的问题。所以选择一款优质的护眼台灯是…...
云上三问,迈向智能时代的关键
在今天的中国,第一热词是什么?面对这个问题,“新质生产力”当仁不让,而智能化技术毫无疑问是“新质生产力”最重要的来源之一。 在这样的大势下,大型政企是向新技术要“新质生产力”的时代先锋。云服务,则是…...
【网络安全】手机不幸被远程监控,该如何破解,如何预防?
手机如果不幸被远程监控了,用三招就可以轻松破解,再用三招可以防范于未然。 三招可破解可解除手机被远程监控 1、恢复出厂设置 这一招是手机解决软件故障和系统故障的终极大招。只要点了恢复出厂设置,你手机里后装的各种APP全部将灰飞烟灭…...
每日OJ题_哈希表④_力扣219. 存在重复元素 II
目录 力扣219. 存在重复元素 II 解析代码 力扣219. 存在重复元素 II 219. 存在重复元素 II 难度 简单 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&am…...
42.坑王驾到第八期:uniCloud报错
uniCloud 报错 今天调用云函数来调试小程序的时候突然暴了一个奇葩错误,require(…).main is not a function。翻官方文档后发现,原来是这样:**如果你写的是云对象,入口文件应为 index.obj.js,如果你写的是云函数入口…...
Linux常用操作命令
Linux常用操作命令 1.文件管理catfile 2.文档编辑3.文件传输4.磁盘管理5.磁盘维护6.网络通讯7.系统管理8.系统设置9.备份压缩10.设备管理 Linux 英文解释为 Linux is not Unix。 Linux内核最初只是由芬兰人李纳斯托瓦兹(Linus Torvalds)在赫尔辛基大学上…...
OpenCV的常用数据类型
OpenCV涉及的常用数据类型除包含C的基本数据类型,如:char、uchar,int、unsigned int,short 、long、float、double等数据类型外, 还包含Vec,Point、Scalar、Size、Rect、RotatedRect、Mat等类。C中的基本数据类型不需再做说明下面重点介绍一下…...
STM32串口通信—串口的接收和发送详解
目录 前言: STM32串口通信基础知识: 1,STM32里的串口通信 2,串口的发送和接收 串口发送: 串口接收: 串口在STM32中的配置: 1. RCC开启USART、串口TX/RX所对应的GPIO口 2. 初始化GPIO口 …...
《汇编语言》第3版 (王爽) 第14章
第14章 端口 检测点14.1 (1).编程,读取CMOS RAM的2号单元的内容。 mov al,2 ;向al写入2 out 70,al ;将2送入端口70h in al,71 ;从端口71h读取2号单元的内容在CMOS RAM中用6个字节存放当前时间(以BCD码形式存放)&…...
Axure原型设计项目效果 全国职业院校技能大赛物联网应用开发赛项项目原型设计题目
目录 前言 一、2022年任务书3效果图 二、2022年任务书5效果图 三、2022年国赛正式赛卷 四、2023年国赛第一套样题 五、2023年国赛第二套样题 六、2023年国赛第三套样题 七、2023年国赛第四套样题 八、2023年国赛第七套样题 九、2023年国赛正式赛题(第八套…...
力扣串题:字符串中的第一个唯一字母
映射做法:将字母转为数字之类的转化必须在运算中实现如-a int firstUniqChar(char * s){int a[26] {0};int len strlen(s);int i;for (i 0; i < len; i)a[s[i] - a];for (i 0; i < len; i) {if (a[s[i] - a] 1)return i;}return -1; }...
【五、接口自动化测试】GET/POST 请求区别
大家好,我是山茶,一个探索AI 测试的程序员 在网上看到了许多关于post与get之间区别的帖子,也有很多帖子是直接粘贴复制的,甚至连标题、符号都没改,甚至还有很多争议 一、post、get 关于post与get之间区别,…...
HDOJ 2036
改革春风吹满地 Problem Description “ 改革春风吹满地, 不会AC没关系; 实在不行回老家, 还有一亩三分地。 谢谢!(乐队奏乐)” 话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾…...
2.案例、鼠标时间类型、事件对象参数
案例 注册事件 <!-- //disabled默认情况用户不能点击 --><input type"button" value"我已阅读用户协议(5)" disabled><script>// 分析:// 1.修改标签中的文字内容// 2.定时器// 3.修改标签的disabled属性// 4.清除定时器// …...
用LBM格子玻尔兹曼方法在Matlab中模拟3D气泡上升多相流
lbm格子玻尔兹曼方法模拟3D气泡上升多相流 matlab在计算流体力学领域,模拟多相流现象一直是个热门且具有挑战性的话题。今天咱们就来唠唠用格子玻尔兹曼方法(Lattice Boltzmann Method, LBM)在Matlab里模拟3D气泡上升多相流。 LBM方法简介 格…...
windows本地开发环境搭建指南:Docker + 常用中间件一键部署
本文介绍如何在本地使用 Docker Desktop 快速搭建包含 MySQL、Redis、PostgreSQL、Nacos、Kafka 等常用中间件的开发环境。所有服务的数据与配置文件均持久化到本地,删除容器后数据不丢失,配置随时可改。 目录 一、安装 Docker Desktop二、可选…...
Tauri Android 打包原理与实战指南
Tauri Android 打包原理与实战指南 基于 JoyaLand 项目的实际打包经验整理,记录原理、流程与踩坑解决方案。 一、Tauri Android 打包架构原理 1.1 整体架构 ┌─────────────────────────────────────────────┐ │ …...
No data to show!vtune分析程序性能有结果无数据
使用vtune分析程序在保证程序复杂度能被采集数据,但是result页面没有数据显示,只有no data to show, the data is not sufficient.最后找到原因是使用的编译器vs的符号解释器与vtune有冲突,改用vs code成功出数据。为了让vtune成功显示数据用…...
谷歌启用天然气电厂为AI数据中心供电,气候承诺大转弯
谷歌已与一家天然气发电厂达成合作伙伴关系,为其在德克萨斯州的数据中心提供电力,这一消息由最新研究发现并得到公司确认。此举标志着这家科技巨头立场的重大转变,该公司曾承诺在2030年前实现碳中和,长期以来被视为清洁能源的先驱…...
OpenClaw多模态技能扩展:用Qwen3.5-9B实现截图OCR自动归档
OpenClaw多模态技能扩展:用Qwen3.5-9B实现截图OCR自动归档 1. 为什么需要智能截图归档 作为一个长期依赖截图保存信息的用户,我的桌面常年堆积着数百张未命名的截图文件。传统的解决方案无非两种:手动重命名(耗时费力࿰…...
【数据结构与算法】第24篇:哈夫曼树与哈夫曼编码
一、基本概念1.1 带权路径长度在二叉树中:路径长度:从一个节点到另一个节点经过的边数带权路径长度(WPL):所有叶子节点的权重 路径长度 之和示例:text叶子节点:A(7), B(5), C(2), D(4)普通树:15/ \7 8/…...
创意随笔:智能转录便携终端
创意随笔|智能转录便携终端 项目构想 核心亮点 以独立麦克风拾音为核心入口,实现全链路闭环实时翻译 从收音、ASR 识别、翻译、TTS 合成到语音播放/耳机输出,全程不依赖手机或电脑算力,自成一套完整翻译系统,真正做到端…...
作家使用AI写小说:写作者必须接纳人工智能但我们依然珍贵
我最近在游乐场听到一段对话,这比任何分析师对泡沫的预测都更应该让AI公司高管担忧。一个男孩和一个女孩,大概10岁,正在争吵。"那是AI!那是AI!"女孩喊道。她的意思是男孩在沉溺于一种新的特殊胡言乱语&#…...
单片机驱动MOS管的原理与实战技巧
1. 单片机直接驱动MOS管的原理与风险MOS管作为现代电子设计中最常用的功率开关器件,其控制方式看似简单却暗藏玄机。作为一名经历过多次"炸管"教训的硬件工程师,我想分享一些关于单片机直接驱动MOS管的实战经验。MOS管分为NMOS和PMOS两种类型&…...
