35
[ Implementación de un sistema de recomendaciones basado en PSO ] Diariamente las personas se ven enfrentadas a una gran cantidad elecciones, que varían desde las triviales a las trascendentale Esta gran cantidad de elecciones producen una mala experiencia compra para las personas, quienes evitaran esos lugares dando co resultado pérdidas para los comerciantes. De este modo pierde tan el cliente como el vendedor, es por esto que un buen sistema recomendación es de vital importancia. En el presente paper realizara un análisis de la problemática planteada y de l diferentes enfoques para resolverlo. Como complemento a esto se ha un recorrido por diferentes enfoques para usar PSO como herramien de apoyo a la generación de modelos que permitan realiz recomendaciones. Palabras Clave: E-Comercio, Filtrado Colaborativo, PSO, Sistema de Recomendación Ignacio Antonio Salas Donoso Universidad Técnica Federico Santa María Departamento de Informática [email protected] 14 de Octubre de 2011 1.0 Introducción En el presente paper se realiza una descripción del problema de la elección frente a una gran variedad de opciones, indicando Página 1 de 35

Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Embed Size (px)

Citation preview

Page 1: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

[

]

Palabras Clave: E-Comercio, Filtrado Colaborativo, PSO, Sistema de Recomendación

Ignacio Antonio Salas DonosoUniversidad Técnica Federico Santa María

Departamento de Informática

[email protected]

14 de Octubre de 2011

1.0 Introducción

En el presente paper se realiza una descripción del problema de la elección frente a una gran variedad de opciones, indicando sus características, para seguir con una descripción de diferentes enfoques para crear sistemas de recomendación encontrados en la literatura, además de mostrar cómo se puede usar el algoritmo PSO para implementar algunos de estos enfoques, o parte de ellos. Finalmente se realizará un análisis de las alternativas, a modo de definir los pasos a seguir del proyecto de Memoria “Implementación de un sistema de recomendaciones basado en PSO”.

2.0 Definición del Problema

2.1 Paradoja de la Elección

Página 1 de 23

Page 2: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Diariamente las personas se ven enfrentadas a una serie de elecciones, que varían desde las triviales a las trascendentales. En general, como una del tipo trivial se puede considerar la compra en un supermercado, ahí las personas tienen una idea de las cosas que necesitan, sin embargo, durante su compra se enfrentan a que hay toda una variedad de productos relacionados haciendo complicado elegir. En este caso el supermercado busca seducir con sus productos a diferentes segmentos objetivos. Cuando elegir involucra productos de gran costo y larga duración, como son los automóviles, casas, seguros, previsión, salud y educación, la dificultad y el gasto asociado son mayores.

Conocer los objetivos personales, es en esencia, poder anticipar cómo una opción u otra va a hacer sentir a la persona, lo cual es complejo. Esto se basa en las experiencias pasadas y en las expectativas creadas. Si la persona quedó o no con un buen sentimiento sobre un producto va a influir en sus elecciones actuales, este puede elegir algo similar o volver a elegir lo mismo con la expectativa de volver a sentir lo mismo, de lo contrario no se vuelve a elegir. Es importante hacer notar que en la memoria no todo se recuerda con la misma intensidad, muchas veces se recuerdan mejor los últimos momentos [15].

Una vez elegidos los objetivos es necesario estar informado para tomar alguna opción, para hacer esto se recurre a la propia experiencia y la de otras personas, normalmente en alguien en quien se confíe. Para evaluar esta información se consideran algunas reglas como son la de disponibilidad, anclaje y marco.

Con la heurística de la disponibilidad se asume como más disponibles algunos fragmentos de información en la memoria: lo más frecuente que se ha encontrado en el pasado.

El anclaje se refiere a establecer medidas estándar personales para poder comparar dos ítems, de modo que toda elección que se tome es relativa.

El efecto marco se da cuando hay ambigüedad en la elección, por ejemplo en una gasolinera se dan dos precios:

Efectivo $600 por litroTarjeta de Crédito $650 por litro

Si se considera la tarjeta como referencia, pagar en efectivo es un descuento, y si considera el efectivo como referencia, pagar con tarjeta es un sobrecargo, esta existencia de marcos de referencias va a depender de cada persona.

Como una extensión del estudio de los marcos también se considera la teoría de la perspectiva, en la figura 1 se contrasta como las personas reaccionan frente a las pérdidas y ganancias, en la línea vertical está la percepción de la persona y en la horizontal están los logros obtenidos. Se puede apreciar que hay un punto en que las ganancias ya no producen el mismo placer, en contraposición con lo que pasa con las pérdidas, donde

mientras más se pierde, peor se va haciendo el sentimiento que experimenta la persona, se puede decir que existe una “aversión a la pérdida”.

Página 2 de 23

Page 3: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Figura 1: Percepción de las pérdidas y ganancias. Fuente: “La paradoja de la elección” [15]

Teniendo los objetivos claros y sabiendo cuales son las opciones disponibles surge un nuevo problema, las personas son susceptibles de cometer errores cuando tienen un conjunto de opciones que requieren de su completa atención, y en un mundo donde las opciones y la información se incrementan constantemente agregando complejidad, esto solo puede empeorar. De este modo el incremento de opciones y oportunidades para elegir tiene 3 efectos desafortunados:

■ Tomar una decisión toma más esfuerzo.■ La persona se equivoca regularmente.■ Las consecuencias psicológicas de cometer un error son más severas.

En [15] se define un perfil de personalidad que es el que principalmente se ve afectado por la alta cantidad de opciones: “el maximizador”. El maximizador es una persona que busca y acepta sólo lo mejor. Necesita que cada compra o decisión que tome sea la mejor. Para lograr eso debe buscar todas las opciones posibles consumiendo grandes cantidades de tiempo. Normalmente, estas personas tienden a estar menos satisfechas con las decisiones que toman, como ya se ha visto en un mundo donde la cantidad de opciones crece constantemente, encontrar lo mejor se hace difícil, además de que buscan opciones hipotéticas, de modo que la sensación de pérdida tiene un peso en la decisión final. Todo esto se ve reflejado en su comportamiento, sin poder demostrar causalidad sólo correlación, tienden a ser más depresivos y les cuesta más recuperarse de un contratiempo. Eso no solo significa que se van a sentir mal, sino que van a desear regresar lo elegido, en lo que se llama “el remordimiento del comprador”, y frases como “Si sólo hubiese ido a una tienda más” o “Si sólo hubiese escuchado a Juan” son recurrentes.

En la siguiente sección se presenta la problemática relacionada con el comercio electrónico.

2.2 Comercio Electrónico

Página 3 de 23

