衡量嵌入的相似度

现在,您已经获得了任意两对示例的嵌入。监督式相似性度量会接受这些嵌入,并返回一个数值来衡量它们的相似性。请注意,嵌入是数字向量。如需查找两个向量 \(A = [a_1,a_2,...,a_n]\) 和 \(B = [b_1,b_2,...,b_n]\)之间的相似度,请选择以下三种相似度衡量方法之一:

测量含义公式 随着相似度的增加,此衡量指标...
欧几里得距离向量端点之间的距离 \(\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+...+(a_N-b_N)^2}\) 减少
余弦向量 \(\theta\) 之间的夹角余弦 \(\frac{a^T b}{|a| \cdot |b|}\) 增加
点积余弦值乘以两个向量的长度 \(a_1b_1+a_2b_2+...+a_nb_n\) \(=|a||b|cos(\theta)\) 增加。也会随着向量的长度而增加。

选择相似度度量

与余弦不同,点积与矢量长度成正比。这一点很重要,因为在训练集中出现频率非常高的示例(例如热门的 YouTube 视频)往往具有长度较大的嵌入向量。 如果您想抓住热门趋势,请选择点产品。不过,这样做有风险,因为热门示例可能会导致相似性指标出现偏差。为了平衡这种偏差,您可以将长度乘方 \(\alpha\ < 1\) ,以 \(|a|^{\alpha}|b|^{\alpha}\cos(\theta)\)的形式计算点积。

为了更好地了解矢量长度如何改变相似度衡量标准,请将矢量长度归一化为 1,并注意这三个衡量标准会变为彼此成比例。

证明:相似度度量的比例关系
将 a 和 b 标准化为 \(||a||=1\) 和 \(||b||=1\)后,这三个测量结果之间的关系如下:
  • 欧几里得距离 = \(||a-b|| = \sqrt{||a||^2 + ||b||^2 - 2a^{T}b} = \sqrt{2-2\cos(\theta_{ab})}\)。
  • 点积 = \( |a||b| \cos(\theta_{ab}) = 1\cdot1\cdot \cos(\theta_{ab}) = cos(\theta_{ab})\)。
  • 余弦 = \(\cos(\theta_{ab})\)。
因此,这三个相似度衡量标准是等效的,因为它们与 \(cos(\theta_{ab})\)成正比。

相似度度量简介

相似度衡量方法用于量化一对示例相对于其他示例对的相似度。下面对手动和监督两种类型进行了比较:

类型如何创建适用场景影响
手动手动组合地图项数据。 数据集较小,且特征易于组合。 深入了解相似度计算结果。如果地图项数据发生变化,您必须手动更新相似度衡量标准。
受监管测量由监督式 DNN 生成的嵌入之间的距离。 包含难以组合的特征的大型数据集。 无法深入了解结果。但是,DNN 可以自动适应不断变化的特征数据。