¿Qué hace la capa en línea y la capa de línea cercana del sistema Netflix para recomendación?

Tiene razón en que ejecutamos los algoritmos de aprendizaje por lotes fuera de línea y que producen algunos de los parámetros. Sin embargo, utilizamos el sistema nearline y en línea para los parámetros que queremos mantener actualizados y receptivos a los comentarios de los miembros. Sabemos que es importante que el tiempo entre una acción y una actualización de las recomendaciones con respecto a esa acción no sea demasiado largo; de lo contrario, las recomendaciones parecen obsoletas y no incorporan la información más reciente. Por lo tanto, generalmente solo publicamos parámetros orientados al video desde la capa fuera de línea y luego calculamos los parámetros orientados a los miembros en la línea cercana y las capas en línea para mantener esos parámetros actualizados.

La capa nearline actualiza las recomendaciones en respuesta a eventos específicos de miembros. Estos eventos pueden originarse de interacciones tales como jugadas que comienzan o se detienen, agregan / eliminan videos en su “Mi lista”, calificaciones, creación de perfil, etc. Necesitamos ejecutar algoritmos en línea cercana para actualizar los parámetros del modelo que dependen de los miembros para hacer uso de los datos más recientes. Por ejemplo, los factores latentes para un miembro en un algoritmo de factorización matricial. Esto puede implicar ejecutar un algoritmo de aprendizaje para resolver solo estos parámetros, que a menudo se denomina “plegado”.

Estos eventos de línea cercana pueden desencadenar otros eventos de tener un conjunto actualizado de recomendaciones de un algoritmo, que activa un algoritmo de notificación de eventos que depende de esa salida para actualizar. Por ejemplo, si tenemos una calificación, el algoritmo de predicción de calificación puede recibir el evento, calcular nuevas predicciones de calificación y luego notificar a los algoritmos de clasificación que deben actualizarse para las nuevas predicciones, que pueden usar como una característica. Nearline también se puede usar para algoritmos de aprendizaje en línea, ya que recibe eventos de forma asincrónica.

La capa en línea se puede utilizar para diferentes propósitos, como ejecutar algoritmos cuyas características o modelos cambian en tiempo real, por ejemplo, para tener en cuenta las últimas tendencias o contexto (en particular, el tiempo). También se puede usar para filtrar o actualizar las recomendaciones calculadas previamente de las capas nearline o offline, por ejemplo, cuando los miembros cambian sus niveles de madurez o los videos entran y salen del catálogo.

Investigué un poco cuando escribí sobre el Premio Netflix en una publicación invitada en Loren en el blog Art of MATLAB e hice un par de intercambios con los autores del blog de Netflix sobre detalles específicos sobre los que tenía preguntas.

La clave para comprender es darse cuenta de que Netflix usa alguna variación de Apilamiento lineal, un enfoque de aprendizaje Ensemble que combina resultados de diferentes algoritmos, para producir recomendaciones, y puede pensar que cada una de las capas está procesando datos para ellos. Se parece a esto:

[matemáticas] f_ {rango} (u, v) = w1 \ cdot p (v) + w2 \ cdot r (u, v) + b [/ matemáticas]

donde u = usuario, v = elemento de video, p = popularidad, r = calificación pronosticada, b = intercepción y w1 y w2 son pesos respectivos.

p (v) es un algoritmo que calcula la popularidad de un elemento de video, y es solo un número total de espectadores para cada elemento de video. Probablemente puede desglosarlo en un componente de tendencia a largo plazo (mensual) y componentes a corto plazo (semanal) y en tiempo real, y lo usaría sin conexión para mensual, tal vez línea cercana para semanal y en línea para tiempo real, y simplemente suma el resultado para producir las recomendaciones finales.

r (u, v) puede ser un filtrado colaborativo tradicional, o factorización matricial, y nuevamente puede apilarlos juntos si lo desea en este modelo de apilamiento más ágil. Esa es la belleza de esta arquitectura.

More Interesting

Cómo lidiar con una variable independiente categórica que tiene más de 500 variables en un problema de clasificación

¿Es realmente posible comenzar una carrera seria de IA / ML con el objetivo final de trabajar en un lugar como OpenAI, Google o DeepMind a través del autoestudio?

¿Cuáles son las mejores universidades para estudiar visión artificial con un enfoque en aprendizaje profundo?

Matemática Aplicada: ¿Cuáles son los diferentes métodos para pronosticar datos de series de tiempo?

¿Qué es la factorización de bajo rango y cuáles son sus aplicaciones en el aprendizaje automático?

¿Cómo se implementa una pila en hardware para subrutinas de nivel de código de máquina?

La pérdida (entropía cruzada) está disminuyendo, pero la precisión sigue siendo la misma durante el entrenamiento de redes neuronales convolucionales. Como puede suceder

¿Cuántas imágenes de entrenamiento deberían usarse para una buena tarea de reconocimiento de género en OpenCV? ¿Hay algún conjunto de datos disponible para esta tarea?

¿Cuáles son los beneficios y desafíos de hacer una investigación de aprendizaje profundo en la academia, en comparación con la industria?

¿El aprendizaje no supervisado es la clave de la inteligencia artificial general?

Dadas las variables / parámetros continuos, ¿cuál es la diferencia entre el aprendizaje automático y la interpolación?

Entre JavaScript y la ciencia de datos, ¿qué debo hacer? Tengo que aprender a los dos desde cero.

¿Hay un grupo de investigadores trabajando en la síntesis de texto EEG (conversión de pensamiento a texto)?

¿Cuáles son las principales diferencias entre la regresión logística, la red neuronal y las SVM?

Fuera de Theano, Caffe y DeepLearning4j, ¿hay alguna buena biblioteca de DeepLearning?