Skip to content

第 3 讲 文本分类与词向量

对应 Lecture 03 slides。本讲从“文本 → 表示 → 标签”出发,连接经典分类器、分布式假设与 word2vec。

1. 文本分类的统一视图

给定文档 d 与类别集合 C,学习 f(d)c。垃圾邮件、情感分析、作者识别虽然标签不同,都包含三步:构造表示、计算分数、根据损失学习参数。

解决路径可以从人工规则逐步过渡到监督学习:规则系统直接把关键词和模式映射到标签,容易解释但难以覆盖变体;Naive Bayes、Logistic Regression 和 SVM 从带标签样本学习权重;神经网络与预训练模型进一步同时学习表示和决策函数。无论模型多复杂,都应先问清楚标签定义、输入表示与评价指标。

Bag-of-Words 用 xi 表示词 vi 的计数,忽略顺序。常见改进是 TF-IDF:

tfidf(w,d)=tf(w,d)logNdf(w).

它降低“到处都出现”的词权重,但向量仍稀疏且无法表达语义接近。

计数矩阵有两种常见视角:词项—文档矩阵以文档为列,适合分类和检索,通常使用 TF-IDF;词—上下文矩阵以邻近词或窗口位置为列,适合比较词义,通常使用 PMI/PPMI。二者都来自共现计数,但“上下文”的定义决定了向量最终表达主题、句法还是语义。

2. Naive Bayes

MAP 决策:

c=argmaxcp(cd)=argmaxcp(c)p(dc).

多项式 NB 假设给定类别后词出现条件独立:

p(dc)i=1|V|p(vic)xi.

带平滑的参数估计为

p^(vic)=C(vi,c)+αvC(v,c)+α|V|.

预测在 log 空间求和。NB 是生成式分类器:先建模 p(xy)p(y),数据少时常有强基线表现,但条件独立假设明显失真。

3. Logistic Regression 与 softmax

二分类模型直接建模:

p(y=1x)=σ(wx+b),σ(z)=11+ez.

二元交叉熵为

L=[ylogy^+(1y)log(1y^)].

多分类对每类产生 logit zc=wcx+bc,再用

p(y=cx)=ezcjezj.

LR 是判别式模型,目标凸;实际常用 mini-batch 梯度法并加 L2 正则防止稀有 n-gram 被赋予过大权重。三种梯度更新方式的差别是:

更新方式每次使用的数据特点
Batch GD全部训练集梯度稳定,但一次更新成本高
SGD单个样本更新频繁、噪声大,适合在线学习
Mini-batch GD一小批样本兼顾向量化效率与梯度稳定性

训练、验证、测试分别用于拟合参数、选择正则强度等超参数和最终报告,不能用测试集反复调参。

4. 分布式假设与词向量

one-hot 向量正交,不能表达 hotelmotel 的接近。分布式假设认为:出现在相似上下文中的词具有相似含义。即使遇到未知词,只要它反复出现在“喝了一杯……”“这种……很甜”等位置,也可以从邻词推断它大概是一种饮品;词的表示因而可以从上下文统计中学习。词向量是映射

ϕ:VRd,d|V|.

常用余弦相似度:

cos(u,v)=uvuv.

需要区分相似性相关性carautomobile 在意义上相似,carroad 主要是主题相关。大窗口更容易捕捉主题相关,小窗口更强调可替换性与句法功能;因此“正确的 embedding”取决于任务需要哪一种邻近关系。

计数型表示

构造词—上下文矩阵 X。原始计数偏向高频词,PMI 衡量共现相对独立性的增益:

PMI(w,c)=logp(w,c)p(w)p(c),PPMI=max(PMI,0).

对 PPMI 矩阵做截断 SVD,可得到低维稠密表示。计数法可解释,但矩阵很大且难以在线扩展。

5. Word2Vec

CBOW 与 Skip-gram

  • CBOW:由窗口内上下文预测中心词,训练快,对高频词稳定。
  • Skip-gram:由中心词预测各上下文词,对低频词通常更好。

Skip-gram 的完整 softmax 目标计算 |V| 个类别,代价高。负采样将每个正样本 (w,c) 配若干噪声上下文 nk

