SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
Sistemas de
Recomendacion
● “We are leaving the age of information and entering the age of
recommendation.”
Chris Anderson, The Long Tail
• The Web, they say, is leaving the era of search and entering one of
discovery. What’s the difference? Search is what you do when you’re
looking for something. Discovery is when something wonderful that you
didn’t know existed, or didn’t know how to ask for, finds you."
Jeffrey O'Brien, Fortune Magazine
● Abundancia de informacion
● costo computacional bajo
Valor de las recomendaciones
• 65% del trafico de Netflix.
• 38% del trafico de google news.
• 35% de las ventas en Amazon.
• 40% del tráfico de youtube.
Definición
Estimar una funcion de utilidad que modela
la preferencia de un usuario sobre un ítem.
Que vamos a usar para la estimación?
● comportamiento de los usuarios.
● descripción de los items.
● contexto.
● etc.
Roadmap
Recomendaciones basadas en
contenido
● Se construyen perfiles de usuarios e items.
● Usuario: rango etario, género, geografía, intereses,
segmentos, keywords representativas, etc.
● Producto: nombre, descripción, autor, categoría, tags,
geografia, keywords representativas, etc.
● En caso de no existir los perfiles se infieren usando
técnicas como clustering o clasificadores.
Matching de usuarios e items por keywords:
● Usando técnicas de information retrieval puedo obtener
el texto más relevante de un documento. (Tf-IDF)
● Por cada ítem que el usuario visita obtengo las
keywords más relevantes, armó un conjunto con todos
estos términos.
● Cuando tengo que recomendar un item a un usuario
calculo la distancia entre este conjunto representativo y
cada uno de los ítems del inventario usando distancia
del coseno como metrica.
1-Texto relevante
● Por cada item (documento) obtengo las keywords mas
importantes usando TF-IDF.
● Remover stopwords.
2-Historial de navegación
1. Por cada usuario registramos los ítems que visito
2. Extraemos las keywords relevantes.
3. Armamos un perfil de usuario con estas keywords más
relevantes
3-Similitud de texto
1. Calculamos la distancia del coseno entre cada item y el
usuario testigo.
2. Ordenamos por similitud
Clasificadores
Ejemplo dataset publicidad online
Quiero predecir si el usuario va a hacer click o no
pros/cons
Pros
● No existen el problema de cold start ni de sparcity de los datos.
● Posibilidad de brindar recomendaciones al long-tail.
● Facilidad para brindar explicación de las recomendaciones.
Cons
● Facilidad de overfitting (recomendar solo terror a un amante del genero)
● No siempre se dispone de información suficiente para contruir los perfiles.
● No es sencillo generar recomendaciones novedosas ni sorpresivas.
(serendipity)
Filtros colaborativos (Memoria)
● Conjunto de usuarios M y de items N
● Por cada usuario tenemos una lista de ítems asociados a una preferencia.
Esta preferencia puede ser explícita (ratings, etc.) o implícita (historial de
navegación, historial de compras, etc.)
● Usuario activo sobre el cual queremos predecir su preferencia.
● Métrica que mide la similitud entre usuarios o entre items, dependiendo el
tipo de filtro.
● Método para seleccionar vecinos
● Metodo para computar la predicción
Basados en Usuarios
conceptualmente muy simple, dados un usuario u y un ítem i:
1. Seleccionar un conjunto de usuarios similares a u que hayan emitido
preferencia por i (vecinos)
2. Devolver la preferencia de u por i como el promedio de las
preferencias de los vecinos de u ponderado por la similitud entre u y
sus vecinos.
pseudocodigo (implementation Mahout)
Dado un usuario u al cual queremos recomendarle items:
Por cada usuario w
computo la similitud entre u,w
devuelvo los primeros n usuarios ordenados por similitud, formando el vecindario N de u
Por cada ítem i que algun usuario de N tenga preferencia,
pero que u no tenga preferencia.
por cada usuario v en N que tenga preferencia por i
computo la similitud s entre u y v
incorporo la preferencia de v por i, pesada por s
devuelvo los primeros n items ordenados por el promedio ponderado
funciones de similitud
● Pearson-correlation:
● cosine similarity:
● jaccard similarity:
Basados en Items
Dados un usuario u y un ítem i:
1. Seleccionar un conjunto de items similares a i donde el usuario u ya
expreso preferencias por los mismos.
2. Devolver la preferencia de u por i como el promedio de las
preferencias de los items similares a i ponderado por la similitud
entre i y sus vecinos.
pseudocodigo (version mahout)
Por cada item i que u no expreso preferencia
por cada item j que u si expreso preferencia
calcular la similitud entre s entre i y j
incorporo la preferencia por j pesada por s
devuelvo los primeros n items ordenados por el promedio ponderado
*Dado a que, en general, los items son mas estables que los usuarios, se
prefiere el uso de filtros colaborativos basados en items. La posibilidad de
poder hacer pre-computo por periodos de tiempo mayores es una de las
principales ventajas.
Como evaluamos?
● Teoria
○ RMSE
○ MAE
○ Precision/Recall
○ etc.
● Practica
○ A/B Testing
○ multiarmed-bandit
○ etc.
Limitaciones
Cold start: Nuevos usuarios tienen que expresar preferencias por un tiempo
sobre los items antes de que el sistema pueda recomendar contenido de valor
Sparcity: Si pensamos las preferencias de los usuarios por los items como una
matriz MxN vamos a ver que la mayor parte de las entradas son 0’s . Es
necesario reducir esa dimensionalidad.
Popularity Bias: Dificil recomendar a usuarios con gustos “unicos”. Tendencia
a la popularidad. Rich-get-richer effect.
Scalability: Con millones de items y usuarios se hace imposible el
procesamiento “tradicional”.
Filtros colaborativos (Modelos)
● Factorización de matrices.
● Clustering.
● Reglas de Asociación.
● Clasificadores.
● LDA.
● etc.
Factorización de matrices
● Estos métodos nos permiten reducir la dimensionalidad del problema y
“llenar” los agujeros. En general mejoran los resultados de la versión
tradicional de filtros colaborativos.
SVD | Version algebra lineal
● Por que no SVD? Lo que queremos es el proceso inverso, partir de una
descomposición y recrear la matriz grande.
● Podemos rellenar A con ceros, pero agrega ruido distorcionando la data.
SVD | version iterativa
● Versión iterativa que aprende utilizando descenso por el gradiente
estocástico.
función
de costo
Bias
● Muchas de las variaciones en los ratings observados corresponden a
comportamientos implícitos de los usuarios y de los ítems.
● Versión definitiva incorpora información implícita.
● Ganadora competencia netflix. En producción hoy en día junto con modelo
de redes neuronales.
Clustering
● Segmentación de los usuarios en clusters en base a un comportamiento
común a nivel de preferencia de items.
● Cada usuario recibe recomendaciones a nivel intra cluster.
● Se utiliza como alternativa a problemas de set de datos esparsos.
● En algunos casos se utiliza como etapa previa en la aplicacion de filtros
colaborativos tradicionales (memory-based).
● En general uso aislado genera peores recomendaciones que filtros
tradicionales.
Podemos formar un cluster compuesto por Bill, Jane y Steve. en este caso
vamos a recomendar la pelicula 1,3 y 4 con alta prioridad, luego la 2.
No todo son algoritmos...
UX/Diseño
● Si tenemos poco tiempo y recursos, usar siempre filtros colaborativos
tradicionales como primer opción.
● Si tenemos un poco más de tiempo y recursos, probar con algún modelo
de factorización de matrices.
● Con un poco mas... ya pensamos en un modelo híbrido donde aplicamos
alguna técnica basada en contenido para el long-tail.
● Concentrarse en vencer popularidad (difícil).
● Importancia al diseño.
● Tiempo para EDA (exploratory data analysis).
Tips
Hadoop
● Framework open-source para almacenamiento y procesamiento
distribuido.
● File system propio HDFS.
● Implementa map-reduce, paradigma de procesamiento paralelo.
● Pensado para procesamiento en batch y del total del data set.
● One write, many reads.
● Permite trabajar con data semi-estructurada y no estructurada.
● Escrito en Java
map-reduce
● Map(k1
,v1
) -> list(k2
,v2
)
○ map(0001,”vamos vamos river plate”) ->
[(‘vamos’,1),(‘vamos’,1),(‘river’,1),(‘plate’,1)]
● Reduce(k2
, list (v2
)) -> list(v3
)
○ reduce(‘river’,[1,1]) -> (river,2)
● El cluster hadoop mas grande del mundo tiene 100.000 cpu’s en 40.000
servers y es propiedad de yahoo.com
● Contiene 455 petabytes de datos.
Quien lo usa?
● Amazon
● Facebook
● Google
● IBM
● Last.fm
● New York Times
● PowerSet (now Microsoft)
● Quantcast
● Veoh
● Yahoo!
● etc.
Mahout
● Libreria de machine learning escalable.
● Escrito en Java.
● Corre sobre Hadoop.
● ultima version tambien permite Spark.
● Objetivo de ser el “lucene de search” para machine
learning.
Clustering
● Canopy Clustering
● k-Means Clustering
● Fuzzy k-Means
● Streaming k-Means
● Spectral Clustering
Clasificadores
● Logistic Regression
● Naive Bayes
● Random Forest
● Hidden Markov Models
● Multilayer Perceptron
filtros colaborativos
● User-Based Collaborative Filtering
● Item-Based Collaborative Filtering
● Matrix Factorization with ALS
● Matrix Factorization with ALS on Implicit Feedback
● Weighted Matrix Factorization, SVD++
Otros…
● Dimensionality Reduction
○ Singular Value Decomposition
○ Lanczos Algorithm deprecated
○ Stochastic SVD
○ PCA (via Stochastic SVD)
● Topic Modelling
○ Latent Dirichlet Allocation
ejemplo de uso
● consola
mahout parallelALS --input $als_input --output $als_output --lambda 0.1 --implicitFeedback true --
alpha 0.8 --numFeatures 2 --numIterations 5 --numThreadsPerSolver 1 --tempDir tmp
● codigo Java
public static void main(String[] args) throws Exception {
modelFile = new File("intro.csv");
DataModel model = new FileDataModel(modelFile);
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood =
new NearestNUserNeighborhood(2, similarity, model);
Recommender recommender = new GenericUserBasedRecommender(
model, neighborhood, similarity);
List<RecommendedItem> recommendations =
recommender.recommend(1, 1);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
}
donde lo usan?
● twitter: LDA para el modelo de los intereses de los
usuarios
● Yahoo: Frecuent pattern mining
● Foursquare: recomendaciones
● etc.
Spark
● Plataforma de computación open source para análisis y
procesos avanzados en entornos distribuidos.
● Unidad de procesamiento y almacenamiento en
memoria.
● Evaluacion lazy.
● Comparacion Hadoop 10x > disco , 100X > mem.
● Escrito en scala, interfaz para java y... python!
● Shell interactivo muy comodo.
● MLlib, libreria machine learning.
Operadores
word-count
descenso por el gradiente
ALS-MF
TA
RIN
GA!
Discovery - Personalización
de contenido
Objetivos
● Mejorar las recomendaciones.
● Profile de Usuario.
● Personalización de la home.
● Push de contenido.
Dificultades
● Recursos (T! no es netflix...)
● Burocracia.
● Tamaño de datos, 20 M de post activos, 27 M usuarios
registrados... potential matriz grande!
● Dispersión comportamiento de usuarios.
● Long tail de usuarios.
● Expectativas… problema común de investigación
aplicada?
Ingenieria
Que usamos?
● mahout
● spark
● python
● redis
● go (go?)
martinbonamico@gmail.com
@tin_bonamico

