Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >原创 | 一文读懂Embeding技术

原创 | 一文读懂Embeding技术

作者头像
数据派THU
发布于 2023-11-17 05:05:21
发布于 2023-11-17 05:05:21
1.1K00
代码可运行
举报
文章被收录于专栏:数据派THU数据派THU
运行总次数:0
代码可运行

Embedding 技术是一种将高维数据映射到低维空间的方法,通常用于将离散的、非连续的数据转换为连续的向量表示,以便于计算机进行处理。这种技术广泛用于自然语言处理(NLP)、图像处理推荐系统和其他机器学习应用中,以方便大语言模型处理输入数据。

Embedding 技术将原始数据从高维度空间映射到低维度空间,有助于减少数据的复杂性和计算资源的需求,并提高模型的训练和推理效率;Embedding 向量是连续的,因此可以在数学上进行操作,如向量加法、减法和点积等。这使得模型能够更好地理解数据之间的关系;

Embedding 技术通常会捕获数据的语义信息。在 NLP 中,这意味着相似的单词或短语在嵌入空间中会更接近,而不同的单词或短语会远离彼此。这有助于模型理解语言的含义和语义关系。

嵌入向量通常是可训练的,它们可以通过反向传播算法与模型一起训练。这意味着嵌入可以适应特定任务和数据集,从而提高模型的性能;Embedding 技术通常是上下文感知的,它们可以捕获数据点与其周围数据点的关系。在 NLP 中,单词的嵌入会考虑其周围的单词,以更好地表示语法和语义;Embedding 技术通常将高维数据降维到较低维度,但仍然保留了重要的信息。这有助于减少模型的复杂性,并提高模型的泛化能力。

Embedding 技术不仅在NLP领域有广泛应用,还在计算机视觉、推荐系统、社交网络分析等多个领域中有用途。在NLP中,Word Embedding是一种常见的技术,用于将单词映射到连续向量空间。在计算机视觉中,卷积神经网络(CNN)和循环神经网络(RNN)等模型也使用嵌入来处理图像和文本数据。

Embedding在大语言模型中的主要应用有:

  • 作为 Embedding 层嵌入到大语言模型中,实现将高维稀疏特征到低维稠密特征的转换(如 Wide&Deep、DeepFM 等模型);
  • 作为预训练的 Embedding 特征向量,与其他特征向量拼接后,一同作为大语言模型输入进行训练(如 FNN)。

作为Embedding 层嵌入到大语言模型中

大语言模型无法直接理解书面文本,需要对模型的输入进行转换。为此,实施了句子嵌入,将文本转换为数字向量。

句子嵌入(来源:网络,作者:Damian Gil)

句子嵌入由专门的转换算法实现,可以选择转换算法数字向量的大小。通过句子嵌入对信息进行编码,并将其统一封装为包含所有特征的文本。为此可以创建一个脚本来完成嵌入,调用embedding_creation.py,该脚本收集训练数据集中的值,并创建一个由嵌入提供的新数据集。这是该脚本的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd # dataframe manipulation
import numpy as np # linear algebra
from sentence_transformers import SentenceTransformer
df = pd.read_csv("data/train.csv", sep = ";")
# -------------------- First Step --------------------
def compile_text(x):
text =f"""Age: {x['age']}, 
housing load:{x['housing']}, 
Job:{x['job']}, 
Marital:{x['marital']}, 
Education:{x['education']}, 
Default:{x['default']}, 
Balance:{x['balance']}, 
Personal loan:{x['loan']}, 
contact:{x['contact']}
"""
return text
sentences = df.apply(lambda x: compile_text(x), axis=1).tolist()
# -------------------- Second Step --------------------
model = SentenceTransformer(r"sentence-transformers/paraphrase-MiniLM-L6-v2")
output = model.encode(sentences=sentences,
show_progress_bar=True,
normalize_embeddings=True)
df_embedding = pd.DataFrame(output)
df_embedding

首先为每一行创建文本,将它存储在一个python列表中,供以后使用;创建Transformer,该模型专门训练在句子层执行嵌入,它在标记和单词层上的编码时只需要给出存储库地址,便可以调用模型。在本例中是“sentence-transformers/paraphrase-MiniLM-L6-v2”。创建的向量的长度为384。利用创建的向量创建一个具有相同列数的数据帧。

