Descripción general de la clasificación de TensorFlow

La biblioteca TensorFlow Ranking lo ayuda a crear aprendizaje escalable para clasificar modelos de aprendizaje automático utilizando enfoques y técnicas bien establecidos de investigaciones recientes. Un modelo de clasificación toma una lista de elementos similares, como páginas web, y genera una lista optimizada de esos elementos, por ejemplo, las páginas más relevantes a las menos relevantes. Aprender a clasificar los modelos tiene aplicaciones en búsqueda, respuesta a preguntas, sistemas de recomendación y sistemas de diálogo. Puede utilizar esta biblioteca para acelerar la creación de un modelo de clasificación para su aplicación utilizando la API de Keras . La biblioteca Ranking también proporciona utilidades de flujo de trabajo para facilitar la ampliación de la implementación de su modelo para trabajar de manera efectiva con grandes conjuntos de datos utilizando estrategias de procesamiento distribuido.

Esta descripción general proporciona un breve resumen del desarrollo del aprendizaje para clasificar modelos con esta biblioteca, presenta algunas técnicas avanzadas admitidas por la biblioteca y analiza las utilidades de flujo de trabajo proporcionadas para admitir el procesamiento distribuido para clasificar aplicaciones.

Desarrollar el aprendizaje para clasificar modelos.

La construcción del modelo con la biblioteca TensorFlow Ranking sigue estos pasos generales:

  1. Especifique una función de puntuación utilizando capas de Keras ( tf.keras.layers )
  2. Defina las métricas que desea utilizar para la evaluación, como tfr.keras.metrics.NDCGMetric
  3. Especifique una función de pérdida, como tfr.keras.losses.SoftmaxLoss
  4. Compile el modelo con tf.keras.Model.compile() y entrénelo con sus datos

El tutorial Recomendar películas lo guía a través de los conceptos básicos para crear un modelo de aprendizaje para clasificar con esta biblioteca. Consulte la sección Soporte de clasificación distribuida para obtener más información sobre cómo crear modelos de clasificación a gran escala.

Técnicas avanzadas de clasificación

La biblioteca TensorFlow Ranking brinda soporte para aplicar técnicas de clasificación avanzadas investigadas e implementadas por investigadores e ingenieros de Google. Las siguientes secciones proporcionan una descripción general de algunas de estas técnicas y cómo comenzar a usarlas en su aplicación.

Orden de entrada de la lista BERT

La biblioteca Ranking proporciona una implementación de TFR-BERT, una arquitectura de puntuación que combina BERT con el modelado LTR para optimizar el orden de las entradas de la lista. Como ejemplo de aplicación de este enfoque, considere una consulta y una lista de n documentos que desea clasificar en respuesta a esta consulta. En lugar de aprender una representación BERT calificada de forma independiente en pares <query, document> , los modelos LTR aplican una pérdida de clasificación para aprender conjuntamente una representación BERT que maximiza la utilidad de toda la lista clasificada con respecto a las etiquetas de verdad sobre el terreno. La siguiente figura ilustra esta técnica:

Diagrama BERT de clasificación de TensorFlow
Figura 1 : Diagrama de arquitectura BERT de TensorFlow Ranking que muestra un modelo LTR conjunto sobre una lista de n documentos utilizando representaciones BERT de pares <query,document> individuales.

Este enfoque aplana una lista de documentos para clasificar en respuesta a una consulta en una lista de tuplas <query, document> . Luego, estas tuplas se introducen en un modelo de lenguaje previamente entrenado por BERT. Luego, los resultados BERT agrupados para toda la lista de documentos se ajustan conjuntamente con una de las pérdidas de clasificación especializadas disponibles en TensorFlow Ranking.

Esta arquitectura puede ofrecer mejoras significativas en el rendimiento del modelo de lenguaje previamente entrenado, produciendo un rendimiento de última generación para varias tareas de clasificación populares, especialmente cuando se combinan varios modelos de lenguaje previamente entrenados. Para obtener más información sobre esta técnica, consulte la investigación relacionada. Puede comenzar con una implementación simple en el código de ejemplo de TensorFlow Ranking.

Modelos aditivos generalizados de clasificación neuronal (GAM)

