SlideShare una empresa de Scribd logo
1 de 89
Motores de recomendacion
Personalizando la experiencia del viajero en
Luis Brassara (luis.brassara@almundo.com)
Objetivo
Un modelo:
utility matrix
Producto 1 Producto 2 Producto 3 Producto 4
Usuario 1
5 5 4
Usuario 2
1 3
Usuario 3
2 1 1
Usuario 4
4 3
Un modelo:
utility matrix
Producto 1 Producto 2 Producto 3 Producto 4
Usuario 1
Usuario 2
Usuario 3
Usuario 4
Approaches
Content based filtering: similititud basada en
caracteristicas del producto
Approaches
Collaborative filtering: similititud basada en
usuarios
Approaches
Content based filtering: similititud basada en
caracteristicas del producto
Caso de uso:
recomendacion de hoteles
“Has buscado alguna vez un hotel en Internet?”
Implementacion de content based
filtering
1) Extraer caracteristicas relevantes del
producto
Implementacion de content based
filtering
1) Extraer caracteristicas relevantes del
producto

Cuantas estrellas tiene?

Tiene pileta?

Tiene wi-fi gratis?

Tiene boliche / pista baile?

...
Implementacion de content based
filtering
2) Modelar los productos como vectores

Cuantas estrellas tiene?

Tiene pileta?

Tiene wi-fi gratis?

Tiene boliche / pista baile?

...
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, ...>
Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
1 -111
Implementacion de content based
filtering
3) Modelar el perfil del usuario segun los
productos con los que interactuo
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>
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>
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>
Implementacion de content based
filtering
4) Buscar productos “parecidos” al perfil de
usuario
<3, 1, 1, 0 >< 3, 0.75, 0, -0.25>
Implementacion de content based
filtering
4) Buscar productos “parecidos” al perfil de
usuario
Implementacion de content based
filtering
4) Buscar productos “parecidos” al perfil de
usuario
Implementacion de content based
filtering
Por ejemplo:
< 3, 0.75, 0, -0.25>
vs
<3, 1, 1, 0 >
Implementacion de content based
filtering
Por ejemplo:
< 3, 0.75, 0, -0.25>
vs
<3, 1, 1, 0 >
Cosine similarity = (3 * 3 + 0.75 * 1 + 0 * 1 + -0,25 * 0) / 10.3 = 0,95
Implementacion de content based
filtering
Por ejemplo:
< 3, 0.75, 0, -0.25>
vs
<3, 0, 1, 1 >
Cosine similarity = (3 * 3 + 0.75 * 0 + 0 * 1 - 0,25 * 1) / 10.3 = 0,85
Implementacion de content based
filtering
Por ejemplo:
< 3, 0.75, 0, -0.25>
vs
<3, 0, 1, 1 >
Cosine similarity = (3 * 3 + 0.75 * 0 + 0 * 1 - 0,25 * 1) / 10.3 = 0,85
Falta scaling
Implementacion de content based
filtering

Otras nociones de similaridad:
Jaccard index(A, B) = | A ∩ B | / |A ∪ B|
Otras implementaciones de content
based filtering

Clasificadores

Regresion lineal:
<5, 1, 0, 1>
<2, 0, 1, 2>
<4, 1, 1, 0>
<3, 0, 0, 0>
β1 * 5 + β2 * 1 + β3 * 0 + β4 * 1 = 1
β1 * 2 + β2 * 0 + β3 * 1 + β4 * 2 = -1
β1 * 4 + β2 * 1 + β3 * 1 + β4 * 0 = 1
β1 * 3 + β2 * 0 + β3 * 0 + β4 * 0 = -1
Analisis comparativo de content
based filtering

Recomendaciones altamente relevantes

Criterio transparente de recomendacion

Un producto nuevo puede ser inmediatamente
recomendado

Pero...
Approaches
Collaborative filtering: similititud basada en
usuarios
Caso de uso:
recomendacion de ciudades
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
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
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
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:
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:
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
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
Implementacion de collaborative
filtering (user-user)

Problema: matrices ralas
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
Implementacion de collaborative
filtering (user-user)

Problema: matrices ralas

Una solucion: clustering!
Roma Londres Paris Miami Cancun
Usuario 1 1
Usuario 2 1 1
Usuario 3 1 1 1
Usuario 4 1 1
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

Problema: matrices ralas

Una solucion: clustering!
Implementacion de collaborative
filtering (user-user)

Problema: matrices ralas

Una solucion: clustering!
“Europa” “Playa”
Usuario 1 1
Usuario 2 1
Usuario 3 1
Usuario 4 1

Problema: matrices ralas

Una solucion: clustering!
Implementacion de collaborative
filtering (user-user)

Problema: matrices ralas

Una solucion: clustering!
Cluster P1 ... Cluster Pn
Cluster U1 1 ... 1
... ... ... ...
Cluster Um 1 ... 1

Problema: matrices ralas

Una solucion: clustering!
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
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
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
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
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
UV decomposition

En terminos de vectores, eso se representa
de la siguiente manera:
UV decomposition

En terminos de vectores, eso se representa
de la siguiente manera:
UV decomposition

Generalizando para toda la matriz de utilidad
tendremos:
UV decomposition

Generalizando para toda la matriz de utilidad
tendremos:
U V*
UV decomposition

Esta tecnica permite encontrar una posible
descomposicion U*V
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
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”
UV decomposition

Se buscaran U y V tales que U*V sea lo mas
parecido a M en los ratings mij que no son
vacios
UV decomposition

Se buscaran U y V tales que U*V sea lo mas
parecido a M en los ratings mij que no son
vacios
U V* M
UV decomposition

Ahora en U*V en los ratings que antes eran
vacios empezaremos a tener valores!
U V* M’
Implementacion de UV
decomposition

