核心要点

  • 通过浅层神经网络自监督学习,无需人工标注

  • CBOW 用上下文预测中心词,Skip-gram 用中心词预测上下文

  • 训练后取输入侧权重矩阵的每一行作为对应词的词向量

  • 评估分内在(词类比、相似度相关性、聚类)与外在(下游任务)两类

标准回答

Word2Vec 是 Mikolov 等人提出的词向量学习方法,核心思想是「一个词的含义由它的上下文决定」(分布式假设),通过预测词与上下文的关系来学习向量。

如何获取词向量
Word2Vec 是一个只有一层隐藏层的浅层神经网络,用语料本身构造自监督任务,包含两种结构:

  • CBOW(连续词袋):用上下文词预测中心词。把窗口内若干上下文词的向量求和/平均,再预测中心词。训练快,对高频词友好。
  • Skip-gram:用中心词预测上下文词。对每个中心词分别预测窗口内的各个上下文词。训练较慢,但对低频词和小语料效果更好。

训练时网络输入是 one-hot,输入层到隐藏层的权重矩阵形状为 V×N(V 为词表大小,N 为向量维度)。训练完成后,这个输入权重矩阵的每一行就是对应词的词向量——隐藏层没有激活函数,本质就是一张查找表(lookup table)。

如何评估词向量的好坏
分为内在评估与外在评估两类:

1. 内在评估(Intrinsic) 直接考察向量空间本身的性质:

  • 词类比(Analogy):检验 king - man + woman ≈ queen 这类关系能否在向量运算中成立。
  • 词相似度(Similarity):计算词对的余弦相似度,与人工标注的相似度打分求相关系数(如 Spearman),相关性越高越好。
  • 聚类 / 可视化:用 t-SNE 等降维观察同类词是否聚集。

2. 外在评估(Extrinsic) 把词向量作为特征输入下游任务(文本分类、命名实体识别 NER、情感分析等),看任务指标是否提升。外在评估最贴近实际应用,但受下游模型影响,成本也更高。

实践中常先用内在评估快速筛选,再用目标任务的外在评估做最终选型。

常见误区

⚠️ 常见踩坑

误以为 Word2Vec 训练后要取隐藏层到输出层的权重,或要用整个网络做推理。实际上词向量就是输入层权重矩阵的行向量,输出层权重在得到词向量后即可丢弃;另一个误区是只看词类比这类内在指标就下结论,而忽略了对真实下游任务的外在评估。

追问

追问 1CBOW 和 Skip-gram 在什么场景下各自更有优势?

CBOW 把多个上下文词聚合预测中心词,训练速度快、对高频词表示更平滑,适合大语料、追求效率的场景。Skip-gram 为每个中心词单独预测各上下文词,等价于产生更多训练样本,对低频词和小规模语料学习更充分,表示质量通常更高,但训练更慢。

追问 2为什么内在评估好的词向量,下游任务不一定好?

内在评估(词类比、相似度)只衡量向量空间的局部几何性质,而下游任务还依赖任务相关的语义、领域适配以及上游模型结构。某些向量在通用相似度上表现好,但在特定领域(如医疗、法律)缺乏针对性,因此最终仍要以目标任务的外在指标为准。

追问 3词类比任务 king - man + woman ≈ queen 背后的原理是什么?

Word2Vec 学到的向量空间近似具有线性结构,某些语义/语法关系(如"性别""单复数")被编码为相对稳定的方向向量。king 与 man 的差向量大致表示"王室-性别"的偏移,加到 woman 上后落在 queen 附近。这反映了分布式表示对类比关系的捕捉能力,但并非对所有关系都严格成立。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习