余弦相似度与点积:向量归一化的影响

向量检索里,点积和余弦相似度经常一起出现。余弦相似度会按向量长度归一化;当两个向量都已具有单位长度时,它才与点积一致。

浅色计算卡片与检查清单
浅色主题概念配图,选自本站AI生成图库;非事件现场或产品实测截图。

用二维向量看清尺度影响

自拟向量a为3、4,b为6、8。二者方向相同,余弦相似度为1,但原始点积是50。把它们分别除以自身长度后,点积才成为1。下面只是数学练习,不代表真实文本相似度结果。

归一化前检查零向量

长度为零时不能按普通公式直接相除,应按照所用库和业务的明确规则处理。也要核对索引与查询使用的模型和预处理,不能因为两种距离在某个例子相同就随意更换系统配置。

记录比较使用的度量

本站建议评估时同时记录模型、是否归一化和距离类型。归一化改变了长度信息的作用,是否适合任务需要验证。余弦分数仍不是答案正确的概率,最终证据应回到原文。

可以运行的练习

from math import sqrt, isclose
a, b = [3, 4], [6, 8]
def dot(x, y):
    return sum(i * j for i, j in zip(x, y, strict=True))
def unit(x):
    length = sqrt(dot(x, x))
    if length == 0:
        raise ValueError("zero vector")
    return [i / length for i in x]
assert dot(a, b) == 50
assert isclose(dot(unit(a), unit(b)), 1.0)
try:
    unit([0, 0])
except ValueError:
    print("零向量已拒绝")
else:
    raise AssertionError("边界检查失败")

示例已在本地隔离环境运行检查。使用固定输入,不访问外部接口,也不读取真实业务文件。

资料与继续学习

scikit-learn:余弦相似度。资料查阅日期:2026年10月13日。步骤与练习由本站整理。

资料查阅与编辑日期:2026年10月13日。作者:玖柒。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享