logσ(ucvw)+k=1Klogσ(unkvw).

通常从平滑 unigram 分布 pn(w)f(w)3/4 采负例。每个词有 input 与 output 两套向量;下游常取 input,或取两者和/平均。

为什么有效

正样本拉近中心词与真实上下文,负样本推远随机组合。优化结果隐式分解一个平移后的 PMI 矩阵,因此 word2vec 与计数法不是完全割裂的两条路线。

6. 评测与局限

内在评测包括词相似度与类比 king - man + woman ≈ queen;外在评测把 embedding 用于分类、NER 等任务。内在分数不一定转化为下游收益。

静态词向量的主要局限:

  • 一词多义只能得到一个向量,如 river bank 与 bank account。
  • 语料偏见会进入几何空间。
  • OOV 与领域迁移困难。
  • 向量相近往往表示“相关”,未必是同义;反义词也可能共享上下文。

这些问题推动 ELMo、BERT 与 GPT 学习“随上下文变化”的 token 表示。

7. NB 与 LR:生成式、判别式的差别

两者都能使用同一个 BoW 向量,但优化对象不同:

NB: p(x,y)=p(y)p(xy),LR: p(yx).

NB 只需按类别计数就有闭式估计,数据少时收敛快;LR 不建模文本本身,只学习决策边界,数据充足时通常更准确,也更容易加入连续特征。对多项式 NB,重复出现的词会按计数多次贡献 log likelihood;Bernoulli NB 则只记录词是否出现,二者不可混用同一个分母。

LR 的单样本梯度有很直观的形式。若 y^=σ(wTx+b),则

Lw=(y^y)x.

预测过高时沿 x 方向减小权重,预测过低时增大。课堂作业中,把词到列号保存为 hash map 而不是反复在线性 list 中查找,会把特征构造从近似 O(|V|) 降为均摊 O(1) 查询,这是算法复杂度直接影响实验效率的例子。

8. Word2Vec 的反向传播

对正样本 (w,c),记 s=ucTvw,负对数损失 logσ(s) 对中心向量的梯度为

Lposvw=(σ(s)1)uc.

对负样本 n,梯度贡献为 σ(unTvw)un。因此若采样 K 个负例,每一步只涉及中心词的 input 向量以及 1 个真实上下文、K 个负上下文的 output 向量,即至多更新 K+2 个向量,而不必计算全词表 softmax。高频词既容易成为上下文又容易成为无信息负例,所以训练常做两件事:以 f(w)3/4 平滑负采样分布,并按频率随机丢弃极高频词。

窗口定义也改变“语义”。小窗口更强调句法和局部替换关系,大窗口更强调主题相关性;动态窗口随机改变半径可减少固定边界偏差。

9. GloVe、fastText 与文档表示

GloVe 直接拟合全局共现统计:

J=i,jf(Xij)(wiTw~j+bi+b~jlogXij)2.

权重函数 f 抑制过稀和过高频共现的影响。它把计数方法的全局信息与低维可学习向量结合起来。

fastText 把词向量写成字符 n-gram 向量之和,对形态丰富语言、拼写变化与 OOV 更稳健。代价是相似拼写可能被错误拉近,且 n-gram 表会增加内存。

文档表示的由浅入深路线是:TF-IDF 向量、词向量加权平均、Doc2Vec,以及现代 embedding 模型。Doc2Vec 为每篇文档学习 ID 向量并参与上下文预测;新文档需要固定词参数再优化一个新文档向量。现代 Qwen/Gemma embedding 则直接编码查询和段落,用余弦或内积服务语义检索,并可在查询端加入任务指令。

10. 嵌入评测不能只看二维图

t-SNE/UMAP 适合展示局部结构,但二维距离不是原空间距离的忠实证明。更可靠的评测包括:

  • 词相似度与类比,同时报告覆盖率;
  • 聚类、分类、检索等外在任务;
  • 多语、长短文本、专业术语与拼写扰动切片;
  • 偏见探测与近邻人工分析;
  • 检索任务的 Recall@k、MRR、nDCG,以及向量维度、延迟和索引内存。

静态词向量解决“符号如何共享统计强度”,上下文化 embedding 进一步解决“同一符号在不同句子里为何应有不同表示”。