Para algunos sistemas de clasificación, como la evaluación de elegibilidad para préstamos, la orientación de la publicidad o la orientación para tratamientos médicos, la transparencia y la explicabilidad son consideraciones críticas. La aplicación de modelos aditivos generalizados (GAM) con factores de ponderación bien comprendidos puede ayudar a que su modelo de clasificación sea más explicable e interpretable.

Los GAM se han estudiado ampliamente con tareas de regresión y clasificación, pero está menos claro cómo aplicarlos a una aplicación de clasificación. Por ejemplo, si bien los GAM se pueden aplicar simplemente para modelar cada elemento individual de la lista, modelar tanto las interacciones de los elementos como el contexto en el que se clasifican estos elementos es un problema más desafiante. TensorFlow Ranking proporciona una implementación de clasificación neuronal GAM , una extensión de modelos aditivos generalizados diseñados para problemas de clasificación. La implementación de TensorFlow Ranking de GAM le permite agregar ponderaciones específicas a las características de su modelo.

La siguiente ilustración de un sistema de clasificación de hoteles utiliza la relevancia, el precio y la distancia como características principales de clasificación. Este modelo aplica una técnica GAM para sopesar estas dimensiones de manera diferente, según el contexto del dispositivo del usuario. Por ejemplo, si la consulta provino de un teléfono, la distancia se pondera más, asumiendo que los usuarios buscan un hotel cercano.

Modelo aditivo generalizado para ejemplo de clasificación
Figura 2 : Aplicación de clasificación neuronal GAM para búsqueda local. Para cada característica de entrada, como el precio o la distancia, un submodelo produce una subpuntuación que se puede examinar, lo que proporciona transparencia. Las características de contexto, como el tipo de dispositivo del usuario, se pueden utilizar para determinar las ponderaciones de las puntuaciones de los submodelos.

Para obtener más información sobre el uso de GAM con modelos de clasificación, consulte la investigación relacionada. Puede comenzar con una implementación de muestra de esta técnica en el código de ejemplo de TensorFlow Ranking.

Soporte de clasificación distribuida

TensorFlow Ranking está diseñado para crear sistemas de clasificación a gran escala de un extremo a otro: incluido el procesamiento de datos, la construcción de modelos, la evaluación y la implementación de producción. Puede manejar características heterogéneas, densas y dispersas, escalar hasta millones de puntos de datos y está diseñado para admitir capacitación distribuida para aplicaciones de clasificación a gran escala.

Diagrama de clases de clasificación de TensorFlow
Figura 3 : Diagrama de clases de TensorFlow Ranking para admitir el procesamiento distribuido. Los módulos verdes se pueden personalizar para su modelo de clasificación.

La biblioteca proporciona una arquitectura de canalización de clasificación optimizada para evitar códigos repetitivos y repetitivos y crear soluciones distribuidas que se pueden aplicar desde el entrenamiento de su modelo de clasificación hasta su servicio. El canal de clasificación admite la mayoría de las estrategias distribuidas de TensorFlow, incluidas MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy y ParameterServerStrategy . El canal de clasificación puede exportar el modelo de clasificación entrenado en el formato tf.saved_model , que admite varias firmas de entrada. Además, el canal de clasificación proporciona devoluciones de llamadas útiles, incluida la compatibilidad con la visualización de datos de TensorBoard y BackupAndRestore para ayudar a recuperarse de fallas en procesos de larga duración. operaciones de entrenamiento.

La biblioteca de clasificación ayuda a crear una implementación de capacitación distribuida al proporcionar un conjunto de clases tfr.keras.pipeline , que toman un generador de modelos, un generador de datos e hiperparámetros como entrada. La clase tfr.keras.ModelBuilder basada en Keras le permite crear un modelo para procesamiento distribuido y funciona con clases extensibles InputCreator, Preprocessor y Scorer:

Las clases de canalización de TensorFlow Ranking también funcionan con un DatasetBuilder para configurar datos de entrenamiento, que pueden incorporar hiperparámetros . Finalmente, la canalización en sí puede incluir un conjunto de hiperparámetros como un objeto PipelineHparams .

Comience a crear modelos de clasificación distribuida utilizando el tutorial de clasificación distribuida .