文本预测和分类任务
核心在于:语言模型通过分类任务的形式,实现对文本统计规律的学习。下面分 3 步拆解:
1. 统计规律:文本中词的共现关系
当我们说 “文本里‘天王盖地虎’经常一起出现”,本质是观察到一个条件概率:
- 在语料中,给定前文 “天王盖地”,下一个词是 “虎” 的概率
P(虎 | 天王盖地)
远高于其他词(比如 “猫”“苹果” 等)。 - 语言模型的目标,就是估计这个条件概率分布:对任意前文,预测下一个词的概率。
2. 分类任务:把概率估计转化为类别选择
语言模型如何实现上述概率估计?通过分类任务:
- 词汇表中的每个词,被视为一个 “类别”(比如 “虎” 是类别 5,“猫” 是类别 100)。
- 模型的输出层(如你代码中的
self.projection_layer
),将隐藏层特征映射到词汇表大小的维度,每个维度对应一个词的 “得分”。 - 通过
softmax
将得分转化为概率分布,使得: \(P(w_i | \text{前文}) = \frac{\exp(\text{得分}_i)}{\sum_j \exp(\text{得分}_j)}\) - 训练目标:最大化真实词的预测概率(等价于最小化交叉熵损失)。
3. 为什么这是分类?
从数学角度看,分类任务的定义是:
给定输入 x,预测其属于 K 个类别中的哪一个。
在语言模型中:
- 输入 x:前文的词向量(如 “天王盖地” 的向量表示)。
- 类别集合:词汇表中的所有词(如 10,000 个词,对应 10,000 个类别)。
- 预测目标:从 10,000 个类别中选出最可能的下一个词。
因此,预测下一个词的任务,本质上是一个 “从词汇表中选择最可能类别的分类问题”。
4. 统计规律与分类的联系
模型通过分类任务学习统计规律的过程:
- 训练数据:包含大量 “前文 → 真实下一词” 的样本(如 “天王盖地” → “虎”)。
- 模型优化:通过交叉熵损失,迫使模型对 “天王盖地” 的输入,提高 “虎” 对应的类别得分。
- 学习结果:模型在训练中发现,“天王盖地” 的向量表示与 “虎” 的类别存在强关联,从而记住这种统计规律。
5. 例子:理解分类过程
假设词汇表只有 3 个词:["猫", "虎", "苹果"]
,对应类别 ID [0, 1, 2]
。
- 当模型看到 “天王盖地”,输出层得分可能是
[-1.2, 3.5, -0.8]
。 - 经过
softmax
后,概率分布为[0.02, 0.97, 0.01]
。 - 模型选择概率最高的类别 1(“虎”)作为预测结果。
这就是通过分类任务实现统计规律的量化表达。
总结
- 统计规律是语言的本质特征(词与词的共现关系)。
- 分类任务是语言模型实现这种规律学习的技术手段(将预测问题转化为类别选择)。
- 语言模型通过分类损失(如交叉熵),迫使模型学习文本中的统计规律,最终表现为 “能预测下一个词” 的能力。
所以,分类是手段,统计规律是目标,二者通过深度学习模型紧密结合。