Page 4: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Normalmente se le llama E-comercio y se entiende como “cualquier forma de negocio de transacción en que las partes interactúan electrónicamente en lugar de intercambios físicos o de contacto directo físico” [17]. Con la llegada de internet se genera una verdadera revolución, tanto en lo comercial como cultural. En ella el cliente dispone de una mayor cantidad de información, la distancia entre la empresa y el cliente se hace mucho más corta, se puede recorrer todo con unos pocos “clicks”, pero el costo de captación se hace muy elevado, estos temas influyen directamente en la lealtad a la marca, tema que será retomado unos párrafos más adelante. Para conllevar de mejor manera esto muchas empresas han empezado a permitir personalización por parte del usuario, de sus productos y servicios. La ruptura de las barreras geográficas, según [5], tiende a homogeneizar los productos, de modo que frente a tanta competencia es necesario diferenciarse, y es allí donde la personalización se hace importante, pero a tal nivel de que se crea de cada cliente un mercado completamente nuevo.

En [2] se indica que el comercio electrónico creció en 2009 un 39,3%, en Latino América y el Caribe con US$ 21.775 millones, y se proyecta que para este año, 2011, crezca a US$ 34.497 millones, todo esto se explica por el aumento en la penetración de los Computadores y la Banda Ancha, además de una mayor diversidad de formas de pago. En [1] se muestra otro ejemplo de una de las más grandes compañías de internet, indicando un aumento de 36% de sus ventas a finales del 2010.

La empresas han dado un paso entre la antigua forma de producir, donde predominaban los productos estandarizados, hechos en masa y de larga duración, cambiando a una en que la variedad y la personalización reemplazan a los productos estandarizados. Construir solo un tipo de producto ya no es adecuado, las empresas deben estar dispuestas a hacer múltiples productos para las múltiples necesidades de múltiples clientes. Lo cual no necesariamente significa que se hagan más productos, sino que se permiten más opciones a los consumidores. Esto es lo que se llama personalización masiva (mass customization) [14], esta estrategia busca crear productos individuales de alta calidad a un costo de producción en masa en un tiempo corto [17].

En esto se presenta el problema de la fidelidad. Si el cliente no encuentra lo que quiere o como lo quiere, no va a comprar en el sitio, va a ir a otro lugar ya que hay muchas opciones. Esto se ha hecho muy importante para muchos negocios, especialmente ahora, lo cual refuerza las ideas recién planteadas. En [10] se menciona que para una tienda virtual de libros, se necesita de un año de repetidas compras por un cliente para recuperar el costo promedio de atraerlo al sitio web, en otros rubros es similar. La lealtad no es solo importante por mantener al cliente en el sitio, sino que además lo es porque este es más propenso a recomendar la tienda virtual, de modo que se produce publicidad gratuita por recomendación, siendo posible que se integren nuevos clientes.

A continuación se presentan algunos enfoques de sistemas de recomendación.

3.0 Estado del Arte: Sistemas de Recomendación

Página 4 de 23

Page 5: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

El objetivo de los sistemas de recomendación es generar recomendaciones razonables para un conjunto de usuarios por ítems o productos que puedan ser de su interés. El diseño de estos sistemas de recomendación depende del dominio y de las características particulares de los datos disponibles. Tales datos guardan la calidad de la interacción entre el usuario y los ítems.

Algunos aspectos en los que los sistemas de recomendación aumentan las ventas del e-comercio, que es donde más se usan, según [14] son:

● Convertir buscadores en compradores, los sistemas de recomendación ayudan al consumidor a encontrar lo que quiere, y así poder comprarlo.

● Aumentan las ventas cruzadas, con los sistemas de recomendación se pueden sugerir otros productos relacionados o complementarios, además del ya comprado.

● Construyen lealtad y credibilidad, esta es muy costosa de conseguir y con grandes beneficios cuando se da, de este modo al tener un sistema de recomendación se obtiene valor agregado al mejorar la interacción entre el sitio y sus usuarios.

● Invitando a los clientes a volver por medio de notificaciones, relacionado con el aumento de la lealtad, permite que se pueda reintegrar a los clientes que no han visitado últimamente el sitio aprovechando el conocimiento lo que este sabe del cliente.

Un esquema del modelo al que responden los sistemas de recomendación es presentado por [16], en él hay un “buscador de recomendaciones”. Basado en un conjunto de preferencias conocidas, el recomendador entrega su sugerencia pensando en que le podría gustar a quien la busca. De este modo quien entrega la recomendación, después de haber hecho las suficientes, puede identificar personas con intereses similares. Los sistemas computacionales de recomendación pueden automatizar o apoyar parte de este proceso, así un sistema de recomendación automático asume el rol de recomendador.

En [14] se hace una mirada más cercana a la estructura de los sistemas de recomendación, por medio del flujo de entrada/salida, indicando los puntos a continuación.

Entradas del usuario objetivo. Una aplicación que no use entradas del usuario objetivo no puede producir recomendaciones personalizadas. Agregar una o más tipos de entradas permite al sistema de recomendación hacer recomendaciones personalizadas basadas en la actividad actual del cliente, preferencias a largo plazo del cliente o ambas.

Entradas de la comunidad. Incluyen un rango amplio de datos con respecto a cómo múltiples individuos en la comunidad perciben los ítems. Estas entradas reflejan las opiniones de la comunidad en general incluyendo atributos del ítem que asignan etiquetas basadas en la comunidad y categorías de ítems. De modo similar la popularidad externa del ítem puede reflejar popularidad en comunidades más amplias, como lo son la lista de best-seller.

Salidas. Las recomendaciones resultantes varían en tipo, cantidad y en la forma en cómo se despliega la información. Lo más común son las listas de sugerencias, donde algunos diseñadores de aplicaciones las hacen “desordenadas” (normalmente se hacen en otro orden que no induzca preferencia, como lo es por orden alfabético) para dar la impresión al cliente de que hay un producto que es el mejor, esto permite que el cliente no descarte todas las opciones suponiendo que la primera es la mejor. Otro tipo de salida es entregando una predicción de la

Página 5 de 23

Page 6: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

puntuación que el cliente le podría dar a un ítem, estas predicciones puede ser personalizadas o para una miembro típico de la comunidad.

Cada uno de estos puntos se pueden complementar con [16], donde se identifican cuatro tópicos que caracterizan el diseño del espacio del sistema de recomendación: preferencias, roles y comunicación, algoritmos e interacción hombre-computadora.

Preferencias, las recomendaciones están basadas en ellas, por lo tanto es necesario que el sistema de recomendación automático pueda obtenerlas de las personas que pertenecen al dominio. Para lograr esto se deben responder algunas preguntas como: ¿Qué preferencias se usan?, ¿Cómo se obtienen las preferencias?

Roles y comunicación, para poder abarcar este tema se hacen las siguientes preguntas: ¿Las personas juegan distintos roles o todos los usuarios del sistema juegan el mismo rol?

