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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

局部敏感哈希Locality Sensitive Hashing归总

發布時間:2025/3/21 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 局部敏感哈希Locality Sensitive Hashing归总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近發郵件討論Semantic Hashing的同學和同事很多,推薦李老師的文獻列表供大家參閱:http://cs.nju.edu.cn/lwj/L2H.html

說到Hash,大家都很熟悉,是一種典型的Key-Value結構,最常見的算法莫過于MD5。其設計思想是使Key集合中的任意關鍵字能夠盡可能均勻的變換到Value空間中,不同的Key對應不同的Value,即使Key值只有輕微變化,Value值也會發生很大地變化。這樣特性可以作為文件的唯一標識,在做下載校驗時我們就使用了這個特性。但是有沒有這樣一種Hash呢?他能夠使相似Key值計算出的Value值相同或在某種度量下相近呢?甚至得到的Value值能夠保留原始文件的信息,這樣相同或相近的文件能夠以Hash的方式被快速檢索出來,或用作快速的相似性比對。位置敏感哈希(Local Sensitive Hashing, LSH)正好滿足了這種需求,在大規模數據處理中應用非常廣泛,例如已下場景[1]:
1. 近似檢測(Near-duplicate detection):通常運用在網頁去重方面。在搜索中往往會遇到內容相似的重復頁面,它們中大多是由于網站之間轉載造成的。可以對頁面計算LSH,通過查找相等或相近的LSH值找到Near-duplicate。
2. 圖像、音頻檢索:通常圖像、音頻文件都比較大,并且比較起來相對麻煩,我們可以事先對其計算LSH,用作信息指紋,這樣可以給定一個文件的LSH值,快速找到與其相等或相近的圖像和文件。
3. 聚類:將LSH值作為樣本特征,將相同或相近的LSH值的樣本合并在一起作為一個類別。
LSH(Location Sensitive Hash),即位置敏感哈希函數。與一般哈希函數不同的是位置敏感性,也就是散列前的相似點經過哈希之后,也能夠在一定程度上相似,并且具有一定的概率保證[3]。
LSH的形式化定義:
對于任意q,p屬于S,若從集合S到U的函數族H={h1,h2…hn}對距離函數D(q,p),如歐式距離、曼哈頓距離等等,滿足條件:
D(p,q)rD(p,q)≤r, 且Pro[h(p)=h(q)]p1Pro[h(p)=h(q)]≥p1
D(p,q)>r(1+ε)D(p,q)>r(1+ε), 且Pro[h(p)=h(q)]p2Pro[h(p)=h(q)]≤p2
則稱D(p,q)是位置敏感的。
如下圖,空間上的點經位置敏感哈希函數散列之后,對于q,其rNN有可能散列到同一個桶(如第一個桶),即散列到第一個桶的概率較大,會大于某一個概率閾值p1;而其(1+emxilong)rNN之外的對象則不太可能散列到第一個桶,即散列到第一個桶的概率很小,會小于某個閾值p2.

LSH的作用:
◆高維下近似查詢
相似性檢索在各種領域特別是在視頻、音頻、圖像、文本等含有豐富特征信息領域中的應用變得越來越重要。豐富的特征信息一般用高維向量表示,由此相似性檢索一般通過K近鄰或近似近鄰查詢來實現。一個理想的相似性檢索一般需要滿足以下四個條件[4]:
1. 高準確性。即返回的結果和線性查找的結果接近。
2. 空間復雜度低。即占用內存空間少。理想狀態下,空間復雜度隨數據集呈線性增長,但不會遠大于數據集的大小。
3. 時間復雜度低。檢索的時間復雜度最好為O(1)或O(logN)。
4. 支持高維度。能夠較靈活地支持高維數據的檢索。
此外, 檢索模式應能快速地構造索引數據結構, 并且可以完成插入、刪除等操作。

