recomend e rpg music a

Upload: andres-ballesteros

Post on 26-Feb-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Recomend e Rpg Music A

    1/66

    PGMSICA

    SISTEMA DE RECOMENDACIN

    DE MSICA

    TutoresMsc. Guillermo MoncecchiMsc. Diego Garat

    Integrantes Instituto de ComputacinLeticia Betarte Facultad de IngenieraRodrigo Machado Universidad de la Repblica

    Valeria Molina 2005 - 2006

  • 7/25/2019 Recomend e Rpg Music A

    2/66

  • 7/25/2019 Recomend e Rpg Music A

    3/66

    RESUMEN

    Los sistemas de recomendacin tratan de ser una alternativa al proceso social derecomendacin: ese acto habitual que se practica al recurrir a las opiniones deconocidos o expertos cuando se tiene que tomar una decisin para adquirir algosin tener la suficiente informacin para ello. stas son generalmente decisionessencillas en el entorno de la vida cotidiana, como qu libro leer, qu pelcula ver,qu msica escuchar o qu lugares visitar.

    Una de las tcnicas que se utiliza en este tipo de sistemas es el filtradocolaborativo: se recomiendan elementos que han gustado a usuarios conpreferencias similares. Por esta razn, se recolectan preferencias sobre loselementos y a partir de ellas se calculan las recomendaciones. En el diseo deestas aplicaciones se deben tener en cuenta algunos aspectos entre los cuales sedestacan: cmo se recolectan las preferencias, qu se sugiere a los nuevosusuarios dado que se cuenta con poca informacin (cold start), la privacidad de lainformacin y el volumen de datos.

    En este trabajo se realiza un estudio sobre las tcnicas que se aplican en este tipode sistemas, en particular la de filtrado colaborativo, se describen los algoritmosy mtricas ms utilizados as como las problemticas que se presentan a la horade su diseo. En relacin a los aspectos que merecen ser considerados, se realizaespecial hincapi en el problema del Cold Startas como en el de la recoleccin depreferencias implcitas, generando soluciones aplicadas al dominio de la msica.

    El resultado es un sistema de recomendacin de msica basado en FiltradoColaborativo,denominado PGMsica. Este sistema consta principalmente de trespartes. Una de ellas es una extensin de la aplicacin de audio Winamp donde elusuario obtiene recomendaciones de canciones que le son enviadas mediantestreaming:el contenido de audio es reproducido durante su transmisin sin quesea descargado en la propia mquina del usuario. Estas canciones son transferidasdesde otros clientes, generando a este nivel una arquitectura Peer-to-Peer. Otraparte, es un sitio Web donde se puede consultar la informacin relativa a lainteraccin del usuario con el sistema, as como el detalle de las recomendacionesrealizadas. La tercer parte y la ms importante, es el servidor donde se calculanlas recomendaciones. El algoritmo utilizado es el algoritmo basado en memoria,donde el clculo de similitud entre usuarios se realiza mediante el coeficiente de

    correlacin de Pearson.

    Palabras claves: sistemas de recomendacin, filtrado colaborativo, streaming,arquitecturapeer-to-peer.

  • 7/25/2019 Recomend e Rpg Music A

    4/66

  • 7/25/2019 Recomend e Rpg Music A

    5/66

    INDICE

    Captulo 1 Introduccin .................................................................................. 7

    1.1 Objetivos y Resultados esperados................................................................91.2 Organizacin del Documento.....................................................................10

    Captulo 2 Sistemas de Recomendacin basados en Filtrado Colaborativo.... 11

    2.1 Algoritmos ..............................................................................................122.1.1 Algoritmos basados en memoria ............................................................122.1.2 Algoritmos Basados en el Modelo ...........................................................15

    2.2 Procedimientos y Mtricas de evaluacin ....................................................162.3 Consideraciones de diseo ........................................................................18

    2.3.1 Recoleccin de Preferencias...................................................................182.3.2 Cold Start ...........................................................................................192.3.3 Usuarios mal intencionados...................................................................202.3.4 Privacidad...........................................................................................202.3.5 Volumen de datos ................................................................................21

    2.4 Sistemas de Referencia ............................................................................22

    Captulo 3 Diseo General de la Solucin ...................................................... 25

    3.1 Obtencin e identificacin de canciones del sistema ....................................263.2 Recoleccin de Preferencias ......................................................................283.3 Recomendaciones ....................................................................................33

    3.3.1 Algoritmo............................................................................................343.3.2 Cold Start ...........................................................................................37

    Captulo 4 Descripcin de la Implementacin ............................................... 39

    4.1 Descripcin general del sistema.................................................................394.1.1 Plugin de Winamp ................................................................................404.1.2 Sitio Web............................................................................................41

    4.2 Arquitectura del sistema PGMsica.............................................................424.2.1 Nodo Cliente .......................................................................................434.2.2 Nodo Servidor .....................................................................................444.2.3 Comunicaciones...................................................................................44

    4.3 Lenguajes y Herramientas utilizadas ..........................................................454.3.1 Servidor..............................................................................................454.3.2 Bases de Datos....................................................................................454.3.3 Plugin.................................................................................................46

    4.4 Implementacin del sistema PGMsica .......................................................464.4.1 Componente Plugin ..............................................................................474.4.2 Componente Web Services....................................................................484.4.3 Componente Web ................................................................................494.4.4 Componente GeneralServicios ...............................................................504.4.5 Base de Datos .....................................................................................51

    Captulo 5 Pruebas del Sistema..................................................................... 53

    5.1 Verificacin de la implementacin del algoritmo...........................................545.2 Pruebas del algoritmo ..............................................................................55

    Captulo 6 Conclusiones................................................................................ 59

    6.1 Mejoras y Trabajos Futuros.......................................................................60

    Referencias ........................................................................................................ 63

    Glosario.............................................................................................................. 65

  • 7/25/2019 Recomend e Rpg Music A

    6/66

  • 7/25/2019 Recomend e Rpg Music A

    7/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 7 de 66

    Captulo 1 Introduccin

    En los ltimos aos ha ocurrido un crecimiento explosivo del volumen deinformacin. El nmero de productos, libros, msica, pelculas, noticias, anunciose informacin en general est sobredimensionado para la capacidad deprocesamiento humana. La mayora de estos artculos se filtran simplementeporque son inaccesibles o invisibles al usuario. Esto se observa da a da donde laslibreras y disqueras son quienes deciden qu productos vender, los diarios qunoticias publicar y los cines qu pelculas exhibir.

    Nuevas tendencias en la tecnologa de la informacin intentan romper con esasbarreras, ofreciendo una mayor variedad de opciones y permitiendo que el filtrado

    de la informacin no se realice por medios que tienen intereses propios, sino quesea por parte de las personas o componentes de software independientes. Es porello que surge la idea de los Sistemas de Recomendacin.

    Los Sistemas de Recomendacin tratan de ser una alternativa al proceso social derecomendacin: ese acto habitual que se practica al recurrir a las opiniones deconocidos o expertos cuando se tiene que tomar una decisin para adquirir algosin tener la suficiente informacin para ello. stas son generalmente decisionessencillas en el entorno de la vida cotidiana, como qu libro leer, qu pelcula ver,qu msica escuchar o qu lugares visitar.

    El enfoque ms intuitivo que surge a la hora de crear un sistema de

    recomendacin es que ste analice la relacin entre el contenido de los elementosde inters del usuario y el contenido de los elementos del sistema, para as poderrealizarle sugerencias. Como ejemplo de ello se puede pensar en una aplicacinque recomienda libros donde la relevancia de los tems a sugerir se determinacomparando las descripciones de cada libro (autor, gnero, etc.) y lasdescripciones de los libros de inters del usuario. A este tipo de aplicaciones se lesdenomina sistemas de recomendacin basados en contenido, dado que elfiltrado de la informacin se realiza analizando el contenido de los elementos.

    Existen varios sistemas que optan por este enfoque, entre ellos se encuentraPandora [31] que es un sistema de recomendacin de msica. Pandora contieneinformacin acerca de caractersticas y atributos de cada uno de sus temasmusicales. Las personas ofrecen informacin al sistema sobre sus canciones yartistas favoritos y luego ste les recomienda aquellas canciones cuyascaractersticas almacenadas concuerden con sus preferencias.

    Los sistemas que recomiendan elementos del gusto de los usuarios, cuandoaplican la tcnica de filtrado basado en contenido, cuentan con algunaslimitaciones. Por un lado, los elementos que sugieren deben tener atributos quepermitan describirlos. Con la tecnologa actual y medios como msica, fotografa,arte, video o elementos fsicos, se dificulta esta tarea, ya que generalmente estostems no pueden ser analizados automticamente debido a la dificultad de obtenerun conjunto de atributos que permitan describirlos realmente. Las predileccionesde los usuarios pueden deberse a las sensaciones que provocan tales elementos yno a sus atributos. Por ejemplo, el agrado por una cancin puede ser ocasionado

    por la satisfaccin de escucharla, no influyendo en ello su gnero, autor,intrprete o frecuencia musical. Por otro lado, dadas las caractersticas de la

  • 7/25/2019 Recomend e Rpg Music A

    8/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 8 de 66

    tcnica de filtrado basado en contenido, estos sistemas no permiten que el usuariodescubra tems de contenido totalmente distinto a los ya conocidos por l aunquepuedan ser de su inters. Por ejemplo, en un sistema en que se recomiendapelculas teniendo en cuenta el gnero preferido por el usuario, si ste manifestinters por pelculas de suspenso, el sistema omitir realizarle recomendacionesde pelculas de otros estilos distintos a suspenso, sin sugerirle que experimente

    otros gneros.

    Con el fin de paliar estas limitaciones surgen los Sistemas de Recomendacinbasados en filtrado colaborativo. En estos sistemas, el filtrado de informacin nose realiza analizando las caractersticas de los elementos a recomendar, sino quepara ello se tiene en cuenta nicamente las valoraciones de todos los usuariossobre los tems del sistema.

    El mecanismo general de esta tcnica consiste en calcular un puntaje deprediccin, o sea, el puntaje que se estima que un usuario dara a undeterminado elemento del sistema no conocido hasta el momento por l,basndose en los puntajes que las personas han ofrecido sobre los distintos

    elementos del sistema. Con ese valor de prediccin se concluye si ese tem podraser de inters para el usuario y en cuyo caso se le recomienda.

    El primer sistema de recomendacin basado en filtrado colaborativo, Tapestry [3],fue desarrollado por XeroX PARC en el ao 1992, adoptando la frase FiltradoColaborativo que a partir de ese momento fue el trmino utilizado. Este sistemapermita a los usuarios realizar anotaciones sobre documentos electrnicospublicados en un grupo de noticias, para que luego fueran utilizadas por losrestantes usuarios. Tapestry utilizaba la idea de filtrado colaborativo pero no lohaca de forma automtica. En este caso el sistema no era quien realizaba lasugerencia sino que permita a los usuarios, a partir de las anotaciones que serealizaban sobre los artculos, concluir si un determinado elemento era de su

    inters.En 1997, Resnick y Varian [11] proponen llamarles a estas aplicaciones Sistemasde Recomendacin por dos razones: en primer lugar porque puede ocurrir quelos usuarios no colaboren explcitamente entre ellos y en segundo lugar porque elsistema puede sugerir elementos no conocidos hasta el momento por el usuario yen ese caso se estara realizando una recomendacin. Dado que los algoritmosde filtrado colaborativo tienen la particularidad de no analizar el contenido de lostems en el clculo de prediccin, pueden aplicarse a una gran variedad de tiposde elementos como libros, pelculas, chistes, msica, comidas, etc.

    En particular, Upendra Shardanand [14], investigador del MIT, plantea en su

    trabajo realizado como tesis de maestra que la msica es uno de los dominios deaplicacin ms interesantes para este tipo de sistemas. En primer lugar porquelos gustos de las personas sobre msica son muy variados, ms que sobre otroselementos (por ejemplo pelculas), y esto hace que la msica sea un mejordominio para probar el potencial del filtrado colaborativo. En segundo lugar, laspersonas sienten sus gustos musicales realmente propios, pues tienden a serparte de su identidad. Por ese motivo manifiestan con mayor precisin el agradoo desagrado de la misma, y de esa forma el sistema obtiene una mayor precisinsobre las preferencias del usuario para realizarle mejores recomendaciones.

    Por otra parte, los sistemas de recomendacin de msica actuales permiten a laspersonas escuchar la msica que se les recomienda. Las canciones son enviadasutilizando la tcnica de streaming: el contenido de audio es reproducido sin quesea descargado en la propia mquina del usuario. En general estos sistemascuentan con una arquitectura cliente-servidor, donde el servidor es quien

  • 7/25/2019 Recomend e Rpg Music A

    9/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 9 de 66

    contiene y enva la msica recomendada al cliente; un ejemplo de estos sistemases Last.fm [30].

    Un enfoque alternativo que se plantea, como se muestra en la Figura 1.1, es quesean los propios usuarios quienes dispongan de estos recursos y sean quienesrealicen el envo de la msica. En este caso el servidor va a ser quien conozca

    qu usuarios tienen las canciones que desea enviar como recomendacin,indicndole de forma transparente a quien solicita la recomendacin, con quindebe conectarse para recibir los temas mediante streaming.

    Figura 1.1:a) Envo de streamingCliente-Servidor. b) Envo de streaming Peer-to-Peer.

    Cuando la arquitectura de un sistema permite la comunicacin cliente-cliente, sele denomina arquitectura Peer-to-Peer (P2P). En este caso existen una serie de

    nodos (clientes) que componen una red, donde cada uno cumple funciones decliente y servidor al mismo tiempo.

    Existen varias aplicaciones que utilizan este enfoque; una de las primeras surgien el ao 1999 llamada Napster1. Esta aplicacin era utilizada para el intercambiode archivos entre usuarios conectados a Internet, especialmente archivos de tipomp3. En el caso de Napster, adems de los usuarios que oficiaban de servidorpara el intercambio de archivos, exista un servidor central que almacenaba lainformacin de todos los usuarios conectados y de los recursos con que contaban.Otras aplicaciones ms modernas, como por ejemplo Kazaa2, tambin para elintercambio de archivos, no cuentan con un servidor central sino que consisten enredes descentralizadas donde no se realiza registro de los usuarios conectados ni

    de los archivos intercambiados. Este tipo de aplicaciones sufren varios problemasdebido a la distribucin de msica de forma ilegal.

    1.1 Objetivos y Resultados esperados

    Relacionando los conceptos mencionados anteriormente, el trabajo que sepresenta en este proyecto de grado tiene como objetivos el estudio eimplementacin de tcnicas de filtrado colaborativo, aplicndolas a la resolucindel problema de recomendacin de msica, as como el estudio e implementacin

    1www.napster.com2www.kazaa.com

  • 7/25/2019 Recomend e Rpg Music A

    10/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 10 de 66

    de streamingdirecto entre dos usuarios del sistema, en una arquitectura Peer-to-Peer.

    Como principal resultado se espera la implementacin de un Sistema deRecomendacin de msica basado en Filtrado Colaborativo. El sistema debeconstar de un servidor central encargado de registrar toda la informacin

    necesaria para poder realizar las recomendaciones. Adems, se debe implementarun cliente el cual debe ser una extensin (plugin) de programas de uso masivopara la escucha de msica, que permita recolectar la informacin para enviarle alservidor y tambin de comunicarse con los dems clientes del sistema para enviary recibir canciones mediante streaming, determinndose a este nivel unaarquitectura Peer-to-Peer.

    1.2 Organizacin del Documento

    Este documento se conforma de 6 captulos. En el captulo 2 se realiza unadescripcin sobre los Sistemas de Recomendacin basados en filtradocolaborativo, as como los algoritmos que utilizan y las problemticas a las que seenfrentan. Las decisiones principales sobre el diseo del sistema se presentan enel captulo 3, y en el captulo 4 se realiza la descripcin a nivel deimplementacin, mostrando los distintos componentes del sistema y suinteraccin. En el captulo 5 se detallan las pruebas realizadas sobre el algoritmoutilizado. Y por ltimo, en el captulo 6, se mencionan las conclusiones alcanzadasen la culminacin del proyecto as como las propuestas de mejoras y trabajo afuturo para el sistema PGMsica.

  • 7/25/2019 Recomend e Rpg Music A

    11/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 11 de 66

    Captulo 2 Sistemas de Recomendacin basados en

    Filtrado Colaborativo

    Con el objetivo de crear sistemas que realizan recomendaciones personalizadas,el filtrado colaborativo se plantea como tcnica alternativa y eventualmentecomplementaria al filtrado basado en contenido. En el filtrado colaborativo seintentan resolver algunas de las limitaciones que presenta el filtrado basado encontenido, mencionadas en el captulo anterior. El uso tpico de esta tcnica es ensistemas de recomendacin de libros, msica y pelculas.

    La idea principal de estos sistemas es automatizar el proceso boca a boca dondepersonas recomiendan productos y servicios a otras. Si se tiene que elegir entre

    una variedad de opciones con las cuales no se ha tenido ninguna experiencia, amenudo se confa en las opiniones de otros que tengan tal experiencia, enparticular se buscan personas con gustos similares al que desea obtener larecomendacin. Estos sistemas actan como guas que orientan en la toma dedecisiones relacionadas con los gustos personales y han tenido gran aceptacindebido a que las personas estn acostumbradas a recibir recomendaciones deamigos y colegas.

    Hasta ahora, las aplicaciones principales que se han realizado de estos sistemashan sido en sitios dedicados al comercio electrnico, proporcionando al usuariouna forma de encontrar productos que le podran interesar adquirir. Un ejemplode ello es Amazon3 [4], una tienda onlinede libros y msica, que fue la primer

    librera virtual de la Web.

    El filtrado colaborativo consiste en recomendar elementos que han gustado ausuarios con preferencias similares, basndose nicamente en el puntaje questos asignan a los tems del sistema. Para ello las personas puntan loselementos de acuerdo a sus intereses (a medida que esto sucede se va generandosu perfil) y a partir de ellos se calculan las recomendaciones.

    Algunos enfoques se basan en calcular la similitud entre usuarios, y a partir de suspreferencias se obtienen los elementos a recomendar. Para cada usuario se creaun conjunto de vecinos cercanos: personas cuyas evaluaciones tienen grandessemejanzas a las del usuario que solicita la recomendacin. Los resultados para

    los elementos no calificados por l, se predicen en base a la combinacin depuntajes conocidos de los vecinos cercanos.

    Entonces el procedimiento general aplicado en estos sistemas se resume de lasiguiente forma:

    1) Los usuarios expresan sus valoraciones sobre elementos del sistema,generalmente mediante una escala numrica.

    2) A partir de esa informacin, se intenta predecir el puntaje que dara elusuario que solicita la recomendacin (usuario activo), a los elementos delsistema no conocidos hasta el momento por l.

    3www.amazon.com

  • 7/25/2019 Recomend e Rpg Music A

    12/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 12 de 66

    3) De las predicciones calculadas se seleccionan los elementos con valoresms altos para realizar la recomendacin.

    Existen muchas maneras de generar las predicciones mencionadas, desdediferentes enfoques y basando los clculos en diferentes algoritmos.

    En la seccin 2.1 de este captulo, se mencionan los algoritmos ms conocidos yestudiados del rea, con los cuales se han obtenido los mejores resultados hastael momento. En la siguiente seccin se presentan los procedimientos y mtricasms utilizados para medir la efectividad de estos algoritmos. En la seccin 2.3 seestudian algunos de los aspectos ms importantes a ser considerados en eldiseo de una aplicacin de este tipo. Y por ltimo, en la seccin 2.4, semencionan algunos sistemas de recomendacin que son de referencia en el reay en este proyecto.

    2.1 Algoritmos

    Como se menciona anteriormente, el objetivo de los algoritmos de filtradocolaborativo es predecir el puntaje que un usuario dar a un tem en particular,basndose en una base de datos que contiene los puntajes que otros usuarios haningresado para los tems del sistema, ignorando por completo los atributos ocaractersticas de los usuarios y elementos.

    Se pueden distinguir dos tipos generales de algoritmos de Filtrado Colaborativo:

    Algoritmos basados en Memoria: el clculo de una prediccin se realizaconsiderando la similitud entre el usuario activo y los dems usuarios delsistema. A estos algoritmos tambin se les denomina basados envecindario.

    Algoritmos basados en Modelo: se utilizan los puntajes brindados porlos usuarios para entrenar un modelo probabilstico, el cual se utiliza paragenerar las predicciones. En este caso no se tiene en cuenta de formaexplcita la similitud entre el usuario activo y los dems usuarios delsistema.

    La mayora de los sistemas de filtrado colaborativo automtico utilizan algoritmosbasados en memoria para el clculo de prediccin. A su vez, para computar lamedida de similitud entre dos usuarios, se utilizan varios mtodos, donde elcoeficiente de correlacin de Pearson y el vector de similitud son los msutilizados.

    Dentro de los algoritmos basados en modelo se plantea el modelo de redesbayesianas y el modelo de clusters como los ms estudiados.

    A continuacin se realiza una descripcin de los dos tipos generales de algoritmosas como los mtodos ms usados para cada uno de ellos.

    2 .1 .1 A lg o r it m o s ba sa d os en m e m o r i a

    Cuando el usuario activo solicita una recomendacin, la idea general en este tipode algoritmos consiste en vincularlo con otros usuarios del sistema. El criterio

    para vincular dos usuarios es que ambos hayan puntuado elementos en comn.Al conjunto de usuarios con que se logra vincular al usuario activo lo llamamos

  • 7/25/2019 Recomend e Rpg Music A

    13/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 13 de 66

    conjunto de vecinos o vecindario.

    Son vecinos del usuario activo aquellos que tienen un conjunto de temspuntuados en comn con l, sin importar que las preferencias sobre stos seanmuy variadas. El concepto de similitud se expresa mediante un valor, que secalcula considerando los elementos puntuados en comn. Si ambos puntan de

    manera similar estos elementos, se obtiene un valor alto de similitud, mientrasque si expresan valoraciones opuestas se obtiene un valor de similitud bajo.

    La idea en un algoritmo basado en memoria es calcular las predicciones sobreaquellos elementos que los vecinos conocen, pero que son desconocidos para elusuario activo. A este conjunto de elementos le llamaremos conjunto de temsrecomendables, dado que son potencialmente los elementos que pueden llegar aser recomendados.

    Para realizar la recomendacin se calcula la prediccin del puntaje para cadaelemento del conjunto de tems recomendables. Una vez calculados todos estospuntajes se toma una cantidad arbitraria de elementos, los cuales tienen

    asociados los mayores valores de puntaje de prediccin.

    La frmula general utilizada para el clculo de la prediccin de puntajes es lapresentada en la Formula 2.1. Se define un voto Vi,j como el puntaje brindado

    por el usuario ipara el temj. Se considera adems vj como el puntaje promedio

    de los votos del usuarioj, y w(a,i) como el valor de similitud entre el usuario ayel usuario i.

    n

    iijia

    ja vvvp iawk

    1,

    ,

    ))(,(

    Frmula 2.1:Mtodo basado en memoria

    En esta frmula, n representa la cantidad de vecinos en el sistema y k es unfactor de normalizacin de la ecuacin.

    Analizando la frmula, se puede observar que el primer trmino es el valorpromedio de votacin del usuario activo y el segundo representa la variacin delpuntaje a predecir con respecto a ese promedio. Esta variacin se calculaconsiderando todos los usuarios que tienen elementos en comn con el usuarioactivo y que adems han puntuado el elementoj.

    Con respecto a la sumatoria presente en a Frmula 2.1 se desglosa para suexplicacin en mayor detalle. En primer lugar es necesario determinar si los votosde los vecinos son positivos o negativos con respecto a el tem j. Una posibilidades comparar ese voto con el valor medio de la escala de votacin. En tal caso nose consideran las distintas personalidades de los usuarios. Si en vez de utilizar elvalor medio se utiliza el promedio de las votaciones registradas del usuario comovalor neutro, se asume que los votos superiores al promedio son positivos y losmenores negativos (Frmula 2.2). De esta forma se tiene en cuenta la tendenciao personalidad del usuario al votar, dado que la escala de puntajes de losusuarios es variada y un voto aceptable para un usuario puede estar contenido enun rango de valores diferente al de otro usuario. Por ejemplo, considerando unaescala de puntajes de 1 a 5, el promedio de votaciones del usuario u1 igual a 2 yel promedio del usuario u2 igual a 4. Se quiere saber el agrado o desagrado deuna cancin que tanto el usuario u1 como el u2 le asocia un puntaje igual a 3. Si

  • 7/25/2019 Recomend e Rpg Music A

    14/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 14 de 66

    comparamos contra el promedio de votaciones de cada usuario se concluye que alusuario u1 le agrada ms la cancin que al usuario u2, dado que para u1 el valorde 3 supera su promedio de votacin (2) mientras que para u2 no alcanza supromedio (4). Sin embargo en caso de considerar el promedio de la escala devotaciones (3) en vez del promedio de cada usuario, se concluira que a los dosusuarios le agrada de la misma forma, lo cual no sera real.

    Este trmino se multiplica en la sumatoria por el valor de similitud entre el usuarioactivo a, y el vecino i, w(a,i), el cual es positivo en caso de ser similares, ynegativo si son dismiles.

    La multiplicacin de estos dos miembros de la sumatoria provoca que cadatrmino de ella sea positivo si el usuario i vot positivamente al elemento j yadems es similar al usuario activo, o bien, si ambos usuarios son dismiles y elelemento j fue valorado negativamente por el usuario i. Anlogamente seobtendr en la sumatoria un trmino negativo cuando ambos usuarios sonsimilares y el usuario ivalor negativamente el elemento en cuestin. Esto sucedetambin cuando el usuario i valora positivamente el elemento pero ambos

    usuarios son dismiles.

    )(, vv iji

    Frmula 2.2:Valoracin del usuario i sobre el elemento j

    Normalizando el valor obtenido por la sumatoria y sumndolo al promedio devotos del usuario activo, se obtiene la prediccin de voto del usuario activo sobreel elementoj.

    Similitud entre usuarios

    Para determinar la similitud entre dos usuarios, w(a,i), uno de los mecanismosms utilizado es el coeficiente de correlacin de Pearson, donde la correlacinentre los usuarios a e i se calcula como se muestra en la Frmula 2.3. En estafrmula, el ndice j corresponde a los tems que fueron evaluados por los usuariosae i.

    En el numerador podemos ver que, para cada elemento j de la sumatoria, semultiplican dos trminos. El primer trmino establece si el usuario activo (a)evala el elemento j de manera positiva o negativa, tomando su promedio devotos como valor neutro. De la misma manera en el segundo trmino se evala elvoto del usuario i con respecto al tem j. Al multiplicar estos dos trminos seobtendr un valor negativo, solo si uno de los usuarios lo puntu por debajo delpromedio de votacin y el otro usuario por encima. Este valor negativo provocauna disminucin del valor total de similitud w, lo cual tiene sentido siconsideramos el hecho de que los usuarios valoraron de manera opuesta el

    elemento j. Anlogamente obtendremos un valor positivo en la multiplicacin,cuando ambos usuarios valoraron de igual manera el elemento j en funcin desus valores promedio de votacin. El denominador simplemente normaliza el

    j ijij aja

    j ijiaja

    vvvv

    vvvviaw

    2

    ,

    2

    ,

    ,,

    )()(

    ))((),(

    Frmula 2.3:Correlacin de Pearson

  • 7/25/2019 Recomend e Rpg Music A

    15/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 15 de 66

    valor de similitud.

    Es preciso observar que, si un usuario del sistema punta a todos sus tems conel mismo valor, no ser posible realizarle una recomendacin: no se puede aplicarla frmula de coeficiente de correlacin de Pearson pues se realiza una divisinentre cero. Esto tiene sentido dado que si el usuario asigna el mismo puntaje a

    todos los tems, no se tiene informacin sobre sus preferencias y por lo tanto nose le puede realizar ninguna recomendacin.

    Si bien se han obtenidos buenos resultados con este algoritmo, como debilidadimportante se destaca la gran cantidad de clculos que se realizan al computaruna prediccin, lo cual ocasiona una desmejora en la performance de estossistemas. Cuanto mayor es la cantidad de usuarios y puntajes considerados en elclculo de prediccin, mayor es la exactitud en las predicciones y menor es laperformance del sistema. En definitiva estos algoritmos suelen presentar gravesproblemas de escala.

    Vecinos ms cercanos

    Si bien en el clculo de prediccin presentado en la Frmula 2.1 se considerantodos los usuarios que tienen votos en comn con el usuario activo, una de lasideas ms utilizadas en filtrado colaborativo es la de los vecinos ms cercanos (Knearest neighbors, KNN). Esto implica la seleccin de un subconjunto de usuariosque cumplan una condicin respecto a la similitud con el usuario activo para serconsiderados en el clculo de la prediccin. La razn de considerar un conjuntoreducido de vecinos es aumentar la eficiencia del algoritmo, disminuyendo eltiempo de cmputo en el clculo de prediccin. Por ejemplo se consideran, o setoman los k vecinos con menor distancia.

    En el caso de decidir utilizar un subconjunto de los vecinos posibles, queda pordeterminar cul es la cantidad mxima de vecinos que debera seleccionarse. Sehan realizado estudios que demuestran que al variar el valor del k, vara laprecisin de los resultados. Adems ese valor depende de tamao del conjunto dedatos, por lo tanto se estudia en cada caso el k ms adecuado para el conjunto dedatos considerado.

    2 .1 .2 A l go r i t m o s Ba sa d o s e n e l M o d e lo

    Desde la perspectiva probabilstica, la tarea del filtrado colaborativo puede servista como el clculo del valor esperado de un voto, dada la informacin de los

    puntajes brindados por los usuarios. Para el usuario activo, se intenta predecir elvoto para un tem no evaluado por l. Si se toma una escala de puntajes de 0 am, se puede ver en la Frmula 2.4 cmo se plantea la prediccin del puntajeconsiderando el valor esperado del voto del usuario asobre el temj.

    Dos de las alternativas de implementacin ms usadas para este mtodo son elmodelo de clustersy el modelo de redes bayesianas. Segn el estudio realizado

    m

    i

    akajajaja iIkvivvEp0

    ,,,, ),/Pr()(

    Frmula 2.4:Mtodo basado en modelo

  • 7/25/2019 Recomend e Rpg Music A

    16/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 16 de 66

    por Breese, Heckermann y Kadie [5], el cual es de referencia en la mayora de lostrabajos realizados sobre este tema, el modelo de redes bayesianas resulta msefectivo que el modelo de clusters. Este modelo consiste en formar redes, dondelos nodos se corresponden con cada tem del dominio de aplicacin, y los estadosde los nodos, con los posibles valores de votos sobre los tems. Se aplica elalgoritmo sobre el conjunto de datos de entrenamiento para encontrar

    dependencias entre los elementos y construir las redes. A partir del modeloconstruido se calculan las predicciones de votos. Cada tabla de probabilidadcondicional puede ser representada por un rbol de decisin que codifica lasprobabilidades condicionales para ese nodo.

    Por ejemplo, en un dominio de series de televisin se quiere predecir laprobabilidad de que al usuario activo le interese mirar la serie Melrose Place.Luego de entrenar el modelo se encuentra que Melrose Place est relacionadocon los tems Beverly Hills y Friends y el rbol de decisin para ese tem es elque se muestra en la Figura 2.1. Las barras que estn en la parte ms baja de lafigura indican la probabilidad de mirar Melrose Place condicionado a que vio losprogramas padres. Para determinar la preferencia del usuario activo se navega en

    la red y se calcula la probabilidad de preferencia del usuario activo sobre el temMelrose Place.

    Es preciso observar que este modelo cuenta con algunas desventajas importantes.En primer lugar, es necesario disponer de una gran cantidad de datos deentrenamiento para poder lograr un modelo de gran tamao que permita realizarbuenas predicciones. Sin embargo, contar con un conjunto de datos importante,puede ocasionar que el modelo sea extremadamente grande, requiriendo mucho

    tiempo de entrenamiento. Esto se ve agravado cuando se aplica este modelo ensistemas de filtrado colaborativo donde la escala de votacin puede tener muchosvalores, a diferencia del ejemplo donde se considera una escala binaria (mirar ono mirar). Esto se debe a que los estados posibles de los nodos son precisamentelos valores posibles de puntajes de usuarios sobre tems. Por esta razn serecomienda utilizar este modelo en sistemas donde la valoracin del usuario sobreel tem es binaria o con un tamao reducido de valores. Si bien tiene estasdesventajas, como ventaja importante se menciona la rapidez en el clculo de unaprediccin luego de tener un modelo entrenado.

    2.2 Procedimientos y Mtricas de evaluacin

    Cuando se presenta un nuevo algoritmo de filtrado colaborativo, es necesario

    Figura 2.1:rbol de decisin del nodo Melrose Place

  • 7/25/2019 Recomend e Rpg Music A

    17/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 17 de 66

    medirlo en base a alguna mtrica para saber qu tan exactas resultan suspredicciones.

    Para ello, dado un conjunto de datos con puntuaciones reales sobre los tems, selo divide en dos subconjuntos a los que se los denomina conjunto deentrenamiento (training set) y conjunto de prueba (data test). La idea es predecir

    los datos del conjunto de prueba, considerando nicamente al conjunto deentrenamiento como datos de entrada del algoritmo de filtrado colaborativo.Luego, se comparan las predicciones obtenidas con los datos reales del conjuntode prueba para saber qu tan preciso resulta.

    Otro mecanismo utilizado, llamado validacin cruzada, consiste en dividir elconjunto en n particiones, tomando n-1 particiones como conjunto deentrenamiento y validando contra la particin restante. Este procedimiento serepite con todas las combinaciones de particiones.

    Las primeras evaluaciones realizadas sobre sistemas de filtrado colaborativoautomtico que han sido publicadas son del ao 1994. Desde entonces, se han

    realizado diversos sistemas y distintas mtricas han sido utilizadas para suevaluacin. Si bien no se ha encontrado una mtrica estndar para medir estossistemas, las ms utilizadas son, como se concluye en el trabajo de Herlocker [7],la cobertura (coverage) y el error medio absoluto (MAE).

    El Coverage(cobertura) es simplemente el porcentaje de los elementos para loscuales el sistema podra generar una prediccin. En ciertos casos, un sistema defiltrado colaborativo automtico puede no generar predicciones paradeterminados tems, debido a la falta de informacin que se considera almomento de realizar los clculos por parte del algoritmo. Por ejemplo, loselementos que no tienen asignados ningn puntaje, el sistema no los podrrecomendar. La pregunta que se hace entonces es: para qu porcentajes de

    tems, el sistema puede generar predicciones?. La manera ms fcil de medir lacobertura es seleccionar un conjunto de pares usuarios-elementos elegidos alazar, calcular la prediccin para cada par, y medir el porcentaje para los cualesfue proporcionada.

    Por otro lado, la mtrica ms utilizada y aceptada en el rea para evaluar laprecisin de los algoritmos de filtrado colaborativo es MAE (Mean Absolute Error),que mide la desviacin media entre el valor de prediccin de un tem y el valor depuntuacin (rating) real que asigna el usuario al tem.

    NE

    N

    ii

    i

    rp

    1

    La frmula para calcular el MAE se puede observar en la Frmula 2.5, donde:

    ____

    ||E = valor absoluto promedio del error

    pi = puntaje de prediccin del algoritmo sobre el tem i

    ri = puntaje real del usuario sobre el tem i

    N = total de elementos considerados para el clculo de MAE.

    Frmula 2.5:Error medio absoluto

  • 7/25/2019 Recomend e Rpg Music A

    18/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 18 de 66

    Utilizando esta mtrica, cada elemento del conjunto de prueba es tratado de lamisma manera. Esto significa que se le da el mismo peso al error cometido encalcular la prediccin de un elemento donde su valor real est por encima o pordebajo del promedio de la escala de valores.

    Por ejemplo, si la escala es de 1 a 5, el error en un tem que tiene un puntaje

    verdadero de un punto, tiene el mismo valor que el error que se comete en unelemento con un puntaje de 3 o 5 puntos. Esencialmente, el error medio absolutoproporciona el mismo peso a los errores sea cual sea el elemento considerado.Esto hace que el error medio absoluto sea el ms apropiado para los sistemas queno hacen consideraciones o separaciones de los tems basados en algo que no sealas puntuaciones disponibles.

    Existen algunas variaciones sobre esta mtrica que consisten en hacer la raz dela resta o el cuadrado de la resta. Estas variaciones apuntan a dar mayorimportancia a los errores ms grandes. Por ejemplo, si se utiliza el cuadrado de laresta, se estara amplificando el efecto de los mayores errores, ya que un error devalor 1, suma 1 al total, mientras que un error de 2 sumara 4.

    Esta mtrica tiene la ventaja de ser muy simple de calcular y los resultados sonfcilmente interpretables.

    2.3 Consideraciones de diseo

    Los sistemas de recomendacin basados en filtrado colaborativo traen consigoalgunos problemas y aspectos a ser considerados a la hora de su diseo. Acontinuacin se detallan algunos: la forma de recolectar las preferencias de losusuarios sobre los elementos del sistema, el problema de Cold Start, laconfiabilidad y privacidad de los usuarios, y por ltimo, el problema del volumen

    de informacin que manejan.

    2 . 3 .1 R ec o le c ci n d e Pr e f e r e n c i a s

    Un aspecto fundamental que se plantea a la hora de disear un sistema queutiliza la tcnica de filtrado colaborativo es la recoleccin de preferencias de laspersonas sobre elementos del sistema. De esto depende su funcionamiento, dadoque el sistema llega a ser til luego de haber recogido una masa crtica deopiniones.

    Las preferencias de las personas sobre los elementos se obtienen de formaexplcita o implcita. Las recoleccin explcita ocurre cuando el usuario manifiestasu preferencia sobre un tem, generalmente en una escala numrica discreta. Unejemplo de ello se puede observar en Amazon, donde las personas puedenasignar a los artculos una cantidad de estrellas que reflejan su nivel depreferencia.

    En cambio, la recoleccin implcita se basa en obtener las preferencias del usuarioanalizando las acciones que realiza al utilizar el sistema. Por ejemplo, un sistemade recomendacin de pginas Webpuede recoger informacin implcita sobre laspreferencias registrando la visita de las personas a los diferentes sitios Web.Tambin se puede ver como forma de recoleccin implcita, en un sistema derecomendacin de msica, la cantidad de veces que un usuario escucha

    determinada cancin.

  • 7/25/2019 Recomend e Rpg Music A

    19/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 19 de 66

    La recoleccin de preferencias de forma explcita es simple de realizar puesconsiste nicamente en ofrecer la posibilidad de puntuar los tems del sistema.Sin embargo, para lograr esto se requiere un esfuerzo importante por parte de losusuarios, dado que les puede llevar mucho tiempo realizar estas acciones.

    Para recoger las preferencias de forma implcita el sistema debe ser capaz de

    estudiar el comportamiento del usuario en su utilizacin, lo cual es claramenteuna tarea difcil. Adems, es preciso considerar que las preferencias que sepueden obtener de esta forma son menos exactas, dado que son estimadas por elsistema y no proporcionadas directamente por el usuario. Sin embargo, estaforma de recoleccin resulta ms cmoda para las personas, dado que no debenpuntuar cada uno de los elementos.

    Si bien la informacin explcita tiene una mayor exactitud y es ms fcil deanalizar por el sistema, la recoleccin implcita no deja de ser importante ya quefacilita la tarea de las personas que utilizan la aplicacin. Por lo tanto, muchossistemas intentan recoger las preferencias de ambas formas, lograndocomplementar los esfuerzos de las dos partes (usuario y sistema).

    2 .3 .2 Co ld S t a r t

    Cuando un usuario llega al sistema, no es posible hacerle recomendaciones hastaque su perfil est lo suficientemente determinado como para encontrarle su grupode vecinos cercanos. A este problema se lo conoce como Cold Start[2]. Adems,si los gustos del usuario son poco comunes, podra no ser fcil encontrarle unconjunto de vecinos. Esto hace notar que las recomendaciones dependendirectamente del nmero y variedad de usuarios en el sistema. Tambin esconsiderado un problema de Cold Startcuando la llegada no es por parte de unusuario, sino de un nuevo tem.

    En la mayora de los casos se ataca este problema exigindole a los nuevosusuarios que tomen postura sobre una serie de elementos, de manera de poderdeterminar un perfil inicial como para poder realizarle una primer recomendacin.Por ejemplo, el sistema de recomendacin de msica Ringo [14] exiga ranquearun conjunto de artistas seleccionado por el sistema, donde la mitad de esosartistas eran los ms populares y la otra mitad se seleccionaba aleatoriamente. Deesta forma, se le construa un perfil al nuevo usuario, con el cual se le realizabanlas primeras recomendaciones. Otros sistemas de recomendacin de msica leexigen escuchar un gran nmero de temas antes de realizarle la primerrecomendacin; un ejemplo de ello es Audioscrobbler [29], el cual exige laescucha de 300 canciones.

    Andrew I. Schein [2] y sus colaboradores plantean la utilizacin de mtodosmenos triviales, como considerar la informacin de contenido de los elementos.Para esto, el usuario al momento de registrarse explicita algunas preferenciassobre caractersticas de los tems disponibles. De esta manera, el sistema puedegenerar recomendaciones iniciales hasta que el usuario punte suficienteselementos para construir un perfil que permita vincularlo con otros usuarios delsistema. Un ejemplo de ello es en un sistema de recomendacin de msica que elusuario indique sus bandas favoritas. Estos enfoques tienen la ventaja de noobligar al usuario a puntuar un conjunto importante de elementos.

    Al igual que con la llegada de un nuevo usuario, el ingreso de un tem tambin

    resulta un problema. Sin embargo no se ha encontrado en la bibliografaconsultada sugerencias sobre cmo resolver el problema del cold startcuando lallegada al sistema es por parte de un elemento. En este caso no se tiene ninguna

  • 7/25/2019 Recomend e Rpg Music A

    20/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 20 de 66

    valoracin por parte de los usuarios sobre ese tem, lo cual imposibilita surecomendacin.

    El problema del cold startpor parte del usuario ocurre tanto en los sistemas derecomendacin basados en contenido como en los de filtrado colaborativo. Esto sedebe a que en los dos casos es preciso obtener un perfil del usuario para realizar

    recomendaciones. Sin embargo el cold startde un tem es un problema propio delfiltrado colaborativo. Esto ocurre porque se recomiendan elementos que hanpuntuado usuarios con intereses similares al usuario activo. En este caso el nuevotem no tiene ningn puntaje asignado por lo tanto no puede ser recomendado.Sin embargo los sistemas basados en contenido analizan el contenido de loselementos para relacionarlos con otros del sistema y de esa forma poderrecomendarlos. Por esta razn la llegada de un nuevo tem, en la mayora de loscasos, se resuelve de forma casi inmediata.

    2 .3 .3 U su a r io s m a l i n t e n ci o n a d os

    Uno de los inconvenientes de estos sistemas es que al considerar el puntaje de losusuarios sobre los elementos para realizar recomendaciones puede ocurrir quealgunas personas asignen puntajes muy altos a tems que son de su inters con elobjetivo que sean recomendados. Por ejemplo, en Amazon puede ocurrir que elautor de un libro asigne puntajes altos a sus libros para que sean recomendadospor el sistema. A estas personas se les denomina usuarios mal intencionados yaque pueden sesgar las recomendaciones, por lo que la idea es poder detectarlos yeliminarlos del sistema.

    Los investigadores Paolo Massa y Paolo Avesani [12] sugieren solucionar esteproblema estableciendo redes de confianza entre usuarios. La idea es que unusuario, no solo punte los tems del sistema, sino que tambin exprese su

    confianza en las puntuaciones que han hecho otros usuarios. Esto permite basarlas recomendaciones nicamente con los puntajes brindados por usuarios en losque se confa directamente e indirectamente con los usuarios confiables segnstos. Los valores bajos de confianza (o valores de desconfianza) pueden jugar unpapel muy importante en la deteccin de los usuarios mal intencionados.

    2 .3 .4 P r iv a c i d a d

    En los sistemas de recomendacin basados en filtrado colaborativo es usualmostrarle al usuario informacin acerca de las recomendaciones que se lerealizan. Esto incluye datos sobre los usuarios que influyeron en la generacin de

    la recomendacin, as como preferencias de los mismos sobre determinadostems: cuanto mayor es la informacin que los usuarios tienen acerca de susrecomendaciones, mejor podrn evaluarlas.

    Sin embargo, uno de los problemas que se plantea es la privacidad de losparticipantes, puesto que existen personas que no les gusta exhibir suspreferencias o ser reconocidas por su aporte.

    Algunos sistemas plantean la utilizacin de seudnimos, como GroupLens [13], yotros utilizan el anonimato. No obstante, en los sistemas de recomendacin quese utilizan en el comercio electrnico no es posible aplicar ni el anonimato ni elseudnimo debido a que los usuarios estn totalmente identificados. Algunos

    investigadores, como John Canny [6], han realizado anlisis acerca del temahaciendo especial hincapi en su importancia.

  • 7/25/2019 Recomend e Rpg Music A

    21/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 21 de 66

    2 .3 .5 V o l u m e n de d a t o s

    Las aplicaciones que utilizan la tcnica de filtrado colaborativo en su mayoraconsideran cantidades de tems cada vez ms grandes. Esto genera un impactonegativo sobre las recomendaciones.

    Por un lado, las personas en general puntan pocos elementos sobre el conjuntototal de elementos del sistema. Pero si a su vez el conjunto de tems aumenta encantidad y diversidad, la densidad de elementos puntuados disminuye. Esto haceque sea menos probable que un nmero significativo de vecinos cercanos tenganpuntuados los mismos elementos, por lo que decrece la cantidad derecomendaciones posibles.

    Adems, si el nmero de elementos en el sistema aumenta, se ve incrementado eltiempo de cmputo al calcular el conjunto de vecinos cercanos. Por lo tanto, seobserva que este tipo de sistemas tienen problemas de escala ya que al aumentarel nmero de tems en el sistema, se hace difcil mantener una performancerazonable en las recomendaciones.

    En la mayora de los sistemas actuales se intenta paliar este inconvenienterealizando el clculo de las recomendaciones, o parte del mismo, peridicamente,aunque el usuario no solicite la recomendacin, pues no es deseable que elusuario deba esperar varios minutos para obtener la recomendacin. Esta solucintiene como dificultad que las recomendaciones podran no estar actualizadas en elmomento que el usuario las solicita.

    Otra forma que se ha propuesto para atacar este problema es particionar elconjunto de elementos. El particionamiento reduce el espacio de dimensiones de

    los tems en espacios ms pequeos con pocos tems, menos puntuaciones ymuchos menos usuarios. Una vez que este espacio ha sido dividido se aplica elalgoritmo de filtrado colaborativo en cada parte, independientemente de lasotras. El tiempo para computar una prediccin decrece, dado que hay menosdatos a considerar. Por otro lado, la densidad de las puntuaciones se incrementaya que los usuarios que pertenecen a una determinada particin probablementepunten tems que pertenezcan a esa particin. Adems como cada particin esindependiente, esto hace que la computacin de las recomendaciones se puedahacer en paralelo, incrementando la cantidad de predicciones en un tiempomenor.

    El sistema de recomendacin para el grupo de noticias GroupLens fue el primer

    sistema de filtrado colaborativo automtico que manej un conjunto de temsconsiderablemente grande. GroupLens creaba una particin en el conjunto deartculos segn los grupos de discusin. Dado que la divisin de temas dediscusin en el grupo de noticias era clara, se poda hacer perfectamente ladivisin del conjunto de elementos en subconjuntos segn el tema, basado en elcontenido del tem. La prediccin de un usuario sobre un tema de discusin comohumorera computada usando solamente las puntuaciones sobre los mensajes dehumor. De esta forma, las predicciones son influenciadas solamente por lasopiniones de humory no, por ejemplo, por las de otros tpicos, como cocina. Deesa forma se lograba que las puntuaciones sobre los tems fuesen ms densas,logrando un mayor solapamiento de puntuaciones.

    Tambin se estn realizando algunos trabajos de investigacin con el objetivo departicionar el conjunto de tems sin tener en cuenta su contenido. Para esto se

  • 7/25/2019 Recomend e Rpg Music A

    22/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 22 de 66

    estudian distintas tcnicas de particionamiento o clusterizacin como laspresentadas por A.K. Jain y R.C. Dubes [1].

    Mark OConnor y Jon Herlocker [9] proponen particionar el conjunto de elementosteniendo en cuenta nicamente los votos sobre los tems (sin considerar sucontenido). Ellos proponen usar estos datos de puntuaciones para descubrir

    relaciones entre elementos que podran permitir particionar el conjunto con elpropsito de mejorar la exactitud y performance de las recomendaciones.

    El objetivo que se plantea con el particionamiento es:

    reducir el tiempo computacional de la generacin de recomendaciones hacer ms predicciones en menos tiempo paralelizando los clculos incrementar la exactitud de las predicciones.

    De esta manera vuelven a ser viables los clculos de las predicciones mientras elusuario est conectado. Sin embargo, no se han obtenido hasta el momentobuenos resultados en la exactitud de las predicciones, comparado con la no

    particin del conjunto de tems. Por esta razn se plantea la continuacin de lainvestigacin en este sentido.

    2.4 Sistemas de Referencia

    Aunque hace ya varios aos que surgi el primer sistema de recomendacinbasado en filtrado colaborativo, no son muchos los sistemas que han publicado suimplementacin desde entonces. Sin embargo, algunos de los que han tenidoxito han sido publicados, aportando mejoras de la investigacin en el rea.

    A continuacin se detallan algunos sistemas de referencia en el rea as como de

    inters para el desarrollo de este proyecto.

    Tapestry [3] fue el primer sistema de recomendacin basado en filtradocolaborativo, creado en 1992, el cual permita que los usuarios hiciesenanotaciones sobre documentos electrnicos pertenecientes a un grupo de noticias.Mediante texto libre se podan realizar anotaciones de agrado o desagrado sobrelos documentos, permitiendo de una forma fcil que los usuarios indicaran suvaloracin al respecto. De esta manera, otros integrantes del sistema podanobtener los documentos junto con las anotaciones realizadas. El enfoque utilizadoen este sistema era una mezcla de la tcnica de filtrado basado en contenido ycolaborativo. Basado en contenido porque permita que los usuarios creasenfiltros a travs de sus tems de inters, y colaborativo pues los usuarios

    ingresaban las anotaciones con sus opiniones sobre los documentos y de esaforma colaboraban entre ellos para filtrar la informacin. Tapestry utilizaba la ideade filtrado colaborativo pero no lo haca de forma automtica. En este caso elsistema no era quien realizaba la sugerencia sino que permita a los usuarios, apartir de las anotaciones que se realizaban sobre los artculos, concluir si undeterminado elemento era de su inters.

    Dos aos ms tarde, surge GroupLens [13], quien fue el primer sistemaautomtico de recomendacin basado en filtrado colaborativo. Este sistemaprovee predicciones personalizadas para el grupo de noticias Usenet, ayudando alos usuarios a encontrar artculos de su agrado, dentro de la gran cantidad deartculos disponibles. GroupLens tambin fue el primer sistema en usar el

    algoritmo basado en memoria para realizar el clculo de predicciones y elcoeficiente de correlacin de Pearson para calcular la similitud entre usuarios,considerando todos los usuarios con coeficiente mayor a cero como vecinos del

  • 7/25/2019 Recomend e Rpg Music A

    23/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 23 de 66

    usuario activo. Respecto a la privacidad, los usuarios eligen seudnimos paraidentificarse dentro del mismo, los que sern asociados a sus puntuaciones. Estosseudnimos pueden ser diferentes del nombre que utilizan para anunciar losartculos de noticias.

    MovieLens [28] es un sistema Web de recomendacin de pelculas que fue

    desarrollado como proyecto de investigacin del grupo GroupLens de laUniversidad de Minnesota: en la actualidad MovieLens no es slo un servicio derecomendacin de pelculas sino que es tambin una fuente de datosexperimental y un marco para investigar interfaces de usuarios referente asistemas de recomendacin.

    En lo que respecta a la recomendacin de msica, se encuentra Ringo [14,15],que fue un sistema Web de recomendacin de lbumes y artistas basado enfiltrado colaborativo, publicado en Internet el 1 de julio de 1994. Ringo utilizabael algoritmo general basado en memoria para calcular la prediccin. Para elclculo de la correlacin utiliz una variante de la frmula del coeficiente decorrelacin de Pearson, donde en vez de los ratingspromedio de cada usuario,

    utilizaba una constante (el valor medio de la escala de puntajes). De esta forma,obtena una mejor performance ya que no se calculan el promedio de votos detodos los usuarios del sistema. Adems, los miembros de un vecindario estabanlimitados a aquellos vecinos cuya correlacin fuera mayor a cierto valorpredeterminado. Aumentando este valor se obtenan resultados ms precisospero el sistema era capaz de generar predicciones para un conjunto menor detems.

    Este sistema en sus comienzos tuvo un gran xito. Al tiempo, los creadoresformaron una empresa y le cambiaron el nombre por Firefly y luego fue compradopor Microsoft. Desde entonces el sistema ya no era slo de recomendacin demsica sino que tambin recomendaba libros y pelculas. Como no tuvo el xito

    esperado, al tiempo fue dado de baja.Como sistema de recomendacin de msica ms actual, se encuentra la fusin deAudioscrobbler [29] y Last.fm [30] que, unidos en agosto de 2005, conforman elsistema de recomendacin Last.fm. Audioscrobbler es un plugin de losreproductores de audio ms conocidos como Winamp, XMMS, iTunes, el cualrecolecta la informacin de los temas musicales escuchados por los usuarios. Porotro lado se encuentra la aplicacin Last.fm que permite la escucha de radiospersonalizadas por Internet. Un usuario puede construir su perfil musical medianteestas dos vas. Las canciones escuchadas son acumuladas para generar larecomendaciones, las cuales son calculadas con un algoritmo de filtradocolaborativo, teniendo en cuenta slo la informacin de msica escuchada por los

    usuarios.Al igual que Last.fm, Pandora [31] es tambin un sistema de recomendacin demsica aunque difieren en la forma de recomendacin. En Pandora el usuario lebrinda al sistema un artista o cancin y ste le retorna canciones con un estilosimilar. Su recomendacin se realiza analizando el contenido de la msica,utilizando una serie de atributosque caracterizan la msica almacenada en susbases, siendo a travs de ellos que relaciona cada uno de sus recursos musicales.

  • 7/25/2019 Recomend e Rpg Music A

    24/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 24 de 66

  • 7/25/2019 Recomend e Rpg Music A

    25/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 25 de 66

    Captulo 3 Diseo General de la Solucin

    El sistema que se presenta como resultado de este proyecto es un Sistema deRecomendacin de msica basado en Filtrado Colaborativo denominadoPGMsica, donde a partir de las preferencias de los usuarios registrados sobre lascanciones del sistema, se brindan recomendaciones. Adems el sistema permiteque los usuarios puedan escuchar las canciones recomendadas, obtenindolasdesde otros usuarios conectados al sistema.

    Figura 3.1:Diagrama del Sistema

    PGMsica consta de un servidor encargado de recibir y procesar la informacinque le es enviada desde cada usuario.

    Dado que al realizar las recomendaciones, los algoritmos de filtrado colaborativovinculan los usuarios tomando en cuenta sus preferencias, la recoleccin de estainformacin es un aspecto fundamental a considerar. En ese sentido, una vezregistrados en el sistema, las personas colaboran asocindole a cada cancin unpuntaje dentro de una escala numrica. Adems, con el objetivo de maximizar lasfuentes de informacin, la aplicacin registra las veces que un usuario escuchacada cancin, dato que es tenido en cuenta en la generacin derecomendaciones.

    Las personas pueden solicitar recomendaciones de canciones desde la aplicacindonde escuchan msica. El sistema le permite escuchar los temas recomendados

    utilizando la tcnica de streaming, los cuales se envan al usuario desde otros queestn conectados al sistema en el momento de la recomendacin. A este tipo derecomendacin se le denomina recomendacin Online. Aunque la mayora de

  • 7/25/2019 Recomend e Rpg Music A

    26/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 26 de 66

    estos sistemas cuentan con un servidor centralizado que contiene los recursos arecomendar, en este caso son los propios usuarios los que tienen las cancionescon las que el sistema cuenta para realizar el envo de msica sugerida. Por esose hace necesario que cada usuario defina cul es el conjunto de canciones quedesea compartir, para que el sistema las considere y pueda recomendarlas. Sloestas canciones son tenidas en cuenta a la hora de realizar recomendaciones

    Online.

    Un aspecto diferenciador de este sistema es que los elementos que se consideranson los que proporcionan los usuarios. Cuando una persona punta o escucha unacancin, si esa cancin no existe en el sistema, se registra su informacin. De lamisma forma, cuando un usuario especifica qu canciones desea compartir, seregistran las que son nuevas para el sistema. Todos los ingresos de elementos alsistema ocurren por alguna de estas vas.

    Teniendo en cuenta que las recomendaciones Online dependen de ladisponibilidad de las canciones compartidas por los usuarios conectados en elmomento de generar la recomendacin, se entiende importante que el usuario

    tambin pueda obtener recomendaciones que consideren todas las cancionesregistradas. En este caso se le muestra al usuario una lista de temasconsiderando todas las canciones, sin tener en cuenta cules son las que estndisponibles en ese momento. Tambin se muestra la informacin correspondienteal algoritmo de recomendacin utilizado, para que el usuario sepa qu factoresinfluyeron en la recomendacin y tenga argumentos para poder decidir si leinteresa o no. A este tipo de recomendacin se le denomina recomendacin

    Offline, ya que consta nicamente de la lista de temas sugeridos pero no se leofrece la posibilidad de escucharlos.

    Dado que los elementos a ser considerados son aportados por los usuarios, setoman decisiones con respecto a la obtencin e identificacin de las canciones del

    sistema, las cuales se describen en la seccin 3.1. Por otro lado, en el diseo delos sistemas de recomendacin basados en filtrado colaborativo se debenconsiderar aspectos como los descriptos en la seccin 2.3. Para este proyecto seevala como prioridad el problema del Cold Startas como el de la recoleccin depreferencias implcitas. En ese sentido se realiza especial hincapi, encontrandosoluciones particulares para el dominio de la msica. En la seccin 3.2 se describeel mecanismo utilizado para la recoleccin de preferencias explcitas e implcitas.Luego, en la seccin 3.3, se detalla el mecanismo general para el clculo de lasrecomendaciones, incluyendo el algoritmo de filtrado colaborativo seleccionadoas como la solucin planteada para el problema del Cold Start.

    3.1 Obtencin e identificacin de canciones del sistemaUna vez que se establece el tipo de elemento que utiliza un sistema derecomendacin es necesario definir qu caractersticas y consideraciones se debetener sobre ellos. Los tems con los que trabaja el sistema, en este caso lascanciones, son de gran importancia, ya que son el recurso a recomendar.Teniendo en cuenta que son los propios usuarios los que aportan los elementosnuevos al sistema, es importante definir la obtencin y la calidad de lainformacin requerida para cada uno de estos elementos. Un gran volumen decanciones permite diversidad en las recomendaciones brindadas. Por otro lado lacalidad de la informacin obtenida acerca de cada tem permite ofrecerrecomendaciones ms precisas.

    En PGMsica la obtencin de canciones se realiza por parte de los usuarios. Cadavez que un usuario registrado ingresa al sistema, define su msica compartida,

  • 7/25/2019 Recomend e Rpg Music A

    27/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 27 de 66

    donde cada cancin, en el caso de no estar registrada, es ingresada. Tambin seregistran nuevas canciones cuando algn usuario escucha un tema que an nofue registrado. El sistema asume que cada uno de sus usuarios pondr adisposicin un volumen significativo de temas musicales, obtenindose as unacantidad considerable de canciones a recomendar.

    Para un correcto funcionamiento es importante establecer cul es el criterio paraidentificar las canciones, pues la informacin de las mismas depende de lascanciones disponibles en cada usuario, y si esta informacin no es correcta, sepodrn ver perjudicadas las recomendaciones que realiza. Una misma cancindebe identificarse de forma nica; en caso contrario, pueden recomendarsetemas que el usuario ya conoce, repetirse un mismo tema musical en una mismarecomendacin, o distintas canciones de diversos estilos pueden ser consideradasla misma.

    Para la identificacin se utilizan los atributos nombre de canciny artista. Estosatributos son importantes para especificar una cancin, adems de ser los mshabituales de encontrar en los archivos que ponen a disposicin los usuarios. El

    resto de la informacin (como gnero, ao, nombre del disco, etc.) ayudara en laexactitud de identificacin de un tema, pero no siempre est presente. Por lotanto, las canciones con un mismo ttulo y un mismo artista son consideradasiguales. Notar que al no tenerse en cuenta otra informacin no se esta totalmenteexento de incurrir en los mencionados errores, por ejemplo una misma cancininterpretada por el mismo cantante pero en distinto disco, por tratarse dediferentes versiones (versin acstica, versin sinfnica, etc.), es considerada lamisma. Como en la mayora de los casos sta informacin esta ausente o eserrnea, de igual forma no se podra determinar estas situaciones. Adems, conla informacin que s es tenida en cuenta, de ocurrir ruido en ella el sistema veafectada la calidad de sus recomendaciones.

    Sin embargo, es habitual que los atributos nombre de canciny artistacontenganinformacin incorrecta ingresada automticamente por diversas aplicaciones. Porejemplo, track01como ttulo de cancin, o incluso la falta de informacin en esosatributos. En tales casos estas canciones no son consideradas por PGMsica, paralograr disminuir el ruido que ocasionaran en caso de considerarlas.

    Otro problema se plantea cuando los atributos de las canciones tienen lainformacin correcta pero el valor del atributo no es exactamente el mismo endiferentes usuarios. Por ejemplo, la cancin Adagio a mi pas e intrprete

    Alfredo Zitarrosa pertenece a dos usuarios. Uno de ellos tiene los valorescorrectos mientras que el otro tiene como atributos Adagio a mi pas eintrprete A. Zitarrosa. PGMsica en este caso considera que esas dos

    canciones son diferentes, lo cual ocasiona un error en el dominio de la aplicacin,siendo esta una de las debilidades del sistema. Este problema lo tienen lamayora de las aplicaciones de este tipo. Algunos sugieren alternativas, como elcaso de Audioscrobbler que recomienda el uso del sistema MusicBrainz4, que esun sitio que dispone de la informacin de cientos de temas musicales, ofreciendoservicios para que las personas puedan obtenerlos. Sin embargo, hasta elmomento no se han encontrado alternativas donde el propio sistema resuelva elproblema.

    4http://musicbrainz.org/

  • 7/25/2019 Recomend e Rpg Music A

    28/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 28 de 66

    3.2 Recoleccin de Preferencias

    Luego de definido el tipo de tem y de planteadas las consideraciones acerca deellos, se define la forma de recolectar las preferencias o valoraciones de losusuarios sobre los objetos que maneja el sistema.

    El agrado o desagrado de las personas sobre los elementos es el insumo principalde este tipo de algoritmos. Adems, esta informacin, para ser til, debe ser deun volumen significativo para que el algoritmo de recomendacin retorneresultados satisfactorios. La obtencin de esa informacin no es una tarea trivial,ya que no es usual que los usuarios manifiesten concientemente sus preferenciaspor un conjunto significativo de tems. Por ello, algunos sistemas tratan deabsorber toda la informacin de preferencias que puedan obtener de los usuarios,siendo estas manifestadas concientemente por l o asumindolas en base a sucomportamiento.

    Se distinguen dos formas posibles de recoleccin de esta informacin:informacin explicita que es la manifestacin directa del usuario acerca de un

    objeto (por medio de un puntaje), e informacin implcita que implica hacer unavaloracin sobre ciertas acciones del usuario en el sistema. Los sistemas derecomendacin basados en filtrado colaborativo no siempre consideran larecoleccin de informacin implcita. Dependiendo del tipo de aplicacin puederesultar poco intuitivo, adems de poco confiable, hacer alguna valoracin sobrelas acciones de los usuarios, pero eso depende claramente de cada sistema ydominio. Es importante recordar que estas aplicaciones sufren muchas veces lafalta de informacin, y considerar algn enfoque implcito, como apoyo a larecoleccin explcita, puede ayudar a atacar este problema.

    En PGMsica se manejan estas dos formas de recoleccin, obteniendo informacinimplcita y explcita. El sistema permite que cada usuario registre explcitamente

    sus preferencias sobre las canciones en una escala numrica donde a mayorpuntaje se entiende como una preferencia mayor.

    La recoleccin de informacin implcita se realiza registrando la cantidad de vecesque un usuario escucha una cancin. Es bastante intuitivo pensar que cuantasms veces un usuario escucha una cancin, ms es de su agrado. Como criteriose considera que un usuario escuch una cancin, cuando lo hizo en un tiemposuperior al 80% del tiempo total de su duracin.

    El algoritmo de recomendacin utilizado recibe informacin de las preferencias delos usuarios en una escala de puntajes. Sin embargo, la informacin implcita seexpresa en una escala distinta a la utilizada en la informacin explcita. Por

    ejemplo, considerando una escala numrica de puntajes de 1 a 5, la preferenciade una cancin puntuada con 5 por un usuario, puede no significar lo mismo queuna cancin escuchada 5 veces. Por lo tanto, es necesario realizar algn tipo deprocesamiento para las preferencias implcitas que transformen el numero deveces que se escucha cada cancin en un valor de la escala numrica, de formaque la informacin que recibe el algoritmo le sea indistinta.

    Los puntajes registrados de forma explcita son considerados como informacintotalmente fidedigna, la cual no podr ser modificada por el sistema, sin importarla informacin implcita de la que se disponga. Cuando no se cuenta coninformacin explcita, el sistema se basa en la informacin que recolectaimplcitamente para generar un valor estimado del puntaje que el usuario le daraa esa cancin.

  • 7/25/2019 Recomend e Rpg Music A

    29/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 29 de 66

    En el Cuadro 3.1 se explica en qu casos se calculan los puntajes de prediccin apartir de la informacin implcita.

    Clculo de puntaje

    El objetivo es estudiar el comportamiento general del usuario teniendo en cuenta

    cmo escucha msica y cmo punta las canciones, para poder predecir elpuntaje que le dara a las canciones an no puntuadas pero s escuchadas por l.

    Para el proceso de transformacin de preferencias, se calculan las siguientesvariables por usuario:

    1) mximo, mnimo y promedio de veces que escucha canciones. (Ver cuadro3.2)

    Estos valores aportan la forma en que un usuario escucha msica, pudiendo apartir de ella establecer su comportamiento en relacin a como escucha msica.

    2) mximo, mnimo y promedio de puntajes brindados explcitamente. (Vercuadro 3.3)

    Con estos valores se obtiene informacin acerca de cmo un usuario determinadopunta canciones en general.

    A partir de estos valores, se calculan los puntajes que predice el sistema, para las

    Dado el usuar i o uPar a cada t em i donde el usuar i o u mani f est i mpl ci t a oexpl ci t ament e su pr ef er enci a:

    - s i el t em t i ene punt aj e expl ci t o, ser el que se

    consi der ar en el al gor i t mo.- si no, se r eal i za el cl cul o de pr edi cci n de punt aj e.

    Cuadro 3.1: Algoritmo general sobre puntajes

    escuchaMax (Emax) = a cant a m x ma e veces que e usuar oescuch una canci n

    escuchaMin (Emin) = l a cant i dad m ni ma de veces que el usuar i o

    escuch una canci nescuchaProm (Eprom)= suma de l a cant i dad de escuchas sobre el t ot al

    de canci ones escuchadas.

    Cuadro 3.2:Variables definidas sobre el nmero de veces que se escucha una cancin

    puntajeMax (Pmax) = el puntaj e mxi mo asi gnado por el usuar i o auna canci n.

    puntajeMin (Pmin) = el puntaj e m ni mo asi gnado por el usuar i o auna canci n.

    puntajeProm (Pprom)= suma de t odos l os punt aj es sobr e el t otal decanci ones punt uadas.

    Cuadro 3.3:Variables definidas segn las puntuaciones del usuario

  • 7/25/2019 Recomend e Rpg Music A

    30/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 30 de 66

    canciones que el usuario ha escuchado, pero que an no ha puntuado.

    La idea entonces es determinar qu puntaje le dara el usuario a la cancin i, Pi,la cual ha sido escuchada una cantidad de veces igual a Ei.

    Con los puntajes mximo, mnimo y promedio, as como con la escucha mxima,

    mnima y promedio, podemos observar que el usuario puede estar en 3 estadosdiferentes, que se mencionan a continuacin:

    a) Se tiene informacin general de cmo el usuario punta y escuchacanciones.

    Se determina una relacin entre los puntajes que el usuario asigna a lascanciones y la cantidad de veces que las escucha. As, a partir de lainformacin de escucha (Ei), se estima el puntaje que sera dado a la cancini.

    Para esto se consideran las variables de referencia

    (Emim ,Eprom ,Emax ,Pmin ,Pprom ,Pmax ) y se hace una correspondencia entre(Emim ,Pmin ), (Emax ,Pmax ) y (Eprom ,Pprom ) como se muestra en la Figura 3.2.

    Para el caso donde Ei es menor al promedio de escucha, se realizan lassiguientes correspondencias:

    El intervalo (Pprom , Pi) debe corresponderse con el intervalo (Eprom , Ei).

    De igual forma, el intervalo ( Pprom ,Pmin ) debe corresponderse con el

    intervalo (Eprom

    ,Emim

    ).

    Figura 3.2:Diagrama de transformacin del nmero escuchas en un valor de la escala

  • 7/25/2019 Recomend e Rpg Music A

    31/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 31 de 66

    Anlogamente, se realiza el mismo razonamiento para el caso donde E i esmayor que el promedio de escucha.

    La correspondencia entre los puntajes dados por el usuario y las veces queescucha canciones permiten predecir el puntaje para un tem que an no tieneun puntaje registrado. Se busca que, si Eies mayor a la escucha promedio, seobtendra un puntaje por encima de la media. En caso contrario, se obtiene un

    puntaje menor al puntaje promedio. El anlisis de las frmulas que sepresentan en el cuadro 3.5, se realiza en el cuadro 3.4

    b) No se tiene informacin de cmo el usuario punta cancionesEn este caso no se tienen valores de referencia para establecer los intervalosde correspondencia. Se considera que los puntajes mximo, mnimo ypromedio son el mximo, mnimo y promedio de la escala. Esto ocurre, o biencuando no tenemos puntajes registrados, o bien cuando el usuario haasignado el mismo puntaje a todas sus canciones, debido a que en esteltimo caso no se cuenta con informacin comparativa.

    c) No se tiene informacin de cmo el usuario escucha cancionesEste sera el caso en que el usuario escuch aproximadamente la mismacantidad de veces todas las canciones que estn asociadas a l en el sistema.

    Entonces se calcula el puntaje Picomo se indica en el cuadro 3.6.

    Cuadro 3.6:Clculo de puntaje cuando no se tiene informacin de escucha.

    Si no se tiene un puntaje promedio debido a que el usuario no ha puntuadocanciones, entonces Pi toma el valor medio de la escala (VME).

    Cuadro 3.7:Clculo de puntaje cuando el usuario no ha puntuado canciones.

    Ei Pi = Pprom

    Ei Pi = VME

    Ei = nmero de veces que el usuar i o escuch el t emi

    1 - Si Ei < Eprom Pi = Pprom- ( ( Eprom- Ei) *( Pprom- Pmin) ) / ( Eprom- Emin)

    2 - Si Ei > Eprom Pi = Pprom+( ( Ei- Eprom) *( Pmax- Pprom) ) / ( Emax- Eprom)

    Cuadro 3.5:Clculo de puntaje de prediccin.

    (Pprom Pi) = (Eprom- Ei)

    (Pprom- Pmin) (Eprom Emin)

    Despej ando Pi

    Pi= Pprom - ( ( Eprom - Ei) *( Pprom - Pmin) ) / ( Eprom - Emin)

    Cuadro 3.4: Anlisis sobre las frmulas de clculo de puntajes

  • 7/25/2019 Recomend e Rpg Music A

    32/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 32 de 66

    A continuacin se muestra un ejemplo del clculo de puntaje que se realiza a unusuario a partir del la msica que ha escuchado, considerando una escala depuntajes de 1 a 5.

    Ejemplo:

    Se considera la informacin registrada de puntajes y escucha de msica como semuestra en el Cuadro 3.8. Las canciones 1 y 2, no estn puntuadas pero si estnescuchadas por l. A continuacin se calculan sus puntajes estimados.

    Nro.Cancin Puntaje #Escuchas

    4 2 32 0 67 3 28 4 11 0 1

    3 5 75 4 39 3 26 3 317 2 124 1 023 5 3

    Cuadro 3.8:Ejemplo - Informacin relacionada con canciones del usuario

    Por lo tanto se calcula:

    a) las variables que refieren a los puntajes explcitos

    b) las variables que refieren las cantidades de escucha

    c) el valor de los puntajes de las canciones 1 y 2

    Cancin 1:

    Como la cantidad de escucha de la cancin 1 es igual a uno, menor al promedio(2.83) entonces se aplica la primer frmula presentada en el Cuadro 3.4.

    Pmax = 5Pmin = 1Pprom = (2+3+4+5+4+3+3+2+1+5) / 10 = 3. 2

    Emax = 7Emin = 1Erom = ( 6+3+2+1+1+7+3+2+3+1+3+2) / 12 = 2. 83

    E1 = 1Como E1 < Eprom P1 = Pprom - ( ( Eprom - Ei) *( Pprom - Pmin) ) / ( Eprom - Emin)

    P1 = 3. 2 ( ( 2. 83 - 1) * ( 3. 2 - 1) ) / ( 2. 83 - 1) = 1

  • 7/25/2019 Recomend e Rpg Music A

    33/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 33 de 66

    El puntaje calculado para la cancin 1 es igual a 1, por lo tanto ese valor ser eldado al algoritmo de recomendacin.

    Cancin 2:

    La cantidad de escucha de la cancin 2 es 6 y la escucha promedio es igual a

    2.83, por lo tanto la escucha de la cancin 2 es mayor que la escucha promedio,por ello ser utilizada la segunda frmula presentada en el Cuadro 3.4.

    El algoritmo de recomendacin recibe puntajes enteros, por lo tanto el resultadoobtenido para el puntaje de la cancin 2, es redondeado a 5.

    3.3 Recomendaciones

    Un aspecto a considerar en los sistemas de recomendacin basados en filtradocolaborativo, es determinar el momento en que se realizan los clculos de larecomendacin.

    Como se ha mencionado, este tipo de sistemas debe contener una gran cantidadde informacin de preferencias de sus usuarios, para brindar recomendaciones decalidad. Por otro lado, la mayora de los algoritmos que se utilizan en estossistemas realizan una gran cantidad de clculos por lo que el costo deprocesamiento puede ser muy alto si se cuenta con un volumen significativo depreferencias.

    Por tales razones, algunos sistemas optan por realizar los clculos de lasrecomendaciones mientras el usuario no esta conectado al sistema, de forma quecuando ste se conecte tenga una recomendacin calculada y no tenga queesperar por ella.

    Algunos trabajos realizados sobre este problema proponen realizar el clculo delvecindario de cada uno de los usuarios peridicamente, y al momento del pedidode recomendacin utilizar el ltimo vecindario calculado. Si bien estodescongestiona los clculos para generar la recomendacin, tiene como aspectonegativo el hecho de que el clculo del vecindario no contempla la informacinms reciente que se haya ingresado.

    En PGMsica se decide realizar las recomendaciones al momento de recibir elpedido de recomendacin. Esto implica realizar los clculos del algoritmos en elinstante que el usuario la solicita. Claramente existe un problema de escalaasociado a esta decisin: en tanto aumente la cantidad de usuarios y los tems enel sistema, la carga que implican los clculos podran provocar una demoraexcesiva. Mientras no suceda esto, las recomendaciones que brinda el sistemason vigentes y concuerdan con la las preferencias actuales del usuario.

    La idea general de PGMsica es realizar recomendaciones de canciones ypermitirle a los usuarios escucharlas. Sin embargo no todas las cancionesregistradas en el sistema son canciones disponibles para ser enviadas mediante la

    tcnica de streaming. Esto limita la cantidad y diversidad de temas musicales aser recomendados en un momento dado. Por ello PGMsica realiza dos tipos derecomendaciones.

    E2 = 6Como E2 > Eprom Pi = Pprom + ( ( Ei - Eprom) *( Pmax - Pprom) ) / ( Emax - Eprom)

    P2 = 3. 2 + ( ( 6 2. 83) * ( 5 3. 2) ) / ( 7 2. 83) = 4. 568 ~= 5

  • 7/25/2019 Recomend e Rpg Music A

    34/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 34 de 66

    Si el usuario solicita la recomendacin desde la aplicacin de msica, solo se lerecomendarn canciones que el usuario no haya escuchado y que estndisponibles a travs de otros usuarios conectados al momento de solicitar larecomendacin. Este tipo de recomendacin la denominamos Recomendacinonline. Es importante aclarar que tambin se consideran las canciones

    compartidas por el usuario que solicita la recomendacin, dado que nonecesariamente conoce todas las canciones disponibles all.

    Por otro lado el usuario tambin tiene la posibilidad de obtener unarecomendacin sobre todas las canciones registradas en el sistema, sin importarcules estn disponibles para ser escuchadas. Esta recomendacin ladenominamos Recomendacin offline, porque las canciones contenidas en larecomendacin no pueden ser escuchadas, pero s se muestra detallesinformativos de las mismas.

    La recomendacin online cumple con el objetivo inicial del proyecto de poderescuchar las canciones sugeridas. En cambio, la recomendacin offlineno fue un

    requerimiento inicial, pero se considera til que el usuario pueda obtener mejoresresultados, pues no se restringe el conjunto de canciones potenciales a serrecomendadas, sino que se consideran todos los temas musicales del sistema.

    El procedimiento general para realizar las recomendaciones ofrecidas se detallaen el Cuadro 3.9, independientemente del tipo de recomendacin (online,offline).

    De las predicciones generadas, se seleccionan los diez puntajes ms altos, y esaes la recomendacin que se presenta al usuario.

    3 .3 .1 A lg o r i t m o

    Como se menciona en el captulo 2, existen varios algoritmos para realizar lasrecomendaciones en un sistema de este tipo. En el anlisis realizado por Breese,Hecherman y Kadie [5] se concluye que los algoritmos con los que se obtienenmejores resultados para sistemas de recomendacin basados en filtradocolaborativo son Correlacin de Pearson y Redes Bayesianas. Sin embargo paralos tipos de sistemas donde el puntaje sobre los tems no es binario, son mejoreslos resultados utilizando la frmula general de los algoritmos basados enmemoria.

    En PGMsica se cuenta con un rango no binario de puntajes que pueden seradjudicados a cada uno de los tems del sistema. Adems, el algoritmo basado en

    Dado el usuari o u que sol i ci t a una r ecomendaci n

    Par a todos l os usuari os se cal cul an l os punt aj es de i nf or maci nexpl ci ta

    Si par a el usuar i o u se puede cal cul ar al menos un veci no- Se ut i l i za el al gor i tmo de f i l t r ado col aborat i vo

    Si no, si se pueden generar veci nos segn pr ocedi mi ent o Cold Start- Se ut i l i za procedi mi ento Cold Start

    Si ni nguna de est as opci ones genera veci nos, se recomi endan l as10 canci ones ms escuchadas del si st ema

    Cuadro 3.9: Procedimiento general de generacin de recomendaciones

  • 7/25/2019 Recomend e Rpg Music A

    35/66

    Universidad de la Repblica | Facultad de Ingeniera | Instituto de Computacin

    PGMsica Pgina 35 de 66

    memoria es simple de calcular y requiere menos cantidad de informacin paracalcular recomendaciones que el basado en modelo. Entonces se selecciona paraPGMsica el algoritmo basado en memoria, donde la frmula utilizada es la quese presenta en la seccin 2.1.1.

    n

    iijiaja vvvp iawk

    1,,

    ))(,(

    donde:

    pja,= prediccin del puntaje del usuario asobre el temj

    va = puntaje promedio de los votos del usuario a

    w(a,i) = valor de similitud entre el usuario a y el usuario i

    Vi,j= puntaje brindado por el usuario ipara el temj.

    vi = puntaje promedio de los votos del usuario i

    En esta frmula, el k es un factor de normalizacin para que el valor que sesuma al promedio de votos del usuario activo, sea coherente con la escala depuntajes del sistema.

    Para lograr ese objetivo se plantea ktal cual se presenta en la Frmula 3.2.

    Utilizando este k, puede ocurrir que el resultado del puntaje de prediccin sea unvalor por encima o por debajo del mximo y mnimo puntaje permitido. En estecaso, se asignan el mximo y el mnimo puntaje de la escala respectivamente.

    Similitud entre Usuarios

    En los algoritmos basados en memoria, se calcula la similitud entre usuarios. EnPGMsica para realizar este clculo se elige el coeficiente de correlacin dePearson, ya que es uno de los ms estudiados y utilizados. Adems, es en generalel algoritmo ms aceptado para este tipo de sistemas, debido a los buenosresultados obtenidos.

    A la hora de implementar el coeficiente de correlacin de Pearson para calcular elpeso, w(a,i), no se utiliza la ecuacin planteada en la seccin 2.1.1. sino que en

    su lugar se emplea una regresin lineal, que se presenta en la Frmula 3.3.Material de referencia de sistemas ya implementados indican que esta regresin

    Frmula 3.1: Frmula del algoritmo basado en memoria

    Frmula 3.2: Frmula de factor de normalizacin

    n

    i

    iaw1

    ),(

    1

  • 7/25/2019 Recomend e Rpg Music A

    36/66

    Universidad de la Repblica |