← 返回题库
第 028 题 · NLP 与机器学习 · 中等

句向量的 CLS、Mean Pooling 和加权池化如何选择?

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

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

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

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

面试时怎么答

先说池化方式必须与训练目标配套。CLS 只有在预训练或微调时被明确当作句级表示,才天然有优势;Mean Pooling 利用所有有效 Token,通常是稳健基线;加权池化能突出关键信息,但多了参数和过拟合风险。

被问如何选择时,提到正确处理 Padding Mask,再在目标检索、聚类或相似度数据上比较,而不是仅看向量维度。长文本还要关注无关 Token 稀释。

可以这样答:

CLS Pooling 直接取特殊位置表示,做法最简单,但前提是模型训练时让这个位置承载句级语义;否则它未必比其他 Token 更能代表整句。Mean Pooling 对所有非 Padding Token 求平均,通常是稳健基线,不过长句里的无关词会稀释重点。加权池化能突出关键信息,却多了一套需要学习的权重,也更依赖训练数据。

核心回答

CLS Pooling 取特殊位置表示,速度简单,但只有模型训练目标让该位置承载句级语义时才可靠。Mean Pooling 对非 Padding Token 求平均,通常是稳健基线;Max 或注意力加权池化可突出显著特征,却可能过分依赖个别 Token。没有脱离训练目标的最佳池化方式,应与对比学习或下游任务一起训练,并在目标数据上验证。

展开说明

基础 BERT 的 [CLS] 参与预训练分类目标,但其原始空间不一定适合直接用余弦做语义相似度。Mean Pooling 汇聚所有位置,需用 Attention Mask 排除 Padding;长文本中大量一般性 Token 可能稀释关键信息。加权池化增加可学习参数,如果只有少量监督数据,也更容易过拟合。

工程实践

固定编码器、层选择、Pooling、归一化和相似度做完整消融,用检索 Recall@k 或语义相似度而不是只看训练损失。超长文档通常先分块编码再做层次聚合,避免一次 Mean Pooling 抹平主题。导出模型时为全 Padding 或空文本定义明确行为。

常见追问

  1. Mean Pooling 为什么必须使用 Mask? 否则 Padding 的表示也进入平均,且不同批次填充长度会改变同一句子的向量。
  2. 取最后一层一定最好吗? 不一定,不同层包含的信息不同;可验证倒数几层或学习层加权。
  3. 池化后是否还要 L2 归一化? 若用余弦或归一化对比损失通常会做,但点积模型的模长可能有信息,应遵循训练配方。

一句话复习

CLS 依赖句级训练,Mean 是带 Mask 的稳健基线,加权池化更灵活;最终必须连同训练目标和检索指标一起选。

参考资料

无需账号 · 原地交流

评论与补充

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

正在加载评论…