请写出基于 Sentence-BERT 的多样性指标公式,并说明为何使用余弦相似度而非欧氏距离。

解读

国内大模型落地场景(如智能客服、内容创作、推荐系统)普遍要求生成结果既要相关又要不重复。面试官通过此题考察两点:

  1. 能否把“多样性”量化成可落地的指标,直接嵌入 LLMOps 持续监控;
  2. 是否理解 Sentence-BERT 语义空间的几何特性,从而在面试现场给出工程化权衡,而非背公式。

知识点

  1. Sentence-BERT 输出:每条文本对应一个 768 维或 1024 维的单位向量(已 L2 归一化)。
  2. 多样性指标本质:对候选集合 {s1,…,sn} 的嵌入 {v1,…,vn} 做平均两两距离,越大越多样。
  3. 余弦距离 = 1 − cosθ,θ 为两向量夹角;欧氏距离 = ‖vi − vj‖₂。
  4. 归一化后,余弦距离与欧氏距离呈单调关系:‖vi − vj‖₂ = √(2−2cosθ),但余弦计算量小、数值稳定性好,且对向量模长不敏感,更适合线上实时批处理。

答案

  1. 多样性指标公式(面试现场可直接写):
    Diversity = 1 − 1/C(n,2) · Σ_{1≤i<j≤n} (vi·vj)
    其中 vi、vj 为 Sentence-BERT 输出的单位向量,· 表示内积,C(n,2) 为组合数。
    该公式等价于平均余弦距离 1 − cosθ,范围 [0, 1],0 表示完全重复,1 表示正交即最大差异。

  2. 使用余弦相似度而非欧氏距离的三条理由:
    向量已归一化:Sentence-BERT 训练目标本身把语义差异压缩到球面上,模长无意义,余弦直接度量“方向”差异即可。
    计算效率:内积一次矩阵乘法即可得到 n×n 相似度矩阵,GPU 并行友好;欧氏距离需额外开方,在百亿级调用场景下延迟增加 10% 以上。
    数值稳定性:余弦距离天然落在 [0, 2] 区间,无需再次归一化即可与业务阈值(如多样性≥0.7)对齐,方便 LLMOps 告警规则配置

拓展思考

  1. 线上实时去重:可把多样性指标嵌入推理服务,先对 Beam Search 产生的 k 条候选计算 D,若 D<τ 则触发重排序策略(如温度采样 + 重复惩罚),保证返回列表既高分又多样。
  2. 多语言场景:中文语料常含“的、了”等高频虚词,Sentence-BERT 会将其压缩到球面极小区,此时可再引入TF-IDF 权重修正余弦,防止虚词拉低多样性得分。
  3. 与 Rouge/BLEU 互补:多样性只衡量“不重复”,不衡量“相关”,实际 LLMOps 监控面板需联合曝光 Diversity、Rouge-L、 toxicity 三维指标,才能闭环控制大模型生成质量。