一、文字序列的语义难题
自然语言是一种极其复杂的信息载体。一个简单的段落中,可能隐藏着人物关系、情绪表达、事实描述,甚至隐含的推理线索。想要"读懂"语言,就必须处理它的语义结构,而这正是语言模型的核心任务。
在深度学习中,理解语义主要依赖两种方式:
- RNN(循环神经网络)
- Transformer(变换器)
我们先从RNN讲起。
二、RNN是如何理解语义的?
假设我们有一个 100 字的段落,RNN的做法是"一个字一个字地读":
- 它先处理第一个字,得到一个表示这个字含义的向量。
- 然后,把第一个字的向量和第二个字一起输入,得到前两个字的语义。
- 接着用前两个字的语义和第三个字的输入,继续更新理解......
最终第100个字的语义表示,就是基于前99个字"总结"出来的。
这种方式就像一个人读书,每读一个字都在脑中更新"我读到了哪里"的理解。
三、RNN的局限性
RNN虽然顺序性强,但存在三大问题:
- 信息丢失
早期的信息容易在"传递"过程中被稀释。第1个字的意义传到第100个字时,可能已经丢失。 - 难以处理长文本
一句话太长,计算路径太长,越往后推,越容易遗忘前面的内容。 - 不能并行
第n个字必须等第n-1个字计算完后才能处理,速度慢,效率低。
RNN像是一个慢吞吞的老学究,每一步都要等前一步弄清楚,才能继续往下。
四、Transformer是如何理解语义的?
Transformer抛弃了"顺序处理"的方式,而是让每一个字都能"看到"整段话的所有字,这就是它最核心的创新。
它的思维方式像极了一个全局观察者:
"不管你是第1个字还是第100个字,我都能根据整段话中所有字的内容,来决定你的意思。"
这就避免了RNN那种"传来传去容易丢"的问题。
五、Attention:注意力机制
Transformer的秘密武器是"注意力机制"(Attention)。它的核心思想是:
理解一个词的含义,不是靠它自己,而是看它与其它词之间的关联强度。
如何理解这种"关联"?
引入三个关键概念:Q、K、V
- Q(Query):我要理解的问题(比如"她"是谁?)
- K(Key):每个字的线索关键词
- V(Value):每个字的详细内容
通过计算 Q 和 K 的相似度,得到每个字的重要程度(相关度),然后用这些权重加权求和所有 V,得到最终的理解结果。
这就好比我们在读一句话时,会自动"扫视"整句,找出与当前词最有关联的词,集中注意力去理解。
六、Self-Attention:自注意力机制
Attention 可以让一个词注意到其它词 的信息,而自注意力机制让一个词也能"注意到自己"。
也就是说,在理解某个字的时候,不是只看它和别人之间的关系,而是把整段文字作为整体输入,自己和自己算关系。
技术上,Q、K、V 都来自同一组输入(这个段落),通过计算出每对字之间的相关度矩阵,从而得出每个字在上下文中的意义。
七、Multi-Head Self-Attention:多头自注意力机制
一个Attention机制只能从一个角度理解信息,例如词义层面的联系。但一段话往往包含:
- 情绪
- 时间逻辑
- 人物关系
- 语法结构......
所以,Transformer会开很多个"注意力头"(head),每个头专注于一个角度。
例如:
- 第1个头关注人物代词之间的指代关系;
- 第2个头关注时间逻辑;
- 第3个头捕捉语气变化......
这些多个head的输出再被整合(concatenate)起来,形成更完整的语义表达。
八、Feed-Forward Neural Network:前馈神经网络
Attention层之后,每个字的表示还要通过一个前馈神经网络进一步提炼。
这个网络通常由两层组成:
- 先把每个词的向量升维(扩大4倍)
- 再降维回去
这个操作类似于"把意思展开看看,再重新总结",让模型捕捉到更复杂的特征。
这部分也称为MLP(多层感知器)。
九、一轮语义理解
Transformer的"理解"不是一层完成的,而是多轮迭代的语义推理过程。
每一层都包含:
- Multi-Head Self-Attention(多角度观察)
- Feed-Forward Network(进一步提炼)
一个段落经过第一轮处理后得到初步理解,再把结果输入下一轮,继续深化理解。
就像一个人读文章,第一遍是大致了解,第二遍关注细节,第三遍形成整体判断。
十、总结:Transformer的全流程
我们梳理一下整个Transformer模型是如何一步步工作的:
-
输入:一段文字 → 向量化(加上位置信息)
-
多轮语义理解(多个编码层):
-
每一层:
- 多头自注意力机制(理解词与词的关系)
- 前馈神经网络(特征提炼)
-
-
输出:
- 若是文本生成:进入解码器(Decoder)
- 若是分类/翻译等任务:直接输出理解结果
Transformer的每一步设计,都是为了解决"如何理解一句话"的问题。相比传统RNN,它更全局、更并行、更深入。
写在最后:Transformer为什么那么厉害?
- 它不像RNN那样一条线读到底,而是"从高空俯瞰全局"
- 它每一次"注意"都能看到全段话,信息不易丢失
- 它并行处理速度快,适合大规模数据训练
- 它多角度分析语义,理解更加精准
这就是为什么GPT、BERT等模型,都是以Transformer为核心架构。它彻底改变了我们教机器"读懂人话"的方式。
Transformer模型架构流程图
