首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AI综述专栏| 大数据近似最近邻搜索哈希方法综述(上)(附PDF下载)

最后,通过比较查询点二进制码和数据库中点二进制码之间的汉明距离即可将数据库中的点按照汉明距离由小到大排序。 ? 图1.2 哈希近似最近邻搜索框架 下面我们从不同的角度将哈希方法分类。...哈希排序可以分为两类:加权汉明距离和非对称距离。具体分类细节如图1.3所示。 ?...即原始空间中相似(任意相似度:欧氏距离、核距离、语义相似度等)的点编码后二进制编码间的汉明距离要短; c、效率高。即无论是在训练时学习哈希编码的参数,还是对新的输入点编码,速度都要快。...,哈希码之间的汉明距离是否会收敛于原始空间的相似度表示是不明确的;3) 在实际应用中,投影后的数据点的信息往往只分布在前几个维度上,导致SH 只在较短码长的二进制码上性能较好。...,组成的数据库矩阵为 ? 。哈希方法的目标即找到一个投影矩阵 ? ,其中 c 表示二进制码长度。对于 ? ,哈希函数定义为: ? 其中 ? 是矩阵 P 的一列, ?

1.5K30

AI综述专栏| 大数据近似最近邻搜索哈希方法综述(下)

核函数包括线性核函数,多项式核函数,高斯核函数等。其中,高斯核函数是最常见的,也叫做径向基函数,它是一种沿着径向对称的标量函数,定义如下: ? 其中,xc 是核函数的中心, ? 是宽度系数。...3 哈希排序方法简介 哈希排序指的是在哈希过程的最后一步,对数据库中所有点哈希得到的二进制码的排序问题。汉明距离是最常用的二进制码排序标准,但它无法对那些与查询点具有相同汉明距离的二进制码排序。...如图3.1所示,假设数据库中的点都是二维的,红色叉表示查询点并被编码为“11”,绿色圆点表示查询点的真实 -最近邻。很显然,所有编码为“01”和“10”的点都与查询点具有相同的汉明距离。...几种代表性的哈希排序方法分类详见表3.1,其中标号为[1]中参考文献。 3.1 加权汉明距离 加权汉明距离的权重一般由两部分组成:Offline权重和Online权重。...在存储上,仅仅多额外存储一个查询点的非二进制化向量与检索过程的整个存储量级相比是可以忽略的。 非对称距离的实数量级与汉明距离的整数量级相比,可以对距离空间进行更浓密的划分。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kaggle知识点:文本相似度计算方法

    距离衡量的是指元素之间的不相似性 (Dissimilarity),通常情况下我们可以利用一个距离函数定义集合 X 上元素间的距离,即: ? Jaccard 系数 ?...不同于 Jaccard 系数,Dice 系数的差异函数 ? 并不是一个合适的距离度量,因为其并不满足距离函数的三角不等式。 Tversky 系数 ? 其中, ? 表示集合的相对补集。...汉明距离 汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。...例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3。...对于依存图,我们可以利用三元组 ? 表示任意一个依存关系,然后通过统计计算两个文本的依存图的三元组集合之间的相似度来评价句法层的相似度。

    2.9K10

    全面归纳距离和相似度方法(7种)

    ) 附、常用的度量方法汇总 一、闵氏距离(Distance)类 闵氏距离(Minkowski Distance) 对于点x=(x1,x2...xn) 与点y=(y1,y2...yn) , 闵氏距离可以用下式表示...: 闵氏距离是对多个距离度量公式的概括性的表述,p=1退化为曼哈顿距离;p=2退化为欧氏距离;切比雪夫距离是闵氏距离取极限的形式。...汉明距离 汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。...例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3 带权重的字符串距离 对于字符串距离来说,不同字符所占的份量是不一样的。...基于深度度量学习:利用深度网络学习一个表示(Embedding),采用各种采样方法(Sampling),比如成对/三元组训练样本(Triplet),计算一个带有Margin/最近邻等分类或聚类算法的损失

    94650

    彻底弄懂LSH之simHash算法

    在文章的实验中,simhash采用64位的哈希函数。在80亿网页规模下汉明距离=3刚好合适。...总的思想:先要把检索的集合缩小,然后在小集合中检索f-d’位的海明距离 按照例子,80亿网页 有2^34 个,那么理论上34位就能表示完80亿不重复的指纹。...我们假设最前的34位的表示完了80亿指纹,假设指纹在前30位是一样的,那么后面4位还可以表示24个, 只需要逐一比较这16个指纹是否于待测指纹汉明距离小于3。   ...最坏情况是其中3份可能有1位汉明距离差异为1。   ...算法的描述如下:   1)先复制原表T为Tt份:T1,T2,….Tt   2)每个Ti都关联一个pi和一个πi,其中pi是一个整数, πi是一个置换函数,负责把pi个bit位换到高位上。

    2K20

    LeetCode 477.汉明距离之和 - JavaScript

    题目描述:计算一个数组中,任意两个数之间汉明距离的总和。 注意: 数组中元素的范围为从 0 到 10^9。 数组的长度不超过 10^4。...题目分析 如果想了解汉明距离的相关知识,请参考:LeetCode 461.汉明距离。...里面介绍了两种做法: 使用掩码 使用布赖恩·克尼根算法 但本题要求计算数组中任何两数之间的汉明距离,因此若是两两组合,直接计算汉明距离,最后再统计总和,那么时间复杂度是O(k*N^2),其中 k 是位数...解法:按位统计 按位统计的算法流程是: 准备数组 res,res[i]代表第 i 位为 1 的数字的数目 循环遍历 nums,对每一位 i 更新对应的 res[i] 统计所有位的汉明距离的和,其中第 i...位上的汉明距离之和是:res[i] * (nums.length - res[i]) 注意:根据题目要求,数字的大小不超过 10^9,所以只需要用 30 个二进制表示数字即可。

    64720

    Machine Learning -- 11种相似性度量方法(总结版)

    (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一个M×N的矩阵,则pdist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。...汉明距离(Hamming distance) (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离   Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。...例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离 X = [0 0 ; 1 0 ; 0 2]; D = PDIST(X, 'hamming') 结果: D = 0.5000

    6.7K70

    机器学习的相似性度量

    b(x21,x22,…,x2n)间的欧氏距离:   也可以用表示成向量运算的形式: (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。...汉明距离(Hamming distance) (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离   Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。...而样本A与B的杰卡德距离表示为: (4)Matlab 计算杰卡德距离 Matlab的pdist函数定义的杰卡德距离跟我这里的定义有一些差别,Matlab中将其定义为不同的维度的个数占“非全零维度”的比例

    1.5K80

    在机器学习中用到了各式各样的距离

    (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一个M×N的矩阵,则pdist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。...(1)闵氏距离的定义 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为: ? 其中p是一个变参数。...汉明距离(Hammingdistance) (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离   Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。

    1.1K60

    机器学习中的相似性度量总结

    核函数的含义是两个输入变量的相似度,描述相似度的方法有很多种,就本人的项目经验来说用的最多的是相关系数和欧氏距离。本文对机器学习中常用的相似性度量进行了总结。...汉明距离(Hamming distance) ---- (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离   Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。...例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离 X = [0 0 ; 1 0 ; 0 2]; D = PDIST(X, 'hamming') 结果: D = 0.5000

    1.5K20

    几种距离的集中比较

    利用两个向量的余弦值,由于在0到90度之间,的值为减函数,所以当cos(theta)值越大,theta值越小。体现的是两个向量方向上的差异。对数值绝对值不敏感。 ? ?...明可夫斯基距离(Minkowski Distance) 明氏距离是欧氏距离的推广,是对多个距离度量公式的概括性的表述。公式如下: p可以取任意正整数。 ?...哈明距离(汉明距离) 汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。...对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。 比如: 1011101 与 1001001 之间的汉明距离是 2。...2143896 与 2233796 之间的汉明距离是 3。 "toned" 与 "roses" 之间的汉明距离是 3。 这种方法往往可以进行一定的模板匹配,计算与模板的接近程度。

    1.4K70

    【机器学习基础】常见二分类损失函数、距离度量的Python实现

    ,驾驶距离是两点间的直线距离吗?...他的平坦空间(即假设没有重力,曲率为零的空间)的概念以及表示为特殊距离量的几何学是与狭义相对论的要求相一致的。闵可夫斯基空间不同于牛顿力学的平坦空间。...def minkowski(x, y, p): return np.sum(np.abs(x - y) ** p) ** (1 / p) 5.汉明距离(Hamming distance)...汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以 表示两个字 , 之间的汉明距离。...对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。 def hamming(x, y): return np.sum(x !

    1.3K20

    【机器学习基础】常见二分类损失函数、距离度量的Python实现

    ,驾驶距离是两点间的直线距离吗?...他的平坦空间(即假设没有重力,曲率为零的空间)的概念以及表示为特殊距离量的几何学是与狭义相对论的要求相一致的。闵可夫斯基空间不同于牛顿力学的平坦空间。...def minkowski(x, y, p): return np.sum(np.abs(x - y) ** p) ** (1 / p) 5.汉明距离(Hamming distance)...汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以 表示两个字 , 之间的汉明距离。...对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。 def hamming(x, y): return np.sum(x !

    1.3K30

    机器学习中的相似性度量总结

    )与 b(x21,x22,…,x2n)间的欧氏距离:   也可以用表示成向量运算的形式:  (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。...汉明距离(Hamming distance) ---- (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离 Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。...而样本A与B的杰卡德距离表示为: (4)Matlab 计算杰卡德距离 Matlab的pdist函数定义的杰卡德距离跟我这里的定义有一些差别,Matlab中将其定义为不同的维度的个数占“非全零维度”的比例

    64720

    机器学习中应用到的各种距离介绍(附上Matlab代码)

    (4)Matlab计算欧氏距离 Matlab计算距离主要使用pdist函数。若X是一个M×N的矩阵,则pdist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。...汉明距离(Hammingdistance) (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2)Matlab计算汉明距离   Matlab中2个向量之间的汉明距离的定义为2个向量不同的分量所占的百分比。...例子:计算向量(0,0)、(1,0)、(0,2)两两间的汉明距离 X = [0 0 ; 1 0 ; 0 2]; D = PDIST(X, 'hamming') 结果: D= 0.5000

    4.5K30

    位运算总结

    汉明重量 2. 汉明距离 3. Brian Kernighan 算法 4. lowbit操作 一、位运算基本概念 1. 汉明重量   汉明重量是一串符号中非零符号的个数。...因此它等同于同样长度的全零符号串的汉明距离。在最为常见的数据位符号串中,它是1的个数。 2....汉明距离   汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。...对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。 3. Brian Kernighan 算法   用于去掉二进制数字的最后面的一位1,也常用于计算汉明权重。   ...更多算法小技巧分享,请关注小博的博客"划水大圣"~

    42610

    |概率蛋白质序列模型的生成能力

    对GPSM生成能力更直接的测试是比较生成序列与数据集MSA的统计特性。本文测试了三个标准度量:成对协方差相关性,汉明距离分布和统计能量相关性。...图1 试验流程图 成对协方差相关性 MSA中氨基酸残基对的成对协方差得分定义为,其中是MSA中i、j位置氨基酸组合α、β的频率,和表示位置i和j处的单个氨基酸频率。...汉明距离分布 两个蛋白质序列之间的汉明距离表示它们之间不同的氨基酸的数量,作者通过比较所有序列对得到一个MSA的分布。对每个GPSM方法,观察其成对汉明距离分布,与目标概率分布进行比较。...图4 汉明距离测试结果 图4表明Indep在汉明距离度量上的表现,比在其他三个度量上都更接近Mi3和VAE,并且汉明距离度量不能很好地区分Mi3和VAE,作者认为对于GPMS,再现汉明距离分布比再现高阶协变更容易...由于其对四种模型在更高阶上的生成能力的区分远不如,所以作者认为汉明距离分布不是一个好的度量标准。 统计能量相关性 用来评估生成能力的第四个度量是数据集中单个序列的统计能量E(S)。其中。

    59520

    用Python实现常见的“距离”

    其中p是一个变参数。 当p=1时,就是曼哈顿距离 当p=2时,就是欧氏距离 当p→∞时,就是切比雪夫距离 根据变参数的不同,闵氏距离可以表示一类的距离。...汉明距离(Hamming distance) (1)汉明距离的定义 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。...例如字符串“1111”与“1001”之间的汉明距离为2。 应用:信息编码(为了增强容错性,应使得编码间的最小汉明距离尽可能大)。...(2) python实现汉明距离: v1=np.array([1,1,0,1,0,1,0,0,1]) v2=np.array([0,1,1,0,0,0,1,1,1]) smstr=np.nonzero(...(2) 杰卡德距离 与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离可用如下公式表示: ?

    1.5K20
    领券