Un recorrido por distintas técnicas de recomendación tales como collaborative filtering, content-based filtering, association rules, etc. Partiendo de un modelo en común, conocido como utility matrix, se detallará cada una de estas técnicas, se analizarán las ventajas y desventajas de cada una y se presentará un caso de uso concreto en la recomendación de destinos turísticos.
10. Implementacion de content based
filtering
1) Extraer caracteristicas relevantes del
producto
Cuantas estrellas tiene?
Tiene pileta?
Tiene wi-fi gratis?
Tiene boliche / pista baile?
...
11. Implementacion de content based
filtering
2) Modelar los productos como vectores
Cuantas estrellas tiene?
Tiene pileta?
Tiene wi-fi gratis?
Tiene boliche / pista baile?
...
12. Implementacion de content based
filtering
2) Modelar los productos como vectores
Cuantas estrellas tiene?
Tiene pileta?
Tiene wi-fi gratis?
Tiene boliche / pista baile?
...
<5, 1, 1, 0, ...>
13. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
14. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
15. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
1 -111
16. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
17. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
<5, 1, 1, 0>
<5, 1, 0, 0>
<3, 1, 0, 0>
<1, 0, 1, 1>
18. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
<5+5+3-1/4, …>
<5, 1, 1, 0>
<5, 1, 0, 0>
<3, 1, 0, 0>
<1, 0, 1, 1>
19. Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
< 3, 0.75, 0, -0.25>
<5, 1, 1, 0>
<5, 1, 0, 0>
<3, 1, 0, 0>
<1, 0, 1, 1>
20. Implementacion de content based
filtering
4) Buscar productos “parecidos” al perfil de
usuario
<3, 1, 1, 0 >< 3, 0.75, 0, -0.25>
29. Analisis comparativo de content
based filtering
Recomendaciones altamente relevantes
Criterio transparente de recomendacion
Un producto nuevo puede ser inmediatamente
recomendado
Pero...
32. Implementacion de collaborative
filtering (user-user)
1) Cada usuario estara caracterizado por su fila
en la matriz de utilidad
Roma Londres Paris Miami Cancun
Usuario 1
Usuario 2
Usuario 3
Usuario 4
33. Implementacion de collaborative
filtering (user-user)
1) Cada usuario estara caracterizado por su fila
en la matriz de utilidad
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
34. Implementacion de collaborative
filtering (user-user)
2) Buscamos n usuarios similares a u
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
35. Implementacion de collaborative
filtering (user-user)
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
Por ejemplo, similares a usuario 1:
36. Implementacion de collaborative
filtering (user-user)
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
Por ejemplo, similares a usuario 1:
37. Implementacion de collaborative
filtering (user-user)
Roma Londres Paris Miami Cancun
Usuario 1 1 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
3) Para cada producto, hacemos un mean
imputation entre los ratings no vacios de los
n usuarios
38. Implementacion de collaborative
filtering (item-item)
Se puede hacer lo mismo con los productos!
Pero no es simetrico...
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1
Usuario 4 1 1
Roma Londres Paris Miami Cancun
Usuario 1
Usuario 2
Usuario 3
Usuario 4
44. Implementacion de collaborative
filtering (user-user)
El rating del usuario u Ui sobre el producto p∈
Pj sera el rating entre los clusters Ui y Pj∈
Cluster P1 ... Cluster Pn
Cluster U1 1 ... 1
... ... ... ...
Cluster Um 1 ... 1
45. Implementacion de collaborative
filtering (user-user)
Si la entrada para Ui y Pj es vacia la
calculamos igual que antes
Cluster P1 ... Cluster Pn
Cluster U1 1 ... 1
... ... ... ...
Cluster Um 1 ... 1
46. UV decomposition
Sabemos que cada rating mij de la matriz de
utilidad M representa el grado de afinidad
entre el usuario i y el producto j
47. UV decomposition
Sabemos que cada rating mij de la matriz de
utilidad M representa el grado de afinidad
entre el usuario i y el producto j
Pensemos que cada usuario y cada producto
tienen k caracteristicas que los definen
48. UV decomposition
Sabemos que cada rating mij de la matriz de
utilidad M representa el grado de afinidad
entre el usuario i y el producto j
Pensemos que cada usuario y cada producto
tienen k caracteristicas que los definen
Y que cuanto mas coincidan las
caracteristicas del usuario con las del
producto, mas alto sera el rating
54. UV decomposition
Esta tecnica permite encontrar una posible
descomposicion U*V
Extrae esas k caracteristicas de los usuarios
(filas matriz U) y de los productos (columnas
matriz V) a partir de la matriz de utilidad M
55. UV decomposition
Esta tecnica permite encontrar una posible
descomposicion U*V
Extrae esas k caracteristicas de los usuarios
(filas matriz U) y de los productos (columnas
matriz V) a partir de la matriz de utilidad M
Como no sabemos exactamente que
representan esas caracteristicas que se
extraeran las llamamos “factores latentes”
60. Implementacion de UV
decomposition
Para calcular U y V se parte de alguna
aproximacion inicial
En cada iteracion se visitan todos los uij y los
vij poniendoles un valor que minimiza el error
cuadratico medio (ECM) respecto de los
ratings no vacios mij
61. Implementacion de UV
decomposition
Para calcular U y V se parte de alguna
aproximacion inicial
En cada iteracion se visitan todos los uij y los
vij poniendoles un valor que minimiza el error
cuadratico medio (ECM) respecto de los
ratings no vacios mij
Caso particular del metodo del gradiente
62. Analisis comparativo de
collaborative filtering
No requieren informacion adicional
de usuarios, ni de productos.
Matrices extensas, pero son
algoritmos altamente paralelizables
(Spark, Tensorflow, etc)
Known issue: cold start
66. Implementacion de collaborative
filtering (UV decomposition)
Para empezar, se parte de una aproximacion
inicial para U y V
Cual podria ser una buena aproximacion
inicial para M?
67. Implementacion de collaborative
filtering (UV decomposition)
Para empezar, se parte de una aproximacion
inicial para U y V
Cual podria ser una buena aproximacion
inicial para M?
68. Implementacion de collaborative
filtering (UV decomposition)
Para empezar, se parte de una aproximacion
inicial para U y V
Cual podria ser una buena aproximacion
inicial para M?
69. Implementacion de collaborative
filtering (UV decomposition)
Para empezar, se parte de una aproximacion
inicial para U y V
Cual podria ser una buena aproximacion
inicial para M?
70. Implementacion de collaborative
filtering (UV decomposition)
Para empezar, se parte de una aproximacion
inicial para U y V
Cual podria ser una buena aproximacion
inicial para M?
72. Implementacion de collaborative
filtering (UV decomposition)
De ahora en mas iremos mejorando
iterativamente a U y V para que U*V este
cada vez mas “cerca” de M
En cada iteracion tomaremos U y V tales que
U*V minimice el error cuadratico medio (ECM)
de los valores no vacios de M
84. Implementacion de collaborative
filtering (UV decomposition)
Se deriva y se iguala a cero para buscar
el minimo:
Con x = ½ se minimiza el error
cuadratico medio, luego U*V sera:
85. Implementacion de collaborative
filtering (UV decomposition)
Se deriva y se iguala a cero para buscar
el minimo:
Con x = ½ se minimiza el error
cuadratico medio, luego U*V sera:
88. Implementacion de collaborative
filtering (UV decomposition)
En cada iteracion se repite este proceso
para todos los Uij y los Vij.
Criterio de terminacion
Cuidado con el overfitting
89. Implementacion de collaborative
filtering (UV decomposition)
En cada iteracion se repite este proceso
para todos los Uij y los Vij.
Criterio de terminacion
Cuidado con el overfitting
Funcion objetivo simplificada, existen
muchas optimizaciones (regularizacion,
tratamiento de sesgo, etc).