傳統主要方法是基于空間劃分的算法——tree類似算法,如R-tree,Kd-tree,SR-tree。這種算法返回的結果是精確的,但是這種算法在高維數據集上的時間效率并不高。實驗[5]指出維度高于10之后,基于空間劃分的算法時間復雜度反而不如線性查找。LSH方法能夠在保證一定程度上的準確性的前提下,時間和空間復雜度得到降低,并且能夠很好地支持高維數據的檢索。
現有的很多檢索算法并不能同時滿足以上的所有性質。
以前主要采用基于空間劃分的算法–tree 算法, 例如: R-tree[6], Kd-tree[7],SR-tree。這些算法返回的結果都是精確的, 然而它們在高維數據集上時間效率并不高。文獻[5]的試驗指出在維度高于10之后, 基于空間劃分的算法的時間復雜度反而不如線性查找。
1998年, P.Indy和R.Motwani提出了LSH算法的理論基礎。1999 年Gionis A,P.Indy和R.Motwani使用哈希的辦法解決高維數據的快速檢索問題, 這也是Basic LSH算法的雛形。2004 年, P.Indy 提出了LSH 算法在歐幾里德空間(2-范數)下的具體解決辦法。同年, 在自然語言處理領域中, Deepak Ravichandran使用二進制向量和快速檢索算法改進了Basic LSH 算法[8] , 并將其應用到大規模的名詞聚類中, 但改進后的算法時間效率并不理想。2005 年, Mayank Bawa, Tyson Condie 和Prasanna Ganesan 提出了LSH Forest算法[9], 該算法使用樹形結構代替哈希表, 具有自我校正參
數的能力。2006 年, R. Panigrahy[10]用產生近鄰查詢點的方法提高LSH 空間效率, 但卻降低了算法的空間效率。2007年,William Josephson 和Zhe Wang使用多重探測的方法改進了歐幾里德空間(2-范數)下的LSH 算法, 同時提高了算法的時間效率和空間效率。

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

◆數據壓縮。如廣泛地應用于信號處理及數據壓縮等領域的Vector Quantization量子化技術。
總而言之,哪兒需要近似kNN查詢,哪兒都能用上LSH.

維基百科對LSH的解釋給出了幾種不同的定義形式。不過還是大牛Moses Charikar的定義相對簡單明了:對于兩個物體(可以理解為兩個文件、兩個向量等),LSH生成的value值的每一bit位相等的概率等于這兩個物體的相似度,?這里不需要明確是什么度量方式(由此引申出了各種各樣的LSH算法), 只要滿足上式的就叫做LSH.?顯然這種定義天生就使LSH在hash后能夠保留原始樣本差異程度的信息,相近的物體的漢明距離就相近。介紹LSH,先從起源開始,我們先拿最初為LSH做出貢獻的三個大牛開始說起。