Algoritmos, algunas preguntas que pueden ayudar en este tema son: ¿Cómo el sistema de recomendación automático hace para determinar cuáles preferencias usar en la realización de la recomendación?, ¿Cómo las recomendaciones son realizadas?

Interacción Hombre-Máquina, está referido a como es presentada la información a la persona, ¿una lista ordenada, visualizaciones 2D o 3D?

Una vez expuestas las generalidades sobre los sistemas de recomendación, es necesario saber cómo se han implementado estos sistemas, y cuáles han sido sus enfoques.

3.1 Tipos de Sistemas de Recomendación

3.1.1 Sistemas de Recomendación Basados en Filtrado Colaborativo

En este enfoque se trata de buscar a las personas con intereses similares a la del usuario objetivo, es de cierta forma una expansión a la forma en que normalmente se hace las recomendaciones, que es a través de amigos o familiares, pero para un entorno virtual con servidores que gestionan millones de consultas donde existe una alta probabilidad de encontrar a otro usuario con gustos similares.

En [12] se describe este enfoque basado en la vecindad con el siguiente algoritmo:1. Asignar un peso a todos los usuarios con respecto a la similitud con el usuario activo.2. Seleccionar k usuarios que tengan la más alta similitud con el usuario activo3. Calcular una predicción desde una combinación ponderada de los puntajes de la vecindad

seleccionada.

En el paso 1, el peso wa ,u es una medida de similitud entre el usuario u y el usuario activo a. La medida de similitud que normalmente se usa es el coeficiente de correlación de Pearson entre los puntajes de dos usuarios, definido de la siguiente manera:

Página 6 de 23

Page 7: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

wa ,u=∑i∈I

( ra ,i−ra )(ru , i−ru)

√∑i∈I

(r a ,i−r a )2∑i∈I

( ru ,i−ru )2 (1)

Donde I es el conjunto de ítems valorados por ambos usuarios, ru , i es el puntaje dado al ítem i

por el usuario u, y ru es el puntaje promedio del usuario u.En el paso 3, la predicción es generalmente calculada como el promedio ponderado de las

desviaciones del promedio de la vecindad, como se muestra a continuación:

pa , i=ra+∑u∈K

(ru , i−ru ) × wa ,u

∑u∈K

wa , u

(2)

Donde pa , i es la predicción para el usuario activo con el ítem i, wa ,u es la similitud entre los usuarios a y u, y K es la vecindad o conjunto de los usuarios más parecidos.

La principal fortaleza del enfoque de filtrado colaborativo, es que las recomendaciones son personalizadas, en la medida de que los vecinos tengan realmente gustos similares, el usuario puede encontrar ítems que no sabía que existían o que podrían ser interesantes.

Algunos problemas de este enfoque son, el alto esparcimiento de los datos y el problema del primer voto. No se pueden tener recomendaciones para un ítem hasta que alguien lo haya valorado, y si la cantidad de personas que han valorado los ítems es relativamente pequeña en comparación con la cantidad de productos, es probable que la similitud de los usuarios no sea significativa, esto es, los vecinos no son tan cercanos por lo que las recomendaciones no son tan buenas.

En [4], se hace un recorrido por otros métodos basados en diferentes modelos. De un punto de vista de las probabilidades, el filtrado colaborativo puede ser visto como el cálculo del voto esperado dado un usuario conocido, incluso si no ha observado el ítem. Si se asumen los votos como enteros de 0 a m, entonces la expresión que predice el voto del usuario es:

pa , i=E (ra , i )=∑j=0

m

Pr (ra , i= j∨ra ,k , k∈ I a ) j (3)

Un modelo de probabilidad plausible es un clasificador Bayesiano, donde la probabilidad de los votos está condicionada independientemente dados unos miembros en una clase C sin observar, tomado en algún número relativamente pequeño de valores discretos. La idea es que hay ciertos tipos de usuarios capturando un conjunto común de preferencias. Dada una clase, las preferencias con respecto a varios ítems son independientes. El modelo de probabilidad a usar es el estándar naive Bayes:

Página 7 de 23

Page 8: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Pr ( C=c , r1 , …, rn )=Pr (C=c )∏i=1

n

Pr (r i∨C=c ) (4)

Es la probabilidad de observar un voto individual de una clase particular y un conjunto completo de votos. Los parámetros son las probabilidades de pertenecer a una clase Pr (C=c ), y las

probabilidades condicionales de los votos dada una determinada clase, Pr ( ri∨C=c ).

En [6] se realiza un sistema de recomendación basado en Redes Inmunes Artificiales (AIS en inglés). La conjetura que tienen es si la concentración de los anticuerpos que provee un mejor acierto se incrementa en el tiempo. No se está buscando una optimización, más bien es conseguir un conjunto de anticuerpos que tengan un acierto cercano pero distinto del otro para hacer una recomendación exitosa. La siguiente codificación de los datos fue usada:

User= {{i d1 , scor e1 } , {i d2 , scor e2 } , …, {idn , scor en } } (5)

Donde id es el identificador único de la película evaluada y score es el puntaje que el usuario le dio. El valor que pueden tomar los puntajes son 0, 0.2, 0.4, 0.6, 0.8 y 1.0. Se modifico la medida de Pearson, descrita en (1), de la siguiente manera:

Sin=0 , r=Valor Por Defecto1

Si∑i=1

n

(u i−u )2∑i=1

n

(v i−v )2=0 , r=Valor Por Defecto 2 (6)

Sin<P , r= nP

r (P esun castigo por sobrelapamiento)

Donde n, es la cantidad de votos sobrelapados, r es la correlación de Pearson (1), u y v son usuarios. Los dos valores por defecto se necesitan porque es imposible calcular una medida de Pearson en esos casos. Se les da por defecto el valor de 0. Para el caso de P se dio el valor de 100, ya que es la cantidad máxima de sobrelapamientos esperados.

El predictor AIS, sigue el siguiente pseudocódigo:

Inicializar AISCodificar los usuarios para hacerles las predicciones como antígenos AgMIENTRAS AIS no está estabilizado y Hay Revisores disponibles HACER

Agregar el siguiente usuario como un anticuerpo AbCalcular el puntaje de acierto entre Ab y AgCalcular el puntaje de acierto entre Ab y otros anticuerposMIENTRAS AIS está en su tamaño completo y AIS no es estable HACER

Iterar AISFIN

Página 8 de 23

Page 9: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

FIN

Cada iteración de AIS está gobernada por la siguiente ecuación:

d x i

dt=( simulación de antigenos )−(supresi ó ndeanticuerpos )− (rangode muerte )=k1 mi x i y−

k2

N∑j=1

N

mij x i x j−k3 x i

(7)

Donde mij=|r|, k 1=Estimulació n , k2=Supresió n , k3=Rango de Muerte, N es la cantidad de

