Determinação de pares candidatos

Mesmo com a redução drástica obtida com as assinaturas, ter de comparar todos os pares é algo que tem de ser evitado

Precisamos de reduzir o número de pares a comparar

O nosso objetivo é encontrar documentos com similaridade, de Jaccard, superior a um determinado limiar

Segundo o MinHash

Selecionar um limiar de semelhança s (0 < s < 1)

As colunas x e y da matriz de assinaturas são um par candidato se as suas assinaturas concordarem em pelo menos uma fração s das suas linhas

  • M (i, x) = M (i, y) para pelo menos a fração s valores de i

Espera-se que os documentos x e y tenham a mesma similaridade (de Jaccard) que as suas assinatura

Ideia base do método LSH

Objectivo: Encontrar documentos com similaridade de Jaccard de pelo menos s

  • Para um determinado limiar, por exemplo s = 0.8

Ideia base:

  • Utilizar uma função de dispersão f(x,y) que indica se x e y constituem um par candidato

    • Par de elementos cuja similaridade tem de ser avaliada

  • Aplicar a função às colunas da matriz de assinaturas

    • Cada par de colunas que resultam no mesmo valor da função de dispersão é um par candidato

LSH aplicado à matriz de MinHash

Grande ideia: Aplicar funções de dispersão às colunas da matriz várias vezes

Fazer com que (apenas) colunas similares tenham elevada probabilidade de terem o mesmo hash code

Pares candidatos são aqueles que resultam no mesmo hash code

Na prática

Na prática aplica-se a cada coluna várias funções de dispersão

Divide-se a matriz de assinaturas em b bandas

  • de r linhas

Aplica-se a função de dispersão a cada banda

  • Que mapeia numa de k posições

Pares candidatos são mapeados para a mesma posição pela função de dispersão para pelo menos uma das bandas

Last updated