← 返回题库
第 019 题 · NLP 与机器学习 · 简单

静态词向量和上下文表示有什么区别?

岗位专项 这代表什么?
✓ 资料核验 来源说明:公开面经题库主题;公司归属未独立核验,技术答案依据原论文或官方文档整理
Embedding上下文表示BERT
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

用一词多义举例最容易讲清:静态词向量给“苹果”一个固定表示,上下文模型会根据“吃苹果”或“苹果发布手机”产生不同向量。再补训练与使用成本上的区别。

面试官若问静态表示是否过时,可以说它体积小、查询快、适合词级相似或轻量系统;上下文表示表达更强,但推理成本高,池化与领域适配也会影响质量。

可以这样答:

静态词向量为词表中的每个词保存一个固定向量,所以同一个词在任何句子里表示不变,难以处理多义词,但存储和查询很便宜。上下文表示由 Transformer 根据整句动态计算,“吃了一个苹果”和“苹果发布了手机”中的“苹果”会得到不同向量。它表达更细,却需要每次结合上下文重新计算;如果任务只做词表级近邻,静态向量反而可能更合适。

核心回答

静态词向量为每个词表项保存一个固定向量,所以“苹果公司”和“吃苹果”中的“苹果”表示相同。上下文模型根据整句动态生成每个 Token 的表示,同一个词在不同语境中可以不同,因此更能处理一词多义、句法和远距离依赖。代价是编码计算更大、向量层选择更复杂,也不能直接把任意 Token 向量当成高质量句向量。

展开说明

Word2Vec、GloVe 属于静态表示;ELMo 使用双向语言模型组合上下文层,BERT 则通过双向 Transformer 预训练获得上下文表示。子词分词缓解了 OOV,但一个词可能被拆成多个 Token,需要池化才能得到词级表示。上下文模型的不同层往往编码不同类型信息,下游应通过微调或验证选择。

工程实践

资源受限、词表稳定或需要直接查表时,静态向量仍有价值。检索与聚类若需要句级向量,应使用专门的 Sentence Embedding 训练目标,而不是盲目取基础 BERT 的 [CLS]。领域迁移时同时检查分词碎片率、语义漂移、编码延迟和向量存储成本。

常见追问

  1. 上下文表示彻底解决 OOV 吗? 子词可编码多数新词,但过度切碎仍会损失语义,并不等于真正理解新概念。
  2. 为什么 BERT 每层表示不同? 表示经过逐层上下文混合,较低层和较高层可能偏向不同的局部、句法或任务特征。
  3. 静态向量是否完全不能表达多义词? 单个向量会混合多种词义;可用多原型静态方法缓解,但上下文模型通常更自然。

一句话复习

静态向量是一词一表项,上下文表示是一处用法一个动态向量;后者表达力强,但编码和池化成本更高。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…