23
Tópicos de Estadística & Data Mining en Big Data Items Similares Lic. Ernesto Mislej Maestría en Exploración de Datos y Descubrimiento del Conocimiento Universidad de Buenos Aires [email protected] Octubre 2014

Tópicos de Big Data - Items Similares

Embed Size (px)

DESCRIPTION

Una tarea fundamental del proceso de datamining consiste en encontrar ítems similares. Un ejemplo es buscar dentro de una colección de páginas web para encontrar páginas near-duplicadas. Estas páginas abundan en la Internet; corresponden a plagios, mirrors, campañas, etc. Comenzaremos con una noción básica de similaridad basada en conjuntos con relativa gran intersección. Luego avanzamos con una técnica llamada minhashing, que consiste en comprimir grandes conjuntos de elementos en una pequeña firma (signature) donde se mantenga la noción de cercanía. Referencias: http://mmds.org

Citation preview

Page 1: Tópicos de Big Data - Items Similares

Tópicos de Estadística & Data Miningen Big DataItems Similares

Lic. Ernesto Mislej

Maestría en Exploración de Datos yDescubrimiento del Conocimiento

Universidad de Buenos Aires

[email protected]

Octubre 2014

Page 2: Tópicos de Big Data - Items Similares

Outline

• Intro• Aplicaciones de búsqueda por vecindad

• Documentos near-duplicados• Collaborative Filtering

• Jaccard Similarity de Conjuntos• Singling de Documentos• Minhashing• Locality-Sensitive Hashing para documentos

Page 3: Tópicos de Big Data - Items Similares

Intro

Una tarea fundamental del proceso de datamining consiste enencontrar ítems similares. Un ejemplo es buscar dentro de unacolección de páginas web para encontrar páginasnear-duplicadas. Estas páginas abundan en la Internet;corresponden a plagios, mirrors, campañas, etc.

Comenzaremos con una noción básica de similaridad basada enconjuntos con relativa gran intersección.

Luego avanzamos con una técnica llamada minhashing, queconsiste en comprimir grandes conjuntos de elementos en unapequeña firma (signature) donde se mantenga la noción decercanía.

Page 4: Tópicos de Big Data - Items Similares

High dimensional data

Muchos problemas pueden ser modelados a partir de encontrarconjuntos similares de elementos:• Encontrar vecindades en espacios multi-D.• Páginas/Documentos similares a partir de tener contenido

similar.• Modelos de clasificación por vecindad.• Modelos de user-similarity para sistemas de

recomendación.• Usuarios NetFlix con gustos similares en películas.• Productos con el mismo club-de-usuarios.• Imágenes con características similares.• Usuarios que visitaron los mismos websites.

Page 5: Tópicos de Big Data - Items Similares

Jaccard Similarity de Conjuntos

• Jaccard similarity de conjuntos S and T = |S ∩ T|/|S ∪ T|• Jaccard distance = 1 - Jaccard similarity

!"#$!"##"$%&'()(*"$(+,$%&$'(%$)#')$*)$'"#$)*+#$%&$'"#*,$*-'#,)#.'*%-$/$'"#$)*+#$%&$'"#*,$0-*%-1$'()2345$367$8$934 369/934 369$

!"#$!"##"$%&-(.+"/#0$:#'(##-$)#')$*)$4$;*-0)$'"#*,$<=..=,>$)*;*?=,*'@1$%2345$367$8$4$A$934 369/934 369$

4/4B/6C46$ <0,#$D#)E%F#.5$G'=-&%,>$36HI1$J*-*-K$J=))*F#$L='=)#')$ 44$

3 in intersection 8 in union Jaccard similarity= 3/8 Jaccard distance = 5/8

• Extensión: Jaccard Similarity de Bags

Page 6: Tópicos de Big Data - Items Similares

Documentos Similares

Dado un gran número (N en el orden de los millones o 1000M)de documentos de textos, el objetivo es encontrar pares de nearduplicates.• Plagio.• Páginas en espejo (mirror sites).• Artículos originarios de la misma fuente, news aggregators.

• Pequeñas partes, fragmentos de un documento que seencuentran en otro.

• Son muchos documentos para pensar en comparar todoslos pares.

• ...y no entran en memoria.

Page 7: Tópicos de Big Data - Items Similares
Page 8: Tópicos de Big Data - Items Similares

Paso a paso

1 Shingling: Convertir a los documents, emails, etc., aconjunto de n-grams

2 Minhashing: Convertir sets a signatures, mientrasconservamos la noción de similitud

3 Locality-sensitive hashing: Operar sobre el espacio designatures para encontrar grupos de documentos similares

Page 9: Tópicos de Big Data - Items Similares

Bigpicture

!"#

Docu- ment

The set of strings of length k that appear in the doc- ument

Signatures: short integer vectors that represent the sets, and reflect their similarity

Locality- Sensitive Hashing

Candidate pairs: those pairs of signatures that we need to test for similarity.

!$!%$&'!&# ()*+#,+-./0+12#34567/*8#9&:;<#=>6>6?#=5-->0+#@545-+4-#

Page 10: Tópicos de Big Data - Items Similares

Shingling

• Un k-shingle (o k-gram) para un documento es unasecuencia de k tokens que ocurren en un documento.

• Los tokens pueden ser chars, palabras, u otra combinacióndependiendo de la aplicación.

• Asumimos tokens como chars• Ejemplo: k = 2; D1 = abcab

Conjunto de 2-shingles: S(D1) = ab, bc, ca

• Opcional: Shingles como bags, contaríamos ab 2 veces.

Page 11: Tópicos de Big Data - Items Similares

Comprimir los Shingles

• Representar a los docs como un conjunto de valores dehash para sus k-shingles.