anticuerpos y x i ( o y )=Concentraci ó n deanticuerpos(o antigenos).El primer termino es simplificado para tener solo un antígeno, y se normaliza el término de supresión para permitir la comparación entre el rango diferente de las constantes. Al término k 3 se le dio el valor de 0.1, mientras que el rango de concentración se definió entre 0 y 100 (siendo 10 el valor inicial), y se dio a N el valor de 100. La función de acierto es el valor absoluto del coeficiente de Pearson, esto permite tener usuarios correlacionados positiva y negativamente en la vecindad.

Una vez que se ha estabilizado (después de 10 iteraciones), se usa la concentración de anticuerpos para ponderar la vecindad. Sin embargo, los anticuerpos agregados recientemente están en desventaja con los que están desde iteraciones anteriores, ya que no tienen tiempo para madurar. También, los anticuerpos de iteraciones anteriores están saturados, para superar esto se reinician las concentraciones y se permite un número limitado de corridas para diferenciar las concentraciones:

Reiniciar AIS (dejar a los anticuerpos en sus concentraciones iniciales)MIENTRAS No hay anticuerpos en su concentración máxima HACER

Iterar AISFIN

Se uso la formula (2) para predecir el puntaje pi considerando a como wuv=ruv xv.

En la implementación descrita por [18], se construyen los perfiles de los usuarios y usa un algoritmo genético (GA) para encontrar perfiles similares al del usuario objetivo, los datos seleccionados de esos perfiles son usados para hacer las recomendaciones.

Antes de de que la recomendación se pueda hacer, los datos son procesados en perfiles separados definiendo las preferencias del usuario. En [18] se define perfil(j,i) como el perfil del usuario j en el ítem i. El perfil de j, perfil(j) es una colección de los perfil(j,i) para todos los ítems i que ha visto el usuario j, constando de 22 características cada uno.

Página 9 de 23

Page 10: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Figura 2: perfil(j,i) con las características usadas en el paper investigado. Fuente: [18]

El algoritmo de selección de vecindad consiste en tres tareas principales: selección de perfil, búsqueda de perfil y colección de los mejores perfiles.

Selección del perfil. No siempre es posible usar toda la base de datos, por los costos que eso conlleva. En consecuencia, muchos sistemas optan por un muestreo aleatorio.

Búsqueda de perfil. El proceso de búsqueda calcula la similitud entre los perfiles seleccionados y el usuario objetivo. En la vida real, cada usuario le da diferentes prioridades a cada característica del perfil, para reflejar esto se le dio a cada una ponderación de la forma w(A),

que es un conjunto de pesos {w1 ,w2 ,…,w22 } por cada característica, a ser evolucionado con un

algoritmo genético.La comparación de los dos perfiles se puede hacer con una función de distancia Euclidiana modificada.

euclidiana ( A , j )=√∑i=1

z

∑f=1

22

wf∗dif f i , f ( A , j )2 (8)

Calcula la similitud entre el usuario objetivo A y un usuario j, donde j no puede ser A, z es la cantidad de ítems que tanto A como j han valorado, w f es el peso de la característica f del usuario

objetivo, i es una película que ambos usuarios han valorado y dif f i , f ( A , j ) es la diferencia de

características entre los perfiles A y j. Esta función va a tomar el valor, en la característica ocupación, de 0 si ambos usuarios tienen la misma, y 1 en cualquier otro caso.

Colección de los mejores perfiles. Una vez que se han calculado las distancias entre los perfiles de los usuarios, se listan los perfiles j más parecidos al de A según superen cierto umbral.

Figura 3: Calculando la similitud entre A y j. Fuente: [18]

Página 10 de 23

Page 11: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

El algoritmo genético elitista usado, mantiene un cuarto de los mejores individuos en la población para la siguiente generación. Cuando se crea una nueva generación, los individuos son seleccionados al azar del 40% superior de la población para ser elegidos como padres. Dos hijos son producidos de cada par de padres, usando cruzamiento en un punto con probabilidad de 1. La mutación es aplicada a cada lugar en el genotipo con probabilidad de 0.01. Se usa una codificación genética binaria sin signo, usando 8 bits para cada uno de los 22 genes, y se inicia con genotipos aleatorios. Un genotipo es mapeado a un fenotipo, conjunto de ponderaciones de las características, convirtiendo los alelos de los genes binarios a decimales, llamado valor real. La importancia de las 18 frecuencias de género es reducida por un factor llamado “reducción de tamaño de ponderación”, debido a que los 18 géneros se pueden considerar como diferentes categorías de una sola gran categoría llamada Genero, para dar la posibilidad de ser usadas las demás características. El valor total del fenotipo es la suma de las ponderaciones reales de las 22 características. La ponderación de cada característica se puede encontrar dividiendo el valor real por el total, y la suma de todas las ponderaciones debe dar 1.

Se reformuló el problema como una tarea de aprendizaje asistido. Dado un usuario objetivo A y una vecindad de perfiles se puede hacer una recomendación, además se puede predecir que va a pensar A de esa recomendación, de modo que es posible para el sistema hacer nuevas recomendaciones. Para esto se uso la formula (2) cambiando wa ,u por la distancia euclidiana (8).

Figura 4: Búsqueda del fitness de un individuo. Fuente: [18]

En esta figura se muestra el proceso de obtención del fitness, a partir de la vecindad se calcula la diferencia entre el voto predicho y el hecho por el usuario objetivo para cada ítem, dando el fitnes sik , y el promedio de todos ellos da el fitness total.

3.1.2 Sistemas de Recomendación Basados en Contenido

Página 11 de 23

Page 12: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

En [16] y [12] explican que realizan recomendaciones por medio de comparar representaciones de contenidos describiendo a un ítem de interés del usuario. Estos aprenden las preferencias por medio de retroalimentación con el usuario, el cual puede ser explicito (un puntaje puesto por el usuario) o implícito (si el usuario eligió un ítem recomendado y cuanto tiempo estuvo revisándolo). Las preferencias son un perfil del usuario expresado como un conjunto de palabras claves.

[13] usa este enfoque para recomendar libros por medio de la categorización de texto. Para esto se desarrolló un prototipo llamado LIBRA (Learning Intelligent Book Recommending Agent).

En la etapa de extracción de información y construcción de la base de datos, LIBRA descarga cada página con la descripción de un libro y usa un sistema simple de extracción de información, esto involucra encontrar un conjunto de sub-cadenas del documento, llamadas rellenos, para cada uno del conjunto específico de slots. Los slots utilizados son: título, autor, sinopsis, revisiones publicadas, títulos relacionados y términos relacionados. El texto en cada slot es procesado en una bolsa de palabras desordenada y los ejemplos como un vector de bolsa de palabras.

