码迷,mamicode.com
首页 > 其他好文 > 详细

HASHING(1)

时间:2019-03-23 13:11:55      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:cab   注意   哈希   9.png   计算   column   系统   一个   适用于   

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)

标签:cab   注意   哈希   9.png   计算   column   系统   一个   适用于   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!