Más contenido relacionado

La actualidad más candente

Artworks personalization on Netflix
Artworks personalization on Netflix Artworks personalization on Netflix
Artworks personalization on Netflix IntoTheMinds
 
Sistemas De Recomendación
Sistemas De RecomendaciónSistemas De Recomendación
Sistemas De Recomendaciónkamui002
 
Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.GameCamp
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation SystemsRobin Reni
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonMarcel Caraciolo
 
Recommender Engines
Recommender EnginesRecommender Engines
Recommender EnginesThomas Hess
 
Seminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónSeminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónalmudena ruiz
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at SpotifyOguz Semerci
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender systemStanley Wang
 
Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Balázs Hidasi
 
Past present and future of Recommender Systems: an Industry Perspective
Past present and future of Recommender Systems: an Industry PerspectivePast present and future of Recommender Systems: an Industry Perspective
Past present and future of Recommender Systems: an Industry PerspectiveXavier Amatriain
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례Hwanhee Kim
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Restaurant recommender
Restaurant recommenderRestaurant recommender
Restaurant recommenderAnnie Thomas
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기NAVER D2
 

La actualidad más candente (20)

Artworks personalization on Netflix
Artworks personalization on Netflix Artworks personalization on Netflix
Artworks personalization on Netflix
 
