局部敏感哈希开源项目和论文 Locality-Sensitive Hashing (LSH) · Jian Zhou

标签: | 发表时间:2018-08-13 16:26 | 作者:
出处:https://janzhou.org

Locality-Sensitive Hashing (LSH)

Scala LSH project

Similarity Measure

Similarity measure is a real-valued function that quantifies the similarity between two objects. Although no single definition of a similarity measure exists, usually such measures are in some sense the inverse of distance metrics.

  • Cosine similarity
  • Euclidean similarity
  • Nucleotide similarity
  • Amino acid similarity
  • Hamming similarity
  • Jaccard similarity

Types of LSH

Implementations

Papers

  1. Practical and Optimal LSH for Angular Distance
  2. Optimal Data-Dependent Hashing for Approximate Near Neighbors
  3. Beyond Locality Sensitive Hashing
  4. Original LSH algorithm (1999)
  5. Efficient Distributed Locality Sensitive Hashing
  6. Jaccard distance: Mining Massive Data Sets chapter#3
  7. Hamming normA. Gionis, P. Indyk, and R. Motwani. Similarity Search in High Dimensions via Hashing. In Proc. of the 25th Intl. Conf. on Very Large Data Bases, VLDB(1999).
  8. Lp normsM. Datar, N. Immorlica, P. Indyk, and V. Mirrokni Locality-Sensitive Hashing Scheme Based on p-Stable Distributions. In Proc. of the 20th ACM Annual http://people.csail.mit.edu/indyk/nips-nn.ps
  9. Cosine distance and Earth movers distance (EMD)M. Charikar. Similarity Estimation Techniques from Rounding Algorithms. In Proc. of the 34th Annual ACM Symposium on Theory of Computing, STOC (2002).
  10. Very Sparse Random ProjectionsPing Li, T. Hastie and K. W. Church, 2006
  11. Similarity Estimation Techniques from Rounding Algorithms
  12. Random projectionRandom projection in dimensionality reduction: Applications to image and text data
  13. An Introduction to Sequence Similarity (“Homology”) Searching
  14. Efficient large-scale sequence comparison by locality-sensitive hashing

Finding Nearest Neighbors

Additional Reading

Issues for LSH

  1. SPARK-5992Locality Sensitive Hashing (LSH) for Spark
  2. spark/pull/15148

Implement Locality Sensitive Hashing along with approximate nearest neighbors and approximate similarity join based on the design doc.

Detailed changes are as follows:

  1. Implement abstract LSH, LSHModel classes as Estimator-Model
  2. Implement approxNearestNeighbors and approxSimilarityJoin in the abstract S.Model
  3. Implement Random Projection as LSH subclass for Euclidean distance, Min a.h for Jaccard Distance
  4. Implement unit test utility methods including checkLshProperty, checkNearestNeighbor and checkSimilarityJoin

Things that will be implemented in a follow-up PR:

  • Bit Sampling for Hamming Distance, SignRandomProjection for Cosine Distance
  • PySpark Integration for the scala classes and methods.

Datasets

相关 [哈希 开源 项目] 推荐:

局部敏感哈希开源项目和论文 Locality-Sensitive Hashing (LSH) · Jian Zhou

- -
Although no single definition of a similarity measure exists, usually such measures are in some sense the inverse of distance metrics.. JorenSix/TarsosLSHA Java library implementing Locality-sensitive Hashing (LSH), a practical nearest neighbour search algorithm for multidimensional vectors that operates in sublinear time..

Android优秀开源项目

- - CSDN博客移动开发推荐文章
Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习. 今天爬爬把自己熟悉的一些开源项目整理起来,希望能对 Android开发同学们有所帮助. 另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容. Apollo音乐播放器:就一个播放器,但是实现的很好.

开源项目之NeoCrypt

- - CSDN博客推荐文章
一个文件加密解密软件的源代码,可以设置很多著名的加密算法进行加密解密. 它集强力、安全的算法和简单、易用的界面于一身. 它的文件管理界面可以轻易地观看和更改整个系 统的加密设置,也可以加/解密选定的文件,安全地删除文件. 项目需要用到第三方库cryptlib,该库已经放到源码包中. 本程序有一个动态链接库NeoCryptSX与一个主程序Neocrypt组成,NeoCryptSX动态库操作简单,只负责发送调用消息,Neocrypt主程序中封装了Decryptor类负责解码、Encryptor类负责编码,File类负责文件操作、CProgUpdater类负责进度等.

开源项目 AllJoyn 初识

- - CSDN博客推荐文章
AllJoyn 高通的一个开源项目,针对IoT的. 光看到介绍第一个感觉就是高大上啊. 它要解决的问题是物联网中互联互通的问题,一个好大平台. 从它介绍的PPT的两张图比较一下就会比较清楚了. 第一张图中它描绘的是现状,各个设备厂商虽然都对外提供了物联网接口,云接口,但各个设备没有互联互通,各自为政,群雄割据.

Google正式开源LevelDB项目

- Jie - 新闻 - LUPA开源社区
  Google 宣布 LevelDB 项目开源,使用的开源授权协议为 BSD.   Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了. 在这个数量级别下还有着非常高的性能,主要归功.

晒晒我的开源项目们

- zffl - 透明思考 - Thoughts
在等“bundle install”的时候闲着没事,打开 我的Github ,发现还有那么一些东西值得分享一下的. 啤酒游戏 :《 第五项修炼 》里讲的啤酒游戏. 合作的进化 :这就是《 合作的进化 》那本书里讲的生存竞赛游戏. 可以自己写新的策略放进来,看看重复囚徒困境中的最佳策略是如何被选择出来的.

如何熟悉一个开源项目?

- - IT技术博客大学习
       你有个任务,需要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西.     1.首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的、功能、基本使用有个大概的了解.     2.阅读项目的文档,重点关注类似 Getting started、Example之类的文档,从中学习如何下载、安装、甚至基本使用该项目所需要的知识.

OpenStack – 开源云计算项目

- - 弯曲评论
系列目录 Future Internet Technology. OpenFlow – 打造弹性化的可控互联网. Open vSwitch – 开放虚拟交换标准. Mininet – “懒惰”网络研究者的福音. NOX – 现代网络操作系统. OpenStack – 开源云计算项目. 时下云计算如火如荼,众多企业纷纷推出云计算相关的应用,不少还搭建企业私有云和少数公有云(代表为Amazon).

2012年五大开源项目

- - 创意科技 - 果壳网
如果一切照计划运行,明年红帽公司(Red Hat)将成为第一家年收入超过10亿美元的开源软件企业,这将是开源社区历史上一个重要的分水岭,开源开发人员一向认为基于社区的开源开发模式非常的具有可行性,甚至比闭源开发更优越,将替代传统开发模式,成为将来软件开发模式. 近几年,诸如Linux,Perl, Apache, Hadoop, OpenOffice, GIMP等数十开源项目在软件市场上如鱼得水,新的一年,又有什么项目会脱颖而出.

晒晒我们的开源项目

- - robbin的自言自语
我们的研发团队是一支mini型研发团队,目前共有研发人员13人. 由于网站产品维护的历史原因,这13人的研发团队分为4支小组,分别是:Ruby研发小组5人;PHP研发小组4人;.net研发小组2人,Java搜索小组2人. 别看我们研发人员这么少,但是我们研发人员战斗力很强,我们维护和开发着十多条产品线.