SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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 
ernesto@7puentes.com 
Octubre 2014
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
Intro 
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.
High dimensional data 
Muchos problemas pueden ser modelados a partir de encontrar 
conjuntos 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.
ƒ !#$!##$%'()(*$(+,$%$'(%$)#')$*)$'#$)*+#$%$ 
'#*,$*-'#,)#.'*%-$/$'#$)*+#$%$'#*,$0-*%-1$ 
ƒ '()2345$367$8$934ˆ369/934‰369$ 
ƒ !#$!##$%-(.+/#0$:#'(##-$)#')$*)$4$;*-0)$ 
'#*,$=..=,$)*;*?=,*'@1$ 
ƒ %2345$367$8$4$A$934ˆ369/934‰369$ 
Jaccard Similarity de Conjuntos 
 Jaccard similarity de conjuntos S and T = jS  Tj=jS [ Tj 
 Jaccard distance = 1 - Jaccard similarity 
3 in intersection 
8 in union 
Jaccard similarity= 3/8 
Jaccard distance = 5/8 
4/4B/6C46$ 0,#$D#)E%F#.5$G'=-%,$36HI1$J*-*-K$J=))*F#$L='=)#')$ 44$ 
 Extensión: Jaccard Similarity de Bags
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 near 
duplicates. 
 Plagio. 
 Páginas en espejo (mirror sites). 
 Artículos originarios de la misma fuente, news aggregators. 
 Pequeñas partes, fragmentos de un documento que se 
encuentran en otro. 
 Son muchos documentos para pensar en comparar todos 
los pares. 
 ...y no entran en memoria.
Paso a paso 
1 Shingling: Convertir a los documents, emails, etc., a 
conjunto de n-grams 
2 Minhashing: Convertir sets a signatures, mientras 
conservamos la noción de similitud 
3 Locality-sensitive hashing: Operar sobre el espacio de 
signatures para encontrar grupos de documentos 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:;#=66?#=5--0+#@545-+4-#
Shingling 
 Un k-shingle (o k-gram) para un documento es una 
secuencia de k tokens que ocurren en un documento. 
 Los tokens pueden ser chars, palabras, u otra combinación 
dependiendo 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.
Comprimir los Shingles 
 Representar a los docs como un conjunto de valores de 
hash 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
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 en 
el espacio de k-shingles. 
 Cada shingle es una dimensión. 
 Los vectores son muy esparsos/ralos. 
 Jaccard similarity!
Motivación para minhashing/LSH 
 Supongamos que necesitamos encontrar near-duplicados en 
un 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!
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
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
Hashing sobre las columnas 
 Idea: aplicar una función de hash para cada columna C a 
h(C), talque: 
1 h(C) es pequeña para que la firma entre en memoria RAM 
2 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 probabilidad 
h(C1)6= h(C2) 
 Aplicamos hash a los documentos y esperamos que la 
mayoría de los pares de documentos near-duplicados caigan 
en el mismo bucket
Min-hashing 
 Imaginemos las filas de esta matriz booleana permutada 
por una permutación  cualquiera. 
 Luego definamos una nueva hash function h(C) = el 
número de la primera fila (en el orden permutado ) con 
valor 1: 
h(C) = min(C) 
 Usaremos muchas (por ej. 100) funciones de hash 
independientes para armar la firma de cada documento
Min-hashing 
!# 
!#$%'(%)*+,-.*/012+345$'1%26 
3 8 7 8 7 
4 
8 7 7 8 
7 
7 8 7 8 
6 
7 8 7 8 
1 
7 8 7 8 
2 
5 
8 7 8 7 
8 7 8 7 
-*/(%$)1'(%)*+! 
9 8 9 8 
 
9 
8 
= 
 
; 
: 
9 8  8 
8 
= 
; 
 
9 
: 
 
8 9 8 9 
?1)'$%(%*4S 
$%$%'$'# ()*+#,+-./0+12#34567/*8#9':;#=66?#=5--0+#@545-+4-#
Min-hashing y Jaccard 
 La pobabilidad que la función minhash para una 
permutación aleatoria produzca los mismos valores para 2 
conjuntos, es igual a la similitud de Jaccard para esos 
conjuntos. 
P(h(C1) = h(C2)) = sim(C1; C2)
Min-hashing
LSH 
Objetivo: Encontrar documentos con similitud Jaccard al menos 
s (para algún umbral, por ejemplo, s = 0;8) 
 Idea general de LSH: Usar una función f (x; y) que dija si x e 
y son candidatos 
 Columnas x and y de M son un par candidatos si sus firmas 
