词嵌入余弦检索

📚 Embedding Cosine Retrieval

Compute cosine similarity between a query vector and document vectors and rank the hits. Handy for RAG pipelines, semantic search and embedding debugging.

📐 计算公式 / 原理
向量检索余弦相似度主式:cos 相似度 = (q₁×d₁ + q₂×d₂) ÷ (√(q₁²+q₂²) × √(d₁²+d₂²)),即查询向量与文档向量的点积除以两者模长之积,分母为 0(零向量)时相似度记 0。校验:无强校验,非数输入按 0 兜底。判据:余弦值域 [−1, 1],越接近 1 方向越一致;「检索取相似度最大的 top-k 篇」属检索流程说明,本页只算相似度本身、不做排序。
稠密检索的标准打分:查询向量与文档向量做点积后各自归一化,等价于夹角余弦。实际系统常用内积近似加 ANN 索引(HNSW/IVF)加速,此时必须保证向量已归一化,否则内积会被模长带偏。

📐 计算公式与说明

分步计算口径:点积 = q₁×d₁ + q₂×d₂;查询向量模长 = √(q₁²+q₂²);文档向量模长 = √(d₁²+d₂²);余弦相似度 = 点积 ÷ (查询模长 × 文档模长)(除零结果按 0 处理),四项结果各保留 4 位小数。校验:无强校验,非数输入按 0 兜底。判据:模长固定时点积越大相似度越高,两向量正交时相似度为 0、反向时为 −1。

RAG 检索中常用余弦相似度。

📚 深度解析:词嵌入余弦检索

💡 常见使用场景

查询召回排序
查询'苹果公司股价',文档向量('苹果,财报')cos=0.82、('水果,营养')cos=0.31、('iPhone,发布会')cos=0.76 → 召回排序为财报>iPhone>水果,正确命中企业语义。

❓ 常见问题(FAQ)

余弦和欧氏在检索里差别大吗?
归一化后二者单调相关,但余弦更关注方向、对模长不敏感,适合文本嵌入;未归一化时欧氏会被向量长度主导,检索效果通常更差。
召回不准怎么排查?
先看向量模型是否适配领域(通用模型对专业词弱),再查切分粒度与停用词;也可换混合检索(向量+关键词)补召回。

Formula & Standard References

Item Formula / Note Source / Standard
Cosine similarity similarity = dot product over the product of magnitudes Vector space retrieval
Normalised retrieval unit vectors make the dot product the cosine and allow ANN search Approximate nearest neighbour literature
Dimensionality high dimensions concentrate distances and constrain index choice Vector search practice