El aprendizaje usado por LIBRA es un clasificador de texto Bayesiano con una bolsa de palabras simple. LIBRA no intenta predecir el puntaje exacto de un título, solo trata de ordenar los títulos por preferencia, entonces esta tarea es reestructurada como un problema de clasificación probabilístico binario para predecir la probabilidad de que un libro pueda ser catalogado como positivo (de 6 a 10) o negativo (de 1 a 5). Un documento es modelado como una secuencia ordenada de apariciones de palabras obtenidas del mismo vocabulario, V.

Debido a que un libro es representado por un vector de “documentos”, dm, uno por cada

slot, sm es el m-ésimo slot, la probabilidad de cada palabra w k∈V dada una categoría c j y un slot sm es P (w k∨c j , sm ), y la probabilidad posterior de la categoría de un libro, B, se calcula usando:

P (c j∨D )=P (c j )P (B ) ∏m=1

S

∏i=1

¿ dm∨¿ P ( ami∨c j , sm)

¿¿ (9)

Donde S es la cantidad de slots y ami es la i-ésima palabra en el m-ésimo slot. Los parámetros son estimados de los ejemplos de entrenamiento de la siguiente forma,

cada uno de los N libros de entrenamiento, Be (1≤ e≤ N ) se le dan dos pesos reales, 0 ≤ α ej≤ 1,

basado en escalar los puntajes de los usuarios, r (1≤ r ≤ 10 ): un puntaje positivo, α e1=(r−1 )/9, y

uno negativo α e 0=1−αe 1. Si una palabra aparece n veces en un ejemplo Be, es contado como

ocurrencia α e1 n veces en un ejemplo positivo y α e 0n en uno negativo. El modelo de parámetro es estimado de la siguiente manera:

P (c j )=1N∑e=1

N

α ej (10)

Página 12 de 23

Page 13: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

P (w k∨c j , sm )= 1L (c j , sm )

∑e=1

N

α ej nkem

L (c j , sm )=∑e=1

N

αej∨dm∨¿¿ (11)

Donde nkem es la cantidad del número de veces que la palabra w k aparece en el ejemplo Be en la

ranura sm. L (c j , sm ) denota el largo ponderado total de los documentos en la categoría c j y el slot sm.

La Fuerza mide cuanto más probable es que una palabra en un slot aparezca en un libro evaluado de forma positiva (c1) más que en uno en forma negativa (c0), el cual es usado para crear los listados y se calcula de la siguiente manera:

Fuerza ( wk , s j )=log( P (w k∨c1 , s j )P (w k∨c0 , s j ) ) (12)

Una vez que un perfil es aprendido, es usado para predecir la evaluación preferida para el correspondiente libro basado en la probabilidad a posterior de una categorización positiva, y las recomendaciones con puntaje máximo son presentadas al usuario. La fuerza de una señal es multiplicada por la cantidad de veces que aparece en el slot descripción a fin de indicar totalmente su influencia en la evaluación, y así mejorar la capacidad de explicar sus recomendaciones.

[8] propone otro híbrido entre el enfoque basado en contenido y el filtrado colaborativo. Cada ítem es representado por un vector de características. Las características mantienen valores numéricos o nominales, representando ciertos aspectos del ítem. Los valores de similitud son usados para obtener una lista ordenada de los ítems recomendados. Si se considera la similitud euclidiana, implícitamente se afirma que todas las características tienen la misma importancia, pero al juzgar una persona sobre la similitud de dos ítems, existen diferentes ponderaciones para diferentes ítems. Según esto se define la similitud S entre los objetos Oi y O j como:

S (Oi ,O j )=∑k=1

n

wk f ( Aki , Akj ) (13)

Donde wn es la ponderación dada a la diferencia en los valores del atributo An entre los objetos Oi y O j, diferencia dada por f ( A¿ , Anj ). La definición de f depende del tipo de atributo. Se

extrajeron 13 características, a continuación se muestra cuales son y cómo se van a realizar las medidas de similitud.

Página 13 de 23

Page 14: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Figura 5: Características usadas en recomendación de películas. Fuente: [8]

Se estimó la ponderación de las características desde un grafo de ítems de una red social, este grafo representa como las personas juzgan la similitud entre ítems agregados sobre una gran población de usuarios. La ponderación de característica óptima es considerada como la que induce una medida de similitud entre ítems que mejor conformen un grafo de red social.

A continuación se describe un esquema de regresión lineal para determinar la ponderación óptima. Sean los ítems bajo consideración denotados por O1 ,O2 ,…,O l, ellos

corresponden a los vertices de la red social, la ponderación del arco entre los vértices Oi y O j,E (Oi ,O j )=cantidad de usuarios queest á ninteresados enOi y O j, puede ser considerado como el

juicio humano sobre la similitud entre Oi y O j. La ecuación E (Oi ,O j ) con la S(Oi ,O j ) conducen

al siguiente conjunto de ecuaciones de regresión. Para todo i y j =1...l y i≠ j,

w0+∑k=1

n

w k f ( Aki , Akj )=E (Oi , O j ) (14)

Los valores de f ( A1 i , A1 j ) , f ( A2i , A2 j ) , …, f ( A¿ , Anj ) son conocidos de la base de datos así como

los valores de E (Oi ,O j ). Al resolver las ecuaciones de regresión, proveen estimaciones para los

valores w1, w2 ,…, wn.

3.1.3 Sistemas de Recomendación Basados en Minería de Datos Social

Es desarrollado en [16] y [3], sigue la metáfora de un “camino a través del bosque”. Un camino resulta de la unión de muchos individuales, unidos solo por donde ellos deciden caminar, sin embargo refleja la noción de que los caminantes encuentran un buen camino. Este enfoque busca situaciones similares en un entorno computacional, así los investigadores buscan

Página 14 de 23

Page 15: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

situaciones donde grupos de personas producen registros computacionales como parte de su actividad normal, para esto se han inventado técnicas computacionales para cosechar y agregar la información. Una intuición básica es que un enlace desde un sitio web a otro podría indicar similitud de contenido entre los sitios y una aprobación del sitio enlazado.

Kleinberg formalizó la noción de calidad de documento dentro de una colección de hipervínculos, usando el concepto de “autoridad”. Un documento autoridad es uno al que muchos otros documentos hacen un enlace. Esta noción puede ser fortalecida observando que los enlaces de todos los documentos no son valorados de forma equitativa, algunos documentos son mejores hubs para un tema dado. Hubs y autoridades se refuerzan mutuamente: una buena autoridad es un documento que enlaza a muchos buenos hubs, y un buen hub es un documento que enlaza a muchas autoridades. Similar a esto es el PageRank, este algoritmo pone más énfasis en la calidad del enlace a un determinado documento. Los documentos enlazados a otros con PageRank alto también reciben un puntaje PageRank más alto que a uno enlazado por un documento con bajo puntaje.

