Wide & Deep Learning for Recommender Systems/es

    From Marovi AI
    This page is a translated version of the page Wide & Deep Learning for Recommender Systems and the translation is 100% complete.
    Other languages:
    SummarySource
    Research Paper
    Authors Heng-Tze Cheng; Levent Koc; Jeremiah Harmsen; Tal Shaked; Tushar Chandra; Hrishi Aradhye; Glen Anderson; Greg Corrado; Wei Chai; Mustafa Ispir; Rohan Anil; Zakaria Haque; Lichan Hong; Vihan Jain; Xiaobing Liu; Hemal Shah
    Year 2016
    Topic area Machine Learning
    Difficulty Research
    arXiv 1606.07792
    PDF Download PDF

    Wide & Deep Learning for Recommender Systems es un artículo de 2016 de Heng-Tze Cheng y colegas en Google que presenta una arquitectura híbrida para sistemas de recomendación a gran escala. El modelo entrena conjuntamente un componente lineal ancho (wide), que memoriza interacciones específicas entre características mediante transformaciones de producto cruzado, y una red neuronal profunda con propagación hacia adelante (deep), que generaliza a combinaciones de características no vistas mediante embeddings de baja dimensión. El marco se llevó a producción en la tienda de aplicaciones Google Play y mejoró las adquisiciones de aplicaciones en un 3,9 % en pruebas A/B en vivo, mientras que se publicó una implementación de referencia en TensorFlow.

    Resumen

    Un sistema de recomendación puede verse como una canalización de búsqueda y ranking: una consulta compuesta por características del usuario y del contexto se asigna a una lista ordenada de elementos candidatos. Se necesitan dos capacidades complementarias. La memorización aprende la coocurrencia frecuente de elementos o características a partir de los datos históricos y explota correlaciones directas; los modelos lineales generalizados sobre características de producto cruzado la cubren bien, pero no extrapolan a pares no vistos. La generalización explora nuevas combinaciones de características y es bien servida por modelos basados en embeddings, como las factorization machines y las redes neuronales profundas, pero los embeddings densos pueden sobre-generalizar en matrices consulta-elemento dispersas y de alto rango y proponer elementos menos relevantes.

    El marco Wide & Deep combina ambas señales en un único modelo entrenado de forma conjunta. La rama ancha (wide) maneja reglas de tipo excepción con pocos parámetros, mientras que la rama profunda (deep) cubre la cola larga de interacciones no vistas. Las dos ramas comparten una sola pérdida logística, por lo que cada componente puede especializarse sin modelar de forma redundante lo que la otra ya captura.

    Contribuciones principales

    • La arquitectura Wide & Deep, que entrena conjuntamente una red neuronal con propagación hacia adelante con embeddings de características dispersas y un modelo lineal con transformaciones de producto cruzado para sistemas de recomendación genéricos.
    • Una implementación llevada a producción y evaluada en Google Play, una tienda de aplicaciones móviles comercial con más de mil millones de usuarios activos y más de un millón de aplicaciones, que demuestra una mejora en línea de +3,9 % en la tasa de adquisición de aplicaciones frente a una referencia wide fuertemente optimizada.
    • Una implementación de código abierto en TensorFlow con una API de alto nivel, que reduce la barrera para aplicar la arquitectura a otros problemas de ranking.
    • Detalles de ingeniería —warm-starting, puntuación multihilo y generación de vocabularios de características— que reducen la latencia por petición a aproximadamente 14 ms al puntuar decenas de millones de candidatos por segundo.

    Métodos

    Componente wide

    El componente wide es un modelo lineal generalizado

    $ y = \mathbf{w}^{T}\mathbf{x} + b, $

    donde $ \mathbf{x} = [x_1, x_2, \ldots, x_d] $ es el vector de características, $ \mathbf{w} $ los pesos y $ b $ el sesgo. Además de las entradas en bruto, el conjunto de características incluye transformaciones de producto cruzado

    $ \phi_k(\mathbf{x}) = \prod_{i=1}^{d} x_i^{c_{ki}}, \quad c_{ki} \in \{0, 1\}, $

    donde $ c_{ki} $ vale 1 si la característica $ i $ participa en la $ k $-ésima transformación y 0 en caso contrario. Para características binarias, $ \phi_k $ vale 1 sólo cuando todas las características participantes valen 1, lo que captura conjunciones como AND(user_installed_app=netflix, impression_app=pandora) e introduce no linealidad en el modelo lineal.

    Componente deep

    El componente deep es una red neuronal con propagación hacia adelante. Cada característica categórica se asigna a un vector de embedding denso cuya dimensionalidad es del orden de $ O(10) $ a $ O(100) $, aprendido de extremo a extremo. Los embeddings se concatenan con las características continuas normalizadas y se propagan a través de las capas ocultas

    $ a^{(l+1)} = f\!\left(W^{(l)} a^{(l)} + b^{(l)}\right), $

    donde $ f $ es la función de activación (en los experimentos, unidades lineales rectificadas, ReLU) y $ a^{(l)} $, $ W^{(l)} $, $ b^{(l)} $ son las activaciones, los pesos y los sesgos de la capa $ l $.

    Entrenamiento conjunto

    Las dos ramas se combinan como una suma ponderada de sus log-odds de salida y se introducen en una pérdida logística compartida:

    $ P(Y = 1 \mid \mathbf{x}) = \sigma\!\left(\mathbf{w}_{wide}^{T}[\mathbf{x}, \phi(\mathbf{x})] + \mathbf{w}_{deep}^{T} a^{(l_f)} + b\right), $

    donde $ \sigma $ es la función sigmoide y $ a^{(l_f)} $ es la activación oculta final de la red profunda. Es importante destacar que se trata de un entrenamiento conjunto y no de un ensamblado: los gradientes fluyen simultáneamente hacia ambas ramas, de modo que la parte ancha sólo necesita complementar las carencias de la parte profunda. La rama ancha se optimiza con Follow-the-Regularized-Leader (FTRL) y regularización $ L_1 $, mientras que la rama profunda emplea AdaGrad. En el modelo de producción se aprende un embedding de 32 dimensiones por cada característica categórica, se concatena formando una entrada de aproximadamente 1200 dimensiones y se pasa por tres capas ReLU antes de la unidad de salida logística.

    Sistema

    La canalización de recomendación recupera primero un conjunto de candidatos y luego los ordena con el modelo Wide & Deep. Los datos de entrenamiento se construyen a partir de los registros de impresiones con una etiqueta binaria de adquisición de la aplicación. Para absorber los más de 500 mil millones de ejemplos de entrenamiento y el coste del reentrenamiento frecuente, el equipo introdujo el warm-starting, que inicializa un modelo nuevo con los embeddings y los pesos lineales de su predecesor. Una comprobación de cordura mediante una ejecución en seco protege frente a regresiones antes de promover el modelo a servicio en vivo.

    Resultados

    En una prueba A/B en vivo de 3 semanas en Google Play, el modelo Wide & Deep mejoró la tasa de adquisición de aplicaciones en la página principal de la tienda en un +3,9 % respecto de una referencia wide-only de regresión logística fuertemente optimizada (estadísticamente significativo) y en un +1 % respecto de un modelo deep-only. Las diferencias de AUC fuera de línea fueron menores (0,728 frente a 0,726 frente a 0,722 para Wide & Deep, Wide y Deep), lo que sugiere que las ganancias en línea provienen en parte de la capacidad del modelo para aprender de nuevas recomendaciones exploratorias y no sólo de la calidad del ranking fuera de línea.

    Por el lado del servicio, la puntuación por lotes con un solo hilo tardaba 31 ms; al dividir cada lote entre varios hilos, la latencia del lado del cliente se redujo a 14 ms, manteniendo más de 10 millones de puntuaciones de aplicaciones por segundo en hora punta.

    Impacto

    Wide & Deep se convirtió en una de las arquitecturas de referencia canónicas para la predicción industrial de tasa de clics (CTR) y el ranking, junto a Factorization Machines y los modelos profundos de CTR posteriores. El patrón de combinar una rama lineal favorable a la memorización con una rama profunda favorable a la generalización inspiró sucesores como DeepFM, Deep & Cross Network y xDeepFM, que automatizan la ingeniería de características cruzadas de la que aún depende la rama ancha.

    Los estimadores DNNLinearCombinedClassifier / DNNLinearCombinedRegressor de TensorFlow productivizaron la arquitectura como una API casi lista para usar, y el artículo se cita ampliamente en tratamientos de manual sobre sistemas de recomendación y aprendizaje profundo aplicados al ranking. Más allá de su influencia directa sobre los modelos de CTR, el principio más amplio —que sesgos inductivos complementarios se pueden combinar bajo una pérdida compartida en lugar de ensamblarse a posteriori— inspiró diseños híbridos posteriores que mezclan señales de recuperación y de ranking, priors estructurados con redes neuronales o características basadas en reglas con representaciones aprendidas.

    También se cita con frecuencia este trabajo como un caso de estudio temprano y exitoso de despliegue de aprendizaje profundo en un sistema de ranking en producción con tráfico elevado. La discusión sobre warm-starting, gestión de vocabularios y normalización por cuantiles de las características continuas se convirtió en una plantilla para los equipos de ingeniería que construyen sus primeras canalizaciones de ranking profundo en línea.

    Véase también

    Referencias

    • Cheng, H.-T., Koc, L., Harmsen, J., Shaked, T., Chandra, T., Aradhye, H., Anderson, G., Corrado, G., Chai, W., Ispir, M., Anil, R., Haque, Z., Hong, L., Jain, V., Liu, X., y Shah, H. (2016). Wide & Deep Learning for Recommender Systems. arXiv:1606.07792.
    • Duchi, J., Hazan, E., y Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12, 2121–2159.
    • McMahan, H. B. (2011). Follow-the-regularized-leader and mirror descent: Equivalence theorems and l1 regularization. En Proc. AISTATS.
    • Rendle, S. (2012). Factorization machines with libFM. ACM Transactions on Intelligent Systems and Technology, 3(3), 57:1–57:22.
    • He, K., Zhang, X., Ren, S., y Sun, J. (2016). Deep residual learning for image recognition. En Proc. IEEE Conference on Computer Vision and Pattern Recognition.
    • Wang, H., Wang, N., y Yeung, D.-Y. (2015). Collaborative deep learning for recommender systems. En Proc. KDD, 1235–1244.