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

【Transformer系列】从One-Hot到Embedding:构建AI语言理解的基石

1. 从One-Hot编码说起AI的第一堂语言课想象你正在教一个外星人认识汉字。你拿出一本字典说这里有10万个字每个字对应一个编号猫是第12345号狗是第67890号。这就是最原始的One-Hot编码思想——用一串超长的二进制数字表示文字就像给每个学生分配唯一的学号。具体实现时假设我们的词库只有5个单词[苹果, 香蕉, 猫, 狗, 跑步]。那么猫的One-Hot编码就是[0,0,1,0,0]就像在体育馆里点亮属于猫的那盏灯。我早期做文本分类时经常用这种简单粗暴的方法from sklearn.preprocessing import OneHotEncoder vocab [苹果, 香蕉, 猫, 狗, 跑步] encoder OneHotEncoder(sparseFalse) one_hot encoder.fit_transform([[word] for word in vocab]) print(one_hot[2]) # 输出猫的编码[0. 0. 1. 0. 0.]但当我处理真实的中文语料时问题立刻显现现代汉语常用字有7000多个词条更是数以十万计。一篇普通新闻就可能包含500个不重复词汇这意味着生成一个500x100000的巨型矩阵其中99.9%的元素都是0。这就像用一栋摩天大楼来存放一颗纽扣——不仅浪费存储空间更会导致计算效率暴跌。2. 维度灾难当AI遇上词汇通货膨胀2016年我做电商评论分析时曾用One-Hot处理用户评价。当商品品类超过1万种时服务器内存直接被撑爆。这就是著名的维度灾难(Curse of Dimensionality)随着特征维度增加数据变得极度稀疏算法需要指数级更多的样本才能有效学习。举个具体例子用One-Hot编码处理手机很好用和手机很卡顿这两句话。虽然它们语义相反但向量点积结果却是0——因为所有1的位置完全不重合。更荒谬的是手机很好用和榴莲很好吃的相似度居然与前者完全相同这种编码方式完全丢失了语义信息。我们来看个对比实验texts [手机很好用, 手机很卡顿, 榴莲很好吃] vectors one_hot_encode(texts) # 假设已实现编码 print(cosine_similarity(vectors[0], vectors[1])) # 输出0.0 print(cosine_similarity(vectors[0], vectors[2])) # 输出0.0这种缺陷在推荐系统中尤为致命。假如用户搜索智能手机系统根本无法识别手机、安卓机、iPhone之间的关系。就像图书馆把所有书随机编号找书时只能靠运气。3. Embedding登场语言的基因编码Embedding技术的突破就像发现了语言的DNA。它通过神经网络将词语映射到稠密的低维空间通常是50-300维让相似含义的词自动聚集。这个过程可以类比为原始阶段用经纬度坐标标记城市类似One-Hot进阶阶段建立城市间的公路网Embedding空间最终效果通过公路距离就能判断城市亲疏我第一次用Word2Vec训练词向量时被它的语义捕捉能力震惊了。以下是使用gensim库的示例from gensim.models import Word2Vec sentences [[苹果, 是, 水果], [香蕉, 是, 水果], [猫, 吃, 鱼], [狗, 追, 猫]] model Word2Vec(sentences, vector_size3, window2, min_count1) print(model.wv.most_similar(猫, topn2)) # 可能输出[(狗, 0.98), (鱼, 0.95)]这里的魔法在于模型通过上下文自动学会了猫-狗和猫-鱼的关系。更神奇的是Embedding还能做语义运算国王 - 男 女 ≈ 女王 北京 - 中国 法国 ≈ 巴黎这种特性在推荐系统中大放异彩。我曾帮一个电商平台实现看了又看功能通过商品Embedding计算相似度点击率直接提升37%。具体做法是将用户行为序列输入GRU网络最终得到的隐藏状态就是用户兴趣的Embedding表示。4. Transformer时代的Embedding进化2017年Transformer架构的提出让Embedding技术进入新纪元。与传统Word2Vec不同Transformer的Embedding包含三个关键部分Token Embedding词语本身的向量表示Positional Embedding解决序列顺序问题Segment Embedding处理句子边界对BERT重要以PyTorch实现为例import torch import torch.nn as nn class TransformerEmbedding(nn.Module): def __init__(self, vocab_size, d_model): super().__init__() self.token_embed nn.Embedding(vocab_size, d_model) self.pos_embed nn.Embedding(1000, d_model) # 假设最大长度1000 def forward(self, x): positions torch.arange(len(x)).to(x.device) return self.token_embed(x) self.pos_embed(positions)这种设计带来了两大优势上下文感知苹果在吃苹果和苹果手机中会有不同向量位置敏感能区分猫追狗和狗追猫的语义差异在我参与的智能客服项目中采用BERT的动态Embedding后意图识别准确率从82%提升到91%。关键改进在于模型能理解怎么退款和我要退货是相似诉求而退款流程和退款成功却是不同阶段的问题。5. 实战从理论到生产环境的跨越真正将Embedding应用于工业场景时会遇到许多教科书没提的挑战。去年部署电商搜索系统时我们踩过的坑包括冷启动问题新品没有用户行为数据。我们的解决方案是用商品标题训练Word2Vec模型结合品类信息生成初始Embedding。对于完全新的品类则采用跨品类迁移学习。维度选择不是维度越高越好。通过实验发现商品Embedding在128维时达到性价比峰值维度召回率内存占用推理耗时6478%2GB50ms12885%3GB60ms25686%5GB80ms在线更新时尚类商品语义会随时间变化。我们设计了两层Embedding体系基础层每周全量更新增量层实时捕捉短期趋势。一个实用的PyTorch训练技巧是使用自适应混合精度训练scaler torch.cuda.amp.GradScaler() for batch in dataloader: with torch.cuda.amp.autocast(): loss model(batch) scaler.scale(loss).backward() scaler.step(optimizer) scaler.update()这能使训练速度提升2-3倍特别适合处理亿级规模的商品库。实际部署时我们采用Faiss进行近似最近邻搜索在1000万商品中实现毫秒级检索。

