If you are interested in learning more about the latest Youtube recommendation algorithm paper, read this post for details on its approach a
seen from Austria

seen from Malaysia
seen from Yemen

seen from Singapore
seen from China
seen from Ireland

seen from Australia
seen from China

seen from United States

seen from United Kingdom

seen from Malaysia
seen from Türkiye

seen from Indonesia
seen from China

seen from United Kingdom
seen from United States

seen from United Kingdom
seen from United States
seen from Japan
seen from United Kingdom
If you are interested in learning more about the latest Youtube recommendation algorithm paper, read this post for details on its approach a
Recommendation fail
Link Prediction Algorithms
Source: https://www.cs.cornell.edu/home/kleinber/link-pred.pdf
https://www.slideshare.net/justinbasilico/recent-trends-in-personalization-at-netflix
Presentation at the Netflix Expo session at RecSys 2020 virtual conference on 2020-09-24. It provides an overview of recommendation and pers
Factorization Machines - Steffen Rendle (2010)
Al pegarle una leída rápida inicial al paper, se ve en extremo denso, necesitando comprender mucho desarrollo matemático para captar el funcionamiento del modelo propuesto. Vamos a ver si es posible.
En principio, una duda que inmediatamente surge es que, si tal como el abstract dice una FM es capaz de funcionar bien incluso en lugares donde un SVM fallaría, y que por otro lado el paper es del año 2010, entonces por qué ocurre que en la práctica siguen siendo mucho más utilizadas las SVM en problemas que no necesariamente tratan sobre recomendaciones? Será acaso que son más baratas de entrenar? Veremos a continuación, aunque en principio esperaría que no, pues la ecuación modelo se puede calcular en tiempo lineal.
No queda bien definido de inmediato, pero se puede inferir que el “degree” de una FM básicamente indica hasta qué nivel de subconjuntos potenciales de variables son consideradas para análisis de interacciones. Por ejemplo, una 3-FM capturaría todas las interacciones entre todos los posibles subconjuntos de 1, 2, y 3 variables existentes para un problema arbitrario.
Aparantemente, la clave para soportar un “degree” arbitrariamente grande sin sacrificar resultados es justo el hecho de que en lugar de representar las interacciones como un peso que pertenece a un tensor de pesos d-dimensional, simplemente se termina factorizando cada variable con k factores, y esto se considera en la interaccion entre cada subconjunto mediante el producto punto de las factorizaciones multiplicado con el valor de éstas para cada caso, notando que mientras más sparse el dataset, más conviene un k pequeño. Al final, factorizar ayuda a que cada interacción para un subconjunto dado de variables ayude al resto en alguna medida no nula, pues hay dependencia al compartir v_i’s.
Efectivamente, luego del manejo de las sumatorias queda demostrado un orden linear para resolver el modelo, lo que hace que mi duda inicial acerca de su uso sea aún más intrigante.
Al llegar a la sección de generalización queda un poco más claro y ayuda a resolver la duda del tercer párrafo, aunque la expresión general es un poco más compleja de lo que esperaba.
El hecho de que una FM sea entrenable en tiempo linear es súper conveniente, pues permite optimizar con métodos estocásticos, lo que lo hace arbitrariamente escalable para enfrentar datasets masivos.
Algo que no esperaba, y que creo habla de la calidad del trabajo realizado por Rendle, es mostrar el hecho de que con d=1 obtenemos el caso de un SVM linear! No me percaté de esto a la primera vista de la ecuación del modelo.
Creo que un punto importante a criticar del paper es que no queda muy claro el beneficio de que se pueda optimizar directamente el problema primal en una FM. El autor lo presenta como una mejora respecto a las SVM’s, pero no queda clara la razón.
Lo que sí queda muy claro es la manera en que un SVM falla al momento de tener pocos datos, pues es muy fácil invalidar una entrada para el entrenamiento de una interacción (para un subconjunto de variables) dada.
En general, pienso que este paper ha sido de los mejores (sino el mejor) que me ha tocado leer para este curso. Excelente presentación, accesible, e introduce un método que creo es muy novedoso, genérico, y útil.
Lamentablemente, mi duda inicial persiste: por qué ocurre que este método no terminó desplazando en uso a las SVM’s? Habrá que preguntarlo en clases!
Content-Based Recommendation Systems (Pazzani, Billsus)
Lo primero que se me viene a la mente es que, dada la fecha de publicación del paper, aún no existían métodos de procesamiento de lenguaje natural basados en técnicas de deep learning. Con los avances vistos en ese campo durante los últimos años, sin duda creo que se podría lograr una mejor extracción de información de estos datos no-estructurados: cuando no necesariamente en calidad (aunque probablemente sí), al menos se podría contar con la conveniencia de un modelo end-to-end que resulte muy conveniente de entrenar sobre todo el corpus disponible.
El uso de datos no estructurados suele ser clave para adquirir los llamados datos operacionales, que actualmente suelen ser “invisibles”, y en muchos casos ofrecen insight adicional por sobre datos transaccionales, lo que los hace fundamentales para una mejor administración de recursos en todo tipo de situaciones.
Sin embargo, en el paper se exponen métodos de naturaleza estadística para lidiar con lo no-estructurado y llevarlo a un dominio semi-estructurado. Ejemplos de esto (y vistos en clase) son td-idf y BoW. Claramente, en estos casos se pierde el contexto bajo el cual aparece cada palabra o token, y lo ideal es justamente aprovechar esta información (una alternativa podría ser intentar con skip-grams, como se intuye al final de la sección 10.1), pues el problema de recomendar es, por naturaleza, especialmente sensible a las falencias de los métodos anteriores: esa es la motivación que hace el paper para presentar los recomendadores basados en contexto.
Respecto a perfilar a los usuarios, la manera número 2 de perfilar (guardar interacciones) está siendo utilizada de manera masiva en sitios web contemporáneos mediante las infames cookies, que suelen lograr un buen acierto, a mi parecer. Como ejemplo, si vitrineo un sitio web de instrumentos musicales, estas cookies luego le permiten a Google, Facebook, entre otros, mostrarme el aviso publicitario de un instrumento que me pueda interesar. Esto, pues las compañías efectivamente perfilan mis intereses mediante mis interacciones a lo largo de la web.
Mi percepción, en base a los distintos tipos de sistemas, es que en la actualidad el paradigma híbrido es el más utilizado. Pensando en amazon: claramente deben tener una sección basada en reglas, mientras que por filtrado colaborativo tal vez manejen el grueso (o recomendaciones “seguras”), y utilizen técnicas de contexto o contenido para generar recomendaciones de tipo “high risk high reward”, aunque estoy especulando.
Luego, se habla un poco de las maneras en que es posible recopilar los datos de entrenamiento (acompañado de labels) para los modelos de predicción obtenidos mediante machine learning, centrales a un sistema recomendador, lo que recuerda bastante al trabajo hecho para la tarea del curso. Por lo demás, no se menciona nada nuevo respecto a las cátedras.
La diferencia entre métrica euclidiana y similitud de coseno para el ejemplo postulado es sutil, y la conclusión es una lección bastante valiosa para aplicaciones en las que se considere utilizar KNN. Sin embargo, siento que tal vez hubiese sido interesante comparar con otras métricas, tales como la distancia de Mahalanobis.
Respecto a las máquinas de vectores de soporte, es interesante que la teoría principal que intenta explicar los buenos resultados de las versiones lineares sobre texto sean debido a la protección “built-in” del kernel sobre eventual overfitting, fenómeno que aparentemente es muy fácil de lograr en texto si se le da la oportunidad al modelo (debido a regularización insuficiente, por ejemplo).
En relación al método Naive Bayes, la verdad es que nunca me había tocado explorarlo durante la carrera, y parece ser un método relativamente simple (pues se construye a partir de lo visto en el curso de probabilidades de plan común), y para ciertas aplicaciones -como clasificación de texto- funciona bastante bien. Lo que sigue sin quedar tan claro es por qué funciona bien sobre ejemplos de texto que claramente presentan ocurrencias de tokens no independientes. El artículo presenta un trabajo en donde se muestra que, en realidad, la independencia de features dado una clase no es una condición necesaria para garantizar la optimalidad del método, pero se hace entender que esto puede no ser la causa última.
Justamente relacionado a lo discutido en el inicio de mi post, puede ser que haya problemas muy difíciles de determinar con machine learning clásico, y que tal vez incluso el moderno no logre acertar. Es en este caso que se puede hacer uso de las mismas personas como “clasificadores implícitos” mediante el uso de filtrado colaborativo. Además, resulta interesante considerar que el output latente de cualquier modelo de ML puede ser utilizado como base para un sistema de filtrado colaborativo, y dado el avance en este campo probablemente sea una opción que demuestre cada vez mejores resultados.
En general, el artículo hace un buen resumen de cómo lograr recomendadores basados en contenido, denotando la manera en la que se generan descripciones de los items, y la forma en que se perfilan usuarios y sus intereses. Como crítica, creo que hubiese sido interesante lograr mayor detalle en ciertas descripciones de métodos, sobre todo considerando que es un capítulo dentro de un libro, y no un paper publicado en alguna conferencia o journal. Por lo mismo, el límite de páginas probablemente sea mucho menos restrictivo. Igual, habría que ver cómo siguen desarrollando la línea los capítulos posteriores.
Collaborative Filtering for Implicit Feedback Datasets
En este paper se explora la implementación de sistemas recomendadores que no obtienen directamente de los usuarios ningún tipo de feedback, sino que se basan en parámetros y factores implícitos: de ahí el nombre de esta familia de recomendadores, que es agnóstica al dominio del problema, potente para descubrir patrones sutiles, pero que sin embargo sufre del problema de cold-start para productos o usuarios nuevos.
La introducción del paper me parece bastante comprensiva, pues recapitula bien las características de estos sistemas. A saber, 1) el hecho de que no se puede capturar toda la información a partir de las pocas interacciones que se observan (por ejemplo, la razón por la que alguien no vió un programa de televisión); 2) hay ruido en las interacciones implícitas, pues no sabemos realmente la causa de éstas; 3) a mayor frecuencia, mayor confianza (que no es lo mismo que preferencia, ojo); y 4) no es para nada claro cómo definir métricas que hagan sentido, vale decir, que capturen realmente el desempeño en la tarea.
Durante la revisión del trabajo previo, se menciona los métodos de vecindad y de factores latentes, donde el trabajo propuesto se parece mucho más al segundo approach.
Es curioso pensar en que, dadas variables nuevas como lo son \( p_{ui} \) y \( c_{ui} \), que son de simple definición, un valor que otorga buenos resultados para parámetros como \( \alpha \) sea tan arbitrario (en este caso, 40). Supongo que eso dice más del dominio sobre el problema que sobre el modelo utilizado.
El análisis sobre la forma novedosa de llevar a cabo el proceso de optimización demuestra, una vez más, la importancia de que las soluciones sean escalables: un algoritmo como este, pero que utilice ingenuamente SGD no le sería útil a Netflix, por ejemplo. En este caso, la clave fue tomar ventaja de la estructura algebraica del problema de optimización.
En mi opinión, la idea más novedosa de este trabajo es la manipulación algebraica para dar con una manera de explicar las recomendaciones realizadas de manera súper natural: explicándole al usuario cuál de sus acciones pasadas ha sido la más influyente sobre esa sugerencia en particular. Es muy similar a muchas recomendaciones que uno hace o recibe de otras personas: ”Dado que hiciste esto, podrías probar esto otro”, lo que probablemente implica mayor confianza desde el usuario al sistema (y, por ende, más engagement).
Respecto a los resultados, vemos que el modelo propuesto se desempeña bien en comparación a modelos de vecindario y a un baseline most-popular. Como crítica creo que deberían haberse comparado a métodos más novedosos y del estado del arte. Otro aspecto muy destacable es que el mismo modelo SVD sin regularización recomendaba pésimo, peor que la baseline, lo que demuestra la importancia de una buena regularización para poder generalizar efectivamente.
Matrix Factorization Techniques for Recommender Systems
En este artículo, Koren, Bell y Volinsky comienzan por describir de manera sucinta la importancia de los sistemas recomendadores, qué diferencias hay entre los content-based y los de tipo colaborativo, y además explican que dentro de estos últimos hay 2 tipos principales: los métodos de vecindario y los de factores latentes. Una buena introducción que sirve para llegar al foco del artículo: explicar distintos métodos de factorización de matrices.
Algo interesante es que, bajo el contexto de publicación del trabajo, Netflix aún le pedía a sus usuarios que evaluaran, de 1 a 5 estrellas, cada película vista, y el paper justifica esta situación: el mejor tipo de información son "rankings explícitos de alta calidad”. Sin embargo, la situación actual es algo distinta: Netflix ahora sólo admite clasificación binaria (thumbs up or down) y, además, no predice el rating sobre un ítem nuevo para el usuario (o al menos no lo muestra). Sería interesante ver publicaciones por parte de la empresa que justifiquen este cambio. Será acaso que la clasificación binaria es, en general, una mejor métrica? Qué problemas traía la evaluación con estrellas?
Un punto importante es la “sparsity” de las matrices: si el sistema recomendador debe manejar órdenes de magnitud muy grandes de usuarios y/o ítems, entonces puede que utilizar métodos con matrices sparse sea caro en términos de memoria, y no se justifique. En esos casos queda claro que un método de feedback implícito puede ser conveniente.
Creo que el paper describe con un poco de sesgo (favorable hacia ALS) ambos algoritmos de aprendizaje mencionados.
A priori, siento que los sistemas deben ser dinámicos en el tiempo: uno siempre está cambiando su manera de evaluar, y la percepción de los ítems también varía a lo largo de su historia. Se puede pensar en que el sistema recomendador tendrá una componente de retroalimentación positiva en el sentido de que son sus recomendaciones las que pueden llevar a los cambios que se observan en estos factores.
Finalmente, es interesante pensar que en realidad, por buenos que sean los resultados de la época de este paper, la verdad es que los factores discriminantes obtenidos no son necesariamente interpretables, lo que es un problema grande si queremos desarrollar un sistema recomendador que pueda explicarle a la gente por qué les recomienda ciertos ítems.