En [3] se implementa el sistema TopicShop, este soporta usuarios en reunión, evaluación y organización de colecciones de sitios web. Esto consiste en un “tractor” web (webcrawler), que construye colecciones de sitios web y asocia información, a través de una interface web.

Un tractor web toma un conjunto de páginas web como entrada, las cuales son llamadas “semillas”, luego extrae el enlace a otras páginas, y selecciona algún subconjunto de páginas enlazadas a la búsqueda. El proceso de buscar páginas, extrayendo enlaces, y seleccionando nuevas páginas para buscar continúa hasta que alguna condición de término es alcanzada.

Los tractores web pueden ser distinguidos por 1. el procedimiento que usan para decidir cuales páginas buscar, y2. la forma que analiza la búsqueda de páginas.

El tractor usado en [3] usa heurísticas basadas en la conectividad de enlaces y similitud de texto para decidir cual página buscar.

Después de buscar una cantidad específica de páginas, el tractor agrupa las páginas en sitios. Esto se hace usando heurísticas que miran la estructura del directorio de las URLs y el conjunto de páginas que han sido buscadas. Si una URL u1 enlaza a otra URL u2, y u1 pertenece

al sitio s1, y u2 pertenece al sitio s2, entonces se registra un enlace entre s1 y s2.Cuando las páginas hayan sido captadas, sus datos son analizados para producir perfiles

del contenido de las páginas. Como los enlaces, la información de perfil también es agregada al nivel del sitio.

Las colecciones de temas pueden ser vistas y manejadas usando el “Explorador de TopicShop”, como se ve en la siguiente figura.

Página 15 de 23

Page 16: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Figura 6: Explorador de TopicShop. Fuente: [3]

La interfaz de características tiene dos vistas principales, la vista de Perfiles del Sitio (Site Profiles, en la imagen) y el Área de Trabajo (Work Area, en la figura). Las otras dos ventanas muestran una imagen en miniatura del sitio actual (número 3 en la figura) y permiten navegar el espacio de directorios (4 en la figura). El objetivo de la vista Área de Trabajo es permitir a los usuarios crear organizaciones con significado personal del sitio.

El primer objetivo de TopicShop es ayudar a los usuarios a evaluar e identificar sitios de alta calidad. Se trato de lograr este objetivo entregando datos del perfil del sitio y mecanismos de interfaz para ver y explorar los datos.

El segundo objetivo es hacer fácil para los usuarios organizar colecciones de sitios para su uso futuro y compartirlo con otros. El Área de Trabajo permite a los usuarios organizar sitios organizando el espacio.

4.0 Estado del Arte: PSO

Particle swarm optimization (PSO) desarrollado por Eberhart y Kennedy ,[11] y [9], fue introducido como una técnica de optimización para ser usada en un espacio de números reales. Una solución potencial para un problema es representada como una partícula con coordenadas x id y velocidad v id en un espacio D-dimensional. Cada partícula i mantiene un registro de la

posición de su mejor rendimiento pasado en un vector llamado pid. La variable g es asignada al valor del índice de la partícula con el mejor rendimiento de la vecindad. Así las partículas se mueven usando la siguiente fórmula:

Página 16 de 23

Page 17: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

v id=w v id+r1 cC ( pid−x id )+r2cS ( pg−x id ) (15)

x id=x id+v id (16)

Donde r1 y r2 son valores aleatorios con distribución uniforme entre 0 y 1, CC (factor cognitivo)

y CS (factor social) son parámetros del problema. La velocidad de las partículas en cada

dimensión puede estar sujeta a una velocidad máxima V max, el cual es un parámetro especificado por el usuario. Si este umbral es muy alto, las partículas pueden pasar de largo las buenas soluciones. Si es muy pequeño, las partículas pueden no explorar suficientemente más allá de la región local. Esto podría significar caer en un óptimo local. El concepto del peso de inercia, w, fue desarrollado para controlar mejor la exploración y la explotación. Una selección adecuada permite un balance entre explotación y explotación.

En un espacio binario la velocidad de la partícula puede ser descrita como el número de bits cambiados en cada iteración. Una partícula se mueve en un espacio de estados restringidos a 0 y 1 por cada dimensión, donde v id representa la probabilidad de que el bit x id tome un valor 1.

La velocidad se actualiza de igual forma, pid y x id son enteros en {0,1} y v id debe restringirse al intervalo [0.0 , 1.0]. El cambio en la posición está definido por la siguiente regla:

if (rand<S (v id )) then x id=1 ;else x id=0 (17)

Donde S(v) es una sigmoidal limitando la transformación y rand es un número cuasialeatorio con distribución uniforme entre [0.0 , 1.0].

Una implementación de sistemas de recomendación que usa el algoritmo PSO es [19]. Es la continuación del paper de [18] visto anteriormente. Se continua usando para cada usuario un perfil(j) de 22 características. La selección de la vecindad consta de las mismas tres partes: selección del perfil, búsqueda de perfil y colección de los mejores perfiles. En la selección de perfil se presentan dos formas de selección, eligiendo siempre los n primeros perfiles de la base de datos o eligiendo al azar n perfiles, en lo referente a la búsqueda de perfil se usa la medida euclidiana.

El algoritmo PSO ha ser usado es uno convencional con velocidad máxima e inercia, y reemplaza al GA propuesto en [18]. Los valores de las posiciones y velocidades de cada partícula son iniciados de forma aleatoria. La velocidad se controla de la siguiente manera:

if (|v id|>V max ) then v id=V max

|v id|v id (18)

La forma en que se calcula el fitness es la misma que en [18], estableciéndose un factor de reducción del peso para las frecuencias de 18 de las 22 características, correspondientes a los 18 géneros de películas, así el resto de las características tiene más posibilidades de ser elegidas.

Página 17 de 23

Page 18: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Además se establece un valor total de la posición, que es la suma del valor de posición de los 22 ejes. Finalmente el peso de cada característica se calcula dividiendo el valor real por el total, para que así la suma de todas estas ponderaciones resulte en 1.

El fitness es calculado a partir de la diferencia entre el voto predicho y el real del usuario A para un ítem i, para luego promediar todas estas diferencias para obtener el fitness. A continuación se muestra la expresión para calcular el voto predicho:

vot o−¿ predic ho ( A, i)=medi a A+k∑

j=1

n

euclidiana ( A, j) (voto ( j , i)−medi a j)¿ (19)

Donde medi aA es el voto medio del usuario A, k es un factor de normalización visto en el capítulo anterior, voto(j,i) es el voto actual del usuario j para el ítem i, y n es el tamaño de la vecindad.

