词元 ID 提供文本的离散表示,网络则需要能够参与可学习变换的数值坐标。嵌入提供这些坐标,上下文计算进一步让同一词元的表示随周围词元变化,将可重复查询的向量转化为适合当前序列的表示。
语言模型通过词元的数值表示进行计算。分词规定离散单位及其编号,嵌入查表为编号分配向量,后续网络层再形成依赖上下文的表示。这些阶段具有不同的数学作用,不应混为同一操作。
1. 词元编号与嵌入查表
分词器将字符串映射为词元 ID 序列。根据具体规则,词元可以是单词、子词、标点或由字节构成的单位。ID 是索引,不是语义测量值;编号相邻并不意味着词元相似。[1]
设词表大小为 V,嵌入宽度为 d,嵌入矩阵 E∈RV×d 为每个词元存储一个向量。采用从零开始的 ID i,以及独热列向量 ei∈RV,查表可写为:
xi=E⊤ei∈Rd
独热形式以代数方式表达行选择。实际实现可以直接索引矩阵的一行,无需分配长度为 V 的向量。嵌入表可以参与训练,也可以保持固定,取决于规定的训练过程。[2]
2. 查表计算与梯度
为抽象词元 α,β,γ 分别指定编号零、一、二,并定义:
E=110011110001
对于序列 (2,0),查表得到:
X=(01100110)∈R2×4
嵌入矩阵包含 12 个参数,当前序列表示包含八个元素。在这张构造表中,平方距离为 ∥E0−E1∥22=1、∥E0−E2∥22=4,展示了如何通过向量坐标比较词元表示。
对于一般的长度 T 序列,可写成 X=SE,其中 S∈{0,1}T×V 的每一行对应一个位置的独热向量。给定标量损失 L 和上游梯度 G=∂L/∂X,由链式法则得到:
∂E∂L=S⊤G
同一 ID 多次出现时,各位置的梯度贡献累加到 E 的同一行。该导数不同于优化器更新;更新可能包含其他项,也可能因为冻结设置而不改变嵌入表。
3. 位置与上下文混合
固定嵌入表对同一 ID 始终返回相同向量,对周围词元的依赖来自后续计算。采用相加的位置表示 P∈RT×d 时,单个自注意力头可定义为:
H=X+P,Q=HWQ,K=HWK,Vh=HWV
其中:
WQ,WK∈Rd×dk,WV∈Rd×dv
由此得到 Q,K∈RT×dk、Vh∈RT×dv。下标用于区分值矩阵 Vh 与词表大小 V。查询向量通过点积与各键向量比较,逐行 softmax 将分数转换为非负且总和为一的权重,再用这些权重组合值向量。因子 1/dk 用于调节键宽度增大时的分数尺度。注意力权重及输出为:
A=softmaxrow(dkQK⊤+M),O=AVh
softmax 分别作用于每一行,得到 A∈RT×T、O∈RT×dv。每行输出是允许访问的值向量的加权和。本例采用相加的位置向量,为注意力计算提供序列顺序信息。[3]
4. 因果掩码与错位目标
自回归计算要求位置 i 不使用后续位置 j。这一限制可写为:
Mij={0,−∞,j≤i,j>i
由于 exp(−∞)=0,未来位置在归一化后获得零权重,每行至少保留当前位置。位置 i 的表示经过解码器后续计算后,用于预测 xi+1。因此,目标相对输入错开一位;令 t=i+1,即可与 p(xt∣x<t) 对应。
考虑两个位置的算术例子:所有未屏蔽分数均为零,两个值向量分别为 (2,0)、(0,4),则:
A=(11/201/2),O=(2102)
第一个输出只使用第一个值向量,第二个输出因为两个允许位置的分数相等而取平均。掩码决定哪些位置可以参与,分数决定它们的相对权重。
5. 与完整语言模型的关系
嵌入查表将离散 ID 连接到向量,上下文层在允许的位置范围内组合信息,第二篇所述输出投影与 softmax 则产生下一词元概率。因此,静态嵌入与上下文隐藏状态是不同对象。
完整 Transformer 还需要规定多头结构、输出投影、残差路径、归一化、前馈层及其排列顺序。原始编码器—解码器 Transformer 也不同于因果解码器语言模型。上述单头计算为这一更大的结构提供注意力组件。 [3]
单个坐标或注意力权重都不能自动提供完整的语义解释或因果解释;其含义需要结合周围变换及参数拟合的目标分析。
参考文献