日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

位姿检索PoseRecognition:LSH算法.p稳定哈希

發布時間:2023/12/31 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位姿检索PoseRecognition:LSH算法.p稳定哈希 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? 位姿檢索使用了LSH方法,而不使用PNP方法,是有一定的來由的。主要的工作會轉移到特征提取和檢索的算法上面來,有得必有失。因此,放棄了解析的方法之后,又放棄了優化的方法,最后陷入了檢索的汪洋大海。

0:轉自wiki:http://en.wikipedia.org/wiki/Locality_sensitive_hashing

以下參考資料僅供參考:LSH理解及相關資料:http://s99f.blog.163.com/blog/static/35118365201262691335382/

有一篇代碼的實現:http://blog.sina.com.cn/s/blog_ad9597a30101o0ix.html


一:局部敏感哈希—原始分解

???????? 原文鏈接:http://www.jiahenglu.net/NSFC/LSH.html

LSH(Location Sensitive Hash),即位置敏感哈希函數。為保序哈希,也就是散列前的相似點經過哈希之后,也能夠在一定程度上相似,并且具有一定的概率保證。

形式化定義:

??????? 對于任意q,p屬于S,若從集合S到U的函數族H={h1,h2...hn}對距離函數D(,),如歐式距離、曼哈頓距離等等,滿足條件:

???? 則稱D(,)是位置敏感的。

如下圖,空間上的點經位置敏感哈希函數散列之后,對于q,其rNN有可能散列到同一個桶(如第一個桶),即散列到第一個桶的概率較大,會大于某一個概率閾值p1;而其(1+emxilong)rNN之外的對象則不太可能散列到第一個桶,即散列到第一個桶的概率很小,會小于某個閾值p2.

????

LSH的作用

◆高維下近似查詢

??????? 相似性檢索在各種領域特別是在視頻、音頻、圖像、文本等含有豐富特征信息領域中的應用變得越來越重要。豐富的特征信息一般用高維向量表示,由此相似性檢索一般通過K近鄰或近似近鄰查詢來實現。一個理想的相似性檢索一般需要滿足以下四個條件:

1. 高準確性。即返回的結果和線性查找的結果接近。

2. 空間復雜度低。即占用內存空間少。理想狀態下,空間復雜度隨數據集呈線性增長,但不會遠大于數據集的大小。

3. 時間復雜度低。檢索的時間復雜度最好為O(1)或O(logN)。

4. 支持高維度。能夠較靈活地支持高維數據的檢索。

?????? 傳統主要方法是基于空間劃分的算法——tree類似算法,如R-tree,Kd-tree,SR-tree。這種算法返回的結果是精確的,但是這種算法在高維數據集上的時間效率并不高。實驗[1]指出維度高于10之后,基于空間劃分的算法時間復雜度反而不如線性查找。LSH方法能夠在保證一定程度上的準確性的前提下,時間和空間復雜度得到降低,并且能夠很好地支持高維數據的檢索。

◆分類和聚類

?????? 根據LSH的特性,即可將相近(相似)的對象散列到同一個桶之中,則可以對圖像、音視頻、文本等豐富的高維數據進行分類或聚類。

◆數據壓縮。如廣泛地應用于信號處理及數據壓縮等領域的Vector Quantization量子化技術。

總而言之,哪兒需要近似kNN查詢,哪兒都能用上LSH.

[1] Weber R, Schek H, Blott S. A quantitative analysis and performance study for similarity search methods in high dimensional spaces Proc.of the 24th Intl.Conf.on Very Large Data Bases (VLDB).1998:194-205

LSH的經典論文作者:http://www.informatik.uni-trier.de/~ley/pers/hd/m/Ma:Yi

http://research.microsoft.com/en-us/people/mayi/publications.aspx

32.Segmentation of Natural Images by Texture and Boundary Compression,

Hossein Mobahi, Shankar Rao, Allen Yang, Shankar Sastry, andYi Ma, submitted to the International Journal of Computer Vision (IJCV), March 2010.

X: Compact Projection: Simple and Efficient Near Neighbor Search with Practical Memory Requirements


二:方法:Methods

漢明Bit重采樣:Bit sampling for Hamming distance(original hash )

