相似度计算的核心思想是,将对象(物品、用户、文本、图像等)量化为数学上可计算的形式(通常是向量)然后定义一个度量函数,来计算两个向量之间的距离或相似程度

星博讯 AI基础认知 1

核心步骤

a. 特征表示 将现实世界中的对象转化为计算机可以处理的数学对象(通常是向量或集合)。

相似度计算的核心思想是,将对象(物品、用户、文本、图像等)量化为数学上可计算的形式(通常是向量)然后定义一个度量函数,来计算两个向量之间的距离或相似程度-第1张图片-星博讯网络科技知识-SEO优化技巧|AI知识科普|互联网行业干货大全

  • 示例1(用户画像):用户A = [年龄: 25, 对科技的喜爱度: 9, 对文艺的喜爱度: 3] -> 向量 [25, 9, 3]
  • 示例2(文本):将句子“我爱人工智能”通过词袋模型或词向量模型转化为一个高维向量。
  • 示例3(物品):电影《星际穿越》 = [科幻: 0.9, 爱情: 0.1, 冒险: 0.8, 诺兰导演: 1]

b. 选择度量方法 根据数据的类型(连续值、二进制、集合、序列)和业务需求,选择合适的相似度/距离度量公式。

c. 计算与解释 应用公式进行计算,得到一个数值,这个数值的大小直接或间接地反映了相似度(数值越大越相似,或距离越小越相似)。

主要度量方法(原理与公式)

根据数据类型,主要分为以下几类:

A. 针对数值型向量(最常见)

假设有两个n维向量 A = [a₁, a₂, ..., aₙ] 和 B = [b₁, b₂, ..., bₙ]。

  1. 欧几里得距离

    • 原理:两点在空间中的直线距离,最直观的“距离”概念。
    • 公式d = √(Σ(aᵢ - bᵢ)²)
    • 特点:各维度贡献平等,受量纲影响大。距离越小越相似
    • 适用:空间坐标、物理测量等。
  2. 曼哈顿距离

    • 原理:在网格状道路(如曼哈顿街区)上行走的距离,是各维度绝对差之和。
    • 公式d = Σ|aᵢ - bᵢ|
    • 特点:对异常值不如欧氏距离敏感。
    • 适用:城市交通规划、某些稀疏特征计算。
  3. 余弦相似度

    • 原理:衡量两个向量在方向上的差异,而忽略其长度(模),关注的是角度。
    • 公式cos(θ) = (A·B) / (||A|| * ||B||)A·B 是点积,||A|| 是模长。
    • 范围:[-1, 1],通常为[0, 1],值越大越相似
    • 适用文本分析(TF-IDF向量)、推荐系统,非常适合高维稀疏向量,因为长度不重要,方向(特征的比例)才重要。
  4. 皮尔逊相关系数

    • 原理:衡量两个变量之间的线性相关程度,本质上是将两个向量各自减去均值后,再计算它们的余弦相似度
    • 公式r = Σ[(aᵢ - ā)(bᵢ - b̄)] / √[Σ(aᵢ - ā)² * Σ(bᵢ - b̄)²]
    • 范围:[-1, 1]。值越大,线性正相关性越强
    • 适用:评价用户的评分偏好(消除用户打分严格/宽松的偏差)。

B. 针对集合或二进制向量

假设有两个集合 X 和 Y。

  1. Jaccard 相似系数

    • 原理:衡量两个集合的相似度,即交集大小与并集大小的比值。
    • 公式J = |X ∩ Y| / |X ∪ Y|
    • 范围:[0, 1]。值越大越相似
    • 适用:计算用户兴趣集合(如购买的商品ID集合)、文档的单词集合、社交网络的好友集合。
  2. 汉明距离

    • 原理:两个等长字符串(或二进制向量)对应位置不同字符的个数。
    • 示例“10101”“00110” 的汉明距离是 3(第1、4、5位不同)。
    • 适用:信息编码、纠错、简单的分类对比。

C. 针对序列(如字符串、DNA序列)

  1. 编辑距离
    • 原理:将一个字符串转换成另一个字符串所需的最少单字符编辑操作次数(插入、删除、替换)。
    • 算法:通常用动态规划求解(Levenshtein距离)。
    • 适用:拼写检查、DNA序列比对、自然语言处理中的模糊匹配。

关键考量与选择原则

选择哪种方法,取决于:

  1. 数据的尺度与分布

    • 问题:如果特征量纲不同(如年龄[0-100]和收入[0-100000]),欧氏距离会被收入主导。
    • 解决:必须进行数据标准化(如Z-score标准化、最大最小值归一化),使各维度具有可比性。
  2. 数据的稀疏性

    • 对于高维稀疏向量(如用户-物品矩阵、TF-IDF矩阵),余弦相似度通常是首选,因为它忽略0值,只关注共现的特征。
  3. 语义重点

    • 关注绝对差异(如价格差):用欧氏距离
    • 关注相对模式/趋势(如用户品味的相似):用余弦相似度皮尔逊相关系数
    • 关注是否拥有共同项(如购物车商品):用Jaccard相似度
  4. 计算效率

    • 在高维场景下,某些距离计算成本高,工业界常采用局部敏感哈希 等近似算法来加速海量数据的相似度搜索。

实际应用示例

  • 推荐系统
    • 用户协同过滤:计算用户之间的相似度(常用皮尔逊相关系数,消除打分偏差)。
    • 物品协同过滤:计算物品之间的相似度(常用余弦相似度,基于被喜欢/购买的用户向量)。
  • 搜索引擎/文本分类
    • 将文档表示为TF-IDF向量或词嵌入向量,用余弦相似度计算查询与文档、或文档与文档之间的相似度。
  • 图像检索
    • 使用深度网络提取图像的特征向量,然后用欧氏距离余弦相似度在特征空间中找到最相似的图片。
  • 聚类分析

    K-Means等聚类算法的核心就是不断计算数据点到中心点的距离(常用欧氏距离)。

相似度计算的原理是 “量化 -> 度量”,其核心挑战和艺术在于:

  1. 如何更好地将现实对象转化为有意义的特征向量(特征工程、嵌入学习)。
  2. 根据数据和任务目标,选择或设计最合适的度量方法

理解不同度量方法的数学本质和适用场景,是正确应用相似度计算的关键。

标签: 相似度计算 向量化

抱歉,评论功能暂时关闭!

微信咨询Xboxun188
QQ:1320815949
在线时间
10:00 ~ 2:00