Sistemas De Recomendación
Sistemas De RecomendaciónSistemas De Recomendación
Sistemas De Recomendación
 
Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.Creativity and data driven design. Learnings from Archero case.
Creativity and data driven design. Learnings from Archero case.
 
Recommendation Systems
Recommendation SystemsRecommendation Systems
Recommendation Systems
 
Construindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com PythonConstruindo Sistemas de Recomendação com Python
Construindo Sistemas de Recomendação com Python
 
Recommender Engines
Recommender EnginesRecommender Engines
Recommender Engines
 
Seminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendaciónSeminario sobre sistemas de recomendación
Seminario sobre sistemas de recomendación
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at Spotify
 
Programando com Python
Programando com PythonProgramando com Python
Programando com Python
 
Overview of recommender system
Overview of recommender systemOverview of recommender system
Overview of recommender system
 
Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017Deep Learning in Recommender Systems - RecSys Summer School 2017
Deep Learning in Recommender Systems - RecSys Summer School 2017
 
Past present and future of Recommender Systems: an Industry Perspective
Past present and future of Recommender Systems: an Industry PerspectivePast present and future of Recommender Systems: an Industry Perspective
Past present and future of Recommender Systems: an Industry Perspective
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
[NDC2017] 딥러닝으로 게임 콘텐츠 제작하기 - VAE를 이용한 콘텐츠 생성 기법 연구 사례
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Restaurant recommender
Restaurant recommenderRestaurant recommender
Restaurant recommender
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 