Una aplicación que podría ser de gran utilidad, debido al uso del algoritmo PSO para predecir un puntaje, es la descrita en [20] donde se usa un PSO cooperativo (CPSO) para entrenar Redes Neuronales de Producto Unitario. En CPSO, cada vector a ser optimizado es dividido a través de múltiples enjambres, con cada uno se optimiza una parte disjunta del vector con ayuda de los otros enjambres. El enfoque cooperativo aumenta la cantidad de parámetros ajustables de forma significativa en el algoritmo PSO. A continuación se presenta el pseudo código de CPSO:

Figura 7: Pseudo código de CPSO. Fuente: [20].

Un vector de entrada con W dimensiones será dividido en K enjambres, donde (W

mod K) enjambres tienen vectores de ⌈WK⌉

dimensiones, y K-(W mod K) enjambres

tienen vectores de ⌊WK⌋ dimensiones. Las

redes neuronales requieren un vector de ponderaciones de W dimensiones para propagarse hacia adelante, esto significa que cada enjambre debe usar un vector de otro enjambre para construir un vector de W dimensiones. Este vector es usado para determinar el error cuadrático medio de la red usando b como vector de ponderación.

La red de producto unitario consta de una red con D entradas, M nodos ocultos y C nodos de salida, asumiendo que solo productos de nodos son usados en las capas ocultas, seguido de

Página 18 de 23

Page 19: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

sumatorias de nodos en la capa de salida, con funciones de activación lineal. El valor de un nodo de salida yk para el patrón p es calculado usando,

yk=∑j=0

M

w kj∏i=1

D

x i , pw ji (20)

Donde w kj es la ponderación desde el nodo

de salida yk al nodo oculto z j, w ji es la

ponderación desde el nodo oculto z j al nodo

de entrada x i, y ∏i=1

D

xi , pw0 i ≡ 1.

Figura 8: Arquitectura de una red neuronal. Fuente: [20]

Otro método para resolver los problemas de clasificación es el clustering o agrupamiento, el cual es mezclado con PSO en [7] para agrupar documentos.

En muchos algoritmos de agrupamiento, los datos a ser agrupados son representados

como un conjunto de vectores X={x1 , x2 ,…, xn }, donde el vector x i corresponde a un solo objeto

y es llamado vector de características. Los documentos textuales pueden ser representados usando el Modelo de Espacio del Vector (o VSM en inglés). En este modelo, el contenido de un documento es formalizado como un punto en el espacio multi-dimensional y representado por un

vector d= {w1 ,w2 ,…,wn }, donde w i es la ponderación del término t i en un documento, esta

ponderación representa la significancia de este término en un documento. Para calcularlo, se deben considerar la frecuencia de ocurrencia del término en un documento y en todo un conjunto de documentos. La ponderación del término i en el documento j está dada por la siguiente ecuación:

w ji=t f ji ×id f ji=t f ji ×log (n /d f ji ) (21)

Donde t f ji es la cantidad de ocurrencias del término i en el documento j, d f ji indica la frecuencia del término en las colecciones de documentos, y n es la cantidad total de documentos en la colección. Este esquema de ponderación no cuenta las palabras frecuentes con poco poder de discriminación.

A continuación se procede a revisar el método de clustering K-Means. Agrupa un conjunto de vectores en una cantidad definida de grupos o clusters. El algoritmo K-Means se puede resumir de la siguiente forma:

1. Seleccionar al azar vectores centroides de grupo para establecer la división inicial de los datos.

2. Asignar cada vector de documento al centroide de grupo más cercano.

Página 19 de 23

Page 20: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

3. Recalular los vectores centroides c j usando la siguiente ecuación:

c j=1n j

∑∀d j∈S j

d j (22)

4. Repetir los pasos 2 y 3 hasta que la convergencia sea alcanzada.

Aquí d j denota el vector documento que pertenece al grupo S j, n j es la cantidad de vectores

documentos que pertenecen al grupo S j. El mayor inconveniente del algoritmo K-Means es que el resultado es sensible a la selección de los centroides iniciales y puede converger a un óptimo local. Por lo tanto, la selección de los centroides afecta el proceso principal de K-Means así como a la partición de los datos.

Es posible ver el problema de agrupar como un problema de optimización que posiciona el centroide óptimo del grupo más que encontrar una partición óptima. El objetivo del algoritmo de agrupamiento PSO es descubrir los centroides propios de los grupos para minimizar la distancia intragrupal, así como maximizar la distancia entre grupos.

En el algoritmo PSO híbrido se incluyen dos módulos, el módulo PSO (realizando la etapa de búsqueda global) y el módulo K-Means (realizando la etapa de refinamiento local). En la etapa inicial, el módulo PSO es ejecutado por un periodo corto (de 50 a 100 iteraciones) para descubrir la vecindad de la solución óptima y al mismo tiempo se evita consumir grandes cantidades de recursos computacionales. El resultado del módulo PSO es usado como la semilla inicial para el módulo K-Means. Este será aplicado para refinar y generar el resultado final. El enfoque completo puede ser resumido de la siguiente forma:

1. Iniciar el proceso de agrupamiento PSO hasta que la cantidad máxima de iteraciones haya sido superada.

2. Entregar los grupos resultantes como los vectores centroides iniciales del módulo K-Means.

3. Iniciar el proceso K-Means hasta que una cantidad máxima de iteraciones haya sido alcanzada.

5.0 Resumen y Trabajo Posterior

Al comenzar este paper, se presentó la paradoja de la elección y sus implicaciones en el comportamiento de los consumidores frente a las opciones que ofrece el comercio, para esto se indicó el proceso que siguen la mayor parte de las personas para tomar una elección, a través del cual se hace un recorrido por los diferentes fenómenos que influyen en ésta, haciendo referencia a los fenómenos psicológicos que condicionan la preferencia de una opción sobre otra. Para apoyar esto se incluye una gráfica que contrasta cómo se comportan las personas frente a las ganancias y pérdidas, y a su vez como esta percepción de los resultados influye en un perfil de persona llamado “maximizador”.

Página 20 de 23

Page 21: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

Posteriormente la discusión se centró en el comercio electrónico, o e-comercio, rubro que está envuelto en una gran diversidad y donde mejor se ven las características que definen la paradoja de la elección. Aquí existe una alta personalización de los productos dando una mayor cantidad de opciones, y como la fidelidad es un tema que cobra una vital importancia para las tiendas virtuales, debido a lo costoso que es mantener a un cliente en el sitio y el potencial publicitario que este tiene.

Para poder dar alguna solución al problema descrito, es necesario hacer un recorrido por las soluciones existentes, siendo descrito como se genera una recomendación y cuál es la estructura de un sistema de recomendación, estableciendo las entradas relacionadas con las preferencias del usuario, las entradas relativas a la comunidad o entorno del usuario, y el tipo de salida necesaria para que la recomendación le sea útil al usuario.