相关文章:

【Transformer系列】从One-Hot到Embedding:构建AI语言理解的基石

1. 从One-Hot编码说起:AI的第一堂语言课 想象你正在教一个外星人认识汉字。你拿出一本字典说:"这里有10万个字,每个字对应一个编号,猫是第12345号,狗是第67890号。"这就是最原始的One-Hot编码思想——用一串…...

我的思维模型 -- 11.数学与统计学篇

正态分布 核心逻辑:均值回归中心极限定理:大量相互独立、来自同一分布的随机变量,它们的平均值(或总和)在样本量足够大时,都会趋向于正态分布约 68% 的数据落在 范围内约 95% 的数据落在 范围内均值…...

ARM异常处理机制与ESR寄存器详解

1. ARM异常处理机制概述在ARMv8/v9架构中,异常处理是处理器响应硬件或软件事件的核心机制。当发生异常时,处理器会暂停当前程序执行,跳转到预定义的异常向量表入口,同时将异常相关信息记录在异常综合征寄存器(ESR)中。异常可能由多…...

【职场】那些把公司当家的人,最先被扫地出门

那些把公司当家的人,最先被扫地出门“你爱公司爱得越深,离开的时候就摔得越惨。因为公司从一开始,就没打算和你谈感情。”一、那种人,你一定见过 他是第一个到公司的,也是最后一个离开的。 他的工位永远是最乱的那个&a…...

ARM CoreSight ROM Tables解析与调试实践

1. ARM CoreSight ROM Tables基础解析在嵌入式调试领域,ARM CoreSight架构提供了一套完整的调试与追踪解决方案。作为该架构的关键组成部分,ROM Tables扮演着系统调试资源的"目录"角色。想象一下走进一个巨大的图书馆,ROM Tables就…...

【职场】职场上,从不发脾气的人,最值得警惕

职场上,从不发脾气的人,最值得警惕“真正危险的人,从来不是那个拍桌子的人。而是那个,永远在微笑的人。”一、你身边有没有这种人 开会的时候,无论发生什么,他都面带微笑。 被否定了,点头&#…...

【职场】聪明人,从不在公司交朋友