Destacado

Recommender Systems
Recommender SystemsRecommender Systems
Recommender SystemsT212
 
How to Build a Recommendation Engine on Spark
How to Build a Recommendation Engine on SparkHow to Build a Recommendation Engine on Spark
How to Build a Recommendation Engine on SparkCaserta
 
Delivering a 'Big Data Ready' minimum viable product
Delivering a 'Big Data Ready' minimum viable productDelivering a 'Big Data Ready' minimum viable product
Delivering a 'Big Data Ready' minimum viable productGregory Chomatas
 
Building on a House of Cards: Big Data and On-Demand Culture
Building on a House of Cards: Big Data and On-Demand CultureBuilding on a House of Cards: Big Data and On-Demand Culture
Building on a House of Cards: Big Data and On-Demand CultureChuck Tryon
 
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.Carlos Guerrero
 
Professionalism by The Youth Career Coach Inc.
Professionalism by The Youth Career Coach Inc. Professionalism by The Youth Career Coach Inc.
Professionalism by The Youth Career Coach Inc. Natascha Saunders
 
Recommendation system based on adaptive ontological graphs and weighted ranking
Recommendation system based on adaptive ontological graphs and weighted rankingRecommendation system based on adaptive ontological graphs and weighted ranking
Recommendation system based on adaptive ontological graphs and weighted rankingvikramadityajakkula
 
Saunders client feedback and recommendation ppt report 3.23
Saunders client feedback and recommendation ppt report 3.23Saunders client feedback and recommendation ppt report 3.23
Saunders client feedback and recommendation ppt report 3.23Natascha Saunders
 
El caso Netflix y los nuevos negocios en la era digital
El caso Netflix y los nuevos negocios en la era digitalEl caso Netflix y los nuevos negocios en la era digital
El caso Netflix y los nuevos negocios en la era digitalElizabeth Ontaneda
 
A Hybrid Recommendation system
A Hybrid Recommendation systemA Hybrid Recommendation system
A Hybrid Recommendation systemPranav Prakash
 
Recommendation System --Theory and Practice
Recommendation System --Theory and PracticeRecommendation System --Theory and Practice
Recommendation System --Theory and PracticeKimikazu Kato
 
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programming
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original ProgrammingThe Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programming
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programminghye-jin-lee
 
Recommendation techniques
Recommendation techniques Recommendation techniques
Recommendation techniques sun9413
 
Operaciones con vectores
Operaciones con vectoresOperaciones con vectores
Operaciones con vectorestcp14
 
Netflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsNetflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsBlake Irvine
 
Contabilidad y-fiscalidad
Contabilidad y-fiscalidadContabilidad y-fiscalidad
Contabilidad y-fiscalidadnarait
 
Buidling large scale recommendation engine
Buidling large scale recommendation engineBuidling large scale recommendation engine
Buidling large scale recommendation engineKeeyong Han
 
Recommender Systems with Apache Spark's ALS Function
Recommender Systems with Apache Spark's ALS FunctionRecommender Systems with Apache Spark's ALS Function
Recommender Systems with Apache Spark's ALS FunctionWill Johnson
 

Destacado (20)

Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
How to Build a Recommendation Engine on Spark
How to Build a Recommendation Engine on SparkHow to Build a Recommendation Engine on Spark
How to Build a Recommendation Engine on Spark
 
Delivering a 'Big Data Ready' minimum viable product
Delivering a 'Big Data Ready' minimum viable productDelivering a 'Big Data Ready' minimum viable product
Delivering a 'Big Data Ready' minimum viable product
 
Building on a House of Cards: Big Data and On-Demand Culture
Building on a House of Cards: Big Data and On-Demand CultureBuilding on a House of Cards: Big Data and On-Demand Culture
Building on a House of Cards: Big Data and On-Demand Culture
 
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.
Sucesion de Fibonacci y Numero Phi en una Planta de Arveja.
 
Professionalism by The Youth Career Coach Inc.
Professionalism by The Youth Career Coach Inc. Professionalism by The Youth Career Coach Inc.
Professionalism by The Youth Career Coach Inc.
 
Pablito clavo un_ clavito
Pablito clavo un_ clavitoPablito clavo un_ clavito
Pablito clavo un_ clavito
 
Recommendation system based on adaptive ontological graphs and weighted ranking
Recommendation system based on adaptive ontological graphs and weighted rankingRecommendation system based on adaptive ontological graphs and weighted ranking
Recommendation system based on adaptive ontological graphs and weighted ranking
 
Saunders client feedback and recommendation ppt report 3.23
Saunders client feedback and recommendation ppt report 3.23Saunders client feedback and recommendation ppt report 3.23
Saunders client feedback and recommendation ppt report 3.23
 
