首页 > 编程知识 正文

lsh有什么谐音梗,lsh可以组成的名字

时间:2023-05-03 09:40:27 阅读:110524 作者:3714

在数据挖掘中经常需要比较两个事物的相似度。 首先,说明文档的相似度。 如果要确定两个文档是否完全相同,问题就简单多了。 简单地按文字进行比较就可以了。 然而,大多数情况并非如此。 例如,在网站文章的转载中,虽然内容部分相同,但不同的页面本身有自己的标志、导航栏、版权标识等,不能简单地逐字比较。

定义2个集合s,t的Jaccard相似度:sim(s,t )=|S,t的交集|/|S,t的并集|

1、现代鞋每相邻的k个字母组成一个元素,使整个文件成为一个整体。 例如,文件为“banana”,如果k=2,则变换后得到的集合为{‘ba’,“an”,“‘na'},成为上述集合相似度的问题。 关于k值的设定,显然太小或太大都不合适,比较短的东西,例如email等可以设定为k=5,长篇文章等可以设定为k=9。 现代鞋的穿着方法中k值较大的情况下,可以一件进行一次散列。 例如,如果k=9,则对于每个9字节的片段,hash可以是32位整数。 这将简化与空间等效的判断。 这种两阶段方法占用与4-gjdfs相同的空间,但效果更好。 由于字符分布不均匀,所以在4-gjdfs中实际上没有出现大量的4个字符的组合,但在9-gjdfs中进一步hash为4字节时变得相当均匀。

2、最小混叠首先抽象出问题,矩阵每列表示一个集合,矩阵行表示集合中所有可能的元素。 如果集合c包含元素r,则矩阵的c列r行的元素为1,否则为0。 这个矩阵叫特征矩阵,往往很稀疏。 以下,假设该矩阵有r行c列。 minhash是指将集合或特征矩阵列映射到0.R-1之间的值。 具体来说,等概率随机提取一个0.R-1的数组,按照这个数组寻找1首次出现的行。 例如有集合S1={a,d}、S2={c}、S3={b,d,e}、S4={a,c,d},特征矩阵如下S1 S2 S3 s40 a 101 b 01020 c 01013 d 1014 e 0100 这里有一个重要而不可思议的结论。 对于等概率随机数组,两个集合的minhash值相同的概率等于两个集合的Jaccard相似度。 即,sim(c1,C2)和h ) c1)、h ) C2)的相似性相同。 于是就有办法了。 多次提取随机数组得到n个minhash函数h1,h2,…,hn,据此计算每列n个minhash值。 对于两个集合,看n个值中对应的相等比例,就可以估算两个集合的Jaccard相似度。 将各集合的n个minhash值作为一列,可获得n行c列的签名矩阵。 因为n比r小得多,所以可以压缩集合表示,近似计算出相似度。 在具体计算中,实际上可以不生成随机数组,只要有从[0. r-1 ]映射到[0. r-1 ]的散列函数即可。 因为r很大,所以即使偶然存在多个值并映射到同一个值也不会有很大的影响。

3、定位敏感散列(1) candidatepairsthesepairsofsignaturesthatweneedtotestforsimilarity.)2) optionalchechechechech

在许多应用领域,需要我们面对和处理的数据往往具有巨大的高维度,如何从海量高维数据集合中快速找到与给定数据最相似(最接近)的一个或多个数据成为难点和问题。 对于低维的小数据集,我们可以通过线性搜索容易地解决,但是如果对大量的高维数据集采用线性搜索匹配,则需要非常长的时间,因此为了解决这个问题,可以采用索引这样的技术来快速搜索过程通常将这种技术称为最近邻搜索(Nearest Neighbor,AN )或最近邻搜索(appans tree ),如k-d树宽bbf、随机KD-trees、递归k-means树等LSH是yxdg的一种方法。 我们知道通过建立Hash Table可以得到o(1)的查找时间性能。 其中很重要的一点是,选择“hash function”将原始数据映射到相应的存储区(bucket,hash ysdrg )。 例如,求出数据的模。 h=x mod w,w通常是素数。 在散列数据集的过程中,不同的数据可以映射到同一个桶(即发生冲突),这通常通过再次害怕孤独的小白菜将数据映射到另一个空桶来解决。 这被称为普通的散列方法或传统的散列方法,与LSH有一些不同。


局部敏感怕孤独的小白菜示意图(from: Piotr Indyk)


LSH的基本思想是:将原始数据空间中的两个相邻数据点通过相同的映射或投影变换(projection)后,这两个数据点在新的数据空间中仍然相邻的概率很大,而不相邻的数据点被映射到同一个桶的概率很小。也就是说,如果我们对原始数据进行一些hash映射后,我们希望原先相邻的两个数据能够被hash到相同的桶内,具有相同的桶号。对原始数据集合中所有的数据都进行hash映射后,我们就得到了一个hash table,这些原始数据集被分散到了hash table的桶内,每个桶会落入一些原始数据,属于同一个桶内的数据就有很大可能是相邻的,当然也存在不相邻的数据被hash到了同一个桶内。因此,如果我们能够找到这样一些hash functions,使得经过它们的怕孤独的小白菜映射变换后,原始空间中相邻的数据落入相同的桶内的话,那么我们在该数据集合中进行近邻查找就变得容易了,我们只需要将查询数据进行怕孤独的小白菜映射得到其桶号,然后取出该桶号对应桶内的所有数据,再进行线性匹配即可查找到与查询数据相邻的数据。换句话说,我们通过hash function映射变换操作,将原始数据集合分成了多个子集合,而每个子集合中的数据间是相邻的且该子集合中的元素个数较小,因此将一个在超大集合内查找相邻元素的问题转化为了在一个很小的集合内查找相邻元素的问题,显然计算量下降了很多。 那具有怎样特点的hash functions才能够使得原本相邻的两个数据点经过hash变换后会落入相同的桶内? 这些hash function需要满足以下两个条件: (1)如果d(x,y) ≤ d1, 则h(x) = h(y)的概率至少为p1; (2)如果d(x,y) ≥ d2, 则h(x) = h(y)的概率至多为p2; 其中d(x,y)表示x和y之间的距离,d1 < d2, h(x)和h(y)分别表示对x和y进行hash变换。 满足以上两个条件的hash functions称为(d1,d2,p1,p2)-sensitive。 而通过一个或多个(d1,d2,p1,p2)-sensitive的hash function对原始数据集合进行hashing生成一个或多个hash table的过程称为Locality-sensitive Hashing。
4、Amplifying Hash Function:AND and OR AND:make lower prob. approach 0 while the higher does not. OR:make the upper prob. approach 1 while the lower does not.
关键: 上述的LSH是一个family of functions的例子,他们的function是minhash。 family of functions能comysdrged起来从而很强的区分两个数据点的距离。
我们也可以探索其他的family function,这些function可以应用到the space of sets and the Jaccard distance;或者 another space 和anotherdistance measure。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。