Cómo combinar salidas del sistema de recomendación (matriz de elementos de usuario) a través de un conjunto

Hay varias formas de construir un conjunto de recomendadores, o combinar diferentes enfoques.

  • Unificación: puede combinar diferentes aspectos de modelado en un modelo. Por ejemplo, para el Premio Netflix, los modelos basados ​​en vecinos y los modelos de factorización matricial se combinaron de varias maneras en un solo algoritmo que generalmente superó a los algoritmos base. Algún ejemplo para esto:
    • Takács et al, Un enfoque unificado de modelos de factores y métodos basados ​​en vecinos para sistemas de recomendación grandes, ICADIWT 2008, [otro enlace]
    • Koren, Factorización se encuentra con el vecindario: un modelo de filtrado colaborativo multifacético, KDD 2008.

  • Votación (también llamada a menudo combinación): otro tipo de combinación típica es volver a clasificar la salida de los recomendadores en función de la puntuación de relevancia de los miembros individuales del conjunto de algoritmos. Aquí puede, por ejemplo, simplemente agregar el puntaje de cada algoritmo y luego recomendar aquellos elementos que tienen el puntaje agregado más alto. Obviamente, puede hacer algo de ponderación aquí, basado en la confianza, por ejemplo, o en alguna estimación de bondad. La solución ganadora del Premio Netflix fue una combinación de 107 algoritmos. Ver también:
    • Töscher, Jahrer, The BigChaos Solution to the Netflix Grand Prize, 2009.
    • Koren, la solución de BellKor para el Gran Premio de Netflix, 2009 – vea también más sobre la mezcla en el mismo.
    • Una forma más compleja de mezclar es apilar: Sill et al: Feature-Weighted Linear Stacking, Arxiv, 2009.

  • Conexión en cascada: otra forma típica en la industria de la combinación de algoritmos es la conexión en cascada, cuando hay una prioridad de los algoritmos en la combinación, es decir, si el algoritmo primario (A) puede proporcionar una recomendación, esta es la salida, si no, entonces hay un algoritmo secundario (B), y así sucesivamente, por lo general hay una última falla, siendo a menudo una línea de base simple, como el algoritmo basado en popularidad. También usamos ese tipo de priorización de algoritmos en nuestro motor de personalización Yusp en Gravity. Esto es útil, por ejemplo, para manejar usuarios con diferentes volúmenes de datos de historial de usuario: el algoritmo primario puede ser uno de factorización matricial, que requiere un historial de usuario largo, el secundario puede ser un algoritmo de filtrado basado en contenido, etc.

  • Reglas comerciales: por último, pero no menos importante, puede combinar algoritmos dedicando ciertas posiciones en la salida del recomendante a un algoritmo específico y, por lo tanto, puede lograr una compensación de exploración-explotación. Digamos, en la posición 3 siempre se muestra el contenido popular en tendencia. Dicha combinación también puede ser impulsada por las reglas comerciales, y luego se puede priorizar el contenido editorial o el contenido destacado de un proveedor (en cierta posición).

Una observación final: la combinación de los algoritmos es siempre el arte de la configuración de recomendación. También es posible que desee aprenderlo, utilizando, por ejemplo, bandidos contextuales de varios brazos (ver Tang et al, Bandidos contextuales Ensemble para recomendación personalizada, Recsys 2014) u otros enfoques sofisticados. Sin embargo, estos suelen ser realizados por expertos en personalización, ya que no hay 2 casos de uso iguales en la personalización.

¿Puedes describir mejor lo que quieres decir con conjunto y salida? Una salida no debe ser necesariamente una matriz de elementos de usuario.

Editar: gracias por aclarar eso.

Primero, yo diría que elimine aleatoriamente algunos me gusta de su conjunto de datos muchas veces y pruebe los modelos.