comparten al menos una fracción s de sus filas: 
 M (i, x) = M (i, y) para al menos una fracción s de los 
valores de i 
 Espeamos que los documentos x e y tengan la misma 
similitud Jaccard en sus firmas
LSH - Bands 
!#$%'()*+%(,**! 
2 1 4 1 
1 2 1 2 
2 1 2 1 
#*(-./* 
0)(*1%$2* 
$**1%$2/* 
***3$)* 
/#$%'()* 
!!#$%!$ '()*+*,-./*0123456.)78$9:;=5=54,,=/*?434,*3, @A
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

Más contenido relacionado

Destacado

Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
 
Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónErnesto Mislej
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisErnesto Mislej
 
Curso de Nivelación de Algoritmos - Clase 1
Curso de Nivelación de Algoritmos - Clase 1Curso de Nivelación de Algoritmos - Clase 1
Curso de Nivelación de Algoritmos - Clase 1Ernesto Mislej
 
Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Ernesto Mislej
 
Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Ernesto Mislej
 
Curso de Nivelación de Algoritmos - Clase 5
Curso de Nivelación de Algoritmos - Clase 5Curso de Nivelación de Algoritmos - Clase 5
Curso de Nivelación de Algoritmos - Clase 5Ernesto Mislej
 
Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4Ernesto Mislej
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big DataErnesto Mislej
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big DataErnesto Mislej
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestArErnesto Mislej
 

Destacado (12)

Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de Recomendación
 
Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - Introducción
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link Analysis
 
Curso de Nivelación de Algoritmos - Clase 1
Curso de Nivelación de Algoritmos - Clase 1Curso de Nivelación de Algoritmos - Clase 1
Curso de Nivelación de Algoritmos - Clase 1
 
Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2Curso de Nivelación de Algoritmos - Clase 2
Curso de Nivelación de Algoritmos - Clase 2
 
Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3Curso de Nivelación de Algoritmos - Clase 3
Curso de Nivelación de Algoritmos - Clase 3
 
Curso de Nivelación de Algoritmos - Clase 5
Curso de Nivelación de Algoritmos - Clase 5Curso de Nivelación de Algoritmos - Clase 5
Curso de Nivelación de Algoritmos - Clase 5
 
Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4Curso de Nivelación de Algoritmos - Clase 4
Curso de Nivelación de Algoritmos - Clase 4
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big Data
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big Data
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestAr
 

Similar a Tópicos de Big Data - Items Similares

Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4jUbaldo Taladriz
 
Estadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaEstadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaLuis Fernando Aguas Bucheli
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsamdevxon9
 
Greach 2011 - Engrandeciendo Grails con Mongo DB
Greach 2011 - Engrandeciendo Grails con Mongo DBGreach 2011 - Engrandeciendo Grails con Mongo DB
Greach 2011 - Engrandeciendo Grails con Mongo DBgreach_es
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02kevinwm17
 
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...Victoria López
 
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeaconsIndoor Positioning System with iBeacons
Indoor Positioning System with iBeaconsPiXeL16
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++EdsonRc
 
Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Krlos Mendez Lp
 

Similar a Tópicos de Big Data - Items Similares (20)

Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
Anonimo el libro hacker
Anonimo   el libro hackerAnonimo   el libro hacker
Anonimo el libro hacker
 
Primeros pasos con Neo4j
Primeros pasos con Neo4jPrimeros pasos con Neo4j
Primeros pasos con Neo4j
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Estadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión IntroductoriaEstadística con Lenguaje R: Sesión Introductoria
Estadística con Lenguaje R: Sesión Introductoria
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Programacion de Cadenas
Programacion de CadenasProgramacion de Cadenas
Programacion de Cadenas
 
Greach 2011 - Engrandeciendo Grails con Mongo DB
Greach 2011 - Engrandeciendo Grails con Mongo DBGreach 2011 - Engrandeciendo Grails con Mongo DB
Greach 2011 - Engrandeciendo Grails con Mongo DB
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...
Una visión de las técnicas y métodos de análisis en entornos Big Data utiliza...
 
Programación de código
Programación de códigoProgramación de código
Programación de código
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeaconsIndoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
 
funcion de archivo secuencial
funcion de archivo secuencial funcion de archivo secuencial
funcion de archivo secuencial
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3
 

Último

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Tópicos de Big Data - Items Similares

  • 1. 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 ernesto@7puentes.com Octubre 2014
  • 2. 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
  • 3. Intro 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.
  • 4. High dimensional data Muchos problemas pueden ser modelados a partir de encontrar conjuntos 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.
  • 5. ƒ !#$!##$%'()(*$(+,$%$'(%$)#')$*)$'#$)*+#$%$ '#*,$*-'#,)#.'*%-$/$'#$)*+#$%$'#*,$0-*%-1$ ƒ '()2345$367$8$934ˆ369/934‰369$ ƒ !#$!##$%-(.+/#0$:#'(##-$)#')$*)$4$;*-0)$ '#*,$=..=,$)*;*?=,*'@1$ ƒ %2345$367$8$4$A$934ˆ369/934‰369$ Jaccard Similarity de Conjuntos Jaccard similarity de conjuntos S and T = jS Tj=jS [ Tj Jaccard distance = 1 - Jaccard similarity 3 in intersection 8 in union Jaccard similarity= 3/8 Jaccard distance = 5/8 4/4B/6C46$ 0,#$D#)E%F#.5$G'=-%,$36HI1$J*-*-K$J=))*F#$L='=)#')$ 44$ Extensión: Jaccard Similarity de Bags
  • 6. 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 near duplicates. Plagio. Páginas en espejo (mirror sites). Artículos originarios de la misma fuente, news aggregators. Pequeñas partes, fragmentos de un documento que se encuentran en otro. Son muchos documentos para pensar en comparar todos los pares. ...y no entran en memoria.
  • 7.
  • 8. Paso a paso 1 Shingling: Convertir a los documents, emails, etc., a conjunto de n-grams 2 Minhashing: Convertir sets a signatures, mientras conservamos la noción de similitud 3 Locality-sensitive hashing: Operar sobre el espacio de signatures para encontrar grupos de documentos similares
  • 9. 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:;#=66?#=5--0+#@545-+4-#
  • 10. Shingling Un k-shingle (o k-gram) para un documento es una secuencia de k tokens que ocurren en un documento. Los tokens pueden ser chars, palabras, u otra combinación dependiendo 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.
  • 11. Comprimir los Shingles Representar a los docs como un conjunto de valores de hash 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
  • 12. 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 en el espacio de k-shingles. Cada shingle es una dimensión. Los vectores son muy esparsos/ralos. Jaccard similarity!
  • 13. Motivación para minhashing/LSH Supongamos que necesitamos encontrar near-duplicados en un 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!
  • 14. 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
  • 15. 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
  • 16. Hashing sobre las columnas Idea: aplicar una función de hash para cada columna C a h(C), talque: 1 h(C) es pequeña para que la firma entre en memoria RAM 2 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 probabilidad h(C1)6= h(C2) Aplicamos hash a los documentos y esperamos que la mayoría de los pares de documentos near-duplicados caigan en el mismo bucket
  • 17. Min-hashing Imaginemos las filas de esta matriz booleana permutada por una permutación cualquiera. Luego definamos una nueva hash function h(C) = el número de la primera fila (en el orden permutado ) con valor 1: h(C) = min(C) Usaremos muchas (por ej. 100) funciones de hash independientes para armar la firma de cada documento
  • 18. Min-hashing !# !#$%'(%)*+,-.*/012+345$'1%26 3 8 7 8 7 4 8 7 7 8 7 7 8 7 8 6 7 8 7 8 1 7 8 7 8 2 5 8 7 8 7 8 7 8 7 -*/(%$)1'(%)*+! 9 8 9 8 9 8 = ; : 9 8 8 8 = ; 9 : 8 9 8 9 ?1)'$%(%*4S $%$%'$'# ()*+#,+-./0+12#34567/*8#9':;#=66?#=5--0+#@545-+4-#
  • 19. Min-hashing y Jaccard La pobabilidad que la función minhash para una permutación aleatoria produzca los mismos valores para 2 conjuntos, es igual a la similitud de Jaccard para esos conjuntos. P(h(C1) = h(C2)) = sim(C1; C2)
  • 21. LSH Objetivo: Encontrar documentos con similitud Jaccard al menos s (para algún umbral, por ejemplo, s = 0;8) Idea general de LSH: Usar una función f (x; y) que dija si x e y son candidatos Columnas x and y de M son un par candidatos si sus firmas comparten al menos una fracción s de sus filas: M (i, x) = M (i, y) para al menos una fracción s de los valores de i Espeamos que los documentos x e y tengan la misma similitud Jaccard en sus firmas
  • 22. LSH - Bands !#$%'()*+%(,**! 2 1 4 1 1 2 1 2 2 1 2 1 #*(-./* 0)(*1%$2* $**1%$2/* ***3$)* /#$%'()* !!#$%!$ '()*+*,-./*0123456.)78$9:;=5=54,,=/*?434,*3, @A
  • 23. 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