大语言模型中one-hot编码和embedding之间的区别?

1. 维度与稀疏性
One-Hot编码

定义:每个词被表示为一个高维稀疏向量,维度等于词汇表大小。例如,词汇表有10,000个词,每个词对应一个10,000维的向量,其中仅有一个位置为1(表示当前词),其余为0。
缺点:
维度灾难:词汇表越大,向量维度越高,导致存储和计算成本激增。
稀疏性:向量中大部分元素为0,难以有效利用数据中的统计规律。
Embedding

定义:将词映射到一个低维稠密向量(如300维),所有元素均为实数。
优点:
低维稠密:显著降低计算复杂度,适合深度学习模型。
可学习性:向量值通过训练动态调整,捕捉词之间的语义关系。
2. 语义信息
One-Hot编码

无语义关联:所有词向量相互正交(点积为0),无法表达词之间的相似性。例如,“猫”和“狗”的One-Hot向量无任何关联。
Embedding

语义捕捉:通过训练,语义或语法相似的词在向量空间中距离更近。例如,“猫”和“狗”的向量可能在高维空间中邻近。
上下文感知:在Transformer等模型中,Embedding可结合位置编码,动态适应不同上下文(如“苹果”在“水果”和“公司”中的不同含义)。
3. 计算效率
One-Hot编码

矩阵运算低效:与神经网络权重矩阵相乘时(如全连接层),需要处理高维稀疏矩阵,计算资源浪费严重。
Embedding

高效计算:通过查表(Lookup Table)直接获取低维向量,避免了高维矩阵乘法。例如,词汇表索引i直接映射到嵌入矩阵的第i行。
4. 参数数量
One-Hot编码

参数爆炸:若词汇表大小为V,模型输入层到第一隐藏层的权重矩阵尺寸为V × H(H为隐藏层大小),当V=10^5时,参数数量极大。
Embedding

参数可控:嵌入矩阵尺寸为V × D(D为嵌入维度,通常D=300),参数量远小于One-Hot方案。例如,V=10^5, D=300时仅需3千万参数。
5. 应用场景
One-Hot编码

传统机器学习(如逻辑回归、SVM)中的简单特征表示。
类别型数据预处理(如标签编码)。
Embedding

几乎所有深度学习模型(如RNN、CNN、Transformer)的标配。
支持迁移学习(如复用预训练的Word2Vec、BERT嵌入)。
直观对比示例
One-Hot:
猫 → [0, 0, 1, 0, …, 0](10,000维)
狗 → [0, 1, 0, 0, …, 0](10,000维)

Embedding:
猫 → [0.2, -0.5, 1.3, …, 0.7](300维)
狗 → [0.3, -0.4, 1.1, …, 0.6](300维)

总结
特性 One-Hot编码 Embedding
维度 高维稀疏(V维) 低维稠密(D维,D≪V)
语义信息 无 可捕捉语义和语法关系
计算效率 低(稀疏矩阵运算) 高(直接查表)
参数数量 巨大(V×H) 较小(V×D)
主要用途 传统机器学习、简单分类 深度学习、语义相关任务
在大语言模型中,Embedding因其高效性和语义表达能力成为主流,而One-Hot编码仅在某些特定场景(如输出层的概率分布)中保留符号意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19521.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年 Java 面试八股文

第一章-Java基础篇 1. Java中的基本数据类型有哪些?⭐ Java中有8种基本数据类型(Primitive Types),分别是: byte:8位,-128 ~ 127short:16位,-32,768 ~ 32,767int&…

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南

基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南 禅道镜像版本:easysoft/zentao:21.4 Redis版本:redis:6.2.0 Mysql版本:mysql:8.0.35 文章目录 **基于Docker-compose的禅道部署实践:自建MySQL与…

【Java八股文】01-Java基础面试篇

【Java八股文】01-Java基础面试篇 概念Java特点Java为什么跨平台JVM、JDK、JRE关系 面向对象什么是面向对象,什么是封装继承多态?多态体现的方面面向对象设计原则重载重写的区别抽象类和实体类区别Java抽象类和接口的区别抽象类可以被实例化吗 深拷贝浅拷…

基于Qt 和微信小程序的用户管理系统:WebSocket + SQLite 实现注册与登录

目录 一. 概要 二. 技术栈 三. 系统功能设计 3.1 功能模块 3.2 数据表设计 四. 具体实现 4.1 Qt 服务端 4.1.1 初始化 WebSocket 服务器 4.1.2 用户管理界面 4.2 微信小程序端 4.2.1 注册功能 4.2.2 登录功能 五. 运行效果 六. 源码下载 一. 概要 在物联网和智能设备…

【STM32】舵机SG90

1.舵机原理 舵机内部有一个电位器,当转轴随电机旋转,电位器的电压会发生改变,电压会带动转一定的角度,舵机中的控制板就会电位器输出的电压所代表的角度,与输入的PWM所代表的角度进行比较,从而得出一个旋转…