作为预训练的Embedding 特征向量

在自然语言处理(NLP)预训练任务中,Embedding 技术能够捕捉数据的语义信息,使得相似的数据在嵌入空间中更接近,有助于模型更好地理解数据之间的关系。典型的Transformer架构中,首先需要构建embedding层,即词嵌入,词嵌入操作将当前序列转化为向量。首先,获取embedding_table,然后到embedding_table里查找每个单词对应的词向量,并将最终结果返回给output,这样一来,输入的单词便成了词向量。但这个操作只是词嵌入的一部分,完整的词嵌入还应在词嵌入中添加其它额外的信息,即:embedding_post_processor。

Embedding层不光要考虑输入的单词序列,还需要考虑其它的额外信息和位置信息。Transformer构建出来的词嵌入向量中包含以下三种信息:即输入单词序列信息、其它的额外信息和位置信息。为了实现向量间的计算,必须保持包含这三种信息的词向量的维数一致。

获得位置编码的输出结果之后,在原词嵌入输出向量的基础上,加上额外编码获得的特征向量和位置编码向量,将三个向量求和,返回求和结果,便完成了大语言模型的输入词嵌入,得到了一个包含位置信息的词向量。

Embedding 技术具有许多优点,以下是 Embedding 技术的主要优点:

  • 语义信息捕捉:Embedding 技术能够捕捉数据的语义信息,使得相似的数据在嵌入空间中更接近,有助于模型更好地理解数据之间的关系。
  • 维度约减:Embedding 技术将高维数据映射到低维空间,减少了计算和内存需求,提高了模型的效率。
  • 上下文感知:嵌入向量通常是上下文感知的,可以考虑数据点与其周围数据点的关系,这对于自然语言处理等任务非常有用。
  • 可训练:嵌入向量通常是可训练的,可以与模型一起训练,从而适应特定任务和数据集。
  • 泛化能力:适当训练的嵌入可以提高模型的泛化能力,从而使其能够处理新数据和未知情况。

Embedding 技术有以下主要缺点:

  • 数据依赖性:Embedding 技术的性能高度依赖于训练数据的质量和多样性。如果训练数据不足或不具代表性,嵌入可能不准确。
  • 维度选择:选择适当的嵌入维度可以是挑战性的,太低的维度可能丧失信息,太高的维度可能增加计算成本。
  • 过拟合:嵌入可以过度拟合训练数据,特别是在小数据集上。这可能导致模型在未见过的数据上表现不佳。
  • 计算复杂性:在训练嵌入时,可能需要大量的计算资源和时间,尤其是对于大规模数据集和高维度嵌入。
  • 可解释性差:嵌入向量通常是抽象的,难以解释。这使得难以理解模型为什么做出特定的预测或推荐。

总的来说,Embedding 技术为许多深度学习任务提供了有力的工具,但在使用时需要权衡其优点和缺点,并根据具体情况进行调整和改进。

