海量文档查同或聚类问题 -- Locality Sensitive Hash 算法

本文介绍了如何在大规模文档聚类中,利用Locality Sensitive Hash(LSH)算法,包括Charikar's simhash方法,以解决KNN问题和汉明距离计算的挑战,实现高效的数据增量处理。
摘要由CSDN通过智能技术生成

考虑一下这个场景 , 使用网络爬虫高速爬取大量的网页内容 , 如果想把这些网页进行实时聚类 , 并从中提取每个网页聚类的主题 . 我们应该怎么样去做

对于普通或常见的聚类算法 , 比如 K-means, Hierarchical 聚类 , 无法适用于这个常见 , 对于这些聚类算法无法进行 incremental 聚类 , 即在聚类开始前必须知道整个数据集 , 而这个场景中的数据集是随着爬虫不断增多的 . 而且这些聚类算法的 performance 不够高 , 比如对于 K-means 需要不断的 partition 以达到比较好的聚类效果 . 所以向来聚类算法在我的印象中是低效的 , 而面对这样一个需要实时数据递增处理的场景 , 我们需要一种 one-shot 的高效算法 , 接收到网页内容 , 迅速判断其类别 , 而不用后面不断地 revisit recluster.

首先介绍下面这个聚类方法
Leader-Follower Clustering (LFC)
The algorithm can be described as follows:
If distance between input and the nearest cluster above threshold, then create new cluster for the input.
Or else, add input to the cluster and update cluster center.
其实这个聚类方法再简单不过了 , 我是先想到这个方法 , 然后才发现这个方法有这么个看上去蛮牛比的名字 .
有了这个方法 , 当新网页来的时候 , 和所有老的网页形成的聚类算下相似度 , 相似就归到这类 , 不相似就创建新类

这个过程当中有个经典问题 , KNN 问题 (K-Nearest Neighbor) .
对海量数据 , 而且是高维数据 ( 对于文本 feature 一般是选取文本中的 keywords, 文本中的 keywords 一般是很多的 ), KNN 问题很难达到线性 search , 即一般是比较低效的 . 这样也没办法达到我们的要求 , 我们需要新的方法来解决这个 KNN 问题

当然该牛人出场了 , 他提出了一种算法
Locality Sensitive Hash(LSH)
这个算法的效果是 , 你可以把高维向量 hash 成一串 n-bit 的数字 , 当两个向量 cosin 夹角越小的时候 ( 即他们越相似 ), 那么他们 hash 成的这两串数字就越相近

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值