一文读懂 Embedding(嵌入):究竟是什么?,看这一篇就够了!

该文章已生成可运行项目,

一、定义

Embedding(嵌入)是一种将高维、离散或非结构化数据(如文本、图像、类别标签)映射到低维连续向量空间的技术。

img

这些向量能捕捉原始数据的语义或特征信息,并使得相似的对象在向量空间中距离更近。

通俗比喻: 给每个词语/物品发一张智能身份证,身份证号码(向量)隐含其特征。

通过模型(如 Word2Vec)将单词转换为向量:

img

二、Embedding 的应用案例

1.搜索与推荐: 把用户浏览记录转为向量,匹配相似商品

2.智能客服: 将用户问题映射到知识库答案的向量空间

3.人脸识别: 将人脸图像编码为 128 维向量(如 FaceNet)

4.病历分析: 医疗文本 Embedding 辅助诊断(如腾讯觅影)

5.合同审查: 法律条文 Embedding 快速匹配相似案例

6.以图搜图: 图片 Embedding 相似度匹配(电商找同款)

7.信贷评估: 将消费记录转为信用风险向量

img

三、静态 vs 动态 Embedding(传统身份证 vs 变色龙身份证)

1.静态 Embedding(如 Word2Vec)

特点: 每个词只有唯一固定的向量,无法区分多义词

2.BERT 的动态 Embedding(上下文敏感)

特点: 同一个词在不同语境中向量实时变化

# 水果场景: "苹果"→ [0.2, -1.5,3.8, 0.9]

# 科技场景: "苹果"→> [1.7,0.3, -2.1,4.2]

效果: 模型能感知"苹果"在句子中的真实含义

注① Word2Vec: Google 在 2013年提出的模型,用于生成词向量

注② BERT: Google 在 2018年提出的模型,首次实现了真正意义上的上下文感知的词向量表示

img

四、大模型生成embedding怎么做?

大模型embedding VS 小模型embedding

1.简介:

BERT: 更适合需要双向上下文理解的任务,通过微调获得高性能

LLM: 在零样本场景和生成任务中表现优越,但需设计合理的Embedding提取策略

2.原理与结构差异

BERT的Embedding生成原理:

模型结构: 基于Transformer编码器,使用双向自注意力机制。

预训练任务: Masked Language Model(MLM)和 Next Sentence Prediction (NSP)。

img

Embedding来源:

Token-level: 每个token的隐藏状态(最后一层或多层平均)。

Sentence-level: 通常取[CLS]token的隐藏状态作为句子表示,或通过池化(平均/最大池化)所有token的隐藏状态

LLM(如Qwen)的Embedding生成原理:

模型结构: 基于Transformer解码器,使用单向自注意力(仅关注左侧上下文)

预训练任务: 自回归语言建模(预测下一个token)。

Embedding来源:

通常取最后一层所有token的隐藏状态,或最后一个token的隐藏状态作为序列表示(需根据任务调整)

img

五、计算步骤对比

1.BERT的计算流程:

输入处理:

添加特殊token: CLSSEP

Tokenization后生成 input ids 和attention mask

前向传播:

img

提取Embedding

[CLS]token: cls_embedding =last hidden_state[:,0,:]

平均池化:mean embedding =last hidden state.mean(dim=1)

2.LLM(如Qwen)的计算流程:

输入处理:Tokenization生成 input ids。

前向传播:

img

提取Embedding:

最后一个token: last_token_embedding=last_layer[:,-1,:]

平均池化: mean embedding=last layer.mean(dim=1)

3.优缺点

img

4.应用场景

BERT Embedding:

文本分类、实体识别(NER)、语义相似度(需微调或Sentence-BERT)。

短文本理解任务(如问答系统)

LLM Embedding:

零样本/少样本学习(如文本分类、聚类)

生成任务的前置表示(如文本摘要、对话系统)

长文本表示(需结合池化策略)

img

5.改进方法

BERT的改进:

池化策略优化: 使用动态掩码池化、加权平均(如BERT-Whitening)

对比学习: SimCSE通过Dropout生成正样本,提升句子表示区分度

多层融合: Concatenate最后几层的隐藏状态(如BERT-4-8层)

LLM的改进:

双向化改造: 在特定层引入双向注意力(如UniLM)

中间层利用: 结合多层表示(如取第16层和第24层的平均)

微调策略: 通过Adapter或LORA适配下游任务,避免全参数微调

6.实现代码示例

img

六、如何训练大模型,使LLM具有语义表征能力?

基于Qwen2.5训练商品语义表征模型的完整流程(以电商场景构建商品向量检索系统为例)

简介: 某跨境电商平台需要为3000万SKU建立语义检索系统,要求将商品标题、描述、属性等文本信息编码为768维向量,支持多语言相似商品检索。

过对比学习对齐语义空间,利用Qwen2.5强大的语言理解能力,结合业务数据特性进行针对性优化,需要注意的是,实际部署时要做好版本管理和AB测试。

img

1.训练阶段

原始数据采集

商品标题(中/英/西/法等多语言)

商品描述(结构化+非结构化文本)

。商品类目三级标签