聪明人,从不在公司交朋友“你以为你们是朋友。但有一天你会发现,你们之间站着一个共同的雇主。”一、那个"最懂你"的同事 你们一起骂过同一个领导。 一起在茶水间吐槽过公司文化。 一起在深夜加班时互相打气。 你告诉他你想离职,告…...

软件测试从业者理财指南:别让辛苦钱在通胀中缩水

你的“缺陷”不止在代码里作为软件测试工程师,你每天都在和缺陷打交道——功能缺陷、性能缺陷、安全缺陷。你擅长用边界值分析挖出隐藏的bug,用等价类划分提升用例效率,用自动化脚本把重复劳动压缩到极致。但当你关掉Jira,看着工资…...

从数据到角度:手把手调试大疆C板BMI088,解决姿态解算精度跳动的那些坑

从数据到角度:手把手调试大疆C板BMI088,解决姿态解算精度跳动的那些坑 调试嵌入式系统中的传感器数据,尤其是姿态解算这类对精度要求极高的应用,往往需要开发者具备跨领域的知识储备和丰富的实战经验。本文将分享我在使用大疆C板搭…...

从控制台账单看使用 Taotoken token plan 带来的实际节省

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从控制台账单看使用 Taotoken token plan 带来的实际节省 在管理大模型 API 调用成本时,除了关注模型单价,…...

达梦数据库主备集群手工搭建及主备切换演练

环境:DM8、Linux(CentOS 7 ),三台服务器。 本文记录从零搭一套"一主一备一监视" 式的主备集群,纯手工操作,不依赖图形化工具。 一、环境规划 1.1 IP规划 角色主机名业务IP心跳IP实例名主库&…...

Obsidian Importer:一站式笔记数据迁移终极指南

Obsidian Importer:一站式笔记数据迁移终极指南 【免费下载链接】obsidian-importer Obsidian Importer lets you import notes from other apps and file formats into your Obsidian vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-importer …...

NoFences:如何用开源方案解决Windows桌面管理难题

NoFences:如何用开源方案解决Windows桌面管理难题 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences Windows桌面图标管理长期困扰着用户,NoFences作为开…...

【模块化设计-14】深入解析 RT-Thread syswatch 系统监控模块:保障系统稳定的核心卫士

在嵌入式系统开发中,系统的稳定性是重中之重。RT-Thread 提供的 syswatch(系统监控)模块,专为解决线程异常阻塞、保障系统持续运行设计。本文将从模块设计理念、核心功能、配置项、工作流程到实际测试,全方位解析 sysw…...

【模块化设计-13】OAM 线程模块详解

该模块是基于 RT-Thread 实时操作系统实现的一个 OAM(Operation, Administration and Maintenance,操作、管理和维护)专用线程模块,核心功能是提供独立的 OAM 业务处理线程、消息队列机制和定时器管理能力,适用于嵌入式…...

【模块化设计-11】基于嵌入式系统的周期性任务调度框架设计与实现

基于嵌入式系统的周期性任务调度框架设计与实现嵌入式系统的稳定性与实时性核心在于任务调度框架的设计,合理的框架不仅能保障各类外设任务有序执行,更能为系统扩展与维护奠定基础。本文以一款集成 ADC 采集、系统守护、外设交互的嵌入式应用为例&#x…...

【模块化设计-10】UART1 驱动 + 环形 FIFO 实现高效串口数据收发