• S(D1) = h(ab), h(bc), h(ca)• Podemos usar una función de hash que mapee a 4 bytes

• Debemos ser cuidadosos en la elección del k• k = 5 está OK para docuentos cortos• k = 10 funciona mejor para documentos largos

Page 12: Tópicos de Big Data - Items Similares

Similitud en el conjunto de Shingles sets

• El documento D1 = conjunto de k-shingles C1 = S(D1)

• Equivalentemente, cada documento es un vector de 0/1 enel espacio de k-shingles.

• Cada shingle es una dimensión.• Los vectores son muy esparsos/ralos.• Jaccard similarity!

Page 13: Tópicos de Big Data - Items Similares

Motivación para minhashing/LSH

• Supongamos que necesitamos encontrar near-duplicados enun conjunto de N = 1 millón documentos

• Estamos tentados a realizar Jaccard para cada par de docs• N(N − 1)/2 ≈ 5,1011 comparaciones.• Supongamos 105 segs/día y 106 comp/seg, tarda 5 días.• Para N = 10 millones, tarda más de 1 año!

Page 14: Tópicos de Big Data - Items Similares

Codificar los conjuntos como vectores de bits

• Codificar a los conjuntos usando vectores de bits• 1 dimensión por elemento• Interpretamos a la intersección como bitwise AND, y a la

unión como bitwise OR• (No necesariamente persitiremos la matriz completa, nuestra

matriz es muy esparsa)

• Ejemplo: C1 = 10111; C2 = 10011• Tamaño de la intersección = 3; tamaño de la union = 4,• Jaccard sim = 3/4• Distancia: d(C1,C2) = 1 - (Jaccard similarity) = 1/4

Page 15: Tópicos de Big Data - Items Similares

De conjuntos a una matriz de vectores de bits

• Las columnas son los documentos• Las filas son las shingles.

• Ejemplo:• Tamaño de la intersección = 3; tamaño de la union = 6,• Jaccard sim = 3/6• Distancia: d(C1,C2) = 1 - (Jaccard similarity) = 3/6

Page 16: Tópicos de Big Data - Items Similares

Hashing sobre las columnas

• Idea: aplicar una función de hash para cada columna C ah(C), talque:

1 h(C) es pequeña para que la firma entre en memoria RAM2 Trataremos sim(C1,C2) como lo mismo que la sim de firmas

h(C1) y h(C2)

• Objetivo: encontrar la función de hash h() que satisfaga:• si sim(C1,C2) es alta, luego con alta probabilidad

h(C1) = h(C2)

• si sim(C1,C2) es baja, luego con alta probabilidadh(C1) 6= h(C2)

• Aplicamos hash a los documentos y esperamos que lamayoría de los pares de documentos near-duplicados caiganen el mismo bucket

Page 17: Tópicos de Big Data - Items Similares

Min-hashing

• Imaginemos las filas de esta matriz booleana permutadapor una permutación π cualquiera.

• Luego definamos una nueva hash function hπ(C) = elnúmero de la primera fila (en el orden permutado π) convalor 1:

hπ(C) = minπ(C)

• Usaremos muchas (por ej. 100) funciones de hashindependientes para armar la firma de cada documento

Page 18: Tópicos de Big Data - Items Similares

Min-hashing

!"#

!"#$%&'(%)*+&,-.*"/012&+&345$'1"%26&&

7&8&7&8&

7&8&7&8&

8&7&8&7&

8&7&8&7&

8&7&8&7&

8&7&7&8&

7&8&7&8&&3

4

7

6

1

2

5

-*/"(%$)1&'(%)*+&!"

8&9&8&9&

:&

;&

<&

=&

8&

9&

>&

8&>&8&9&

>&

:&

9&

<&

;&

=&

8&

9&8&9&8&

?1)'$%(%*4"& &

$%$&%'"$'# ()*+#,+-./0+12#34567/*8#9':;<#=>6>6?#=5-->0+#@545-+4-#

Page 19: Tópicos de Big Data - Items Similares

Min-hashing y Jaccard

• La pobabilidad que la función minhash para unapermutación aleatoria produzca los mismos valores para 2conjuntos, es igual a la similitud de Jaccard para esosconjuntos.

P(hπ(C1) = hπ(C2)) = sim(C1,C2)

Page 20: Tópicos de Big Data - Items Similares

Min-hashing

Page 21: Tópicos de Big Data - Items Similares

LSH

Objetivo: Encontrar documentos con similitud Jaccard al menoss (para algún umbral, por ejemplo, s = 0,8)

• Idea general de LSH: Usar una función f(x, y) que dija si x ey son candidatos

• Columnas x and y de M son un par candidatos si sus firmascomparten al menos una fracción s de sus filas:

• M (i, x) = M (i, y) para al menos una fracción s de losvalores de i

• Espeamos que los documentos x e y tengan la mismasimilitud Jaccard en sus firmas

Page 22: Tópicos de Big Data - Items Similares

LSH - Bands

!"!#"$%!$& '()*&+*,-./*01&23456.)7&8$9:;&<=5=5>&<4,,=/*&?434,*3,& @A&

!"#$%&'()*+%&(",**!"

#"*(-./*0)(*1%$2*

$**1%$2/*

***3$)*/"#$%&'()*

1 2 1 2

1 4 1 2

2 1 2 1

Page 23: Tópicos de Big Data - Items Similares

Ejemplo de bandas

• Supongamos 100.000 columnas of M (100k docs)• Signatures de 100 ints (rows)• Luego signatures tienen 40Mb• Elejimos 20 bandas de 5 ints/band

• Objetivo: Encontrar pares de documentos de al menos s =80 % similar