3. 词向量与文本表示

词向量是NLP的基础,面试高频。本章聚焦主流词向量方法的原理、对比与实战回答结构。先通过表格快速掌握常见词向量核心技术特征,再深入问答卡片。

知识结构:四大词向量方法对比

方法 上下文 核心思想 优点 典型模型
静态词向量 固定窗口 分布假设+神经网络 轻量、训练快 Word2Vec, GloVe, FastText
子词嵌入 字符n-gram 利用子词信息 处理OOV、形态学 FastText
上下文动态 全句/双向 RNN/Transformer编码 一词多义 ELMo
预训练语言模型 大规模无监督 MLM+NSP/自回归 强泛化、微调 BERT,
面试策略:先确认问题中的“词向量”是否特指静态嵌入。对动态模型(BERT等)需明确回答预训练任务与微调方式。
Word2Vec原理回答 1. 分布假设:相似上下文→相似语义 2. 两种模型:CBOW / Skip‑gram 3. 优化:负采样 / 层次Softmax 4. 训练技巧:高频采样、学习率 5. 优缺点:轻量 / 静态无法消歧 遵循“假设→模型→优化→技巧→评价”完整链条

面试问答卡片

问题1:请简述Word2Vec的原理与训练过程。

考察点:基础理解、逻辑链清晰度、能否展开优化方法。

回答框架:

  1. 核心假设:分布假设(相同上下文词语义相近)。
  2. 两种模型:CBOW(上下文→中心词)、Skip‑gram(中心词→上下文)。
  3. 优化方法:负采样(从噪声中采样非目标词)或层次Softmax(哈夫曼树加速)。
  4. 训练技巧:高频词二次采样、动态学习率。

示例回答:“Word2Vec基于分布假设,通过浅层神经网络学习词向量。模型分CBOW和Skip‑gram,前者用上下文预测当前词,后者反之。为加速训练,常用负采样或层次Softmax。最终得到稠密、低维的静态向量。”

追问:请对比负采样和层次Softmax的优缺点?你在项目中如何选择?

避坑:切勿只背公式,应强调“为什么需要负采样”(避免全词表交叉熵)和“如何采样”(基于词频分布)。

问题2:请比较Word2Vec与GloVe的异同。

考察点:模型差异理解、统计与预测视角、何时选哪个。

回答框架:

  • 相同:均生成静态词向量;基于共现信息。
  • 不同:Word2Vec是预测模型(学习条件概率);GloVe是计数模型(矩阵分解共现统计)。
  • 性能:GloVe在全局共现上更稳定,Word2Vec对高频词更鲁棒。

示例回答:“两者都利用词语共现,但Word2Vec通过神经网络预测上下文,GloVe直接对共现矩阵做加权最小二乘。GloVe更适合大规模语料,而Word2Vec对低频词有一定优势。实践中,我通常在语料较小时选GloVe,文本量大时选Word2Vec。”

追问:GloVe的损失函数中的权重函数α起什么作用?

避坑:不要只说“一个预测一个统计”,要能解释为何GloVe认为共现频次的高方差需要加权。

问题3:FastText相比Word2Vec做了哪些改进?

考察点:子词信息利用、OOV处理、对形态学丰富的语言的理解。

回答框架:

  1. 引入子词:每个词拆成字符n‑gram(如“apple”的3‑gram: “app”, “ppl”, “ple”)。
  2. 词向量=字符n‑gram向量之和 → 支持OOV词(可拼凑)。
  3. 训练速度:层次Softmax + 子词哈希,仍保持高效。

示例回答:“FastText在Word2Vec基础上加入了字符n‑gram信息,将每个词表示为其所有子词向量的和。这能处理未见词(OOV),并对词形变化(如复数和时态)更鲁棒。训练时仍用负采样或层次Softmax,速度几乎不变。”

追问:n‑gram的窗口大小如何选择?过小或过大会怎样?

避坑:不要认为FastText只用于社交媒体文本;其子词特性在德语、阿拉伯语等黏着语中效果更显著。

章节小结:静态词向量(Word2Vec、GloVe、FastText)是NLP入门必考。掌握“假设→模型→优化→对比”的框架,并注意动态模型与静态模型的本质区别(是否依赖上下文)。面试中遇到BERT相关词表示,请移步第7章“预训练模型”。