One of the easiest ways to construct an LSH family is by bit sampling.[3] This approach works for the Hamming distance over d-dimensional vectors . Here, the family of hash functions is simply the family of all the projections of points on one of the coordinates, i.e.,? 必須把特征轉化到漢明空間,利用漢明距離;, where is theth coordinate of. A random function from simply selects a random bit from the input point. This family has the following parameters:,.

Min-wise independent permutations

Main article:MinHash?? :最小hash!

Suppose is composed of subsets of some ground set of enumerable items and the similarity function of interest is theJaccard index. If is a permutation on the indices of, for let. Each possible choice of defines a single hash function mapping input sets to integers.

Define the function family to be the set of all such functions and let be the uniform distribution. Given two sets the event that corresponds exactly to the event that the minimizer of lies inside. As was chosen uniformly at random, and define an LSH scheme for the Jaccard index. ? 集合的 jaccard距離:一般用來判定文本相似度;

Because the symmetric group on n elements has size n!, choosing a truly random permutation from the full symmetric group is infeasible for even moderately sized n. Because of this fact, there has been significant work on finding a family of permutations that is "min-wise independent" - a permutation family for which each element of the domain has equal probability of being the minimum under a randomly chosen. It has been established that a min-wise independent family of permutations is at least of size.[9] and that this boundary is tight[10]

Because min-wise independent families are too big for practical applications, two variant notions of min-wise independence are introduced: restricted min-wise independent permutations families, and approximate min-wise independent families. Restricted min-wise independence is the min-wise independence property restricted to certain sets of cardinality at most k.[11] Approximate min-wise independence differs from the property by at most a fixed .[12]

Nilsimsa Hash

Main article:Nilsimsa Hash

