Sistemas de recomendación & Big Data
-
Upload
martin-bonamico -
Category
Data & Analytics
-
view
650 -
download
1
Transcript of Sistemas de recomendación & Big Data
![Page 1: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/1.jpg)
Sistemas de Recomendacion
![Page 2: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/2.jpg)
● “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
![Page 3: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/3.jpg)
● Abundancia de informacion● costo computacional bajo
![Page 4: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/4.jpg)
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.
![Page 5: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/5.jpg)
DefiniciónEstimar una funcion de utilidad que modelala 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.
![Page 6: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/6.jpg)
Roadmap
![Page 7: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/7.jpg)
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.
![Page 8: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/8.jpg)
![Page 9: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/9.jpg)
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.
![Page 10: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/10.jpg)
1-Texto relevante● Por cada item (documento) obtengo las keywords mas
importantes usando TF-IDF.● Remover stopwords.
![Page 11: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/11.jpg)
2-Historial de navegación1. Por cada usuario registramos los ítems que visito2. Extraemos las keywords relevantes.3. Armamos un perfil de usuario con estas keywords más
relevantes
![Page 12: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/12.jpg)
3-Similitud de texto1. Calculamos la distancia del coseno entre cada item y el
usuario testigo.2. Ordenamos por similitud
![Page 13: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/13.jpg)
ClasificadoresEjemplo dataset publicidad online
![Page 14: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/14.jpg)
Quiero predecir si el usuario va a hacer click o no
![Page 15: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/15.jpg)
pros/consPros● 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)
![Page 16: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/16.jpg)
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
![Page 17: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/17.jpg)
Basados en Usuariosconceptualmente 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.
![Page 18: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/18.jpg)
pseudocodigo (implementation Mahout)
Dado un usuario u al cual queremos recomendarle items:Por cada usuario w
computo la similitud entre u,wdevuelvo 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 icomputo la similitud s entre u y vincorporo la preferencia de v por i, pesada por s
devuelvo los primeros n items ordenados por el promedio ponderado
![Page 19: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/19.jpg)
funciones de similitud
● Pearson-correlation:
● cosine similarity:
● jaccard similarity:
![Page 20: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/20.jpg)
Basados en ItemsDados 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.
![Page 21: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/21.jpg)
pseudocodigo (version mahout)
Por cada item i que u no expreso preferenciapor cada item j que u si expreso preferencia
calcular la similitud entre s entre i y jincorporo 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.
![Page 22: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/22.jpg)
Como evaluamos?● Teoria
○ RMSE○ MAE○ Precision/Recall○ etc.
● Practica○ A/B Testing○ multiarmed-bandit○ etc.
![Page 23: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/23.jpg)
LimitacionesCold start: Nuevos usuarios tienen que expresar preferencias por un tiempo sobre los items antes de que el sistema pueda recomendar contenido de valorSparcity: 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”.
![Page 24: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/24.jpg)
Filtros colaborativos (Modelos)
● Factorización de matrices.● Clustering.● Reglas de Asociación.● Clasificadores.● LDA.● etc.
![Page 25: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/25.jpg)
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.
![Page 26: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/26.jpg)
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.
![Page 27: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/27.jpg)
SVD | version iterativa
● Versión iterativa que aprende utilizando descenso por el gradiente estocástico.
función de costo
![Page 28: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/28.jpg)
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.
![Page 29: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/29.jpg)
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.
![Page 30: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/30.jpg)
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.
![Page 31: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/31.jpg)
No todo son algoritmos...
![Page 32: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/32.jpg)
UX/Diseño
![Page 33: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/33.jpg)
● 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
![Page 34: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/34.jpg)
![Page 35: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/35.jpg)
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
![Page 36: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/36.jpg)
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)
![Page 37: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/37.jpg)
![Page 38: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/38.jpg)
● 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.
![Page 39: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/39.jpg)
Quien lo usa?● Amazon● Facebook● Google● IBM● Last.fm● New York Times● PowerSet (now Microsoft)● Quantcast● Veoh● Yahoo!● etc.
![Page 40: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/40.jpg)
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.
![Page 41: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/41.jpg)
Clustering● Canopy Clustering ● k-Means Clustering● Fuzzy k-Means ● Streaming k-Means ● Spectral Clustering
![Page 42: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/42.jpg)
Clasificadores● Logistic Regression ● Naive Bayes ● Random Forest ● Hidden Markov Models ● Multilayer Perceptron
![Page 43: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/43.jpg)
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++
![Page 44: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/44.jpg)
Otros…● Dimensionality Reduction
○ Singular Value Decomposition○ Lanczos Algorithm deprecated ○ Stochastic SVD○ PCA (via Stochastic SVD)
● Topic Modelling○ Latent Dirichlet Allocation
![Page 45: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/45.jpg)
![Page 46: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/46.jpg)
![Page 47: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/47.jpg)
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
![Page 48: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/48.jpg)
● 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);
}
}
![Page 49: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/49.jpg)
donde lo usan?● twitter: LDA para el modelo de los intereses de los
usuarios● Yahoo: Frecuent pattern mining● Foursquare: recomendaciones● etc.
![Page 50: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/50.jpg)
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.
![Page 51: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/51.jpg)
![Page 52: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/52.jpg)
Operadores
![Page 53: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/53.jpg)
word-count
![Page 54: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/54.jpg)
descenso por el gradiente
![Page 55: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/55.jpg)
ALS-MF
![Page 56: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/56.jpg)
TARINGA!
Discovery - Personalización de contenido
![Page 57: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/57.jpg)
Objetivos● Mejorar las recomendaciones.● Profile de Usuario.● Personalización de la home.● Push de contenido.
![Page 58: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/58.jpg)
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?
![Page 59: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/59.jpg)
Ingenieria
![Page 60: Sistemas de recomendación & Big Data](https://reader031.fdocuments.in/reader031/viewer/2022030307/58ea6d781a28ab4d578b5bc3/html5/thumbnails/60.jpg)
Que usamos?● mahout● spark● python● redis● go (go?)