PostgreSQL:备库的延迟问题处理步骤

目录标题 1. 查看主备状态计算方式:实际情况:举个例子: 2. 查看历史状态3. 分析日志文件4. 查看数据库层面的复制状态5. 检查活动事务6. 检查系统资源7. 检查网络状况8. 检查复制槽状态9. 检查未提交的两阶段事务 要排查 PostgreSQL 备库的延…

【重构谷粒商城】06:Maven快速入门教程

重构谷粒商城06——Maven快速入门教程 前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到…

【Python】错误异常

个人主页:Guiat 归属专栏:Python 文章目录 1. 错误和异常的概念1.1 错误1.2 异常 2. 常见的内置异常类型2.1 ZeroDivisionError2.2 IndexError2.3 KeyError2.4 TypeError 3. 异常处理机制3.1 try-except 语句3.2 try-except-else 语句3.3 try-except-fin…

Win11 远程 连接 Ubuntu20.04(局域网)

Win11 远程 连接 Ubuntu20.04(局域网) 0. Ubuntu 开启共享1. Ubuntu系统中安装RDP服务器2.windows中连接使用方式1:远程桌面连接(winr: mstsc)方式2:mobaXterm 3 问题远程连接后出现黑屏 参考文献: 0. Ubuntu 开启共享 在ubunt设置中&#x…

visutal studio 2022使用qcustomplot基础教程

编译 下载,2.1.1版支持到Qt6.4 。 拷贝qcustomplot.h和qcustomplot.cpp到项目源目录(Qt project)。 在msvc中将它俩加入项目中。 使用Qt6.8,需要修改两处代码: L6779 # if QT_VERSION > QT_VERSION_CHECK(5, 2, …

ElasticSearch详解

声明 内容来源尚硅谷知识星球谷粒随享项目,部分概念性的内容,就使用对应文档填写了,若有侵权联系作者删除。 检索模块 技术栈:ElasticSearch ElasticSearch介绍 1.1 elasticsearch 简介 官网: https://www.elastic.co/ Ela…

250214-java类集框架

引言 类集框架本质上相当于是容器,容器装什么东西由程序员指定 1.单列集合 单列集合是list和set,list的实现类有ArrayList和LinkedList,前者是数组实现,后者是链表实现。list和set,前者有序、可重复,后者…

Vue3(3)

一.具体业务功能实现 (1)登录注册页面 [element-plus 表单 & 表单校验] 功能需求说明: 1.注册登录 静态结构 & 基本切换 2.注册功能 (校验 注册) 3.登录功能 (校验 登录 存token) import request from /utils/request// 注册接…

数据结构 day05

数据结构 day05 5. 队列5.3. 链式队列5.3.1. 特征5.3.2. 代码实现 6. 双向链表6.1. 特性6.2. 代码实现 5. 队列 5.3. 链式队列 5.3.1. 特征 逻辑结构:线性结构 存储结构:链式存储 操作:创建、入列、出列、判空、清空 5.3.2. 代码实现 头文…

Uniapp 短视频去水印解析工具开发实现

最近搞了一个有意思的小工具——短视频去水印解析器!这玩意儿可以把短视频中的水印给抹掉,还能提取视频、封面等资源。整个项目用了 Uniapp 开发,做完后体验了一下,发现还挺顺手。今天就来跟大家聊聊实现思路和代码细节~ 需求分析…

HTML【详解】input 标签

input 标签主要用于接收用户的输入,随 type 属性值的不同,变换其具体功能。 通用属性 属性属性值功能name字符串定义输入字段的名称,在表单提交时,服务器通过该名称来获取对应的值disabled布尔值禁用输入框,使其无法被…

什么是MVC?什么是SpringMVC?什么是三层架构?

文章目录 应用分层什么是MVC?什么是 SpringMVC?三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前,先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想,将应用程序划分成N个层次,每个层次都分别负责自己…

【深度学习】深度学习和强化学习算法——深度 Q 网络DQN

深度 Q 网络(Deep Q-Network, DQN) 详解 什么是DQNDQN 的背景DQN 训练流程 2 DQN 的核心思想2.1 经验回放(Experience Replay)2.2 目标网络(Target Network)2.3 ε-贪心策略(ε-Greedy Policy&a…

CSS flex布局 列表单个元素点击 本行下插入详情独占一行

技术栈:Vue2 javaScript 简介 在实际开发过程中有遇到一个场景:一个list,每行个数固定,点击单个元素后,在当前行与下一行之间插入一行元素详情,便于更直观的查看到对应的数据详情。 这种情形&#xff0c…

Deepseek本地部署

一,Deepseek本地部署方式 有UI且简单:LM Studio、Text Generation WebUI。 高效率但无UI:Ollama、LLama.cpp、Tabby。 二,通过Ollama本地部署Deepseek 1,什么是Ollama Ollama是一个开源的 LLM(大型语言…