【1】. 1998年Piotr Indyk在Stanford讀PHD時與導師Rajeev Motwani提出一種hash方法:?Locality Sensitive Hashing [Indyk-Motwani'98].?Approximate Nearest Neighbors: Towards Removing the?Curse of Dimensionality?被引用1627次, 作者Piotr Indyk2000年從Stanford畢業后就職于MIT, 現在是MIT的教授, 主頁中有關于LSH的相關代碼及研究介紹。LSH的相關代碼工作主要由他的學生Alexandr Andoni編寫并維護.
[文章總結]: 首先NN問題應用于很多場合,常常是設計相似搜索,例如:data compression; databases and data mining; information retrieval; image and video database; machine learning; pattern recognition; and, statistics and data analysis. 因為之前過去KNN總是通過一種brute-force algorithm對所有樣本點進行逐一匹配. 所以人們開始探索一種approximate nearest neighbors problem. 這篇文章的目的主要是為了Removing the Curse of Dimensionality而提出的一種Approximate Nearest Neighbors Algorithms,并命名為locality-sensitive hashing. 應用場景: information retrieval, pattern recognition, dynamic closest-pairs, and fast clustering algorithms. LSH的key idea is to use hash functions such that the probability of collision is much higher for objects that are close to each other than for those that are far apart. and they prove that existence of such functions for any domain. 并且給出了兩種functions, one for a Hamming space and the other for a family of subsets of a set under the resemblance measure used by?Broder?et al. to?cluster web documents.
1. P. Indyk and R. Motwani. Approximate nearest neighbors: towards removing the curse of dimensionality[A]. In STOC ’98: Proceedings of the thirtieth annual ACM symposium on Theory of computing, New York, USA: ACM Press, 1998:604–613.

【2】. 1999年Piotr Indyk的同門師弟Aristides Gionis對之前的LSH雛形算法進行完善發表了Similarity Search in High Dimensions via Hashing這篇文章目前也被引用了1250次, 而且在Alexandr Andoni維護的LSH主頁上也說明最初的Original LSH algorithm (1999)指向的是這篇文章. 作者Aristides Gionis現在在芬蘭Aalto University任教.
[文章總結]:This paper presents locality-sensitive hashing(LSH). This technique was originally introduced by Indyk and Motwani for the purposes of devising main memory algorithms for the?εε-NNS problem. Here this paper gives an improved version of their algorithm. The new algorithm is in many respects more natural than the earlier one: it does not require the hash buckets to store only one point; it has better running time guarantees; and, the analysis is generalized to the case of secondary memory.
2.Gionis A, Indyk P, Motwani R. Similarity search in high dimension s via hashing [C] Proceedings of the 25th International Conference on Very Large Data Bases (VLDB). 1999

【3】. 現在回到Alexandr Andoni維護的LSH主頁中來了解LSH的發展近況. 早期時候, 2005年,?Alexandr Andoni給出一篇Ann(Approximate Nearest Neighbor)?Introduction for LSH, 算是一篇普及型文章, 可翻來讀讀.作者是Greg Shakhnarovich, 之前在MIT讀的PHD, 現在在Toyota Technological Institute at Chicago任教.
[文章總結]:A naive algorithm for this problem is as follows: given a query q, compute the distance from q to each point in P, and report the point with the minimum distance. This linear scan approach has query time of Θ(dn). This is tolerable for small data sets, but is too ine?cient for large ones. The?“holy grail” of the research in the area is to design an algorithm for this problem that achieves sublinear (or even logarithmic) query time.The nearest-neighbor problem has been extensively investigated in the ?eld of computational geometry. Unfortunately, as the dimension grows, the algorithms become less and less e?cient. The lack of success in removing the exponential dependence on the dimension led many researchers to conjecture that no e?cient solutions exist for this problem when the dimension is su?ciently large. At the same time, it raised the question: Is it possible to remove the exponential dependence on d, if we allow the answers to be approximate? The approximate nearest neighbor search problem is de?ned as follows: Given a set P of points in a d-dimensional space d, construct a data structure which given any query point q, reports any point within distance at most c times the distance from q to p, where p is the point in P closest to q.
[插曲:]介紹KNN的時候會順帶介紹一些KD-Tree相關的工作,關于KD-Tree相關知識可看一下這篇博文:從K近鄰算法、距離度量談到KD樹、SIFT+BBF算法。
進入LSH實現部分,將按LSH的發展順序介紹幾種應用廣泛的LSH算法。
1, 基于Stable Distribution投影方法
2, 基于隨機超平面投影的方法;
3, SimHash;
4, Kernel LSH

1, 基于Stable Distribution投影方法
2008年IEEE Signal Process上有一篇文章Locality-Sensitive Hashingfor Finding Nearest Neighbors是一篇較為容易理解的基于Stable Dsitrubution的投影方法的Tutorial, 有興趣的可以看一下. 其思想在于高維空間中相近的物體,投影(降維)后也相近。基于Stable Distribution的投影LSH,就是產生滿足Stable Distribution的分布進行投影,最后將量化后的投影值作為value輸出.?更詳細的介紹在Alexandr Andoni維護的LSH主頁中,理論看起來比較復雜,不過這就是LSH方法的鼻祖啦,缺點顯而易見:你需要同時選擇兩個參數,并且量化后的哈希值是一個整數而不是bit形式的0和1,你還需要再變換一次。如果要應用到實際中,簡直讓你抓狂。
2, 基于隨機超平面投影的方法
大神Charikar改進了上種方法的缺點,提出了一種隨機超平面投影LSH.
這種方法的最大優點在于:
1),不需要參數設定
2),是兩個向量間的cosine距離,非常適合于文本度量
3),計算后的value值是比特形式的1和0,免去了前面算法的再次變化
3, SimHash
前面介紹的LSH算法,都需要首先將樣本特征映射為特征向量的形式,使得我們需要額外存儲一個映射字典,難免麻煩,大神Charikar又提出了大名鼎鼎的SimHash算法,在滿足隨機超平面投影LSH特性的同時避免了額外的映射開銷,非常適合于token形式的特征。
首先來看SimHash的計算過程[2]:
a,將一個f維的向量V初始化為0;f位的二進制數S初始化為0;
b,對每一個特征:用傳統的hash算法(究竟是哪種算法并不重要,只要均勻就可以)對該特征產生一個f位的簽名b。對i=1到f:
如果b的第i位為1,則V的第i個元素加上該特征的權重;
否則,V的第i個元素減去該特征的權重。
c,如果V的第i個元素大于0,則S的第i位為1,否則為0;
d,輸出S作為簽名。
大家引用SimHash的文章通常都標為2002年這篇Similarity Estimation Techniques from Rounding Algorithms, 而這篇文章里實際是討論了兩種metric的hash. 參考[1]的作者猜測, SimHash應該是隨機超平面投影LSH,而不是后來的token形式的SimHash. 其實只是概念的歸屬問題, 已經無關緊要了, 我想很多人引用上篇文章也有部分原因是因為07年Google研究院的Gurmeet Singh Manku在WWW上的這篇paper:?Detecting Near-Duplicates for Web Crawling, 文中給出了simhash在網絡爬蟲去重工作的應用,并利用編碼的重排列方式解決快速Hamming距離搜索問題.
這里插曲抱怨一下網絡爬蟲去重的一些抱怨,例如文獻[1],標題顯示是一篇轉發的文章,而且內容中很多圖片已經無法顯示,轉發作者卻沒有給出原文出處。或許是因為csdn的rank值高再加上爬蟲的去重工作,搜索引擎中竟搜不到原文!
4, Kernel LSH
前面講了三種LSH算法,基本可以解決一般情況下的問題,不過對于某些特定情況還是不行:比如輸入的key值不是均勻分布在整個空間中,可能只是集中在某個小區域內,需要在這個區域內放大距離尺度。又比如我們采用直方圖作為特征,往往會dense一些,向量只分布在大于0的區域中,不適合采用cosine距離,而stable Distribution投影方法參數太過敏感,實際設計起來較為困難和易錯,不免讓我們聯想,是否有RBF kernel這樣的東西能夠方便的縮放距離尺度呢?或是我們想得到別的相似度表示方式。這里就需要更加fancy的kernel LSH了。
我們觀察前面的幾種LSH,發現其形式都可以表示成內積的形式,提到內積自然會想到kernel方法,是不是LSH也能使用kernel呢?
Kernel LSH的工作可參看下面這三篇文章:
1). 2009年ICCV上的?Kernelized Locality-Sensitive Hashing for Scalable Image Search
2). 2009年NIPS上的Locality-Sensitive Binary Codes From Shift-Invariant Kernels[PPT]
3). 2007年NIPS上的Random Features for Large-Scale Kernel Machines
下面是文獻[1]作者的總結: 這里介紹了四種LSH方法,最原始的Sable Distribution的投影LSH,滿足cosine距離的隨機超平面投影LSH,以及他的文本特征改進SimHash,最后介紹了RBF kernel下的LSH,基本可以滿足我們的需要。當然kernel LSH還會隨著kernel map技術的發展而發展,現在有了不錯的顯示映射方法,比如 Efficient Additive Kernels via Explicit Feature Maps,提供了一種有限維有損的顯示映射方法,但是值域并不是均勻分布的,需要額外小心。另外一些方法就是有監督的或半監督的,隨著應用場景不同而改變,這兩年CVPR里有很多此類LSH方法的文章,看來還是比較受歡迎的。Spectral Hash用過一下,感覺效果不好,估計是因為距離度量不適合使用的樣本。其實LSH問題的關鍵是根據數據集和需要度量的相似度,選擇合適的manifold進行投影,也算是manifold learning的一個思想吧。