El caso Netflix y los nuevos negocios en la era digital
El caso Netflix y los nuevos negocios en la era digitalEl caso Netflix y los nuevos negocios en la era digital
El caso Netflix y los nuevos negocios en la era digital
 
A Hybrid Recommendation system
A Hybrid Recommendation systemA Hybrid Recommendation system
A Hybrid Recommendation system
 
Recommendation System --Theory and Practice
Recommendation System --Theory and PracticeRecommendation System --Theory and Practice
Recommendation System --Theory and Practice
 
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programming
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original ProgrammingThe Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programming
The Big Data TV: Data Analytics, Algorithm, and Netflix’s Original Programming
 
Recommendation techniques
Recommendation techniques Recommendation techniques
Recommendation techniques
 
Operaciones con vectores
Operaciones con vectoresOperaciones con vectores
Operaciones con vectores
 
Netflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of AnalyticsNetflix - Enabling a Culture of Analytics
Netflix - Enabling a Culture of Analytics
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
Contabilidad y-fiscalidad
Contabilidad y-fiscalidadContabilidad y-fiscalidad
Contabilidad y-fiscalidad
 
Buidling large scale recommendation engine
Buidling large scale recommendation engineBuidling large scale recommendation engine
Buidling large scale recommendation engine
 
Recommender Systems with Apache Spark's ALS Function
Recommender Systems with Apache Spark's ALS FunctionRecommender Systems with Apache Spark's ALS Function
Recommender Systems with Apache Spark's ALS Function
 

Similar a Sistemas de recomendación & Big Data

A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
 
Graph-Hunter: Prediciendo eventos con grafos
Graph-Hunter: Prediciendo eventos con grafosGraph-Hunter: Prediciendo eventos con grafos
Graph-Hunter: Prediciendo eventos con grafosNeo4j
 
El proceso del diseño interactivo
El proceso del diseño interactivoEl proceso del diseño interactivo
El proceso del diseño interactivokamui002
 
La caja de herramientas - Informe
La caja de herramientas - InformeLa caja de herramientas - Informe
La caja de herramientas - InformeGema de la Fuente
 
Symfony2 and ElasticSearch
Symfony2 and ElasticSearchSymfony2 and ElasticSearch
Symfony2 and ElasticSearchsymfony_bcn
 
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...Revolución, revolución, revolución: las bibliotecas en la revolución de los u...
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...innovatics
 
Motores de recomendacion (Recommendation engines)
Motores de recomendacion (Recommendation engines)Motores de recomendacion (Recommendation engines)
Motores de recomendacion (Recommendation engines)Luis Francisco
 
Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos iPablo Macon
 
Buscador Semántico
Buscador SemánticoBuscador Semántico
Buscador SemánticoFlor Cuenca
 
Laboratorio práctico: La sazón del científico de datos
Laboratorio práctico: La sazón del científico de datosLaboratorio práctico: La sazón del científico de datos
Laboratorio práctico: La sazón del científico de datosSoftware Guru
 
Meetup En mi local funciona - Mi primer diseño con Apache Kafka
Meetup En mi local funciona - Mi primer diseño con Apache KafkaMeetup En mi local funciona - Mi primer diseño con Apache Kafka
Meetup En mi local funciona - Mi primer diseño con Apache KafkaatSistemas
 
Solid Day - Deep learning
Solid Day - Deep learningSolid Day - Deep learning
Solid Day - Deep learningSoftware Guru
 
Aplicando la ciencia de datos en una organización
Aplicando la ciencia de datos en una organizaciónAplicando la ciencia de datos en una organización
Aplicando la ciencia de datos en una organizaciónKozhayaSfeir
 
Introduccion a Machine Learning
Introduccion a Machine LearningIntroduccion a Machine Learning
Introduccion a Machine LearningStratebi
 
Sistemas de recomendación: tipos y evaluación
Sistemas de recomendación: tipos y evaluaciónSistemas de recomendación: tipos y evaluación
Sistemas de recomendación: tipos y evaluaciónBlanca Alicia Vargas Govea
 

Similar a Sistemas de recomendación & Big Data (20)

A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de Recomendación
 
Graph-Hunter: Prediciendo eventos con grafos
Graph-Hunter: Prediciendo eventos con grafosGraph-Hunter: Prediciendo eventos con grafos
Graph-Hunter: Prediciendo eventos con grafos
 
El proceso del diseño interactivo
El proceso del diseño interactivoEl proceso del diseño interactivo
El proceso del diseño interactivo
 
La caja de herramientas - Informe
La caja de herramientas - InformeLa caja de herramientas - Informe
La caja de herramientas - Informe
 
Analisis y diseno_oo
Analisis y diseno_ooAnalisis y diseno_oo
Analisis y diseno_oo
 
