交大荣昶笔记#3 | Transformer
编辑
26
2025-08-02
Transformer
RNN
序列数据处理
- 输入序列: x_1, x_2, ..., x_n
- 隐藏状态: h_t = f(h_{t-1}, x_t)
- 输出: y_t = g(h_t)
Decoder-only
- 分词&词嵌入
- 位置编码
用于捕获字符在序列中的位置,不用依赖于先前计算,可用于并行计算 - 前向计算
经过计算给定输入生成可能得到下一个字符的概率分布 - 反向训练
Tokenizer 词元分析器
起步阶段:One-hot编码
为每个词打上编号
缺点太多
向量表示
使用词嵌入 Embedding
把高维One-hot编码转化为低维稠密向量,同时包含语义关联
Positional Encoding 位置编码
PE_{(pos,2i)} = sin(pos/10000^{2i/d_{model}})
PE_{(pos,2i+1)} = cos(pos/10000^{2i/d_{model}})
其中:
-
pos : 当前token在序列中的位置
-
i : 该token的某一维度
i \in (0,\frac{dimension}2-1) -
d_model 是词嵌入的维度
特点:
- 每个位置都有唯一的编码
- 位置编码的值域在[-1,1]之间
- 不同位置的编码之间有一定的规律性
Self-attention 自注意力
Transformer 中引入 QKV(Query,Key,Value) 概念
利用矩阵计算自注意力:
令 X 为输入的词嵌入向量,则:
- 查询向量: Q = XW_Q
- 键向量: K = XW_K
- 值向量: V = XW_V
三者与嵌入向量 X 相乘,且三者均是可学习的
Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V
- 0
- 0
-
分享