距离函数的等价性

ANN应用场景广泛,如搜索、推荐,ANN在使用时对两个样本或向量之间的相似度定义有不同方式,相似度使用距离来衡量,距离越大则相似度越小,距离越小则相似度越大。文本语料上训练出来的特征向量习惯采用余弦距离,图片或视频上提取的特征向量一般采用欧氏距离。此外,还有特殊场景下定制的各种距离函数,此处介绍一个在搜索排序场景中使用的angular相似度度量函数,其可有效放大被召回的头部样本点之间的差异。

 

上图左图所示,angular similarity是特殊场景中定制的距离度量函数。

有一个结论是:归一化向量之间的余弦距离可以跟欧氏距离进行直接转换,即euclidean_distance^2 = 1 - 2 * cosine_distance。所以很多代码在实现欧氏距离时先做归一化再直接相乘。

ANN召回场景下,本文要说的是:

1)即使不做归一化,也可以直接让欧氏距离与余弦距离建立等价关系;

2)任意向量内积的结果可与欧氏距离建立等价关系。

ANN中按欧氏距离计算出的近似K近邻点与按内积或余弦距离计算出来的近似K近邻点结果相同,所要做的仅仅是对所有待检索的向量做预处理即可,找出最大的常数φ,然后构造一个维度+1的新向量。

上图来自论文《Speeding Up the Xbox Recommender System Using a Euclidean Transformation for Inner-Product Spaces》。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值