3. 词向量与文本表示
词向量是NLP的基础,面试高频。本章聚焦主流词向量方法的原理、对比与实战回答结构。先通过表格快速掌握常见词向量核心技术特征,再深入问答卡片。
知识结构:四大词向量方法对比
| 方法 | 上下文 | 核心思想 | 优点 | 典型模型 |
|---|---|---|---|---|
| 静态词向量 | 固定窗口 | 分布假设+神经网络 | 轻量、训练快 | Word2Vec, GloVe, FastText |
| 子词嵌入 | 字符n-gram | 利用子词信息 | 处理OOV、形态学 | FastText |
| 上下文动态 | 全句/双向 | RNN/Transformer编码 | 一词多义 | ELMo |
| 预训练语言模型 | 大规模无监督 | MLM+NSP/自回归 | 强泛化、微调 | BERT, |
面试问答卡片
问题1:请简述Word2Vec的原理与训练过程。
考察点:基础理解、逻辑链清晰度、能否展开优化方法。
回答框架:
- 核心假设:分布假设(相同上下文词语义相近)。
- 两种模型:CBOW(上下文→中心词)、Skip‑gram(中心词→上下文)。
- 优化方法:负采样(从噪声中采样非目标词)或层次Softmax(哈夫曼树加速)。
- 训练技巧:高频词二次采样、动态学习率。
示例回答:“Word2Vec基于分布假设,通过浅层神经网络学习词向量。模型分CBOW和Skip‑gram,前者用上下文预测当前词,后者反之。为加速训练,常用负采样或层次Softmax。最终得到稠密、低维的静态向量。”
追问:请对比负采样和层次Softmax的优缺点?你在项目中如何选择?
问题2:请比较Word2Vec与GloVe的异同。
考察点:模型差异理解、统计与预测视角、何时选哪个。
回答框架:
- 相同:均生成静态词向量;基于共现信息。
- 不同:Word2Vec是预测模型(学习条件概率);GloVe是计数模型(矩阵分解共现统计)。
- 性能:GloVe在全局共现上更稳定,Word2Vec对高频词更鲁棒。
示例回答:“两者都利用词语共现,但Word2Vec通过神经网络预测上下文,GloVe直接对共现矩阵做加权最小二乘。GloVe更适合大规模语料,而Word2Vec对低频词有一定优势。实践中,我通常在语料较小时选GloVe,文本量大时选Word2Vec。”
追问:GloVe的损失函数中的权重函数α起什么作用?
问题3:FastText相比Word2Vec做了哪些改进?
考察点:子词信息利用、OOV处理、对形态学丰富的语言的理解。
回答框架:
- 引入子词:每个词拆成字符n‑gram(如“apple”的3‑gram: “app”, “ppl”, “ple”)。
- 词向量=字符n‑gram向量之和 → 支持OOV词(可拼凑)。
- 训练速度:层次Softmax + 子词哈希,仍保持高效。
示例回答:“FastText在Word2Vec基础上加入了字符n‑gram信息,将每个词表示为其所有子词向量的和。这能处理未见词(OOV),并对词形变化(如复数和时态)更鲁棒。训练时仍用负采样或层次Softmax,速度几乎不变。”
追问:n‑gram的窗口大小如何选择?过小或过大会怎样?
章节小结:静态词向量(Word2Vec、GloVe、FastText)是NLP入门必考。掌握“假设→模型→优化→对比”的框架,并注意动态模型与静态模型的本质区别(是否依赖上下文)。面试中遇到BERT相关词表示,请移步第7章“预训练模型”。