A continuación se describieron 3 enfoques y algunas implementaciones que ayuden a comprenderlos. El primer enfoque fue “Filtrado Colaborativo”, este enfoque crea las recomendaciones a través de la información de una vecindad de usuarios, describiéndose las medidas de similitud usadas y como predecir el votos del usuario objetivo, siendo esto bajo diferentes algoritmo o modelos, como [4] que usa un enfoque Bayesiano, o [6] que ocupa AIS, o [18] que usa un GA. Algunos de los problemas de este enfoque son el alto esparcimiento de los datos y el problema del primer voto.Otro enfoque es el “Basado en Contenido”, el cual se caracteriza por realizar recomendaciones a partir de la información entregada por el usuario. Para ilustrar esto se presentaron los siguientes trabajos: [13] que implemento el sistema LIBRA que usa un clasificador Bayesiano para establecer cuanto le podría interesar al usuario un ítem, y [8] que mezcla este enfoque con el filtrado colaborativo con el fin de entregar un listado de ítems.Por último se vio el enfoque de minería de datos social, en el que se busca “el camino a través del bosque” que dejan los usuarios de un sistema en este. Para ilustrarlo se reviso [3] donde se implementa el framework TopicShop, que ofrece la suficiente información para realizar una recomendación informada.

Para poder completar el presente paper se hizo una revisión del algoritmo PSO, sus características, y algunas aplicaciones que pueden ser de utilidad para el posterior trabajo. Una de ellas es [19] que sigue las mismas ideas de [18], pero en vez de usar GA usa PSO. Como herramientas útiles para predecir puntajes o clasificar se vio en [20] como implementar una variante de PSO para entrenar una red neuronal, y [7] implementa un hibrido entre PSO y K-Means para resolver el problema de clasificación.

Una vez revisados los diferentes enfoques para generar recomendaciones y como PSO puede ser usado como apoyo a los algoritmos de aprendizaje, un enfoque interesante es ver como PSO podría ser usado como un algoritmo de aprendizaje con el fin de generar recomendaciones. Tomando como base la idea del filtrado colaborativo, en la que se buscan vecinos similares al usuario objetivo en base a los ítems evaluados, con PSO se podría recorrer el espacio de vecinos, bajo este enfoque la representación a usar sería un PSO binario, en que cada partícula sería un arreglo donde cada posición toma el valor de 0 o 1 dependiendo de si el usuario i-ésimo es

Página 21 de 23

Page 22: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

ocupado en el proceso de recomendación, el proceso de aprendizaje será asistido por medio del promedio de la diferencia entre el puntaje predicho y el real para todos los ítems considerados, de este modo el algoritmo entrega un listado de usuarios que pueden ser usados a futuro para predecir el puntaje de un nuevo ítem. En este contexto se pretende usar la totalidad de los usuarios disponibles en la base de datos, o en su defecto de una gran parte de ellos. Este enfoque no pretende comparar de antemano la similitud de los usuarios, así se permite que se incluyan usuarios que no son tan parecidos, permitiendo una mayor exploración y dando la posibilidad de ofrecer un ítem novedoso para el usuario objetivo.

7.0 Referencias1. Amazon. 27 de Enero de 2011.

“Amazon.com Announces Fourth Quarter Sales up 36% to $12.95 Billion”. http://phx.corporate-ir.net/phoenix.zhtml?c=97664&p=irol-newsArticle&ID=1521089&highlight=. [Visto 1 de Junio de 2011, 21:00].

2. América Economía. Junio 2010. “La fuerza del e-commerce”, Estudio de

3. Amento, B., Terveen, L., Hill, W., Hix, D., y Schulman, R. 2003. “Experiments in Social Data Mining: The TopicShop System“, en ACM Transactions on Computer-Human Interaction, 10, 1, pp 54-85.

4. Breese, J. S., Heckerman, D. y Kadie, C. 1998. “Empirical analysis of predictive algorithms for collaborative filtering”. 14th Conference on Uncertainty in Artificial Intelligence, páginas 43-52.

5. Casilda, R. 2000. “La nueva economía: e-business y e-commerce”, Tema de portada, nº 93, noviembre, pp. 6-21.

6. Cayzer, S. y Aickelin, U. 2002. “A Recommender System based on the Immune Network”. IEEE

7. Cui, X., Potok, T.E. y Palathingal, P. 2005. “document clustering using Particle swarm optimization”. Swarm Intelligence Symposium, SIS 2005.

8. Debnath, S., Ganguly, N. y Mitra, P. 2008. “Feature Weighting in Content Based Recommendation System Using Social Network Analysis”. 17th international conference on World Wide Web.

9. Eberhart, R. y Shi, Y. 2001. "Particle Swarm Optimisation: Developments, Applications and Resources". Proceedings of the 2001 Congress on Evolutionary Computation.

10. Gefe, D. 2002. “Customer Loyalty in E-Commerce”. Journal of the Association for Information Systems (Volume 3) 27-51.

11. Kennedy, J. Eberhart, R. 1995. “Particle swarm optimization”. IEEE International Conference on Proceedings, páginas 1942-1948. IEEE.

12. Melville, P. y Sindhwani, V. 2010. “Recommender Systems”. Encyclopedia of Machine Learning, capítulo No: 00338.

13. Mooney, R. J., and Roy, L. 2000. “Content-based book recommending using learning for text categorization”. Fifth ACMConference on Digital Libraries, 195–204.

14. Schafer, J.B., Konstan, J.A. y Riedl, J. Enero 2001. “E-Commerce Recommendation Applications”. Journal of Data Mining and Knowledge Discovery.

Página 22 de 23

Page 23: Estado del Arte: Implementación de un Sistema de Recomendaciones con PSO

Implementación de un sistema de recomendaciones con PSO - Ignacio Salas

15. Schwartz, B. 2004. “The paradox of choice: why more is less”. New York: HarperCollins

16. Terveen, L. y Hill, W. 2001. “Beyond Recommender Systems: Helping People Help Each Other”. In HCI In The New Millenium, Carroll, J. ed. Addison-Wesley.

17. Turowski, K. 2002. “Agent-based e-commerce in case of mass customization”. Int. J. Production Economics 75 69–81

18. Ujjin, S. y Bentley, P.J. 2002. “Learning User Preferences Using Evolution”. 4° Asia-

Pacific Conference on Simulation Evolution and Learning. Singapur.

19. Ujjin, S. y Bentley, P.J. 2003. “Particle Swarm Optimization Recommender System”. Swarm Intelligence Symposium. IEEE.

20. van der Bergh, F. y Engelbrecht, A.P. 2001. “Training Product Unit Networks using Cooperative Particle Swarm Optimisers”. IJCNN 2001, Washington DC.

Página 23 de 23