SISTEMAS DE RECOMENDACIÓN.pptx
SISTEMAS DE RECOMENDACIÓN.pptxSISTEMAS DE RECOMENDACIÓN.pptx
SISTEMAS DE RECOMENDACIÓN.pptx
 
Symfony2 and ElasticSearch
Symfony2 and ElasticSearchSymfony2 and ElasticSearch
Symfony2 and ElasticSearch
 
J15 45 peset_fernanda
J15 45 peset_fernandaJ15 45 peset_fernanda
J15 45 peset_fernanda
 
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...Revolución, revolución, revolución: las bibliotecas en la revolución de los u...
Revolución, revolución, revolución: las bibliotecas en la revolución de los u...
 
Motores de recomendacion (Recommendation engines)
Motores de recomendacion (Recommendation engines)Motores de recomendacion (Recommendation engines)
Motores de recomendacion (Recommendation engines)
 
Ingeniería de requerimientos i
Ingeniería de requerimientos iIngeniería de requerimientos i
Ingeniería de requerimientos i
 
Buscador Semántico
Buscador SemánticoBuscador Semántico
Buscador Semántico
 
Laboratorio práctico: La sazón del científico de datos
Laboratorio práctico: La sazón del científico de datosLaboratorio práctico: La sazón del científico de datos
Laboratorio práctico: La sazón del científico de datos
 
Meetup En mi local funciona - Mi primer diseño con Apache Kafka
Meetup En mi local funciona - Mi primer diseño con Apache KafkaMeetup En mi local funciona - Mi primer diseño con Apache Kafka
Meetup En mi local funciona - Mi primer diseño con Apache Kafka
 
Solid Day - Deep learning
Solid Day - Deep learningSolid Day - Deep learning
Solid Day - Deep learning
 
Aplicando la ciencia de datos en una organización
Aplicando la ciencia de datos en una organizaciónAplicando la ciencia de datos en una organización
Aplicando la ciencia de datos en una organización
 
Introduccion a Machine Learning
Introduccion a Machine LearningIntroduccion a Machine Learning
Introduccion a Machine Learning
 
Sistemas de recomendación
Sistemas de recomendaciónSistemas de recomendación
Sistemas de recomendación
 
Sistemas de recomendación: tipos y evaluación
Sistemas de recomendación: tipos y evaluaciónSistemas de recomendación: tipos y evaluación
Sistemas de recomendación: tipos y evaluación
 

Último

HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 

Último (20)

HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 

