1、简介  

        计算向量相似性是机器学习和数据科学中的核心任务,常见于推荐系统、NLP、图像检索等领域。通过数学建模将抽象的“相似性”转化为可计算的数值,核心是距离、角度、分布或语义的量化。为数据之间的关联提供可解释的度量,支撑上层应用(如推荐、分类、检索等)。计算向量相似性的方法有很多,余弦相似度(Cosine Similarity)、欧氏距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)、点积(Dot Product)、皮尔逊相关系数(Pearson Correlation)、Jaccard相似度、马氏距离(Mahalanobis Distance)、KL散度 & JS散度(信息论方法)、预训练模型相似度(如BERT、CLIP)等。选择具体方法需结合数据特性(如稀疏性、维度)和任务目标(如方向敏感还是绝对距离敏感),选择合适的计算相似性的方法。

2、集中计算相似度的方法

2.1、余弦相似度(Cosine Similarity)

通过计算向量之间的夹角余弦值衡量方向相似性,与向量长度无关。例如:文本相似度中,两篇文档的词频向量方向越接近,内容越相似。

计算方式:向量点积除以模的乘积:

优点

  • 不受向量长度影响,适合文本TF-IDF或词向量等场景。

  • 范围[-1,1],直观易解释。

缺点

  • 忽略向量绝对大小(如两个用户评分向量可能方向相同但评分尺度不同)。

适用场景

  • 文本相似度(如文档、词嵌入)、用户兴趣匹配。

2.2、欧氏距离(Euclidean Distance)

将向量视为空间中的点,通过计算点之间的几何距离衡量相似性。距离越小,相似性越高。欧氏距离是两点间的直线距离。

计算方式

优点

  • 几何直观,反映向量绝对差异。

缺点

  • 对高维数据敏感(“维度灾难”),需归一化处理。

适用场景

  • 低维空间中的聚类(如KNN)、图像像素级相似度。

2.3、曼哈顿距离(Manhattan Distance)

将向量视为空间中的点,通过计算点之间的几何距离衡量相似性。距离越小,相似性越高。曼哈顿距离是坐标轴方向的路径总和。

计算方式

优点

  • 对异常值比欧氏距离更鲁棒。

缺点

  • 高维数据中表现可能不佳。

适用场景

  • 网格路径规划、稀疏特征(如用户行为计数)。

2.4、点积(Dot Product)

点积(又称内积)是向量运算中的一种基本操作,用于衡量两个向量在方向上的对齐程度,同时考虑它们的长度。

计算方式

在几何上,点积也可以表示为:

其中:

  • ∥A∥∥A∥ 和 ∥B∥∥B∥ 分别是向量的模(长度)。

  • θθ 是两向量之间的夹角。

优点

  • 计算高效,适合大规模数据。

缺点

  • 受向量长度影响大,通常需归一化。

适用场景

  • 快速初筛(如召回阶段)、结合长度信息的相似度(如推荐系统)。

2.5、马氏距离(Mahalanobis Distance)

马氏距离是一种考虑数据分布特性的距离度量,通过引入协方差矩阵解决特征相关性和尺度不一致的问题。

计算方式

若 S是单位矩阵(特征独立且方差为1),马氏距离退化为欧氏距离。

优点

  • 考虑特征相关性,适用于非独立同分布数据。

缺点

  • 计算成本高(需逆矩阵)。

适用场景

  • 异常检测、多元统计分析。

2.6、预训练模型相似度(如BERT、CLIP)

使用神经网络提取高维语义特征,再计算特征向量的相似性(如跨模态图文匹配)。

计算方式

  • 用神经网络提取特征后计算余弦相似度。

优点

  • 捕捉深层语义(如跨模态图文匹配)。

缺点

  • 计算资源消耗大。

适用场景

  • 语义搜索、跨模态检索。

2.7、Jaccard相似度

通过计算集合的交集与并集比例衡量相似性,适用于二元特征(如用户是否购买某商品)。

计算方式:交集大小除以并集大小:

优点

  • 适合二元向量或集合。

缺点

  • 忽略元素频率信息。

适用场景

  • 用户行为交集分析(如购物车商品)、文档词集匹配。

3、总结

方法 优势 劣势 典型场景
余弦相似度 方向敏感,长度无关 忽略大小差异 文本、嵌入向量
欧氏距离 几何直观 高维失效 低维空间聚类
Jaccard 集合操作高效 忽略频率 用户行为交集
马氏距离 处理相关性 计算复杂 多元异常检测
预训练模型 语义理解强 资源消耗大 跨模态语义匹配
点积 计算高效 受向量长度影响大,通常需归一化 快速初筛和结合长度信息的相似度
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