4.7 多项逻辑回归
有时类别不止两个。例如,情感分类可能包含正面、负面和中性三类;也可能要预测第 18 章将介绍的标签,如从 10、30 甚至 50 个词性中选择一个,或从人名、地点、组织等标签中选择短语的命名实体类型。对大语言模型而言,还要从词表的 ∣ V ∣ |V| ∣ V ∣ 个候选词中预测下一个词,因此是 V V V 路分类。
这类任务使用多项逻辑回归 (multinomial logistic regression),也称 softmax 回归 (softmax regression;早期 NLP 文献中有时称为最大熵分类器)。模型从 K K K 个类别中为每个观测选择类别 k k k ,并规定只有一个类别是正确的,这有时称为硬分类 (hard classification)。
用长度为 K K K 的向量 y \mathbf y y 表示每个输入 x x x 的输出。若正确类别为 c c c ,令 y c = 1 y_c=1 y c = 1 ,其余元素均为 0,即 y j = 0 , ∀ j ≠ c y_j=0,\forall j\ne c y j = 0 , ∀ j = c 。这种仅一个值为 1、其余均为 0 的向量称为独热向量 (one-hot vector)。分类器要生成估计向量 y ^ \hat{\mathbf y} y ^ ,其中每个类别 k k k 对应的值 y ^ k \hat y_k y ^ k 是概率 P ( y k = 1 ∣ x ) P(y_k=1\mid\mathbf x) P ( y k = 1 ∣ x ) 的估计。
4.7.1 Softmax ¶ 多项逻辑分类器使用 sigmoid 的推广——softmax 函数 ——计算 p ( y k = 1 ∣ x ) p(y_k=1\mid\mathbf x) p ( y k = 1 ∣ x ) 。softmax 接收由 K K K 个任意值构成的向量 z = [ z 1 , z 2 , … , z K ] \mathbf z=[z_1,z_2,\ldots,z_K] z = [ z 1 , z 2 , … , z K ] ,将其映射为概率分布:每个值均在 [ 0 , 1 ] [0,1] [ 0 , 1 ] 内,且总和为 1。与 sigmoid 一样,它也是指数函数。
对 K K K 维向量 z \mathbf z z ,softmax 定义为:
softmax ( z i ) = exp ( z i ) ∑ j = 1 K exp ( z j ) , 1 ≤ i ≤ K (4.33) \operatorname{softmax}(z_i)=\frac{\exp(z_i)}{\sum_{j=1}^K\exp(z_j)},\qquad1\le i\le K\tag{4.33} softmax ( z i ) = ∑ j = 1 K exp ( z j ) exp ( z i ) , 1 ≤ i ≤ K ( 4.33 ) 因此,输入向量的 softmax 本身也是向量:
softmax ( z ) = [ exp ( z 1 ) ∑ i = 1 K exp ( z i ) , exp ( z 2 ) ∑ i = 1 K exp ( z i ) , … , exp ( z K ) ∑ i = 1 K exp ( z i ) ] (4.34) \operatorname{softmax}(\mathbf z)=\left[\frac{\exp(z_1)}{\sum_{i=1}^K\exp(z_i)},\frac{\exp(z_2)}{\sum_{i=1}^K\exp(z_i)},\ldots,\frac{\exp(z_K)}{\sum_{i=1}^K\exp(z_i)}\right]\tag{4.34} softmax ( z ) = [ ∑ i = 1 K exp ( z i ) exp ( z 1 ) , ∑ i = 1 K exp ( z i ) exp ( z 2 ) , … , ∑ i = 1 K exp ( z i ) exp ( z K ) ] ( 4.34 ) 分母 ∑ i = 1 K exp ( z i ) \sum_{i=1}^K\exp(z_i) ∑ i = 1 K exp ( z i ) 将所有值归一化为概率。例如,给定:
z = [ 0.6 , 1.1 , − 1.5 , 1.2 , 3.2 , − 1.1 ] \mathbf z=[0.6,1.1,-1.5,1.2,3.2,-1.1] z = [ 0.6 , 1.1 , − 1.5 , 1.2 , 3.2 , − 1.1 ] 则四舍五入后的 softmax ( z ) \operatorname{softmax}(\mathbf z) softmax ( z ) 为:
[ 0.05 , 0.09 , 0.01 , 0.10 , 0.74 , 0.01 ] [0.05,0.09,0.01,0.10,0.74,0.01] [ 0.05 , 0.09 , 0.01 , 0.10 , 0.74 , 0.01 ] 与 sigmoid 一样,softmax 会把数值压向 0 或 1。如果某个输入大于其他输入,它会倾向于将对应概率推近 1,同时抑制较小输入的概率。与 sigmoid 情形相同,softmax 的输入分数向量 z \mathbf z z 称为 logit (见式 4.7)。
4.7.2 在逻辑回归中应用 softmax ¶ 将 softmax 用于逻辑回归时,其输入仍是权重向量 w \mathbf w w 与输入向量 x \mathbf x x 的点积再加偏置。不过,现在 K K K 个类别分别需要权重向量 w k \mathbf w_k w k 和偏置 b k b_k b k 。每个输出类别的概率为:
P ( y k = 1 ∣ x ) = exp ( w k ⋅ x + b k ) ∑ j = 1 K exp ( w j ⋅ x + b j ) (4.35) P(y_k=1\mid\mathbf x)=\frac{\exp(\mathbf w_k\cdot\mathbf x+b_k)}{\sum_{j=1}^K\exp(\mathbf w_j\cdot\mathbf x+b_j)}\tag{4.35} P ( y k = 1 ∣ x ) = ∑ j = 1 K exp ( w j ⋅ x + b j ) exp ( w k ⋅ x + b k ) ( 4.35 ) 式 4.35 看似要分别计算每个输出;实际中通常会改写为更适合现代向量处理硬件的形式。把 K K K 个权重向量表示为权重矩阵 W \mathbf W W ,把偏置表示为向量 b \mathbf b b 。W \mathbf W W 的第 k k k 行对应权重向量 w k \mathbf w_k w k ,因此若输出类别数为 K K K 、输入特征数为 f f f ,W \mathbf W W 的形状为 [ K × f ] [K\times f] [ K × f ] ;b \mathbf b b 则为每个输出类别包含一个值。于是,K K K 类输出概率向量可以用一个简洁方程计算:
y ^ = softmax ( W x + b ) (4.36) \hat{\mathbf y}=\operatorname{softmax}(\mathbf W\mathbf x+\mathbf b)\tag{4.36} y ^ = softmax ( Wx + b ) ( 4.36 ) 展开矩阵运算可知,第一个输出类别在 softmax 之前的估计分数恰好是 w 1 ⋅ x + b 1 \mathbf w_1\cdot\mathbf x+b_1 w 1 ⋅ x + b 1 。
理解权重矩阵 W \mathbf W W 的一种有用方式,是把每一行 w k \mathbf w_k w k 看作类别 k k k 的原型 (prototype)。学到的权重向量以模板形式表示该类别。两个向量越相似,点积越高,因此点积可以充当相似度函数。逻辑回归由此为每个类别学习一个原型表示,再将输入向量分到 K K K 类中与其最相似的类别(Doumbouya et al., 2025)。
图 4.6 通过比较权重向量与权重矩阵,展示二元逻辑回归与多项逻辑回归在计算输出类别概率时的区别。
4.7.3 多项逻辑回归中的特征 ¶ 多项逻辑回归的特征与二元逻辑回归类似,不同之处在于 K K K 个类别分别拥有权重向量和偏置。回顾第 97 页的二元感叹号特征:
x 5 = { 1 if “!” ∈ doc 0 otherwise x_5=\left\{\begin{array}{ll}1&\text{if ``!''}\in\text{doc}\\0&\text{otherwise}\end{array}\right. x 5 = { 1 0 if “!” ∈ doc otherwise 二元分类中,特征的正权重使分类器倾向 y = 1 y=1 y = 1 (正面情感),负权重使其倾向 y = 0 y=0 y = 0 (负面情感),绝对值表示该特征的重要程度。多项逻辑回归中,每个类别拥有独立权重,因此同一特征可以分别成为支持或反对各类别的证据。
例如,三分类情感分析要把每篇文档分为正面(+)、负面(−)或中性(0)。感叹号特征对中性文档可能具有负权重,对正面或负面文档则具有正权重:
特征 定义 w 5 , + w 5 , − w 5 , 0 f 5 ( x ) 1 [ “!” ∈ doc ] 3.5 3.1 − 5.3 \begin{array}{c|c|ccc}\text{特征}&\text{定义}&w_{5,+}&w_{5,-}&w_{5,0}\\\hline f_5(x)&\mathbf1[\text{``!''}\in\text{doc}]&3.5&3.1&-5.3\end{array} 特征 f 5 ( x ) 定义 1 [ “!” ∈ doc ] w 5 , + 3.5 w 5 , − 3.1 w 5 , 0 − 5.3 由于这些特征权重同时依赖输入文本和输出类别,有时会把这种依赖显式写成 f ( x , y ) f(x,y) f ( x , y ) 。例如,上面的 f 5 ( x ) f_5(x) f 5 ( x ) 可写成三个特征 f 5 ( x , + ) f_5(x,+) f 5 ( x , + ) 、f 5 ( x , − ) f_5(x,-) f 5 ( x , − ) 和 f 5 ( x , 0 ) f_5(x,0) f 5 ( x , 0 ) ,每个特征各有一个权重。第 18 章介绍 CRF 时将使用这种记号。
图 4.6 二元逻辑回归与多项逻辑回归。二元逻辑回归使用单个权重向量 w \mathbf w w ,输出为标量 y ^ \hat y y ^ ;多项逻辑回归为 K K K 个类别使用 K K K 个权重向量,并把它们装入单个权重矩阵 W \mathbf W W ,输出为向量 y ^ \hat{\mathbf y} y ^ 。为清晰起见,两图均省略偏置。