這十年時間內,大家在Hash上做了很多工作來完善Hash算法,恰巧在寫這份總結的時候(13年07月23日)上海交通大學Wu-Jun Li實驗室share了一份Learning to Hash的PPT. 這是2013年1月份的一個talk. 不過Wu-Jun Li關于Hash的工作還是值得參考的. 而且share了很多matlab代碼和data, 很贊.

====================分割線說明=========================
近期很多同學留言需要李老師的PPT,由于未經李老師同意在網盤上進行公開其內容尚不確定是否合適,目前若有所需暫先發送郵件給您們,李老師目前在南大的官方主頁為:http://cs.nju.edu.cn/lwj/,留意到其主頁中也有Learning to Hash的鏈接地址,但不知何故貌似打不開,大家可以發郵件告知李老師更新其內容。祝好!
====================分割線說明=========================

Hash函數學習的兩個階段:
1). Projection Stage(Dimension Reduction)映射階段(降維)
Projected with real-valued projection function;
Given a point?xx, each projected dimension?ii?will be associated with a real-value projection functionfi(x)fi(x)(e.g.?fi(x)=wTixfi(x)=wiTx).
2). Quantization Stage量化階段
Turn real into binary.

根據是否依賴于數據集又可分為兩類:
Data-Independent Methods
The hashing function family is defined independently of the training dataset:
Locality-sensitive hashing (LSH): (Gionis et al., 1999; Andoni and Indyk, 2008) and its extensions (Datar et al., 2004; Kulis and Grauman, 2009; Kulis et al., 2009).
SIKH: Shift invariant kernel hashing (SIKH) (Raginsky and Lazebnik, 2009).
Hashing function: random projections.

