Filtrado colaborativo basado en artículo a artículo

El filtrado colaborativo es una técnica o un método para predecir el gusto de un usuario y encontrar los artículos que un usuario podría preferir en base a la información recopilada de varios otros usuarios que tienen gustos o preferencias similares. Tiene en cuenta el hecho básico de que si la persona X y la persona Y tienen una determinada reacción con respecto a algunos elementos, es posible que también tengan la misma opinión con respecto a otros elementos.

Las dos formas más populares de filtrado colaborativo son:

  • Basado en el usuario: aquí, buscamos a los usuarios que han calificado varios elementos de la misma manera y luego encontramos la calificación del elemento faltante con la ayuda de estos usuarios.
  • Basado en artículos: aquí, exploramos la relación entre el par de artículos (el usuario que compró Y, también compró Z). Encontramos la calificación que falta con la ayuda de las calificaciones otorgadas a los otros elementos por el usuario.

Hablemos en detalle sobre el filtrado colaborativo basado en elementos. Amazon lo inventó y usó por primera vez en 1998. En lugar de hacer coincidir al usuario con clientes similares, el filtrado colaborativo de artículo a artículo compara cada uno de los artículos comprados y calificados del usuario con artículos similares, luego combina esos artículos similares en una lista de recomendaciones. Ahora, analicemos cómo funciona.

Similitud de elemento a elemento: el primer paso es construir el modelo encontrando similitudes entre todos los pares de elementos. La similitud entre pares de elementos se puede encontrar de diferentes maneras. Uno de los métodos más comunes es usar la similitud del coseno.

Fórmula para la similitud del coseno:

Similarity(\vec A, \vec B)=\frac{\vec A \cdot \vec B}{||\vec A||*||\vec B||}

Cálculo de predicción:
La segunda etapa consiste en ejecutar un sistema de recomendación. Utiliza los elementos (ya calificados por el usuario) que son más similares al elemento que falta para generar la calificación. Por lo tanto, tratamos de generar predicciones basadas en las calificaciones de productos similares. Calculamos esto usando una fórmula que calcula la calificación de un artículo en particular usando la suma ponderada de las calificaciones de otros productos similares.
rating(U, I_i)= \frac {\sum_{j}rating(U, I_j)*s_{ij}}{\sum_{j}s_{ij}}

Ejemplo:
Consideremos un ejemplo. A continuación se muestra una tabla establecida que contiene algunos elementos y el usuario que los calificó. La calificación es explícita y está en una escala de 1 a 5. Cada entrada en la tabla denota la calificación otorgada por ai
el
Usuario a aj
el
Artículo. En la mayoría de los casos, la mayoría de las celdas están vacías ya que un usuario califica solo algunos elementos. Aquí, hemos tomado 4 usuarios y 3 elementos. Necesitamos encontrar las calificaciones que faltan para el usuario respectivo.

Usuario/Artículo Objeto 1 Artículo_2 Artículo_3
Usuario_1 2 3
Usuario_2 5 2
Usuario_3 3 3 1
Usuario_4 2 2

Paso 1: encontrar similitudes de todos los pares de elementos.

Forma los pares de elementos. Por ejemplo, en este ejemplo, los pares de artículos son (Artículo_1, Artículo_2), (Artículo_1, Artículo_3) y (Artículo_2, Artículo_3). Seleccione cada artículo para emparejar uno por uno. Después de esto, encontramos a todos los usuarios que han calificado ambos elementos en el par de elementos. Forme un vector para cada elemento y calcule la similitud entre los dos elementos utilizando la fórmula del coseno indicada anteriormente.

Sim(Item1, Item2)
In the table, we can see only User_1 and User_2 have rated for both items 1 and 2. 
Thus, let I1 be vector for Item_1 and I2 be for Item_2. Then,
I1 = 5U2 +  3U3 and,
I2 = 2U2 +  3U3

Similarity(I1, I2) = \frac{(5*2) +  (3*3)}{\sqrt{5^2 +  3^2} \sqrt{2^2 +  3^2}} = 0.90

Sim(Item2, Item3)
In the table we can see only User_3 and User_4 have rated for both the items 1 and 2. 
Thus, let I2 be vector for Item_2 and I3 be for Item_3. Then,
I2 = 3U3 +  2U4 and,
I3 = 1U3 +  2U4


Similarity(I2, I3) = \frac{(3*1) +  (2*2)}{\sqrt{3^2 +  2^2} \sqrt{1^2 +  2^2}} = 0.869

Sim(Item1, Item3)
In the table we can see only User_1 and User_3 have rated for both the items 1 and 2. 
Thus, let I1 be vector for Item_1 and I3 be for Item_3. Then,
I1 = 2U1 +  3U3 and,
I3 = 3U1 +  1U3

Similarity(I1, I3) = \frac{(2*3) +  (3*1)}{\sqrt{2^2 +  3^2} \sqrt{3^2 +  1^2}} = 0.789

Paso 2: generar las calificaciones que faltan en la tabla

Ahora, en este paso calculamos las calificaciones que faltan en la tabla.

Rating of Item_2 for User_1

r(U_1, I_2)=\frac {r(U_1, I_1)*s_{I_1I_2} +  r(U_1, I_3)*s_{I_3I_2}}{s_{I_1I_2} +  s_{I_3I_2}}=\frac{(2*0.9) +  (3*0.869)}{(0.9 +  0.869)} = 2.49

Rating of Item_3 for User_2

r(U_2, I_3)=\frac {r(U_2, I_1)*s_{I_1I_3} +  r(U_2, I_2)*s_{I_2I_3}}{s_{I_1I_3} +  s_{I_2I_3}}=\frac{(5*0.789) +  (2*0.869)}{(0.789 +  0.869)} = 3.43

Rating of Item_1 for User_4

r(U_4, I_1)=\frac {r(U_4, I_2)*s_{I_1I_2} +  r(U_4, I_3)*s_{I_1I_3}}{s_{I_1I_2} +  s_{I_1I_3}}=\frac{(2*0.9) +  (2*0.789)}{(0.9 +  0.789)} = 2.0

Por lo tanto, a través de este artículo, tratamos de comprender el funcionamiento básico del filtrado colaborativo de elemento a elemento con la ayuda de un pequeño ejemplo.

Referencias:

https://en.wikipedia.org/wiki/Colaborative_filtering

https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf

Publicación traducida automáticamente

Artículo escrito por rachitgupta1997 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *