Transformer架构与NLP词表示演进

在自然语言处理(NLP)领域,词表示的优化和Transformer架构的出现是两大关键里程碑。前者解决了"如何让机器理解词语语义"的基础问题,后者则凭借高效的全局信息捕捉能力,成为当前主流NLP模型的核心框架。本文将系统梳理从稀疏词表示到动态词表示的演进路径,再聚焦Transformer的核心机制与编码器流程,为NLP入门学习提供清晰脉络。

一、NLP词表示:从稀疏孤立到动态关联的跨越

词表示是NLP的"地基"------它将人类语言中的词语转化为机器可计算的向量,其质量直接决定后续模型的效果。从发展历程来看,词表示主要经历了三个关键阶段,核心痛点从"高维稀疏"逐步走向"动态适配"。

1. 初代方案:独热编码(One-Hot Encoding)------稀疏且无语义

独热编码是最基础的词表示方法,原理简单:为词汇表中的每个词分配一个唯一的索引,用"1"标记当前词的索引位置,其余位置全为"0"。

  • 核心问题:

  • 高维稀疏:若词汇量为10000,每个词向量维度就是10000,其中仅1个"1"、9999个"0",计算效率极低;

  • 无语义关联:"cat"([1,0,...,0])和"dog"([0,1,...,0])的向量点积为0,无法体现两者同属"动物"的语义关联。

  • 适用场景:仅用于简单的文本分类、关键词匹配等场景,无法支撑复杂语义理解任务。

2. 进阶方案:Word2Vec------分布式静态表示

为解决独热编码的缺陷,Word2Vec通过分布式表示将词向量维度压缩到几百维(如200维、300维),并让语义相近的词向量距离更近(如"cat"和"dog"向量相似度高)。

  • 核心模型:

  • CBOW(Continuous Bag of Words):通过"上下文词"预测"中心词",训练速度快,适合高频词;

  • Skip-gram:通过"中心词"预测"上下文词",对低频词的表示更精准,泛化能力更强。

  • 仍存缺陷:

  • 静态向量:同一词在不同语境下向量完全相同(如"苹果"在"吃苹果"和"苹果手机"中向量一致),无法解决一词多义;

  • 忽略词序:"猫追狗"和"狗追猫"的词向量组合无差异,丢失了关键的句法逻辑信息。

3. 突破方案:ELMo------动态上下文表示

ELMo(Embeddings from Language Models)首次引入双向上下文信息,让词向量随语境动态变化,彻底解决了一词多义问题。

  • 核心逻辑:

  • 基于双向LSTM(Long Short-Term Memory)训练语言模型,同时学习"从左到右"和"从右到左"的上下文特征;

  • 对同一词,根据其所在句子(如"河边旁的银行"vs"中央银行")输出不同的向量,实现"语境适配"。

  • 不足与局限:

  • 依赖LSTM:循环结构导致无法并行计算,训练时长显著增加;

  • 深层堆叠难:LSTM层数过深时易出现梯度消失,难以捕捉更长程的上下文依赖。

二、Transformer核心:自注意力机制与编码器流程

ELMo的局限催生了Transformer的诞生。Transformer完全抛弃循环结构,以自注意力机制为核心,实现了"并行计算+长程依赖捕捉"的双重突破,成为当前BERT、GPT等大模型的基础架构。

1. 核心创新:自注意力机制(Self-Attention)

自注意力机制是Transformer的"灵魂",它通过Query-Key-Value(QKV)机制,直接计算序列中每个词与其他所有词的关联度(注意力权重),无需像RNN那样按顺序迭代。

  • 三大优势:

  • 并行计算:所有词的注意力权重可同时计算,效率远超RNN;

  • 长程依赖:任意两个词(无论距离多远)可直接建立关联,无需通过中间词传递;

  • 可解释性:注意力权重可可视化,能直观看到模型"关注了哪些词"(如分析"他爱打篮球"时,"他"的权重会向"爱""打篮球"倾斜)。

2. 关键补充:位置编码(Positional Encoding)

自注意力本身不包含词序信息("猫追狗"和"狗追猫"的关联计算逻辑一致),因此需要在词嵌入后叠加位置编码------通过正弦/余弦函数生成位置特征,让模型感知词的顺序差异,弥补自注意力在词序捕捉上的不足。

3. 核心组件:多头自注意力与前馈网络

多头自注意力(Multi-Head Attention):将自注意力的QKV拆分为多个"子空间"(如8个),每个子空间独立计算注意力,再将结果拼接、线性变换。其价值在于"多视角捕捉关联",比如有的子空间关注语法搭配,有的关注语义逻辑,让特征表达更全面。

  • 前馈网络(FFN):紧跟在注意力层之后,对每个词向量单独执行"维度扩张→非线性激活→维度还原"(如512维→2048维→512维)。核心作用是强化局部特征------注意力负责"全局关联",FFN则通过非线性变换,让单个词的语义细节更精准,弥补注意力的线性局限。

4. Transformer编码器流程

编码器是Transformer"理解输入语义"的核心模块,通常由6层相同结构堆叠而成,完整流程如下:

  1. 输入预处理:对文本进行词嵌入转换,叠加位置编码,得到包含词语义和顺序信息的基础向量;

  2. 多头自注意力层:将基础向量送入多头自注意力层,从多个子空间计算词与词的全局关联,输出融合多视角信息的向量;

  3. 残差连接与层归一化:将多头自注意力的输出与"原始基础向量"相加(残差连接,避免梯度消失),通过层归一化(Layer Norm)统一特征分布,稳定训练过程;

  4. 前馈网络层:将归一化后的向量送入前馈网络,通过非线性变换强化每个词的局部语义特征;

  5. 多层堆叠:重复执行"多头自注意力→残差归一化→前馈网络→残差归一化"流程,堆叠6层后输出包含完整全局语义的特征向量,为后续任务(如分类、翻译)提供支持。

解码器流程 以机器翻译为例,先对目标序列进行词嵌入和位置编码;然后通过掩码多头自注意力层保证生成的序列自左向右;再通过交叉注意力层关注输入序列的全局特征;之后经过前馈网络和残差归一化;最后通过线性层和Softmax输出单词概率,采用自回归方式迭代生成完整序列。

相关推荐
love530love4 小时前
【笔记】 Podman Desktop 中部署 Stable Diffusion WebUI (GPU 支持)
人工智能·windows·笔记·python·容器·stable diffusion·podman
CoovallyAIHub4 小时前
Transformer作者开源进化计算新框架,样本效率暴增数十倍!
深度学习·算法·计算机视觉
程序员晚枫4 小时前
Python 3.14正式发布!这5大新特性太炸裂了
python
先做个垃圾出来………4 小时前
SortedList
python
这里有鱼汤4 小时前
从DeepSeek到Kronos,3个原因告诉你:Kronos如何颠覆传统量化预测
后端·python·aigc
晓宜4 小时前
Java25 新特性介绍
java·python·算法
深栈5 小时前
机器学习:决策树
人工智能·python·决策树·机器学习·sklearn
fyakm5 小时前
GAN入门:生成器与判别器原理(附Python代码)
rnn·深度学习·神经网络
MediaTea5 小时前
Python:匿名函数 lambda
开发语言·python