Nilsimsa is ananti-spam focused locality-sensitive hashing algorithm.[13] The goal of Nilsimsa is to generate a hash digest of an email message such that the digests of two similar messages are similar to each other. Nilsimsa satisfies three requirements outlined by the paper's authors:

  • The digest identifying each message should not vary signicantly (sic) for changes that can be produced automatically.
  • The encoding must be robust against intentional attacks.
  • The encoding should support an extremely low risk of false positives.
  • Random projection

    The random projection method of LSH[4] (termed arccos by Andoni and Indyk [14]) is designed to approximate thecosine distance between vectors. The basic idea of this technique is to choose a randomhyperplane (defined by a normal unit vector) at the outset and use the hyperplane to hash input vectors.

    Given an input vector and a hyperplane defined by, we let. That is, depending on which side of the hyperplane lies.

    Each possible choice of defines a single function. Let be the set of all such functions and let be the uniform distribution once again. It is not difficult to prove that, for two vectors,, where is the angle between and. is closely related to.

    In this instance hashing produces only a single bit. Two vectors' bits match with probability proportional to the cosine of the angle between them.


    Stable distributions:基于p穩定分布的hash.

    ????? The hash function[15] maps ad dimensional vector onto a set of integers映射到一個數軸線段區間的整數上. Each hash function in the family is indexed by a choice of random and where is ad dimensional vector with entries chosen independently from a stable distribution and is a real number chosen uniformly from the range [0,r]. For a fixed the hash function is given by.

    Other construction methods for hash functions have been proposed to better fit the data.[16] In particular k-means hash functions are better in practice than projection-based hash functions, but without any theoretical guarantee.



    三:基于p穩定分布的LSH

    原文鏈接:http://blog.sina.com.cn/s/blog_67914f2901019p3v.html

    ??????? LSH是用局部敏感的方法解決近似最近鄰搜索的問題。在原始的LSH方法中,通過將原始空間嵌入到Hamming空間中,將d維空間轉換成d'=Cd維的Hamming空間(C是指原始空間中點的坐標的最大值,具體情況參見上一部分中的第4節-算法步驟),使用(r,(1+e)r,1-r/d',1-(1+e)r/d')-敏感哈希函數來解決(r,e)-Neighbor問題。而后來提出的p-stableLSH算法中,不需要將原始空間嵌入到Hamming空間中,可以直接在歐幾里得空間下進行局部敏感哈希運算。

    1、背景介紹 ? ? p-stableLSH應用在d維lp-norm下的歐幾里得空間中,0<p<=2。p-stableLSH是LSH的進化版本,要解決的問題相同,而使用的方法和應用環境不同。因此,下面重點介紹p-stableLSH的應用環境,對于LSH的細節參見第一部分。 ? ? p-stableLSH使用的(R,cR,p1,p2)-敏感哈希中,c=1+e,并且不失一般性,設R=1。下面的工作主要是確定在1(即R)和c(即cR)下的p1與p2。 2、v概念解釋 ? ? p-stableLSH之所以會叫這個名字,是因為該算法應用到p-stabledistribution(p-穩定分布)的概念。下面給出的就是p-穩定分布的概念: ? ? Def 1 :一個分布D稱為p-穩定分布,如果對于任意n個實數v1,v2,…,vn和符合D分布的n個獨立同分布隨機變量X1,X2,…,Xn,都存在一個p>=0,使得變量Vi和? 其映射 具有相同的分布,此處X是一個符合D分布的隨機變量。 ??? p-穩定分布不是具體的分布,而是滿足某條件的分布族。當p=1時,代表是標準柯西分布,密度函數為?p(x) =(1/3.14)*(1/(1+x*x))????;當p=2時,代表是標準正態分布(高斯分布)。 ???? 重點:近鄰特性
    ?? ? p-stable分布有一個重要的應用,就是可以估計給定向量v在歐幾里得空間p-norm下長度,記為||v||p。方法是對于取定的d維向量v,從p-穩定分布中抽取d個隨機變量組成d維向量a,計算a與v的點積a.v(點積的概念是將向量對應位置的元素相乘后所有乘積之和),根據p-stable的定義,由于a.v=Add(Vi*Xi),因此a.v與||v||pX是同分布的(X是p-stable分布的一個隨機變量)。選取若干個向量a,計算多個a.v的值,稱為向量v的“概略(sketch)”,利用v的“sketch”可以用來估算||v||p的值。
    3、局部敏感哈希函數 ? ???在p-stableLSH中,av的點積a.v不用來估計||v||p的值,而是用來生成哈希函數族,且該哈希函數族是局部敏感的(即空間中距離較近的點映射后發生沖突的概率高,空間中距離較遠的點映射后發生沖突的概率低)。大體方法是將一條直線分成等長且長度為r的若干段,給映射到同一段的點賦予相同的hash值,映射到不同段的點賦予不同的hash值。(a.v1-a.v2)是映射后的距離,而其值與||v1-v2||pX同分布,因此,原始距離(||v1-v2||p)較小時,映射后的距離也小,因此使用點積來生成哈希函數族可以保持局部敏感性。 ? ? 哈希函數族的形式為:,其中b是(0,r)里的隨機數,r為直線上分段的段長。哈希族中的函數根據a和b的不同建立函數索引。 ? ?從哈希函數族中隨機選取一個哈希函數,現在估計兩個向量v1v2在該哈希函數下映射后發生沖突的概率。定義符合p-stable分布的隨機變量絕對值的概率密度函數為fp(t),設c=||v1-v2||p,則a.v1-a.v2與cX同分布,X為p-stable分布下的隨機變量。給出概率的計算公式如下,之后會有詳細分析。 ? ? ??
    P(C)=P(a,b)[ Ha,b(V1)= Ha,b(V2)]
    =積分(1/c *fp(t/c)(1/t/r))t

    ? ?因為|a.v1-a.v2|=||v1-v2||p|X|=c|X|,X為p-stable分布下的隨機變量,|X|的概率密度函數為fp(t)。若要向量v1v2映射后發生沖突,需要滿足如下條件:v1v2通過與a進行點積運算分別映射到一段長度為r線段后,再通過加b運算,能使映射后的點在同一條線段上。
    ? ?以下是對該概率公式正確性的證明 ? ?設點a.v1在點M處,點a.v2在點N處,此處設N點在靠近Q的位置。 (一)b對映射后點的影響 ? ? 在加b后,因為b>0,因此加b后點會后移。不失一般性,設r=1,則有以下兩種情況: ? ?(1)若映射到同一條線段上,不妨設為線段PQ(P為前端點,Q為后端點),設|MN|=t,|NQ|=m,則若要保證加b后點M和點N仍在同一條線段中,則要滿足0<b<=m(此時加b后M,N仍在線段PQ中),或者t+m<=b<r(此時加b后點M,N落入下一條線段中)。 ? ?? (2)若映射到不同線段上,但|MN|<r(此時必在相鄰線段中),不妨設相鄰兩條線段為PQ和QR,設|MQ|=m,則|QN|=t-m,則若要保證加b后點M和點N仍在同一條線段中,則要滿足m<b<r-(t-m)。 ? ??可以看到,不管是那種情況,b的取值范圍都是r-t,而b是(0,r)內的隨機數,因此取得滿足條件b的概率是(r-t)/r=1-t/r。現在只需討論向量v1和v2經過a的點積映射后的距離為t的概率(因為討論b是設|MN|=t,即b是在向量映射后距離為t的情況下討論的),即求|a.v1-a.v2|=||v1-v2||p|X|=c|X|=t的概率

    (二)點積對映射后點的影響: ? ???? ? 因為隨機變量|X|的概率密度函數為fp(x),而這里要求的是c|X|=t的概率。在這里有一個誤區,要注意的是,c|X|=t的概率并不是Pr(|X|=t/c)=fp(t/c),這是因為|X|是連續隨機變量, 不能通過某點的概率來生成其密度函數,雖然密度函數的意義是fp(x)=Pr(|X|=x),但反過來是不成立的。因此,要求c|X|=t的概率,只能通過密度函數的定義來解決。 ? ? ? ?? 密度函數的大致定義是:對于隨機變量X的分布函數F(x),如果存在函數f(x),使得F(x)是f(x)在全部定義域內(一般就可取負無窮到正無窮,隨機變量取不到的地方概率為0)的積分,那么f(x)就稱為X的概率密度函數。F(x)=Pr(X<x),f(x)=Pr(X=x)。這里再強調一遍,對于連續型隨機變量,第二個式子的反過來沒有意義,因為連續型隨機變量在某點的概率恒為0。而分布函數代表的是某段區域內概率之和,因此,第二個式子反過來推導是有意義的。 ? ? ? ? ?因此,要求c|X|=t的概率,可用如下方法:設隨機變量Y=c|X|,則原始問題轉化成求Y=t的概率。設|X|的分布函數為Fp(t),Y的分布函數為Gp(t),則Gp(t)=Pr(Y<t)=Pr(c|X|<t)=Pr(|X|<t/c)=Fp(t/c),因此,c|X|=t的概率為Gp'(t)=Fp'(t/c)=1/c*fp(t/c),這樣,經過點積映射后,兩向量在線上點的距離等于t的概率便求出來了。
    ? ?至此,我們得到了原始空間中的兩個向量經過點積運算后映射到線段上的距離為t的概率以及在距離為t的前提下加b后能落在同一線段上的概率。因為如果兩個向量經過點積后映射到線段上的距離大于r,且b是(0,r)上的隨機數,因此這種情況下不論b取多少,兩點都不可能落入同一條線段上。因此,t的取值范圍是(0,r)。綜上所述,該概率公式得證。
    在上概率公式中,對于給定的r,概率p(c)是關于c的單調遞減函數。即,c=||v1-v2||越大,映射后發生沖突的概率就越小,這符合局部敏感哈希函數的要求。因此,所選取的哈希函數族是局部敏感哈希函數族,并且是(r1,r2,p1,p2)-敏感的,其中p1=p(1),p2=p(c),r2/r1=c。c>1時,滿足p1>p2,r1<r2。
    以上就是對p-stableLSH的討論,它通過涉入穩定分布和點積的概念,實現了LSH算法在歐幾里得空間下的直接應用,而不需要嵌入Hamming空間。p-stableLSH中,度量是歐幾里得空間下的lp準則,即向量v1v2的距離定義為||v1-v2||p,然后通過設定的哈希函數將原始點映射到直線的等長線段上,每條線段便相當于一個哈希桶,與LSH方法類似,距離較近的點映射到同一哈希桶(線段)中的概率大,距離較遠的點映射到同一哈希桶中的概率小,正好符合局部敏感的定義。


    四:hash方法的使用過程:

    Amplification:詳細描述

    Given a -sensitive family, we can construct new families by either the AND-construction or OR-construction of.[1]

    To create an AND-construction, we define a new family of hash functions, where each function is constructed from random functions from. We then say that for a hash function, if and only if all for. Since the members of are independently chosen for any, is a-sensitive family.

    To create an OR-construction, we define a new family of hash functions, where each function is constructed from random functions from. We then say that for a hash function, if and only if for one or more values of. Since the members of are independently chosen for any, is a-sensitive family.? 重點是:如何構建hash函數族...


    LSH algorithm for nearest neighbor search:算法步驟

    One of the main applications of LSH is to provide a method for efficient approximatenearest neighbor search algorithms. Consider an LSH family . The algorithm has two main parameters: the width parameter and the number of hash tables.

    In the first step, we define a new family of hash functions, where each function is obtained by concatenating functions from, i.e.,. In other words, a random hash function is obtained by concatenating randomly chosen hash functions from. The algorithm then constructs hash tables, each corresponding to a different randomly chosen hash function.

    In the preprocessing step we hash all points from the data set into each of the hash tables. Given that the resulting hash tables have only non-zero entries, one can reduce the amount of memory used per each hash table to using standardhash functions.

    Given a query point , the algorithm iterates over the hash functions. For each considered, it retrieves the data points that are hashed into the same bucket as. The process is stopped as soon as a point within distance from is found.

    Given the parameters and, the algorithm has the following performance guarantees:

    • preprocessing time:, where is the time to evaluate a function on an input point;
    • space: , plus the space for storing data points;
    • query time: ;
    • the algorithm succeeds in finding a point within distance from (if there exists a point within distance) with probability at least;

    For a fixed approximation ratio and probabilities and, one can set and, where. Then one obtains the following performance guarantees:

    • preprocessing time:;
    • space: , plus the space for storing data points;
    • query time: ;


    五:Locality Sensitive Hashing(LSH)之隨機投影法

    原文鏈接:http://www.strongczq.com/2012/04/locality-sensitive-hashinglsh%E4%B9%8B%E9%9A%8F%E6%9C%BA%E6%8A%95%E5%BD%B1%E6%B3%95.html

    ?為什么隨即投影法是可行的?應該怎么去函數族的參數?以及正確率表現?

    1. 概述

    ???????? LSH是由文獻[1]提出的一種用于高效求解最近鄰搜索問題的Hash算法。LSH算法的基本思想是利用一個hash函數把集合中的元素映射成hash值,使得相似度越高的元素hash值相等的概率也越高。LSH算法使用的關鍵是針對某一種相似度計算方法,找到一個具有以上描述特性的hash函數。LSH所要求的hash函數的準確數學定義比較復雜,以下給出一種通俗的定義方式:

    對于集合S,集合內元素間相似度的計算公式為sim(*,*)。如果存在一個hash函數h(*)滿足以下條件:存在一個相似度s到概率p的單調遞增映射關系,使得S中的任意兩個滿足sim(a,b)>=s的元素a和b,h(a)=h(b)的概率大于等于p。那么h(*)就是該集合的一個LSH算法hash函數。

    一般來說在最近鄰搜索中,元素間的關系可以用相似度或者距離來衡量。如果用距離來衡量,那么距離一般與相似度之間存在單調遞減的關系。以上描述如果使用距離來替代相似度需要在單調關系上做適當修改。

    根據元素相似度計算方式的不同,LSH有許多不同的hash算法。兩種比較常見的hash算法是隨機投影法和min-hash算法。本文即將介紹的隨機投影法適用于集合元素可以表示成向量的形式,并且相似度計算是基于向量之間夾角的應用場景,如余弦相似度。min-hash法在參考文獻[2]中有相關介紹。

    2 隨機投影法(Random projection)

    ?? 假設集合S中的每個元素都是一個n維的向量:

    v??={v1,v2,,vn} ,集合中兩個元素v??u??之間的相似度定義為 sim(v??,u??)=v???u??|v??||u??|

    對于以上元素集合S的隨機投影法hash函數h(*)可以定義為如下:

    在n維空間中隨機選取一個非零向量x??={x1,x2,,xn}。考慮以該向量為法向量且經過坐標系原點的超平面,該超平面把整個n維空間分成了兩部分,將法向量所在的空間稱為正空間,另一空間為負空間。那么集合S中位于正空間的向量元素hash值為1,位于負空間的向量元素hash值為0。判斷向量屬于哪部分空間的一種簡單辦法是判斷向量與法向量之間的夾角為銳角還是鈍角,因此具體的定義公式可以寫為

    h(v??)={1,0,v???x??>0v???x??<=0

    根據以上定義,假設向量v??u??之間的夾角為θ,由于法向量x??是隨機選取的,那么這兩個向量未被該超平面分割到兩側(即hash值相等)的概率應該為:p(θ)=1?θπ。假設兩個向量的相似度值為s,那么根據θ=arccos(s),有

    p(s)=1?arccos(s)π 。因此,存在相似度s到概率p的單調遞增映射關系,使得對于任意相似度大于等于s的兩個元素,它們hash值相等的概率大于等于p(s)。所以,以上定義的hash值計算方法符合LSH算法的要求。

    以上所描述的h(*)函數雖然符合LSH算法的要求,但是實用性不高。因為該hash函數只產生了兩個hash值,沒有達到hash函數將元素分散到多個分組的目的。為了增加不同hash值的個數,可以多次生成獨立的函數h(*),只有當兩個元素的多個h(*)值都相等時才算擁有相同的hash值。根據該思路可以定義如下的hash函數H(*):

    H(v??)=(hb(v??)hb?1(v??)h1(v??))2 。其中每個hi(v??)表示一個獨立的h(*)函數,H(*)函數值的二進制表現形式中每一位都是一個h(*)函數的結果。

    以H(*)為hash函數的話,兩個相似度為s的元素具有相同hash值的概率公式為

    p(s)=(1?arccos(s)π)b

    。hash值的個數為2b。很容易看出H(*)函數同樣也是符合LSH算法要求的。一般隨機按投影算法選用的hash函數就是H(*)。其中參數b的取值會在后面小節中討論。

    3 隨機投影法在最近鄰搜索中的應用

    3.1 最近鄰搜索

    最近鄰搜索可以簡單的定義為:對于m個元素的集合T,為一個待查詢元素q找到集合中相似度最高的k個元素。

    最近鄰搜索最簡單的實現方法為:計算q與集合T中每一個元素的相似度,使用一個具有k個元素的大頂堆(優先隊列)保存相似度計算結果(相似度值為key)。這種實現方法每一次查詢都要遍歷整個集合T來計算相似度,當m很大并且查詢的頻率很高的時候這種暴力搜索的方法無法滿足性能要求。

    當最近鄰搜索的近鄰要求并不是那么嚴格的時候,即允許top k近鄰的召回率不一定為1(但是越高越好),那么可以考慮借助于LSH算法。

    3.2 隨機投影法提高執行速度

    這里我們介紹當集合T的元素和查詢元素q為同維度向量(維度為n),并且元素相似度計算方法為余弦相似度時,使用隨機投影法來提高最近鄰搜索的執行速度。具體的實現方法為:

    預處理階段:使用hash函數H(*)計算集合T中所有元素的hash值,將集合T分成一個個分組,每個分組內的元素hash值均相等。用合適的數據結構保存這些hash值到分組的映射關系(如HashMap)。

    查詢階段:計算查詢元素q的hash值H(q),取集合T中所有hash值為H(q)的分組,以該分組內的所有元素作為候選集合,在候選該集合內使用簡單的最近鄰搜索方法尋找最相似的k個元素。

    該方法的執行效率取決于H(*)的hash值個數2b,也就是分組的個數。理想情況下,如果集合T中的向量元素在空間中分布的足夠均勻,那么每一個hash值對應的元素集合大小大致為m2b。當m遠大于向量元素的維度時,每次查詢的速度可以提高到2b倍。

    根據以上分析H(*)中b的取值越大算法的執行速度的提升越多,并且是指數級別的提升。但是,在這種情況下H(*)函數下的概率公式p(s),實際上表示與查詢元素q的相似度為s的元素的召回率。當b的取值越大時,top k元素的召回率必然會下降。因此算法執行速度的提升需要召回率的下降作為代價。例如:當b等于10時,如果要保證某個元素的召回率不小于0.9,那么該元素與查詢元素q的相似度必須不小于0.9999998。

    3.3 提高召回率改進

    為了在保證召回率的前提下盡可能提高算法的執行效率,一般可以進行如下改進:

    預處理階段:生成t個獨立的hash函數Hi(?),根據這t個不同的hash函數,對集合T進行t種不同的分組,每一種分組方式下,同一個分組的元素在對應hash函數下具有相同的hash值。用合適的數據結構保存這些映射關系(如使用t個HashMap來保存)。

    查詢階段:對于每一個hash函數Hi(?),計算查詢元素q的hash值Hi(q),將集合T中Hi(?)所對應的分組方式下hash值為Hi(q)的分組添加到該次查詢的候選集合中。然后,在該候選集合內使用簡單的最近鄰搜索方法尋找最相似的k個元素。

    以上改進使得集合中元素與查詢元素q的t個hash值中,只要任意一個相等,那么該集合元素就會被加入到候選集中。那么,相似度為s的元素的召回率為

    p(s)=1?(1?(1?arccos(s)π)b)t

    在執行效率上,預處理階段由于需要計算t個hash函數的值,所以執行時間上升為t倍。查詢階段,如果單純考慮候選集合大小對執行效率的影響,在最壞的情況下,t個hash值獲得的列表均不相同,候選集集合大小的期望值為t?m2b,查詢速度下降至1t,與簡單近鄰搜索相比查詢速度提升為2bt倍。

    下圖是召回率公式p(s)=1?(1?(1?arccos(s)π)b)t在不同的b和t取值下的s-p曲線。我們通過這些曲線來分析這里引入參數t的意義。4條藍色的線以及最右邊紅色的線表示當t取值為1(相當于沒有引入t),而b的取值從1變化到5的過程,從圖中可以看出隨著b的增大,不同相似度下的召回率都下降的非常厲害,特別的,當相似度接近1時曲線的斜率很大,也就說在高相似度的區域,召回率對相似度的變化非常敏感。10條紅色的線從右到左表示b的取值為5不變,t的取值從1到10的過程,從圖中可以看出,隨著t的增大,曲線的形狀發生了變化,高相似度區域的召回率變得下降的非常平緩,而最陡峭的地方漸漸的被移動到相對較低的相似度區域。因此,從以上曲線的變化特點可以看出,引入適當的參數t使得高相似度區域在一段較大的范圍內仍然能夠保持很高的召回率從而滿足實際應用的需求。

    3.4 參數選取

    根據以上分析,H(*)函數的參數b越大查詢效率越高,但是召回率越低;參數t越大查詢效率越低但是召回率越高。因此選擇適當參數b和t來折中查詢效率與召回率之間的矛盾是應用好隨機投影法的關鍵。下面提供一種在實際應用中選取b和t的參考方法。

    根據實際應用的需要確定一對(s,p),表示相似度大于等于s的元素,召回率的最低要求為p。然后將召回率公式表示成b-t之間的函數關系t=log1?(1?acos(s)pi)b(1?p)。根據(s,p)的取值,畫出b-t的關系曲線。如s=0.8,p=0.95時的b-t曲線如下圖所示。考慮具體應用中的實際情況,在該曲線上選取一組使得執行效率可以達到最優的(b,t)組合。

    3.5 關于最近鄰文本搜索

    在最近鄰文本搜索中,一般待檢索的文本或查詢文本,都已被解析成一系列帶有權重的關鍵詞,然后通過余弦相似度公式計算兩個文本之間的相似度。這種應用場景下的最近鄰搜索與以上所提到的最近鄰搜索問題相比存在以下兩個特點:

    • 如果把每個文本的帶權重關鍵詞表都看作是一個向量元素的話,每個關鍵詞都是向量的一個維度,關鍵詞權重為該維度的值。理論上可能關鍵詞的個數并不確定(所有單詞的組合都可能是一個關鍵詞),因此該向量元素的維數實際上是不確定的。
    • 由于關鍵詞權重肯定是大于零的,所以向量元素的每一個維度的值都是非負的。

    對于第一個特點,我們需要選取一個包含n個關鍵詞的關鍵詞集合,在進行文本相似度計算時只考慮屬于該集合的關鍵詞。也就是說,每一個文本都視為是一個n維度的向量,關鍵詞權重體現為對應維度的值。該關鍵詞集合可以有很多種生成辦法,比如可以是網站上具有一定搜索頻率的關鍵詞集合,總的來說該關鍵詞集合應當能夠涵蓋所有有意義并且具有一定使用頻率的關鍵詞。通常n的取值會比較大,如幾十萬到幾百萬,由于在使用隨機投影算法時,每一個生成的隨機向量維度都為n,這種情況下需要特別考慮利用這些高維隨機向量對執行效率造成的影響,在確定b、t參數時需要考慮到這方面的影響。

    對于第二個特點,由于向量元素各維度值都非負,那么這些元素在高維空間中只會出現在特定的區域中。比如當n為3時,只會出現在第一象限中。一個直觀的感覺是在生成隨機向量的時候,會不會生成大量的無用切割平面(與第一個象限空間不相交,使得所有元素都位于切割平面的同側)。這些切割平面對應的H(*)函數hash值中的二進制位恒定為1或者0,對于提高算法執行速度沒有幫助。以下說明這種擔心是沒有必要的:

    切割平面與第一象限空間不相交等價于其法向量的每一個維度值都有相同的符號(都為正或者負),否則總能在第一象限空間中找到兩個向量與法向量的乘積符號不同,也就是在切割平面的兩側。那么,隨機生成的n維向量所有維度值都同號的概率為12n?1,當n的取值很大時,該概率可以忽略不計。

    參考文獻

    [1] P. Indyk and R. Motwani. Approximate Nearest Neighbor:Towards Removing the Curse of Dimensionality. In Proc. of the 30th Annual ACM Symposium on Theory of Computing, 1998, pp. 604–613.

    [2] Google News Personalization: Scalable Online Collaborative Filtering


    后記:

    ??????? 然而最后,我使用了還是隨機投影的方法,這個是正確率和速度的權衡

    總結

    以上是生活随笔為你收集整理的位姿检索PoseRecognition:LSH算法.p稳定哈希的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 风流少妇一区二区三区91 | 葵司有码中文字幕二三区 | 性一区| 久热在线 | 中文字幕亚洲欧美日韩 | 亚洲欧美日韩在线一区二区 | 91在线精品秘密一区二区 | 今天最新中文字幕mv高清 | 在线亚洲区 | 欧美日韩中文在线 | 欧美另类色图 | 国产超碰97| 日本伦理中文字幕 | 深夜视频在线免费 | 福利在线免费视频 | xxxxx黄色片 噜噜噜噜噜色 | 亚洲精华国产精华精华液网站 | av中文在线资源 | 国产一卡二卡三卡四卡 | 久久久91精品国产一区二区三区 | 日本精品一区在线 | 波多野结衣视频网址 | 天天射天天干 | 能免费看黄色的网站 | 91传媒视频在线观看 | 国产精选一区二区三区 | 日韩啪啪网站 | 麻豆免费在线视频 | aa视频在线观看 | 天堂中文字幕av | 久久亚洲区 | 国产日韩欧美中文字幕 | 欧美色吊丝 | 男人天堂a | 国内视频一区二区 | h网站在线 | 亚洲综合色视频 | 欧美日韩在线二区 | 草久在线视频 | 日韩av手机在线播放 | 无码人妻丰满熟妇区毛片18 | 欧美性猛交 | 91亚洲精品国偷拍 | 成人欧美一区二区三区黑人冫 | 精品欧美黑人一区二区三区 | 欧美三级手机在线观看 | av高清在线免费观看 | 91精品国产乱码久久久张津瑜 | 97人妻精品一区二区 | 久久人人看 | av动漫网站 | 久久精品亚洲a | 国产真实偷伦视频 | 久久五十路| 亚洲av色一区二区三区精品 | 亚洲69av | 色多多污污 | 国产精品无码电影在线观看 | 性感美女福利视频 | 国产视频手机在线观看 | 成人动漫视频在线观看 | 高清av免费观看 | 操比网站 | 日韩免费视频一区二区视频在线观看 | 男人你懂的网站 | 啪免费| www亚洲精品| 美女洗澡无遮挡 | 亚洲av综合色区无码一区 | 色婷婷基地 | 双性尿奴穿贞c带憋尿 | 精品区一区二区 | 乳罩脱了喂男人吃奶视频 | 成年人免费看毛片 | 九九成人| 久久发布国产伦子伦精品 | 毛片视频免费播放 | 丰满熟妇被猛烈进入高清片 | 91av综合 | 亚洲午夜在线观看 | 天天曰夜夜曰 | 高清人妖shemale japan | 国产a毛片 | 欧美黑人精品一区二区不卡 | 日韩激情中文字幕 | 日本熟妇浓毛 | 亚洲成网站 | 精品福利视频一区二区 | 两性av| 亚洲男人第一网站 | 欧美一二三区 | 97碰碰碰 | 69影院少妇在线观看 | 日韩福利视频在线观看 | 999国产| 女人扒开腿让男人桶爽 | 午夜小福利 | 96精品视频在线观看 | 午夜不卡福利视频 |