在嵌入式开发中,串口(UART)是最常用的通信接口之一,而直接采用中断 缓冲区的方式处理串口数据,能有效避免数据丢失、提升收发效率。本文将基于实际项目代码,详解UART1 驱动与环形 FIFO(ring_fi…...

网络通信调试难题的Qt解决方案:mNetAssist深度解析

网络通信调试难题的Qt解决方案:mNetAssist深度解析 【免费下载链接】mNetAssist mNetAssist - A UDP/TCP Assistant 项目地址: https://gitcode.com/gh_mirrors/mn/mNetAssist 网络协议调试过程中,开发者常面临协议兼容性、数据传输验证和连接状态…...

LineageOS 18.1在一加9 Pro上的体验报告:纯净安卓11的续航、性能与Magisk模块搭配

一加9 Pro刷入LineageOS 18.1深度体验:纯净Android 11的终极玩法 当厂商定制系统越来越臃肿时,许多极客用户开始寻找更纯净的安卓体验。LineageOS作为CyanogenMod的精神继承者,一直是刷机爱好者的首选。本文将带您深入体验一加9 Pro刷入Linea…...

紧急预警:2024Q3起PlayAI将下线v2.1旧版翻译协议!迁移倒计时47天,5类遗留系统升级避坑手册

更多请点击: https://intelliparadigm.com 第一章:PlayAI多语种同步翻译功能详解 PlayAI 的多语种同步翻译功能基于端到端神经机器翻译(NMT)架构与实时语音流处理引擎深度融合,支持中、英、日、韩、法、西、德、俄等…...

扔掉KVM切换器!GitHub 25.7K Star的Deskflow:用一套键鼠无缝控制多台电脑的软件KVM方案

两台电脑两套键鼠,桌面杂乱、切换繁琐,硬件KVM切换器又贵得离谱?Deskflow 是一款开源跨平台的软件KVM方案,它允许用一套键鼠无缝穿梭于不同设备之间,让一台电脑的鼠标光标直接“穿越”到另一台电脑的屏幕上。本文将从技…...

工业AI相机的散热困局:为什么你的视觉检测总在夏天失效?

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 211、985硕士,从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作,涉足消费电子、新能源、医疗设备、制药信息化、核工业等…...

四通道32孔生物源性检测仪 肉源性检测仪器

四通道32孔生物源性检测仪搭载四通道48孔高通量检测架构,本少、效率低的短板,大幅提升肉类质检筛查效率。多通道独立运行互不干扰,可一次性完成大批量肉类样本同步检测设备检测精度优异,可精准识别各类常见动物源性成分&#xff0…...

260513实训:路由器连接

路由器工作原理: 转发动作:路由器收到数据后,根据目的IP地址查路由器路由表(地图)转发 路由表:路由器默认会将直连网段加入路由表 查看IP路由表:display ip routing-table 127.0.0.0/8 本地环…...

告别论文焦虑:Paperxie 为本科毕业论文搭建的「全流程写作脚手架」

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 毕业季的凌晨三点,宿舍台灯下亮着的电脑屏幕,是无数本科生共同的记忆。当 10000 字的毕业…...

被论文压到喘不过气?Paperxie 本科论文功能,把你的毕业节奏拉回正轨

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 毕业季的焦虑,一半来自答辩,一半来自毕业论文。选题卡壳、文献找不全、格式改到崩溃、写了…...

iOS BLE 开发(Swift 实现 + 面试 + 开发必备)

一、BLE 基础概念(必须懂) 1. BLE 是什么 Bluetooth Low Energy 低功耗蓝牙,特点:低功耗、连接快、小数据传输适用于:智能硬件、手环、车机、传感器、设备诊断2. BLE 角色Central(中心设备)&…...

AWorksLP嵌入式平台FatFs文件系统与SD卡驱动移植实战指南

1. 项目概述:为什么要在AWorksLP上折腾FatFs和SD卡?在嵌入式开发里,存储扩展是个绕不开的话题。尤其是当你手头的MCU片上Flash只有几百KB,却要存点日志、配置文件,甚至是一些小体积的音频、图片资源时,外挂…...

Python代码质量双保险:Black格式化与类型提示实战指南

1. 项目概述:当代码格式化遇上类型安全在嵌入式开发,尤其是像CircuitPython这样的微控制器编程领域,代码的清晰度和可靠性往往比在桌面环境更为重要。资源受限、调试困难,意味着每一行代码都最好能“一次写对”。我这些年折腾过不…...

AI智能体在社交约会场景中的架构设计与工程实践

1. 项目概述:当AI遇见约会,一个开源智能体的诞生最近在GitHub上看到一个挺有意思的项目,叫jessastrid/matchclaws-ai_agent_dating。光看名字,就能嗅到一股混合了技术、社交与未来感的独特气息。简单来说,这是一个利用…...