余弦相似度(Cosine Similarity)是用来衡量0到1之间两个向量之间相似度的数学表达式。
计算公式如下:
cosine_similarity(A, B) = (A • B) / ||A|| ||B||
其中:
- A 和 B 是两个n维向量
- A•B 是内积,指A和B对应的两两项的乘积再相加:
A•B = a1b1 + a2b2 + ... + anbn
- ||A|| 表示向量A的模长,计算公式为:
||A|| = √ (a1^2 + a2^2 + ... + an^2)
- ||B|| 表示向量B的模长,同理计算。
- cosθ 表示A和B之间的夹角余弦值。
假设A = [a1, a2, a3], B = [b1, b2, b3], 则公式展开为:
(a1*b1 + a2*b2 + a3*b3) / (√(a1^2 + a2^2 + a3^2) * √(b1^2 + b2^2 + b3^2))
- 若两向量完全相同,则夹角为0°,余弦值最大(1)
- 若两向量垂直,则余弦值0
- 余弦值越大,意味着两向量越相似
总的来说,余弦相似度的计算考虑了:
- 两个向量的内积
- 两个向量的模长
- 余弦值代表相似度
它具有几个优点:
- 简单速度快
- 不需要向量标准化
- 固定范围 [0,1]