Sistemas de recomendación & Big Data

  • 2. ● “We are leaving the age of information and entering the age of recommendation.” Chris Anderson, The Long Tail • The Web, they say, is leaving the era of search and entering one of discovery. What’s the difference? Search is what you do when you’re looking for something. Discovery is when something wonderful that you didn’t know existed, or didn’t know how to ask for, finds you." Jeffrey O'Brien, Fortune Magazine
  • 3. ● Abundancia de informacion ● costo computacional bajo
  • 4. Valor de las recomendaciones • 65% del trafico de Netflix. • 38% del trafico de google news. • 35% de las ventas en Amazon. • 40% del tráfico de youtube.
  • 5. Definición Estimar una funcion de utilidad que modela la preferencia de un usuario sobre un ítem. Que vamos a usar para la estimación? ● comportamiento de los usuarios. ● descripción de los items. ● contexto. ● etc.
  • 7. Recomendaciones basadas en contenido ● Se construyen perfiles de usuarios e items. ● Usuario: rango etario, género, geografía, intereses, segmentos, keywords representativas, etc. ● Producto: nombre, descripción, autor, categoría, tags, geografia, keywords representativas, etc. ● En caso de no existir los perfiles se infieren usando técnicas como clustering o clasificadores.
  • 8.
  • 9. Matching de usuarios e items por keywords: ● Usando técnicas de information retrieval puedo obtener el texto más relevante de un documento. (Tf-IDF) ● Por cada ítem que el usuario visita obtengo las keywords más relevantes, armó un conjunto con todos estos términos. ● Cuando tengo que recomendar un item a un usuario calculo la distancia entre este conjunto representativo y cada uno de los ítems del inventario usando distancia del coseno como metrica.
  • 10. 1-Texto relevante ● Por cada item (documento) obtengo las keywords mas importantes usando TF-IDF. ● Remover stopwords.
  • 11. 2-Historial de navegación 1. Por cada usuario registramos los ítems que visito 2. Extraemos las keywords relevantes. 3. Armamos un perfil de usuario con estas keywords más relevantes
  • 12. 3-Similitud de texto 1. Calculamos la distancia del coseno entre cada item y el usuario testigo. 2. Ordenamos por similitud
  • 14. Quiero predecir si el usuario va a hacer click o no
  • 15. pros/cons Pros ● No existen el problema de cold start ni de sparcity de los datos. ● Posibilidad de brindar recomendaciones al long-tail. ● Facilidad para brindar explicación de las recomendaciones. Cons ● Facilidad de overfitting (recomendar solo terror a un amante del genero) ● No siempre se dispone de información suficiente para contruir los perfiles. ● No es sencillo generar recomendaciones novedosas ni sorpresivas. (serendipity)
  • 16. Filtros colaborativos (Memoria) ● Conjunto de usuarios M y de items N ● Por cada usuario tenemos una lista de ítems asociados a una preferencia. Esta preferencia puede ser explícita (ratings, etc.) o implícita (historial de navegación, historial de compras, etc.) ● Usuario activo sobre el cual queremos predecir su preferencia. ● Métrica que mide la similitud entre usuarios o entre items, dependiendo el tipo de filtro. ● Método para seleccionar vecinos ● Metodo para computar la predicción
  • 17. Basados en Usuarios conceptualmente muy simple, dados un usuario u y un ítem i: 1. Seleccionar un conjunto de usuarios similares a u que hayan emitido preferencia por i (vecinos) 2. Devolver la preferencia de u por i como el promedio de las preferencias de los vecinos de u ponderado por la similitud entre u y sus vecinos.
  • 18. pseudocodigo (implementation Mahout) Dado un usuario u al cual queremos recomendarle items: Por cada usuario w computo la similitud entre u,w devuelvo los primeros n usuarios ordenados por similitud, formando el vecindario N de u Por cada ítem i que algun usuario de N tenga preferencia, pero que u no tenga preferencia. por cada usuario v en N que tenga preferencia por i computo la similitud s entre u y v incorporo la preferencia de v por i, pesada por s devuelvo los primeros n items ordenados por el promedio ponderado
  • 19. funciones de similitud ● Pearson-correlation: ● cosine similarity: ● jaccard similarity:
  • 20. Basados en Items Dados un usuario u y un ítem i: 1. Seleccionar un conjunto de items similares a i donde el usuario u ya expreso preferencias por los mismos. 2. Devolver la preferencia de u por i como el promedio de las preferencias de los items similares a i ponderado por la similitud entre i y sus vecinos.
  • 21. pseudocodigo (version mahout) Por cada item i que u no expreso preferencia por cada item j que u si expreso preferencia calcular la similitud entre s entre i y j incorporo la preferencia por j pesada por s devuelvo los primeros n items ordenados por el promedio ponderado *Dado a que, en general, los items son mas estables que los usuarios, se prefiere el uso de filtros colaborativos basados en items. La posibilidad de poder hacer pre-computo por periodos de tiempo mayores es una de las principales ventajas.
  • 22. Como evaluamos? ● Teoria ○ RMSE ○ MAE ○ Precision/Recall ○ etc. ● Practica ○ A/B Testing ○ multiarmed-bandit ○ etc.
  • 23. Limitaciones Cold start: Nuevos usuarios tienen que expresar preferencias por un tiempo sobre los items antes de que el sistema pueda recomendar contenido de valor Sparcity: Si pensamos las preferencias de los usuarios por los items como una matriz MxN vamos a ver que la mayor parte de las entradas son 0’s . Es necesario reducir esa dimensionalidad. Popularity Bias: Dificil recomendar a usuarios con gustos “unicos”. Tendencia a la popularidad. Rich-get-richer effect. Scalability: Con millones de items y usuarios se hace imposible el procesamiento “tradicional”.
  • 24. Filtros colaborativos (Modelos) ● Factorización de matrices. ● Clustering. ● Reglas de Asociación. ● Clasificadores. ● LDA. ● etc.
  • 25. Factorización de matrices ● Estos métodos nos permiten reducir la dimensionalidad del problema y “llenar” los agujeros. En general mejoran los resultados de la versión tradicional de filtros colaborativos.
  • 26. SVD | Version algebra lineal ● Por que no SVD? Lo que queremos es el proceso inverso, partir de una descomposición y recrear la matriz grande. ● Podemos rellenar A con ceros, pero agrega ruido distorcionando la data.
  • 27. SVD | version iterativa ● Versión iterativa que aprende utilizando descenso por el gradiente estocástico. función de costo
  • 28. Bias ● Muchas de las variaciones en los ratings observados corresponden a comportamientos implícitos de los usuarios y de los ítems. ● Versión definitiva incorpora información implícita. ● Ganadora competencia netflix. En producción hoy en día junto con modelo de redes neuronales.
  • 29. Clustering ● Segmentación de los usuarios en clusters en base a un comportamiento común a nivel de preferencia de items. ● Cada usuario recibe recomendaciones a nivel intra cluster. ● Se utiliza como alternativa a problemas de set de datos esparsos. ● En algunos casos se utiliza como etapa previa en la aplicacion de filtros colaborativos tradicionales (memory-based). ● En general uso aislado genera peores recomendaciones que filtros tradicionales.
  • 30. Podemos formar un cluster compuesto por Bill, Jane y Steve. en este caso vamos a recomendar la pelicula 1,3 y 4 con alta prioridad, luego la 2.
  • 31. No todo son algoritmos...
  • 33. ● Si tenemos poco tiempo y recursos, usar siempre filtros colaborativos tradicionales como primer opción. ● Si tenemos un poco más de tiempo y recursos, probar con algún modelo de factorización de matrices. ● Con un poco mas... ya pensamos en un modelo híbrido donde aplicamos alguna técnica basada en contenido para el long-tail. ● Concentrarse en vencer popularidad (difícil). ● Importancia al diseño. ● Tiempo para EDA (exploratory data analysis). Tips
  • 34.
  • 35. Hadoop ● Framework open-source para almacenamiento y procesamiento distribuido. ● File system propio HDFS. ● Implementa map-reduce, paradigma de procesamiento paralelo. ● Pensado para procesamiento en batch y del total del data set. ● One write, many reads. ● Permite trabajar con data semi-estructurada y no estructurada. ● Escrito en Java
  • 36. map-reduce ● Map(k1 ,v1 ) -> list(k2 ,v2 ) ○ map(0001,”vamos vamos river plate”) -> [(‘vamos’,1),(‘vamos’,1),(‘river’,1),(‘plate’,1)] ● Reduce(k2 , list (v2 )) -> list(v3 ) ○ reduce(‘river’,[1,1]) -> (river,2)
  • 37.
  • 38. ● El cluster hadoop mas grande del mundo tiene 100.000 cpu’s en 40.000 servers y es propiedad de yahoo.com ● Contiene 455 petabytes de datos.
  • 39. Quien lo usa? ● Amazon ● Facebook ● Google ● IBM ● Last.fm ● New York Times ● PowerSet (now Microsoft) ● Quantcast ● Veoh ● Yahoo! ● etc.
  • 40. Mahout ● Libreria de machine learning escalable. ● Escrito en Java. ● Corre sobre Hadoop. ● ultima version tambien permite Spark. ● Objetivo de ser el “lucene de search” para machine learning.
  • 41. Clustering ● Canopy Clustering ● k-Means Clustering ● Fuzzy k-Means ● Streaming k-Means ● Spectral Clustering
  • 42. Clasificadores ● Logistic Regression ● Naive Bayes ● Random Forest ● Hidden Markov Models ● Multilayer Perceptron
  • 43. filtros colaborativos ● User-Based Collaborative Filtering ● Item-Based Collaborative Filtering ● Matrix Factorization with ALS ● Matrix Factorization with ALS on Implicit Feedback ● Weighted Matrix Factorization, SVD++
  • 44. Otros… ● Dimensionality Reduction ○ Singular Value Decomposition ○ Lanczos Algorithm deprecated ○ Stochastic SVD ○ PCA (via Stochastic SVD) ● Topic Modelling ○ Latent Dirichlet Allocation
  • 45.
  • 46.
  • 47. ejemplo de uso ● consola mahout parallelALS --input $als_input --output $als_output --lambda 0.1 --implicitFeedback true -- alpha 0.8 --numFeatures 2 --numIterations 5 --numThreadsPerSolver 1 --tempDir tmp
  • 48. ● codigo Java public static void main(String[] args) throws Exception { modelFile = new File("intro.csv"); DataModel model = new FileDataModel(modelFile); UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); Recommender recommender = new GenericUserBasedRecommender( model, neighborhood, similarity); List<RecommendedItem> recommendations = recommender.recommend(1, 1); for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation); } }
  • 49. donde lo usan? ● twitter: LDA para el modelo de los intereses de los usuarios ● Yahoo: Frecuent pattern mining ● Foursquare: recomendaciones ● etc.
  • 50. Spark ● Plataforma de computación open source para análisis y procesos avanzados en entornos distribuidos. ● Unidad de procesamiento y almacenamiento en memoria. ● Evaluacion lazy. ● Comparacion Hadoop 10x > disco , 100X > mem. ● Escrito en scala, interfaz para java y... python! ● Shell interactivo muy comodo. ● MLlib, libreria machine learning.
  • 51.
  • 54. descenso por el gradiente
  • 57. Objetivos ● Mejorar las recomendaciones. ● Profile de Usuario. ● Personalización de la home. ● Push de contenido.
  • 58. Dificultades ● Recursos (T! no es netflix...) ● Burocracia. ● Tamaño de datos, 20 M de post activos, 27 M usuarios registrados... potential matriz grande! ● Dispersión comportamiento de usuarios. ● Long tail de usuarios. ● Expectativas… problema común de investigación aplicada?
  • 60. Que usamos? ● mahout ● spark ● python ● redis ● go (go?)