Para calcular U y V se parte de alguna
aproximacion inicial
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
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
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
Implementacion de collaborative
filtering (UV decomposition)

Dado M (con algunos espacios vacios), como
calculamos U y V?
Implementacion de collaborative
filtering (UV decomposition)

Para empezar, se parte de una aproximacion
inicial para U y V
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?
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?
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?
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?
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?
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
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
Implementacion de collaborative
filtering (UV decomposition)

Error cuadratico medio (ECM):
Implementacion de collaborative
filtering (UV decomposition)
Implementacion de collaborative
filtering (UV decomposition)

El error cuadratico medio sera:
Implementacion de collaborative
filtering (UV decomposition)

Como minimizar el error cuadratico medio
respecto de M dados U y V?
Implementacion de collaborative
filtering (UV decomposition)

Como minimizar el error cuadratico medio
respecto de M dados U y V?

Volvamos al ejemplo:
Implementacion de collaborative
filtering (UV decomposition)

Como minimizar el error cuadratico medio
respecto de M dados U y V?

Volvamos al ejemplo:
Implementacion de collaborative
filtering (UV decomposition)

Como minimizar el error cuadratico medio
respecto de M dados U y V?

Volvamos al ejemplo:
Implementacion de collaborative
filtering (UV decomposition)

Como minimizar el error cuadratico medio
respecto de M dados U y V?

Volvamos al ejemplo:
Implementacion de collaborative
filtering (UV decomposition)
M:
U*V:
Implementacion de collaborative
filtering (UV decomposition)
M:
U*V:
ECM:
Implementacion de collaborative
filtering (UV decomposition)

Se deriva y se iguala a cero para buscar
el minimo:
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:
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:
Implementacion de collaborative
filtering (UV decomposition)

En cada iteracion se repite este proceso
para todos los Uij y los Vij.
Implementacion de collaborative
filtering (UV decomposition)

En cada iteracion se repite este proceso
para todos los Uij y los Vij.

Criterio de terminacion
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
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).

Más contenido relacionado

Similar a Motores de recomendacion (Recommendation engines)

Instituto universitario de tecnología
Instituto universitario de tecnologíaInstituto universitario de tecnología
Instituto universitario de tecnología
Alexander Tua
 
Trazabilidad En El Proceso De Desarrollo De Sw
Trazabilidad En El Proceso De Desarrollo De SwTrazabilidad En El Proceso De Desarrollo De Sw
Trazabilidad En El Proceso De Desarrollo De Sw
Rony Guajardo
 
Robotica industrial y proyecto de mecatronica
Robotica industrial y proyecto de mecatronicaRobotica industrial y proyecto de mecatronica
Robotica industrial y proyecto de mecatronica
Maestros Online
 
Interfaz de uusario cintya alban
Interfaz de uusario cintya albanInterfaz de uusario cintya alban
Interfaz de uusario cintya alban
David Casanova
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
Carlos Guilarte
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
Carlos Guilarte
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
marianny123
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
Carlos Guilarte
 
Sistemas De Recomendación
Sistemas De RecomendaciónSistemas De Recomendación
Sistemas De Recomendación
kamui002
 
Proyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSIProyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSI
Oscar Ardaiz
 
Metodologia Estructurada
Metodologia EstructuradaMetodologia Estructurada
Metodologia Estructurada
Susana Daldin
 
14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii
Julio Pari
 

Similar a Motores de recomendacion (Recommendation engines) (20)

UX metodología y acciones
UX metodología y accionesUX metodología y acciones
UX metodología y acciones
 
Sin título 1vcxhz
Sin título 1vcxhzSin título 1vcxhz
Sin título 1vcxhz
 
Estudio de Factibilidad
Estudio de FactibilidadEstudio de Factibilidad
Estudio de Factibilidad
 
Instituto universitario de tecnología
Instituto universitario de tecnologíaInstituto universitario de tecnología
Instituto universitario de tecnología
 
OOSE
OOSEOOSE
OOSE
 
Trazabilidad En El Proceso De Desarrollo De Sw
Trazabilidad En El Proceso De Desarrollo De SwTrazabilidad En El Proceso De Desarrollo De Sw
Trazabilidad En El Proceso De Desarrollo De Sw
 
Metodologia De Desarrollo De Software
Metodologia De Desarrollo De SoftwareMetodologia De Desarrollo De Software
Metodologia De Desarrollo De Software
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
Requisitos metrica
Requisitos metricaRequisitos metrica
Requisitos metrica
 
Robotica industrial y proyecto de mecatronica
Robotica industrial y proyecto de mecatronicaRobotica industrial y proyecto de mecatronica
Robotica industrial y proyecto de mecatronica
 
Interfaz de uusario cintya alban
Interfaz de uusario cintya albanInterfaz de uusario cintya alban
Interfaz de uusario cintya alban
 
SISTEMAS DE RECOMENDACIÓN.pptx
SISTEMAS DE RECOMENDACIÓN.pptxSISTEMAS DE RECOMENDACIÓN.pptx
SISTEMAS DE RECOMENDACIÓN.pptx
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
 
Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2Ingenieria de requisito grupo 2
Ingenieria de requisito grupo 2
 
Sistemas De Recomendación
Sistemas De RecomendaciónSistemas De Recomendación
Sistemas De Recomendación
 
Proyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSIProyecto investigacion para habilitacion LSI
Proyecto investigacion para habilitacion LSI
 
Metodologia Estructurada
Metodologia EstructuradaMetodologia Estructurada
Metodologia Estructurada
 
14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii14 Clase Flujo De AnáLisis Ii
14 Clase Flujo De AnáLisis Ii
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Motores de recomendacion (Recommendation engines)