CAPÍTULO 3. MÉTODO HÍBRIDO DE RECOMENDACIÓN
3.2. Recomendación basada en la clasificación de los
Antes de iniciar con el sistema de recomendación, es necesario definir las categorías o áreas en las que es posible clasificar todos los usuarios y artículos que tengamos en el sistema, de tal manera que todos los artículos y usuarios deberán estar relacionados con al menos una categoría.
A continuación se muestra un ejemplo de categorías que serían de utilidad para un sistema de una librería o una biblioteca, en este caso las áreas definidas no presentan dependencias entre ellas. Para facilitar el manejo de la información de los usuarios y/o artículos se agregó a esta clasificación una clave, la cual se define a continuación.
La primera letra representa el área general de la asignatura a la que corresponde; en el ejemplo que se muestra a continuación se puede observar que el área de lenguajes de programación pertenece a la asignatura de informática, por lo que su clave se genera utilizando la primera letra de la asignatura, en este caso “I” y las primeras letras del área, en este caso “LP”, por lo que su clave quedará conformada de la siguiente manera: “ILP”.
Áreas Clave
Informática I
Leng de prog ILP
Base de datos IBD
Inteligencia artificial IIA
Redes IR sistemas operativos ISO
administración A contabilidad C algebra MA trigonometría MT calculo MC estadística ME probabilidad MP física nuclear FN resistencia de materiales FR óptica FO mecánica FM electricidad FE química orgánica QO química inorgánica QI Informática
Tabla 3.1 Ejemplo de categorías para un sistema de recomendación Con las categorías definidas se formará la estructura de un vector que contendrá tantos elementos como categorías se tengan; tal vector nos servirá para almacenar la información de los usuarios y artículos; en donde los posibles valores que cada elemento del vector puede tomar son los siguientes:
Valor Relación / Interés 0 Nulo 1 Muy poco 2 Poco 3 Medio 4 Suficiente 5 Mucho
Tabla 3.2 Valores que pueden ser asignados a las categorías
Si a un elemento del vector que representa a los artículos se le asigna un valor de cero “0” este indicará que la relación del artículo con la categoría es nula o que no se cuenta con alguna relación en tal categoría. En caso de que el valor asignado sea un 5, este denotará que el artículo se encuentra completamente relacionado a la categoría, o que contiene mucha información de tal categoría.
Cuando un nuevo artículo es agregado al sistema, se toma como información su resumen o especificación; con lo cual se asignará un valor entero entre cero y cinco en cada elemento del vector de acuerdo con las categorías establecidas, preservando el orden en las mismas; del ejemplo descrito, la primera entrada del vector corresponderá al área de informática, la segunda entrada del vector corresponderá a lenguajes de programación y así sucesivamente hasta considerar todas las categorías establecidas. Al vector formado lo denominaremos “vector de clasificación de los artículos”.
Para ejemplificar de una manera más clara, a continuación se muestra una tabla con cinco artículos, los cuales han sido asociados a las categorías definidas. Por ejemplo para el artículo 2, se especifica que:
- Tiene relación media con el área de informática por lo tanto se la asigna un valor de 3.
- Tiene mucha relación con el área de lenguajes de programación, y administración, por lo que el valor asignado a tales áreas es 5.
- Tiene muy poca relación con las áreas de base de datos e inteligencia artificial, por lo que el valor asignado a tales áreas es 1. - Tiene información suficiente con las redes, por lo que el valor
asignado es 4.
- Tiene poca información del área de sistemas operativos, por lo que el valor asignado es 2.
- Información nula de las áreas restantes, por lo que el valor asignado a cada una es 0.
Resumiendo lo anterior, tenemos los siguientes artículos A1, …, A5.
I ILP IBD IIA IR ISO A C MA MT MC ME MP FN FR FO FM FE QO QI A1 3 0 2 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A2 3 5 1 1 4 2 5 0 0 0 0 0 0 0 0 0 0 0 0 0 A3 5 0 1 1 4 3 4 3 4 3 2 2 1 0 2 1 0 0 1 2
A4 2 5 5 4 1 3 2 0 2 2 2 0 3 4 1 4 1 1 4 2
A5 2 4 4 1 1 0 2 4 5 5 5 4 1 4 3 0 4 0 3 3
De la misma manera en que se almacenó en vectores la información de los artículos, se hará lo mismo con la información de los usuarios. La primera vez que un usuario ingresa al sistema, definirá las áreas de su preferencia, asignando valores a cada categoría definida, un cero “0” indicará que al usuario no le interesa tal categoría, cinco “5” indicará que tiene mucho interés en dicha categoría. Con la información proporcionada por el usuario se formará un vector al que denominaremos, “vector de preferencias de los usuarios”.
A continuación se muestran cinco ejemplos de vectores de caracterización de usuarios. Observando el vector de caracterización para el usuario “A”, podemos decir que éste tiene poco interés por la informática, interés suficiente por los lenguajes de programación, mucho interés en las bases de datos, muy poco interés por la inteligencia artificial, poco interés en las redes, muy poco interés en la administración y contabilidad, las áreas restantes no le interesan.
us I ILP IBD IIA IR ISO A C MA MT MC ME MP FN FRM FO FM FE QO QI A 2 4 5 1 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 U1 0 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
U2 0 0 0 0 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
U3 0 4 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
U4 0 4 5 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Tabla 3.4 Ejemplo de usuarios con sus áreas de interés
La información almacenada de los usuarios y artículos en vectores será empleada en los métodos de recomendación basada en la preferencia de los usuarios, filtraje colaborativo y en el método híbrido. Métodos que serán descritos en las siguientes secciones.
La primera vez que un usuario ingresa al sistema o aplicación, especifica las áreas que le interesan, con lo cual el sistema define el vector de caracterización del usuario (u1, u2, u3, ….. un-1, un). Así mismo,
cuando un artículo ingresa al sistema se definen las áreas con las cuales esta relacionado, tomando como referencia la descripción del artículo, formando el vector de clasificación del artículo (a1, a2, a3, ….. an-1, an).
Cuando el usuario lee el artículo le asigna una calificación entre 0 y 5, siguiendo los criterios mencionados en la sección anterior, de acuerdo a
la utilidad del artículo para el usuario. El método que a continuación se describe utiliza el vector de caracterización del usuario y el vector de clasificación del artículo para estimar la calificación que le proporcionaría el usuario.
Denominemos usuario activo ‘a’, al usuario al que se le recomendará el artículo “i”, para lo cual se utilizará la información de la caracterización del usuario “a” y la caracterización del artículo “i” en vectores con las ponderaciones dadas.
Con tales vectores se calcula la intensidad con la que ambos vectores están relacionados utilizando la fórmula del coeficiente de correlación lineal mostrada a continuación.
En la fórmula anterior las sumatorias se realizan sobre un índice “j” el cual es el número de artículos para los que el usuario activo “a” ha emitido calificaciones. Recordando que υij representa la calificación que
el usuario “i” da al artículo “j”.
El coeficiente de correlación lineal proporciona valores entre -1 y 1 donde el 1 representa que ambas variables están muy asociadas, en nuestro caso a medida que el coeficiente de correlación se aproxime a 1 nos indicará una mayor preferencia del usuario activo a para el artículo “i”.
Definamos:
ve = (r*2.5) + 2.5 donde ve ∈ [-1, 1] Donde:
ve: calificación estimada que el usuario “a” le daría al artículo “i” r: el coeficiente de correlación obtenido al calcularlo sobre los vectores de información del usuario y el artículo
El valor de “ve” nos permitirá decidir si se recomienda el artículo “i” al usuario “a”, además tal valor es aproximado a la calificación que el usuario le dará a tal artículo.
Este método para ser implementado necesita la información de las áreas de interés de los usuarios, así como la clasificación de los artículos. En caso de que el usuario haya dado calificaciones a otros artículos, el método no considerará tal información, además si el usuario indicó interés por ciertas áreas pero en realidad no ha considerado ningún artículo de tales áreas, eso no será considerado por el método.