El apilamiento de Lambda, como estoy a punto de sugerir, es bueno si cada modelo es diferente pero lo suficientemente bueno como para detectar matices sobre los datos. Sin embargo, si uno es realmente terrible, es malo. Si sus números son o pueden expresarse como probabilidades o una escala común, lo más inteligente sería simplemente promediar cada índice de columna de fila entre todos los modelos. El promedio debe minimizar la debilidad y aprovechar las fortalezas. Podría intentar ponderar las funciones promedio para los modelos, pero nuevamente implicaría probarlos para pensar en pesos lambda razonables. El promedio es solo apilar con igual importancia.

Pero nuevamente, tengo que preguntar, ¿cuáles son las diferencias en los modelos de recomendación? ¿Es solo una diferencia de medida de similitud o es significativa?

Probar:

Almacene una copia del original como matriz. Copy.deepcopy o algo así.

X = .25 * me gusta total

Para replicación en 1..10000:

Likesgone = randomuniform [1, X] #round si tienes que

Aleatoriamente [*** consulte la nota] eliminar Me gusta hasta Me gusta

Para modelo en modelos:

Calcular la probabilidad de me gusta en espacios de me gusta

Victorias [thismodel] = mayor probabilidad de espacio de likesgone.

Almacene las ganancias para cada modelo de este representante, vaya al siguiente representante.

Entonces tienes algunas distribuciones para tomar valores p empíricos.

*** Alternativamente, elimine los me gusta sistemáticamente en número y vea los datos como una serie de tiempo. Lo que esperamos ver es que a algunos modelos les va mejor con información mínima y a otros modelos les va mejor a medida que pasa el tiempo. Si ese es el caso, nuestra receta para el apilamiento de lambda es con lo que debemos cargar la colina. Si te quedas con el azar, apégate con el apilamiento lambda si las distribuciones de los modelos son más o menos iguales. [Podrías usar kullback-leibler si quisieras un número] incluso al azar, si ves los datos como series de tiempo o los trazas contra el número que eliminaste, puedes descubrir si algunos modelos tienen ventaja temporal o talones de Aquiles.

Puede encontrar la precisión en función del tiempo y el peso de los modelos dinámicamente, pero eso es un gran alboroto para las estimaciones empíricas que cambiarán con el tiempo. Yo no lo haría

Mi pregunta es por qué estás usando tantos modelos de recomendación. Estas cosas pueden ser bastante caras de calcular en la práctica.

More Interesting

¿Dónde puedo obtener más información sobre la persona en el MIT Media Lab que está trabajando para eliminar el sesgo en el aprendizaje automático?

¿Qué es el aprendizaje profundo en los puntos de vista sociológicos?

¿Cuál es la diferencia entre almacenar datos en HDF5 frente al formato TFRecord de TensorFlow?

¿Existe una lista de conferencias de minería de datos / aprendizaje automático organizadas en los Estados Unidos?

¿Qué debo hacer si determino que los resultados de mi conjunto de datos de entrenamiento difieren mucho de los resultados de mi conjunto de datos de prueba?

Suponga que la máquina es multinúcleo, el tiempo de ejecución de un programa en una máquina que ejecuta solo ese proceso es igual al tiempo de ejecución en una máquina en la que hay otros procesos ejecutados junto con él, ¿no es así?

¿Se utiliza el cálculo integral en Machine Learning o Deep Learning?

Durante el aprendizaje automático para la detección de objetos, ¿cómo puedo simular el efecto de la iluminación de diferentes días en mi conjunto de datos de entrenamiento?

¿Qué métricas debo usar para evaluar un modelo generativo cuantitativamente y qué tan confiables son?

¿Con qué facilidad pueden los actuarios cambiar a carreras relacionadas con TI como la ciencia de datos, el aprendizaje automático y el desarrollo de software?

¿Qué opinas sobre la inteligencia artificial? ¿Vale la pena desarrollarla?

¿Qué debo aprender para convertirme en desarrollador de software para robótica, inteligencia artificial y aprendizaje automático?

¿Cuál es la diferencia entre CNN y RNN?

¿Qué tan buenos son los conjuntos de datos SIG en India (por ejemplo, red de carreteras / calles, parcelas municipales, etc.)? ¿Cuáles son las fuentes para este tipo de conjuntos de datos?

¿Por qué no hay bloqueadores de anuncios impulsados ​​por el aprendizaje automático?