Data-Dependent Methods
Hashing functions are learned from a given training dataset.
Relatively short codes
依賴于數據的Hash方法又分為two categories:
a). Supervised methods
s(xi,xj)=1s(xi,xj)=1?or 0
b). Unsupervised methods

Unsupervised Methods有以下幾種:
No labels to denote the similarity (neighborhood) between points.
PCAH: principal component analysis.
ITQ: (Gong and Lazebnik, 2011) orthogonal rotation matrix to refine the initial projection matrix learned by PCA.
Supervised(semi-supervised)Methods有以下幾種:
Training dataset contains additional supervised information, (e.g. class labels or pairwise constraints).
SH: Spectral Hashing (SH) (Weiss et al., 2008) adopts the eigenfunctions computed from the data similarity graph.
SSH: Semi-Supervised Hashing (SSH) (Wang et al., 2010a,b) exploits both labeled data and unlabeled data for hash function learning.
MLH: Minimal loss hashing (MLH) (Norouzi and Fleet, 2011) based on the latent structural SVM framework.
AGH: Graph-based hashing (Liu et al., 2011).

現在大數據互聯網應用中,如何能把Hash應用到Web相似性搜索中(最近語義搜索和知識圖譜已經成為各大搜索公司必爭之地).這篇博士論文《2011 基于LSH的Web數據相似性查詢研究》可以參考一下.
Web數據的特點:
a).海量性;
b).異構性, 種類繁多
Web數據的異構性和多樣化的應用使得Web上的數據種類也呈現多樣化的特征。Web數據可分為3中1).非結構化數據(Unstructured Data); 2).結構化數據(Structured Data); 3). 多媒體數據(Multimedia Data). 例如, 非結構化的數據比如Web頁面數據, 字符串數據(String Data)等。帶結構的數據包括半結構化數據和結構化數據, 其中Web上廣泛使用的XML是半結構化的. 而結構化數據包括圖數據(Graph)和關系數據(Relational Data). 例如, 整個Web的結構可以看作一張圖, 社會網絡結構也可以使用圖進行建模. 多媒體數據包括圖像數據(Image), 視頻數據(Video)和音頻數據(Audio).
c).帶有噪音
由于人們輸入的錯誤,誤差,簡寫,OCR識別以及多個數據源格式不一致等情況,導致了Web數據帶有大量的噪音,這給Web數據的查詢,數據集成等帶來了困難和挑戰.

參考資料:
[1]:?http://blog.csdn.net/zhou191954/article/details/8494438
[2]:?http://gemantic.iteye.com/blog/1701101
[3]:?http://www.jiahenglu.net/NSFC/LSH.html
[4]:基于LSH的中文文本快速檢索 2009.
[5]: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
[6] Guttman A. R-trees: A dynamic index structure for spatial searching[C] Proc. of ACM Conf. on Management of Data
(SIGMOD). 1984: 47-57
[7] Bentley J L. K-D trees for semi-dynamic point sets[C] Proc. of the 6th ACM Symposium on Computational Geometry (SCG). 1990: 187-197
[8] Ravichandran D, Pantel P, Hovy E. Randomized Algorithms and NLP: Using Locality Sensitive Hash Function for High S peed Noun Clustering[M]. Information Sciences Institute University of Southern California, 2004
[9] Bawa M, Condie T, Ganesan P. LSH Forest: SelfTuning[C] Indexes for Similarity Search International World Wide Web
Conference Proceedings of the 14th International Conference on World Wide Web. 2005
[10] “Entropy based Nearest Neighbor Search in High Dimensions”. SODA 2006


from:?http://jacoxu.com/?p=496

總結

以上是生活随笔為你收集整理的局部敏感哈希Locality Sensitive Hashing归总的全部內容,希望文章能夠幫你解決所遇到的問題。

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