编辑:王菁

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式
〇、序 之前一段时间,在结合深度学习做 NLP 的时候一直有思考一些问题,其中有一个问题算是最核心一个:究竟深度网络是怎么做到让各种 NLP 任务解决地如何完美呢?到底我的数据在 NN 中发什么了什么呢? 并且,不少的 terms like: 词向量、word embedding、分布式表示、word2vec、glove 等等,这一锅粥的名词术语分别代表什么,他们具体的关系是什么,他们是否处于平级关系? 出于对知识结构追求完整梳理的强迫症的老毛病,于是不停地查资料、思考、keep revolving……
AI研习社
2018/03/19
1.3K0
不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式
算法金 | 没有思考过 Embedding,不足以谈 AI
在当今的人工智能(AI)领域,Embedding 是一个不可或缺的概念。如果你没有深入理解过 Embedding,那么就无法真正掌握 AI 的精髓。接下来,我们将深入探讨 Embedding 的基本概念。
算法金
2024/06/27
7600
算法金 | 没有思考过 Embedding,不足以谈 AI
词向量技术 | 从word2vec到ELMo
"词和句子的嵌入已成为所有基于深度学习的自然语言处理(NLP)系统的重要组成部分,它们在固定长度的稠密向量中编码单词和句子,以大幅度提高神经网络处理文本数据的能力。"
用户1332428
2018/08/17
2.6K0
词向量技术 | 从word2vec到ELMo
RAG 修炼手册|一文讲透 RAG 背后的技术
今天我们继续剖析 RAG,将为大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,以及它们是如何应用的。
Zilliz RDS
2024/04/11
1.9K0
RAG 修炼手册|一文讲透 RAG 背后的技术
深度学习:文本CNN-textcnn
对于文本分类问题,常见的方法无非就是抽取文本的特征,比如使用doc2evc或者LDA模型将文本转换成一个固定维度的特征向量,然后在基于抽取的特征训练一个分类器。 然而研究证明,TextCnn在文本分类问题上有着更加卓越的表现。从直观上理解,TextCNN通过一维卷积来获取句子中n-gram的特征表示。TextCNN对文本浅层特征的抽取能力很强,在短文本领域如搜索、对话领域专注于意图分类时效果很好,应用广泛,且速度快,一般是首选;对长文本领域,TextCNN主要靠filter窗口抽取特征,在长距离建模方面能力受限,且对语序不敏感。
全栈程序员站长
2022/08/03
1.1K0
深度学习:文本CNN-textcnn
NLP面试宝典:38个最常见NLP问题答案一文get
自然语言处理(Natural Language Processing,NLP)是指帮助机器理解和分析自然语言;它是利用机器学习算法从数据中提取所需信息的一个自动化的过程。
新智元
2019/12/30
4.2K0
原创 | 一文读懂 BERT 源代码
文:陈之炎 本文约4400字,建议阅读10+分钟本文对BERT模型预训练任务的源代码进行了详细解读,在Eclipse开发环境里,对BERT 源代码的各实现步骤分步解析。 BERT模型架构是一种基于多层双向变换器(Transformers)的编码器架构,在tensor2tensor库框架下发布。由于在实现过程当中采用了Transformers,BERT模型的实现几乎与Transformers一样。 BERT预训练模型没有采用传统的从左到右或从右到左的单向语言模型进行预训练,而是采用从左到右和从右到左的双向语言
数据派THU
2022/09/14
7140
原创 | 一文读懂 BERT 源代码
大语言模型-01-语言模型发展历程-02-从神经网络到ELMo
早期工作MLP(Multilayer Perceptron,MLP,多层感知机): NNLM(Neural Network Language Model,神经网络语言模型),单词映射到词向量,再由神经网络预测当前时刻词汇。是一种通过神经网络进行语言建模的技术,通常用于预测序列中的下一个词。
IT从业者张某某
2025/03/15
2130
大语言模型-01-语言模型发展历程-02-从神经网络到ELMo
词嵌入技术解析(一)
在讨论词嵌入之前,先要理解词向量的表达形式,注意,这里的词向量不是指Word2Vec。关于词向量的表达,现阶段采用的主要有One hot representation和Distributed representation两种表现形式。
Bo_hemian
2020/09/09
1.5K0
词嵌入方法(Word Embedding)
Word Embedding是NLP中的一种技术,通过将单词映射到一个空间向量来表示每个单词
@小森
2024/11/07
9411
词嵌入方法(Word Embedding)
一文详解 Word2vec 之 Skip-Gram 模型(结构篇)
这次的分享主要是对Word2Vec模型的两篇英文文档的翻译、理解和整合,这两篇英文文档都是介绍Word2Vec中的Skip-Gram模型。下一篇专栏文章将会用TensorFlow实现基础版Word2Vec的skip-gram模型,所以本篇文章先做一个理论铺垫。 原文英文文档请参考链接: - Word2Vec Tutorial - The Skip-Gram Model http://t.cn/Rc5RfJ2 - Word2Vec (Part 1): NLP With Deep Learning with T
AI研习社
2018/03/19
3.2K0
一文详解 Word2vec 之 Skip-Gram 模型(结构篇)
NLP之从word2vec到ELMO GPT再到BERT与attention transformer过程笔记与详解
在NLP自然语言处理学习或者发展过程中,在13年word2vec word embedding后,人们发现一个单词通过Word Embedding表示,很容易找到语义相近的单词,但单一词向量表示,不可避免一词多义问题。于是迎来Google的ELMO transformer BERT等动态表征模型,BERT模型更是刷新了GLUE benchmark的11项测试任务最高记录。
大鹅
2021/02/21
3.4K0
一文读懂深度学习:从神经元到BERT
自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了深度学习在 NLP 领域进展,并结合工业界给出了未来的 NLP 的应用方向,相信读完这篇文章,你对深度学习的整体脉络会有更加深刻认识。
Ai学习的老章
2019/05/27
1.3K0
一文读懂 LLM 的构建模块:向量、令牌和嵌入
在当今信息爆炸的时代,我们不断面临着海量文本数据的挑战。为了有效地处理和理解这些数据,自然语言处理(NLP)领域的研究者们一直在不断探索和创新。而其中一个重要的研究方向就是语言模型(Language Model)。
Luga Lee
2024/11/01
5790
一文读懂 LLM 的构建模块:向量、令牌和嵌入
大模型RAG向量检索原理深度解析
常规的知识库检索通常使用的是关键字与词条匹配,随着AGI的爆发,越来越多的知识库检索开始使用向量检索技术,特别是在RAG领域,增强型的生成式问答检索正在大面积应用和推广。
大脚攀爬
2024/04/18
2K0
大模型RAG向量检索原理深度解析
词向量发展历程:技术及实战案例
词向量(Word Vector)或词嵌入(Word Embedding)是自然语言处理(NLP)中的一项基础技术,它允许我们将自然语言中的词汇表示为实数向量。这些向量通常存在于一个高维空间内,其中每一个维度都可能代表着某种语义属性。通过这种转换,机器学习模型可以捕捉到词语之间复杂的关系,如语义相似性、反义、上下位关系等。
TechLead
2024/04/17
2.1K0
词向量发展历程:技术及实战案例
Word2Vec原理简单解析
词的向量化就是将自然语言中的词语映射成是一个实数向量,用于对自然语言建模,比如进行情感分析、语义分析等自然语言处理任务。下面介绍比较主流的两种词语向量化的方式:
全栈程序员站长
2022/08/27
1.4K0
Word2Vec原理简单解析
词嵌入的经典方法,六篇论文遍历Word2vec的另类应用
随着深度学习的兴起,每个模型都需要一个输入,而我们现实生活中的对象(文字、图片)等等都不是数字,计算机无法处理。所以如何为每个任务确定一个合适的 “输入” 就变得尤其重要了,这个过程也被叫做表征学习。
机器之心
2020/07/21
8000
万字长文概述NLP中的深度学习技术
自然语言处理(NLP)是指对人类语言进行自动分析和表示的计算技术,这种计算技术由一系列理论驱动。NLP 研究从打孔纸带和批处理的时代就开始发展,那时分析一个句子需要多达 7 分钟的时间。到了现在谷歌等的时代,数百万网页可以在不到一秒钟内处理完成。NLP 使计算机能够执行大量自然语言相关的任务,如句子结构解析、词性标注、机器翻译和对话系统等。
机器之心
2019/03/12
1.3K0
万字长文概述NLP中的深度学习技术
大语言模型-1.1-语言模型发展历程
本博客内容是《大语言模型》一书的读书笔记,该书是中国人民大学高瓴人工智能学院赵鑫教授团队出品,覆盖大语言模型训练与使用的全流程,从预训练到微调与对齐,从使用技术到评测应用,帮助学员全面掌握大语言模型的核心技术。并且,课程内容基于大量的代码实战与讲解,通过实际项目与案例,学员能将理论知识应用于真实场景,提升解决实际问题的能力。
IT从业者张某某
2025/03/15
1590
大语言模型-1.1-语言模型发展历程
推荐阅读
相关推荐
不是你无法入门自然语言处理(NLP),而是你没找到正确的打开方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验