古詩詞大全網 - 個性簽名 - 最小哈希簽名

最小哈希簽名

參考: 大佬1 | 大佬2

主要目的:用於文本查重比較,文檔相似度比較。

估計的原理:兩個集合經隨機排列轉換後得到的兩個最小哈希值相等的概率等於這兩個集合的jaccard相似度(如在兩集合n次隨機中有a次最小哈希值相等,相等的概率=a/n)最小哈希的關鍵+目前不會證明

這裏我們用到的jaccard相似度用於比較有限樣本集之間的相似性和差異性。

給定兩個集合A、B,jaccard系數定義為A與B交集的大小與並集大小的比值,系數越大相似度越高。

A=?,B=?的時候,jaccard=1.

最小哈希首先針對特征矩陣。

比如全集{a,b,c,d,e}.S1={a,d},S2={c},S3={b,d,e},S4={a,c,d}

這個就是特征矩陣。

PS:假設文檔為ABCD,可以以2為切割特征,AB,BC,CD。

最小哈希就是對特征矩陣進行行變換,最小哈希值就是變換後行排序下第壹個為1的行號。

比如現在h(S1)=a,h(S2)=c,h(S3)=b,h(S4)=a.

具體的使用最小hash算法,將壹個特征矩陣進行壓縮,即構造簽名矩陣,簽名矩陣的每壹列是n個hash函數的值,並且近似估計原始數據的jaccard的值。

接下來我們通過把行號映射出去來實現偽行排序也屬於壹種不斷打亂按次序的壹種

模擬計算簽名矩陣的方法:

先考慮第0行:可以得到:

壹直順序計算到最後壹行,每次只取最小值(找到對應的行比較當前最小哈希值和映射行號的大小):

可以通過簽名矩陣估計原始的jaccard相似度。

SIM(S1,S4)=1,而實際相似度為4/6=2/3。以上只是壹個估計值。在大規模數據下[多個哈希],估計值和真實值相近。

不知道為啥畫的矩陣和公式都沒了。改天再補吧