Post on 07-Jan-2016
description
Generacin de recomendaciones de tems musicales basado en las valoraciones implcitas y las similitudes de los usuarios utilizando Hadoop para procesamientos masivos y escalablesPresentada porMervyn Xavier Macas MartrusFreddy Fernando de La RosaOctubre 2009
AGENDASistema de recomendacionesAlgoritmos de recomendacionesDatasetDiseoEsquema map-reduceImplementacinAlternativas de EjecucinResultadosRecomendacionesConclusiones
Sistemas de RecomendacionesUn sistema de recomendaciones es un tipo especfico de filtro de informacin que sugiere a los usuarios tems o productos concretos basndose en sus preferencias
Ejemplos de Sistemas de Recomendaciones
iTunes Pandora Last.fmFacebookSnooth
ComponentesUsuariosPerfiles RecomendadoresValoracin
Mecanismos de RetroalimentacinExplcita: Cuando se aplica la recomendacin explcita, el sistema otorga al usuario la oportunidad de calificar, dentro de un rango predefinido, los tems que ha utilizado Implcita: El sistema obtiene retroalimentacin implcita capturando la interaccin del usuario sin que l lo note.
Mtodos de RecomendacinRecomendacin colaborativaRecomendacin basada en contenidoRecomendacin basada en demografaRecomendacin basada en utilidad Recomendacin basada en conocimiento
Recomendacin Basada en ContenidoEn este caso la recomendaciones son hechas exclusivamente en base a los tems que el usuario ha elegido en el pasado.
Recomendacin ColaborativaCuando se aplica recomendacin colaborativa, las recomendaciones son hechas exclusivamente en base a los usuarios con gustos similares. Hay sistemas que aplican ms de un mtodo de recomendacin:FABSELECT
Desventajas de la Recomendacin Basada en ContenidoSe hace un anlisis automtico de los tems, considerando atributos predefinidos pero se deja de lado otros atributos relevantes.Las sugerencias son hechas en funcin del historial de tems elegidos por el usuario, por lo tanto el usuario slo puede recibir recomendaciones que concuerden con su perfil
Desventajas de la Recomendacin ColaborativaCuando un nuevo tem se aade al sistema, como no ha sido evaluado por ningn usuario, no hay forma de recomendarlo. Si un usuario particular no se identifica con los gustos de ningn otro usuario del sistema, no es factible hallar vecinos cercanos, y por lo tanto hacer recomendaciones. Se requiere un mnimo de usuarios para elaborar las predicciones
Ventajas de Recomendacin Colaborativa sobre Basada en ContenidoEn la recomendacin colaborativa, los usuarios utilizan sus criterios para evaluar los tems, cubriendo as ms caractersticas de los tems que evalan. En recomendacin colaborativa es posible que el usuario reciba recomendaciones que no se alineen a su perfil (pero s a sus gustos).
Algoritmos de Recomendacin Colaborativa
Los algoritmos de recomendacin colaborativa se basan en el producto punto entre dos vectores y en las frmulas de correlacin .
Producto Punto
Producto PuntoCuando es cero, los vectores apuntan en la misma direccin. As, para valores de cercanos a cero, los vectores tienden a apuntar en la misma direccin.
Producto PuntoEjemplo:
%temsUsuarioABCDF145000256050350408400500
CorrelacinEl coeficiente de correlacin de Pearson mide la relacin lineal entre dos variables cuantitativas.
Algoritmos de Recomendacin Basado en Usuario
Similitud
Recomendacin
Algoritmos de Recomendacin Basado en UsuarioCon la aplicacin de la frmula anterior para cada par de usuarios del sistema se genera una matriz de similitud. Por ejemplo, si la primera fila de la matriz de similitud contiene la siguiente informacin:
u1: 0.5 u2 | 0.3 u3 | 0.2 u4 | 0.6 u7 | 0.9 u8
Algoritmos de Recomendacin Basado en tems
El principio es el mismo que en el caso de las recomendaciones basadas en usuario, la diferencia es que en este caso buscamos similitudes entre tems en lugar de buscar similitudes entre usuarios.
Anlisis de Algoritmos
En general, para un dataset con n usuarios y m tems, para cada usuario se deben realizar n-1 comparaciones, en total n(n-1). En el peor de los casos cada comparacin implica m operaciones. As, el tiempo de ejecucin es del orden de mn2.
DatasetsUn dataset es una coleccin de datos presentados, por lo general, en forma tabular, de tal manera que cada columna representa una variable particular y cada fila corresponde a un miembro del dataset. La fila contiene los valores de las variables correspondientes a cada columna. Cada valor recibe el nombre de dato.
Ejemplos de DatasetMusicBrainz es un dataset de msica mantenido por la comunidad de usuarios. Contiene datos como el nombre del artista, ttulo del lbum lanzado y la lista de pistas que aparecen en un lbum lanzado. El dataset de Audioscrobbler contiene una columna de usuarios, una de artistas y el nmero de veces que cada usuario escuch a cada artista.
Dataset de Audioscrobbler
Herramientas
Map-ReduceHadoopMahoutAmazon Web Services - EC2Amazon Web Services - S3
DiseoRequerimiento de hardwareRequerimiento de softwarePuttyEclipseFirefoxAmazon S3 Organizer Elasticfox VmwareFilezilla
Plug-in Firefox
Vmware Workstation
Infraestructura Tecnolgica
OperadorMquina VirtualNube EC2Nodo MaestroNodos EsclavosAmazon S3
Nodo3
Producto Punto
Pearson
Esquema map-reduceMapReduce es un modelo de programacin para el procesamiento de grandes cantidades de informacinFuncin map procesa pares clave/valor para generar un conjunto de pares intermedios clave/valor, y una funcin reduce que agrupa todos los valores intermedios asociados con la misma clave
Esquema map-reduce: IndexacinPre-procesamiento de datos
map
(U1,(i1,4))(U1,(i2,5))(U2,(i1,5))
(U2,(i2,6))(U2,(i4,5))(U3,(i1,5))
(U3,(i3,3))(U3,(i5,8))(U4,(i3,5))
map
map
reduce
(U1,[(i1,4), (i2,5))
(U2,[(i1,5), (i2,6), (i4,6)])
(U3,[(i1,5), (i3,3), (i5,8)])
(U4,[(i3,5)])
Input
Input
Input
Indexacin
Esquema map-reduce: SimilitudEleccin de los vecinos ms cercanos
map
map
map
map
(U1,(U2,0.2))(U1,(U3,0.4))(U1,(U4,0.5))
(U2,(U1,0.7))(U2,(U3,0.8))(U2,(U4,0.9))
(U3,(U1,0.6))(U3,(U2,0.7))(U3,(U4,0.6))
(U4,(U1,0.7))(U4,(U2,0.8))(U4,(U3,0.5))
reduce
(U2,[(U4,0.9), (U3,0.8), (U1,0.7)])
(U3,[(U2,0.7), (U1,0.6), (U4,0.6)])
(U1,[(U4,0.5), (U3,0.4), (U2,0.2)])
(U4,[(U2,0.8), (U1,0.7), (U3,0.5)])
Similitud
Esquema map-reduce: RecomendacionesSeleccin de tems nunca antes visto.
map
map
map
map
(U1,(i3,0.2))(U1,(i4,0.7))(U1,(i5,0.5)).
(U2,(i3,0.6))(U2,(i5,1.7)).
(U3,(i1,1.2))(U3,(i2,4.8))(U3,(i4,3.5)).
(U4,(i1,0.2))(U4,(i2,0.7))(U4,(i4,0.5))(U4,(i5,2.4)).
reduce
(U1,[(i4,0.7), (i5,0.5), (i3,0.2)])
(U2,[(i5,1.7), (i3,0.6)])
(U3,[(i2,4.8), (i4,3.5), (i1,1.2)])
(U4,[(i5,2.4), (i2,0.7), (i4,0.5), (i1,0.2)])
Output
Output
Output
Output
Recomendaciones
Flujo de datos
Recomendaciones usando PearsonProceso 1: Configuracin del Sistema Principal HadoopProceso 2: Pre-compilar PreferenciasProceso 3: Agrupar Preferencias por UsuarioProceso 4: Computar VecinosProceso 5: Estimar Similitud de UsuariosProceso 6: Elegir vecinos ms cercanosProceso 7: Computar RecomendacionesProceso 8: Obtener tems no preferidosProceso 9: Elegir N recomendaciones
Recomendaciones usando producto puntoProceso 4: Agrupar usuarios por temProceso 5: Agrupar por tuplas de usuarios
Computo de los valores de similitud simple presentado por Tamer Elsayed,_Jimmy Lin, and Douglas W. Oard
ConfiguracionesParmetros de inicio: Es la ruta de origen HFDS donde se almacena el dataset. Es la ruta de destino HDFS donde se almacenan los resultados. Es el nmero de vecinos ms cercanos. Es el nmero de recomendaciones por usuario.
ConfiguracionesVariables de inicio clave/valor para el map o reduce (opcional). Ejemplo:jobConf.set(UserNeighbourhoodReduccer.NEAREST_NUSER_NEIGHBORHOOD, nvecindad);
jobConf.set(ItemsRecommendedReduccer.RECOMMENDATIONS_PER_USER, nrecomendaciones);Carga de archivos en la cache distribuida (opcional). Ejemplo:DistributedCache.addCacheFile(new URI(inputPathDis), jobConf);
Ejecucin de Jobs con 2 alternativas
Pearson
Dos variaciones para las recomendaciones
Pre-indexacin
Vecinos mas cercanos
Recomendaciones
Job 1
Job 2
Job 4
Job 3
Job 3.1
Job 5
Producto Punto
1 min 9 segundos
Producto Punto: 5.50 minutos
Pearson: 6 das
22 horas con 54 minutos y 58 segundos
Tiempo
N Nodos
10 Nodos: 1 Nodo Maestro y 9 nodos Esclavos
Tiempos de respuestaReduccin de un 99.93% con respecto a la alternativa de la correlacin de Pearson.Proceso de obtencin de vecinos ms cercanos basado en una correlacin simple.
Jobmap tasksreduce tasksTiempo map-reduce (min)24101.25310103.43.110100.85Total5.50
CostosLa correlacin de Pearson de la librera de Mahout tiene un costo mucho mayor que utilizando la correlacin simple .Costo total del proyecto
DescripcinSimpleCon PearsonConstante (nodos)$0.20$0.20Nmero de nodos en cluster1010Duracin cluster levantado (Horas)24169Subtotal Nodos$48.00$338.00Constante (Upload por GB)$0.10$0.10Tamao Upload (GB)0.000000.00000Subtotal Upload$0.00$0.00Constante (Download por GB)$0.17$0.17Tamao Download (GB)11Subtotal Download$0.17$0.17Costo Total Sesion$48.17$338.17
CategoraValorSaldo Inicial$200.00Costo Total EC2 (US)$125.73Costo Total Storage (US)$0.81Costo Total Proyecto$126.54Saldo Disponible$73.46
ConclusionesLos tiempos de ejecucin de los algoritmos implementados aumentan con el cuadrado de la cantidad de usuarios y por ello presentan problemas de escalabilidad. El costo del algoritmo de Pearson es tan alto en trminos monetarios, que supera 8 a 1 al algoritmo basado en producto punto. Aplicando producto punto no se obtienen recomendaciones para usuarios que han calificado tems que otros usuarios no han calificado, Pearson resuelve este problema aplicando inferencias.
RecomendacionesLa poca cantidad de nodos compartidos es una limitante. El producto punto se constituye en una alternativa viable para el procesamiento de las similitudes. Para el seguimiento futuro de estos casos se puede buscar una alternativa al mtodo de producto punto en el que se apliquen inferencias y utilice el esquema map-reduce para escalabilidad.
**