。用户搜索点击日志(正样本对)

。人工标注的相似商品对(5万组)

数据预处理:

img

2.模型选择与改造

基座模型: Qwen2.5-7B(平衡效果与推理成本)

改造方案:

在Transformer顶层增加Mean Pooling层

添加可学习的[CLS]token

输出层接768维投影层(L2正则化)

img

3.训练策略设计

对比学习框架(Triplet Loss +InfoNCE)

Batch构造策略:

在线困难样本控掘(Online Hard Mining)

跨语言负样本生成(同品类不同语言商品)

混合训练数据:

img

4.分布式训练配置

硬件: 8xA100 80GB(NVLink互联)

并行策略:

img

img

5.评估与调优

离线评估指标:

img

多维度评估

img

业务效果

商品搜索CTR提升23%

长尾商品曝光量增加45%

平均响应时间<80ms(A10 GPU)

优化方案

1.多语言对齐: 通过共享subword词汇表实现跨语言映射

2.属性增强: 将商品规格参数(如"256GB ROM")转换为结构化提示

img

七、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

本文章已经生成可运行项目
<think>首先,用户的问题是关于“embedding”在深度学习、机器学习中的原理应用。用户提到了“原理”和“应用”,所以我需要覆盖这两个方面。 系统级指令: - 所有行内数学表达式用$...$格式。 - 独立公式用$$...$$格式并单独成段。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾自然地添加引用标识。 - 回答结构清晰,逐步解决问题,保证真实可靠。 参考站内引用: - 引用[1]:解释嵌入是创建数字指纹的技术,帮助计算机理解单词关系,用于翻译、问答等。 - 引用[2]:提到图嵌入方法。 - 引用[3]:讨论嵌入方法、降维、在PyTorch中的使用,以及entity embedding。 用户意图是查询与'embedding'相关的技术内容,涉及机器学习或深度学习中的嵌入层、嵌入向量等概念。 我的回答结构: 1. **介绍嵌入的概念**:简要解释什么是嵌入,在机器学习中的作用。 2. **原理**:解释嵌入的工作原理,包括数学基础(如向量空间、降维)。 3. **应用**:讨论嵌入在不同领域的应用,如自然语言处理、推荐系统等。 4. **实现示例**:提供一个简单的代码示例,展示如何在深度学习框架中使用嵌入。 5. **生成相关问题**:在最后添加相关问题。 确保使用中文回答。 数学表达式: - 行内数学:如$v_i$表示单词i的嵌入向量。 - 独立公式:如定义嵌入矩阵。 引用标识:在引用的段落末尾添加[^1]、[^2]等。但参考引用是给定的,我应该自然地融入它们。指令说“引用的段落末尾自然地添加引用标识”,所以如果我引用那些内容,就添加标识。例如,如果我用引用[1]的内容,就加[^1]。 在回答中,我需要参考那些引用: - 引用[1]:解释嵌入的基本概念。 - 引用[2]:提到图嵌入。 - 引用[3]:讨论实现和entity embedding。 所以,我可以这样组织: 1. **什么是嵌入?** - 解释嵌入是机器学习中用于表示离散对象(如单词)为连续向量的技术。引用[1]说“嵌入帮助计算机理解单词之间的关系”,所以可以引用。 - 数学上,嵌入是一个映射函数:$f: \text{离散对象} \to \mathbb{R}^d$,其中d是维度。 2. **原理** - 嵌入原理基于分布式表示,如Word2Vec、GloVe等算法。 - 数学基础:降维(如PCA),矩阵分解。 - 独立公式:例如,Word2Vec的Skip-gram模型目标函数:$$ \max \sum_{(w,c) \in D} \log \sigma(v_c \cdot v_w) $$ 其中$v_w$是单词w的嵌入向量。 - 图嵌入原理:如Node2Vec,引用[2]。 3. **应用** - NLP:词嵌入用于翻译、情感分析。 - 推荐系统:item嵌入,如Airbnb的实践,引用[2]。 - 其他:知识图谱、entity embedding,引用[3]。 4. **实现** - 在PyTorch中使用嵌入层,引用[3]。 - 简单代码示例。 5. **相关问题** - 生成2-3个相关问题。 完整回答结构: - 引言 - 原理部分 - 应用部分 - 实现示例 - 相关问题 确保语言流畅、清晰。</think>### 嵌入Embedding)在机器学习和深度学习中的原理应用 嵌入Embedding)是机器学习和深度学习中一种核心技术,它将离散对象(如单词、用户、物品)映射到低维连续向量空间中,从而捕捉对象之间的语义关系。这种技术广泛应用于自然语言处理(NLP)、推荐系统、图分析等领域。下面,我将从原理应用两方面逐步解释,确保内容真实可靠,并基于参考引用进行阐述。 --- ### 一、嵌入原理 嵌入的核心原理是通过学习一个映射函数,将高维离散数据转换为低维连续向量,实现降维和特征提取。这有助于计算机理解对象间的相似性(如语义关系),就像人类通过上下文推断含义一样[^1]。以下是关键原理点: 1. **数学基础**: - 嵌入通常表示为一个嵌入矩阵 $E \in \mathbb{R}^{|V| \times d}$,其中 $|V|$ 是离散对象的数量(如词汇表大小),$d$ 是嵌入向量的维度(通常远小于原始维度)。每个对象 $i$ 的嵌入向量为 $e_i \in \mathbb{R}^d$。 - 降维过程:通过优化算法,将原始稀疏数据(如one-hot编码)压缩为稠密向量。例如,主成分分析(PCA)可用于线性降维,但深度学习嵌入更常用非线性方法。 $$ \min_{E} \sum_{i,j} \| x_i - E e_j \|^2 $$ 其中 $x_i$ 是原始输入,$e_j$ 是嵌入向量。 - 学习目标:嵌入模型通过最大化对象间的相关性来训练。以Word2Vec为例(一种经典词嵌入算法),其Skip-gram模型的目标是预测上下文单词: $$ \max \sum_{(w,c) \in D} \log \sigma(v_c \cdot v_w) $$ 其中 $v_w$ 和 $v_c$ 是单词和上下文的嵌入向量,$\sigma$ 是sigmoid函数,$D$ 是训练数据集[^1]。 2. **算法机制**: - **分布式表示**:嵌入基于分布式假设,即相似对象在向量空间中靠近(如余弦相似度高)。例如,在NLP中,“king”和“queen”的嵌入向量距离较近。 - **图嵌入**:对于图数据(如社交网络),嵌入方法(如Node2Vec)将节点映射为向量,保留图结构信息。这通过随机游走采样路径,并优化节点相似度实现[^2]。 - **训练过程**:嵌入层通常在神经网络中作为可训练参数。例如,在PyTorch中,嵌入层通过反向传播更新权重,以最小化损失函数(如交叉熵)。这允许模型从数据中自动学习有意义的表示[^3]。 嵌入原理本质是压缩高维信息,同时保留语义,这使得它在处理大规模离散数据时高效且可解释[^1][^3]。 --- ### 二、嵌入应用 嵌入技术在多个领域有广泛应用,因为它能将复杂关系转化为可计算的向量形式。以下是主要应用场景,结合参考引用进行说明: 1. **自然语言处理(NLP)**: - **词嵌入**:用于表示单词的语义,支持机器翻译、问答系统和情感分析。例如,Word2Vec或GloVe嵌入帮助模型理解“apple”既可能指水果也可能指公司,提升翻译准确性[^1]。 - **实体嵌入(Entity Embedding)**:在结构化数据中,将分类变量(如产品类别)嵌入为向量,用于文本分类或序列建模。这在PyTorch中易于实现,能处理高基数特征[^3]。 2. **推荐系统**: - **Item/User嵌入**:将用户和物品映射到共享向量空间,用于计算相似度。例如,Airbnb使用嵌入技术来推荐房源,通过优化用户交互数据提升点击率[^2]。 - **协同过滤**:嵌入向量捕捉隐式特征(如用户偏好),支持个性化推荐,这在电商和流媒体服务中常见。 3. **图分析与知识图谱**: - **图嵌入**:应用于社交网络或生物网络,节点嵌入可用于社区检测或链接预测。例如,Graph Embedding方法帮助分析蛋白质相互作用网络[^2]。 - **知识表示**:将实体(如“人物”)和关系(如“朋友”)嵌入为向量,用于知识图谱补全,提升问答机器人性能[^3]。 4. **其他领域**: - **计算机视觉**:嵌入用于图像特征提取,如将图片映射到向量空间进行相似搜索。 - **异常检测**:在网络安全中,嵌入表示用户行为,以识别异常模式。 嵌入应用优势在于其通用性:它能将任何离散对象(文本、图节点等)转化为数值向量,使深度学习模型更易处理非结构化数据[^1][^2][^3]。 --- ### 三、实现示例 在PyTorch中,嵌入层可通过`nn.Embedding`模块实现。以下是一个简单代码示例,展示如何创建和使用词嵌入: ```python import torch import torch.nn as nn # 定义词汇表大小和嵌入维度 vocab_size = 10000 # 假设有10,000个单词 embedding_dim = 128 # 嵌入向量维度 # 创建嵌入embedding_layer = nn.Embedding(num_embeddings=vocab_size, embedding_dim=embedding_dim) # 输入数据(单词索引,例如one-hot编码的索引) input_indices = torch.tensor([1, 23, 456]) # 三个单词的索引 # 获取嵌入向量 output_vectors = embedding_layer(input_indices) print(output_vectors.shape) # 输出: torch.Size([3, 128]) ``` 此代码中,嵌入层将离散单词索引映射为128维向量,这些向量可通过训练(如使用交叉熵损失)优化以捕捉语义[^3]。实际应用中,嵌入层常与LSTM或Transformer结合,用于NLP任务。 --- ### 相关问题 基于嵌入技术的深度和广度,以下是几个相关延伸问题,供进一步探索: 1. 嵌入向量如何评估质量?常用指标有哪些? 2. 在推荐系统中,嵌入如何解决冷启动问题? 3. 图嵌入(Graph Embedding)有哪些最新进展?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值