96SEO 2026-02-20 03:37 16
。

在自然语言处理领域#xff0c;Embedding用于将对自然语言文本做tokenization后得到的tokens映射成实数域上的向量。
本文介绍Embedding的基本原理#xff0c;将训练大语言模型文本数据对应的tokens转换成Em…1.
Embedding是深度学习领域一种常用的类别特征数值化方法。
在自然语言处理领域Embedding用于将对自然语言文本做tokenization后得到的tokens映射成实数域上的向量。
本文介绍Embedding的基本原理将训练大语言模型文本数据对应的tokens转换成Embedding向量介绍并实现OpenAI的GPT系列大语言模型中将tokens在文本数据中的位置编码成Embedding向量的方法。
feature)映射到连续向量空间中即使用实数域上的向量表示类别特征。
其中向量的长度是超参数必须人为设定。
向量中每一个元素的值均是模型的参数必须从训练数据中学习获得即通过大量数据训练模型自动获得每一个类别特征该被表示成一个怎样的向量。
Embedding的核心思想是将离散对象映射到连续的向量空间中其主要目的是将非数值类型的数据转换成神经网络可以处理的格式。
Embedding向量维度的设定并没有精确的理论可以指导设定的原则是Embedding向量表示的对象包含的信息越多则Embedding向量维度应该越高训练数据集越大Embedding向量维度可以设置得更高。
在大语言模型出现前深度学习自然语言处理领域一般Embedding向量的维度是8维对于小型数据集到1024维对于超大型数据集。
更高维度得Embedding向量可以捕获特征对象之间更精细的关系但是需要更多数据去学习否则模型非常容易过拟合。
GPT-2
small版本使用的Embedding向量维度是768GPT-3
在自然语言处理领域可以将一个单词或token映射成一个Embedding向量也可以一个句子、一个文本段落或一整篇文档映射成一个向量。
对句子或一段文本做Embedding是检索增强生成(RAG,
generation)领域最常用的技术方法RAG是目前缓解大语言模型幻觉现象最有效的技术方法之一。
将一个单词或token映射成一个Embedding向量只需要构造一个token
ID到向量的映射表。
将一个句子、一个文本段落或一整篇文档映射成一个向量往往需要使用一个神经网络模型。
模型的输入是一段文本的tokens对应的token
以前比较流行的学习一个单词对应的Embedding向量的方法是Word2Vec。
Word2Vec的主要思想是具有相同上下文的单词一般有相似的含义因此可以构造一个给定单词的上下文预测任务来学习单词对应的Embedding向量。
如下图所示如果将单词对应的Embedding向量维度设置为2可以发现具有相似属性的单词对应的Embedding向量在向量空间中的距离更近反之则更远。
在大语言模型中不会使用Word2Vec等算法训练生成的Embedding向量而是直接使用torch.nn.Embedding随机初始化各个tokens对应的Embedding向量并在训练阶段更新这些Embedding向量中各个元素的值。
将各个tokens对应的Embedding向量作为大语言模型的参数可以确保学到的Embedding向量更加适合当前任务。
在自然语言处理项目实践中如果训练数据集足够大一般会使用上述随机初始化并训练Embedding向量的方法如果训练数据集不够大则更推荐使用在大数据集上预训练生成的Embedding向量或者可以直接将预训练模型作为特征提取器在其后接一个面向下游任务的输出层只训练输出层参数。
对训练大语言模型的自然语言文本做tokenization可以将文本转换成一系列tokens。
通过词汇表(vocabulary)可以将tokens转换成token
IDs。
torch.nn.Embedding层可以将token
假设词汇表中共包含6个不同的tokens每个token对应的Embedding向量维度设置为3。
可以使用如下代码随机初始化各个tokens对应的Embedding向量
torchtorch.manual_seed(123)input_ids
torch.nn.Embedding(vocabulary_size,
print(token_embedding_layer.weight)执行上面代码打印结果如下
requires_gradTrue)Embedding层的权重(weight)矩阵是一个二维的张量矩阵的行数为6列数为3每一行是一个3维向量。
词汇表中共6个不同的tokens第1个token对应的Embedding向量即为权重矩阵的第1行第2个token对应的Embedding向量即为权重矩阵的第2行。
依次类推第6个token对应的Embedding向量为权重矩阵第6行的向量。
权重矩阵是随机初始化的会在模型训练期间使用随机梯度下降算法更新。
token_embedding_layer(input_ids)
print(token_embeddings)执行上面代码打印结果如下
grad_fnEmbeddingBackward0)将文本对应的4个token
IDs输入Embedding层输出一个4行3列的张量矩阵。
可以观察到矩阵的第1行即为Embedding层权重矩阵第6行对应的向量第2行即为Embedding层权重矩阵第2行对应的向量第3行即为Embedding层权重矩阵第4行对应的向量第4行即为Embedding层权重矩阵第3行对应的向量。
2]输出的张量矩阵分别由Embedding层权重矩阵的第6、2、4、3行的向量构成。
由此可见Embedding层本质上是初始化了一个token
ID对应的Embedding向量返回一个Embedding向量矩阵。
IDs到Embedding向量的映射输入文本数据对应的token
ID列表Embedding层输出相应Embedding向量。
Embedding向量与token
ID对应的Embedding向量相同即Embedding层输出的Embedding向量不包含token的位置信息。
大语言模型使用自注意力机制(self-attention)处理自然语言文本其神经网络不具备循环结构。
自注意力机制无法捕捉输入文本中的token序列位置信息将两个含义不同的文本序列“你爸妈对我的看法”和“我爸妈对你的看法”输入自注意力层生成的用于预测下一个字的输出向量会完全相同。
后续文章将详细介绍自注意力机制理论原理提前了解自注意力机制无法捕捉输入文本中的token序列位置信息的原因可以参见本人写的博客文章BERT与ERNIE
在输入文本对应token的Embedding向量中添加token位置信息的方法有两种相对位置编码(relative
如下图所示绝对位置编码直接将输入文本token的绝对位置编码成Embedding向量。
假设大语言模型支持的最大输入token数量为
k个不同的待学习的位置Embedding向量。
将token对应的Embedding向量与token所在位置对应的Embedding向量相加生成最终输入大语言模型的Embedding向量。
相对位置编码并不将输入token的绝对位置编码成Embedding向量而是将不同token之间的相对位置编码成Embedding向量。
假设设定的最大输入token数量为
e−k1,e−k2,⋯,e−1,e0,e1,⋯,ei,⋯,ek−2,ek−1其中
除了上述两种将token位置编码成Embedding向量的位置编码方法还有许多其他类型的位置编码方法。
不管那种位置编码方法都是为了使大语言模型具备理解token之间顺序及位置关系的能力。
OpenAI的GPT系列大语言模型使用的是上述绝对位置编码方法。
假设大语言模型支持的最大输入token数量为8则可以使用如下代码随机初始化各个位置对应的Embedding向量并生成输入文本对应的token
torch.nn.Embedding(context_len,
position_embedding_layer(torch.arange(input_ids.shape[0]))
print(position_embeddings)执行上面代码打印结果如下
grad_fnEmbeddingBackward0)将输入文本对应的token_embeddings与position_embeddings相加即可生成最终输入大语言模型的Embedding向量
print(input_embeddings)执行上面代码打印结果如下
对自然语言文本数据做tokenization可以将文本分割成一连串tokens并通过词汇表映射成token
IDs及其位置转换成相同维度的Embedding向量token对应的Embedding向量与其位置对应的Embedding向量相加最终生成输入大语言模型的Embedding向量。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback