Presentada por Mervyn Xavier Macías Martrus Freddy Fernando de La Rosa Octubre 2009

  • Upload
    oralee

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

Generación de recomendaciones de ítems musicales basado en las valoraciones implícitas y las similitudes de los usuarios utilizando Hadoop para procesamientos masivos y escalables. Presentada por Mervyn Xavier Macías Martrus Freddy Fernando de La Rosa Octubre 2009. AGENDA. - PowerPoint PPT Presentation

Citation preview

  • 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.

    **