¿Qué tipo de sistema de recomendación usar con datos extremadamente escasos?

Un sistema de recomendación híbrido.

Los recomendadores basados ​​en colaboración solo pueden predecir la puntuación de un elemento si hay otros usuarios que lo han calificado. En caso de escasez en las interacciones entre usuarios y elementos, el enfoque de CF con frecuencia no es posible. Existe un conjunto de otras técnicas que pueden hacer predicciones sobre cualquier elemento sin requerir el conocimiento de la interacción usuario-elemento:

Métodos de predicción de referencia
Métodos de predicción de referencia use el valor de calificación promedio de todas las calificaciones para hacer predicciones. Le permite clasificar los elementos como interesantes o no interesantes en general.

Fig. 1. Predicción de referencia en la imagen

Estos métodos son útiles para el procesamiento previo y la normalización de datos para su uso con algoritmos más sofisticados como la factorización matricial, como ya lo señaló Eric Daoud en una de las respuestas anteriores. Los algoritmos de línea de base que no dependen de las calificaciones del usuario también pueden ser útiles para proporcionar predicciones para nuevos usuarios. Estos métodos establecen en general recomendaciones no personalizadas.

Filtrado basado en el conocimiento.
Una fortaleza importante de los sistemas de recomendación basados ​​en el conocimiento es la inexistencia de problemas de arranque en frío y problemas de escasez en la matriz de utilidad del elemento del usuario.

Fig. 2. Filtrado basado en el conocimiento: matriz de utilidades de elementos de usuario = Características del usuario X Características de elementos

La ventaja es que no necesita ninguna interacción del usuario para construirlo. Sin embargo, el filtrado basado en el conocimiento requiere conocimiento específico del dominio y necesita ingeniería personalizada para cada dominio problemático.

A continuación, puede utilizar técnicas de hibridación mixtas para generar un conjunto independiente de recomendaciones y combinarlas con las predicciones del sistema de recomendaciones basadas en el filtrado colaborativo. La arquitectura más sencilla para un sistema híbrido es ponderada. Los ítems dados son calificados por separado por ambos recomendadores incorporados, mientras que el resultado final es una combinación lineal de los resultados intermedios.

Usuario / agrupación de elementos Filtrado basado en el conocimiento
Los usuarios / elementos se agrupan en grupos según las metainformaciones de similitud (edad, género, etc.). Para cada grupo, se calcula una calificación promedio del elemento de grupo. Si tiene algún espacio de elemento X / elemento de usuario, entonces comience eligiendo n usuarios o elementos que se clasifican con frecuencia como los anclajes y luego ejecute una agrupación de vecindario codicioso en el espacio de características X.

Luego puede usar una técnica de Conmutación: si su sistema basado en Filtrado Colaborativo no puede producir recomendaciones con alta confianza, entonces usa el sistema que funciona en grupos de usuarios / elementos. Sin embargo, este método supone que se dispone de algún criterio de conmutación confiable.

Sergio Gandola: Gracias por preguntar. Si tiene más preguntas, puede contactarme directamente en adrianbarwicki.com/contact.

Para obtener más información, recomendaría los Sistemas de recomendación: el libro de texto.

Hola ! No soy un experto en el tema, recientemente comencé una pasantía trabajando en Sistemas de recomendación, pero aquí hay algunas pistas para considerar. Corrígeme si me equivoco, también estoy aquí para aprender 🙂

Cuando dice Filtrado colaborativo estándar, ¿se refiere a métodos de vecindario?
Si es así, quizás eche un vistazo a los Modelos de factores latentes, que deberían funcionar mejor. Aquí hay un buen artículo sobre la factorización matricial. En la factorización matricial, utilizará factores latentes para describir a sus usuarios y elementos. Los factores latentes son solo “temas” que describen sus artículos / usuarios, excepto que estos temas son inferidos por el algoritmo. Realmente no sabes con certeza cuáles son hasta que exploras lo que se reagrupan. Por ejemplo, cuando se trata de películas, es posible que tenga temas como acción, romance … Es más poderoso que las categorías escritas porque puede captar el comportamiento del usuario, por ejemplo, podría tener un tema “hipster” que cruzaría diferentes categorías.
Los factores latentes se obtienen con técnicas de reducción de dimensionalidad, como la descomposición del valor singular (SVD). Hay otra técnica para la reducción de dimensionalidad que se llama Asignación de Dirichlet Latente, y debería funcionar mejor (más sobre LDA con el documento oficial o este artículo de Edwin Chen que encuentro muy bueno).
Este método es bastante bueno porque funciona con datos implícitos o explícitos. Para datos implícitos, eche un vistazo a este documento.
Una implementación de Matrix Factorization se realiza con Spark MLlib, y puede valer la pena echarle un vistazo.

Aunque, bajo alta dispersión, hay otro modelo llamado Máquinas de factorización que funciona mucho mejor, ya que es capaz de capturar la interacción entre los factores. Es un modelo desarrollado por Steffen Rendle durante el Premio Netflix, y puede encontrar el documento aquí. Existe la biblioteca oficial que implementa este modelo, se llama LibFM. También tiene algunos no oficiales como FastFM que están destinados a funcionar bien también.

También eche un vistazo al modelado colaborativo de temas. Este es un método que fue utilizado por el New York Times y que trae una buena mezcla de filtrado colaborativo y filtrado basado en contenido.

¡Espero que esto haya sido útil, y que personas más experimentadas mejoren mi respuesta!