首页 > 其他 > 详细

HASHING(1)

时间:2019-03-23 13:12:38      阅读:151      评论:0      收藏:0      [点我收藏+]

1.Locality-Sensitive Hashing(Shingling+MinHash) (LSH, 局部敏感哈希)

2. Learning to Hash

1.Introduction

很多的网页挖掘问题都可以表述为寻找相似集合:

  1. 论文查重;
  2. 推荐系统;

2.Finding Similar Documents

流程:
技术分享图片

2.1 Shingles

k-shingle(or k-gram)是文件中出现的k个字。通常使用一个文件的k-shingle集合来表示这个文件。
举例:k =2, doc = abcab。Set of 2-shingles = {ab, ac, bc, ca}
注意:k要尽量取的大一些,否则大多数的文档会产生很多shingles。
-k=5适用于小文档;k=10适用于大文档。

2.2 Min-Hashing

2.2.1

基础数据模型:集合
Jaccard Similarity of sets
杰卡德相似性是集合的交集除以他们的并集。
技术分享图片
技术分享图片

2.2.2 Outline of Min-Hashing

  1. 计算每一列的签名 = 对每一列进行总结;
  2. 发现成对签名;
  3. 检查具有相似签名的列的确是相似的。
    技术分享图片
    技术分享图片

    签字

  4. 每一列是随机置换的;
  5. 定义hash函数为h(C)=the number of the first(in the permuted order) row in which column C has 1.
  6. 用几个独立的hash函数构建签名。
    技术分享图片

    特性

    h(C1)=h(C2)的概率与Sim(C1, C2) = a/(a+b+c)

    Implementation

    如果有10000行数据的话,要进行随机置换也是很困难的。可以使用不同的函数来代替每一次的置换。
    Notation:
    Mi, C) the smallest value of hi(r) for which column c has 1 in row r
    hi(r) gives order of rows for ith permuation
    ---
    伪代码:
Initialize M(i,c) to \infity for all i and c
for each row r
    for each column c
        if c has 1 in row r
           for each hash function hi do
               if hi(r) is a smaller value than M(i, c)
               then
                      M(i, c) := hi(r);

Example:
技术分享图片

HASHING(1)

原文:https://www.cnblogs.com/sharalynwon/p/10554853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!