Visão geral do ranking do TensorFlow,Visão geral do ranking do TensorFlow

A biblioteca TensorFlow Ranking ajuda você a criar aprendizado escalável para classificar modelos de aprendizado de máquina usando abordagens e técnicas bem estabelecidas de pesquisas recentes. Um modelo de classificação pega uma lista de itens semelhantes, como páginas da web, e gera uma lista otimizada desses itens, por exemplo, mais relevantes para as páginas menos relevantes. Aprender a classificar modelos tem aplicações em busca, resposta a perguntas, sistemas de recomendação e sistemas de diálogo. Você pode usar essa biblioteca para acelerar a criação de um modelo de classificação para seu aplicativo usando a API Keras . A biblioteca Ranking também fornece utilitários de fluxo de trabalho para facilitar a escalabilidade de sua implementação de modelo para trabalhar efetivamente com grandes conjuntos de dados usando estratégias de processamento distribuído.

Esta visão geral fornece um breve resumo do desenvolvimento de aprendizagem para classificar modelos com esta biblioteca, apresenta algumas técnicas avançadas suportadas pela biblioteca e discute os utilitários de fluxo de trabalho fornecidos para dar suporte ao processamento distribuído para aplicativos de classificação.

Desenvolvimento de modelos de aprendizagem para classificar

A construção do modelo com a biblioteca TensorFlow Ranking segue estas etapas gerais:

  1. Especifique uma função de pontuação usando camadas Keras ( tf.keras.layers )
  2. Defina as métricas que você deseja usar para avaliação, como tfr.keras.metrics.NDCGMetric
  3. Especifique uma função de perda, como tfr.keras.losses.SoftmaxLoss
  4. Compile o modelo com tf.keras.Model.compile() e treine-o com seus dados

O tutorial Recomendar filmes orienta você pelos fundamentos da construção de um modelo de aprendizado para classificar com esta biblioteca. Confira a seção de suporte de classificação distribuída para obter mais informações sobre a criação de modelos de classificação em larga escala.

Técnicas avançadas de classificação

A biblioteca TensorFlow Ranking oferece suporte para a aplicação de técnicas avançadas de classificação pesquisadas e implementadas por pesquisadores e engenheiros do Google. As seções a seguir fornecem uma visão geral de algumas dessas técnicas e como começar a usá-las em seu aplicativo.

Ordem de entrada da lista BERT

A biblioteca Ranking fornece uma implementação de TFR-BERT, uma arquitetura de pontuação que combina BERT com modelagem LTR para otimizar a ordenação das entradas da lista. Como exemplo de aplicação dessa abordagem, considere uma consulta e uma lista de n documentos que você deseja classificar em resposta a essa consulta. Em vez de aprender uma representação BERT pontuada de forma independente em pares <query, document> , os modelos LTR aplicam uma perda de classificação para aprender conjuntamente uma representação BERT que maximiza a utilidade de toda a lista classificada em relação aos rótulos de verdade. A figura a seguir ilustra essa técnica:

Diagrama de BERT de classificação do TensorFlow
Figura 1 : Diagrama de arquitetura BERT de classificação do TensorFlow mostrando um modelo LTR conjunto sobre uma lista de n documentos usando representações BERT de pares <query,document> individuais.

Essa abordagem nivela uma lista de documentos para classificar em resposta a uma consulta em uma lista de tuplas <query, document> . Essas tuplas são então alimentadas em um modelo de linguagem pré-treinado BERT. As saídas BERT agrupadas para toda a lista de documentos são ajustadas em conjunto com uma das perdas de classificação especializadas disponíveis no TensorFlow Ranking.

Essa arquitetura pode fornecer melhorias significativas no desempenho do modelo de linguagem pré-treinado, produzindo desempenho de última geração para várias tarefas de classificação populares, especialmente quando vários modelos de linguagem pré-treinados são combinados. Para obter mais informações sobre essa técnica, consulte a pesquisa relacionada. Você pode começar com uma implementação simples no código de exemplo do TensorFlow Ranking.

Modelos aditivos generalizados de classificação neural (GAM)

Para alguns sistemas de classificação, como avaliação de elegibilidade de empréstimos, segmentação de anúncios ou orientação para tratamento médico, transparência e explicabilidade são considerações críticas. A aplicação de modelos aditivos generalizados (GAMs) com fatores de ponderação bem compreendidos pode ajudar seu modelo de classificação a ser mais explicável e interpretável.

GAMs foram amplamente estudados com tarefas de regressão e classificação, mas é menos claro como aplicá-los a um aplicativo de classificação. Por exemplo, enquanto os GAMs podem ser simplesmente aplicados para modelar cada item individual na lista, modelar as interações dos itens e o contexto no qual esses itens são classificados é um problema mais desafiador. O TensorFlow Ranking fornece uma implementação do GAM de classificação neural , uma extensão de modelos aditivos generalizados projetados para problemas de classificação. A implementação de GAMs do TensorFlow Ranking permite adicionar pesos específicos aos recursos do seu modelo.

A ilustração a seguir de um sistema de classificação de hotéis usa relevância, preço e distância como recursos principais de classificação. Este modelo aplica uma técnica GAM para pesar essas dimensões de forma diferente, com base no contexto do dispositivo do usuário. Por exemplo, se a consulta veio de um telefone, a distância é mais ponderada, supondo que os usuários estejam procurando um hotel próximo.

Modelo Aditivo Generalizado para exemplo de classificação
Figura 2 : Aplicando GAM de classificação neural para pesquisa local. Para cada característica de entrada, como preço ou distância, um submodelo produz uma subpontuação que pode ser examinada, proporcionando transparência. Recursos de contexto, como o tipo de dispositivo do usuário, podem ser usados ​​para determinar os pesos das pontuações do submodelo.

Para obter mais informações sobre o uso de GAMs com modelos de classificação, consulte a pesquisa relacionada. Você pode começar com um exemplo de implementação dessa técnica no código de exemplo do TensorFlow Ranking.

Suporte de classificação distribuído

O TensorFlow Ranking foi desenvolvido para criar sistemas de classificação em larga escala de ponta a ponta: incluindo processamento de dados, construção de modelos, avaliação e implantação de produção. Ele pode lidar com recursos heterogêneos densos e esparsos, dimensionar até milhões de pontos de dados e foi projetado para oferecer suporte ao treinamento distribuído para aplicativos de classificação em grande escala.

Diagrama de classes de classificação do TensorFlow
Figura 3 : Diagrama de classes de classificação do TensorFlow para suporte ao processamento distribuído. Os módulos verdes podem ser personalizados para o seu modelo de classificação.

A biblioteca fornece uma arquitetura de pipeline de classificação otimizada, para evitar códigos repetitivos e padronizados e criar soluções distribuídas que podem ser aplicadas desde o treinamento do seu modelo de classificação até o atendimento a ele. O pipeline de classificação suporta a maioria das estratégias distribuídas do TensorFlow, incluindo MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy e ParameterServerStrategy . O pipeline de classificação pode exportar o modelo de classificação treinado no formato tf.saved_model , que oferece suporte a várias assinaturas de entrada . operações de treinamento.

A biblioteca de classificação auxilia na construção de uma implementação de treinamento distribuído fornecendo um conjunto de classes tfr.keras.pipeline , que usam um construtor de modelo, um construtor de dados e hiperparâmetros como entrada. A classe tfr.keras.ModelBuilder baseada em Keras permite que você crie um modelo para processamento distribuído e funciona com classes extensíveis InputCreator, Preprocessor e Scorer:

As classes de pipeline do TensorFlow Ranking também funcionam com um DatasetBuilder para configurar dados de treinamento, que podem incorporar hiperparâmetros . Por fim, o próprio pipeline pode incluir um conjunto de hiperparâmetros como um objeto PipelineHparams .

Comece a criar modelos de classificação distribuídos usando o tutorial de classificação distribuída .

,

A biblioteca TensorFlow Ranking ajuda você a criar aprendizado escalável para classificar modelos de aprendizado de máquina usando abordagens e técnicas bem estabelecidas de pesquisas recentes. Um modelo de classificação pega uma lista de itens semelhantes, como páginas da web, e gera uma lista otimizada desses itens, por exemplo, mais relevantes para as páginas menos relevantes. Aprender a classificar modelos tem aplicações em busca, resposta a perguntas, sistemas de recomendação e sistemas de diálogo. Você pode usar essa biblioteca para acelerar a criação de um modelo de classificação para seu aplicativo usando a API Keras . A biblioteca Ranking também fornece utilitários de fluxo de trabalho para facilitar a escalabilidade de sua implementação de modelo para trabalhar efetivamente com grandes conjuntos de dados usando estratégias de processamento distribuído.

Esta visão geral fornece um breve resumo do desenvolvimento de aprendizagem para classificar modelos com esta biblioteca, apresenta algumas técnicas avançadas suportadas pela biblioteca e discute os utilitários de fluxo de trabalho fornecidos para dar suporte ao processamento distribuído para aplicativos de classificação.

Desenvolvimento de modelos de aprendizagem para classificar

A construção do modelo com a biblioteca TensorFlow Ranking segue estas etapas gerais:

  1. Especifique uma função de pontuação usando camadas Keras ( tf.keras.layers )
  2. Defina as métricas que você deseja usar para avaliação, como tfr.keras.metrics.NDCGMetric
  3. Especifique uma função de perda, como tfr.keras.losses.SoftmaxLoss
  4. Compile o modelo com tf.keras.Model.compile() e treine-o com seus dados

O tutorial Recomendar filmes orienta você pelos fundamentos da construção de um modelo de aprendizado para classificar com esta biblioteca. Confira a seção de suporte de classificação distribuída para obter mais informações sobre a criação de modelos de classificação em larga escala.

Técnicas avançadas de classificação

A biblioteca TensorFlow Ranking oferece suporte para a aplicação de técnicas avançadas de classificação pesquisadas e implementadas por pesquisadores e engenheiros do Google. As seções a seguir fornecem uma visão geral de algumas dessas técnicas e como começar a usá-las em seu aplicativo.

Ordem de entrada da lista BERT

A biblioteca Ranking fornece uma implementação de TFR-BERT, uma arquitetura de pontuação que combina BERT com modelagem LTR para otimizar a ordenação das entradas da lista. Como exemplo de aplicação dessa abordagem, considere uma consulta e uma lista de n documentos que você deseja classificar em resposta a essa consulta. Em vez de aprender uma representação BERT pontuada de forma independente em pares <query, document> , os modelos LTR aplicam uma perda de classificação para aprender conjuntamente uma representação BERT que maximiza a utilidade de toda a lista classificada em relação aos rótulos de verdade. A figura a seguir ilustra essa técnica:

Diagrama de BERT de classificação do TensorFlow
Figura 1 : Diagrama de arquitetura BERT de classificação do TensorFlow mostrando um modelo LTR conjunto sobre uma lista de n documentos usando representações BERT de pares <query,document> individuais.

Essa abordagem nivela uma lista de documentos para classificar em resposta a uma consulta em uma lista de tuplas <query, document> . Essas tuplas são então alimentadas em um modelo de linguagem pré-treinado BERT. As saídas BERT agrupadas para toda a lista de documentos são ajustadas em conjunto com uma das perdas de classificação especializadas disponíveis no TensorFlow Ranking.

Essa arquitetura pode fornecer melhorias significativas no desempenho do modelo de linguagem pré-treinado, produzindo desempenho de última geração para várias tarefas de classificação populares, especialmente quando vários modelos de linguagem pré-treinados são combinados. Para obter mais informações sobre essa técnica, consulte a pesquisa relacionada. Você pode começar com uma implementação simples no código de exemplo do TensorFlow Ranking.

Modelos aditivos generalizados de classificação neural (GAM)

Para alguns sistemas de classificação, como avaliação de elegibilidade de empréstimos, segmentação de anúncios ou orientação para tratamento médico, transparência e explicabilidade são considerações críticas. A aplicação de modelos aditivos generalizados (GAMs) com fatores de ponderação bem compreendidos pode ajudar seu modelo de classificação a ser mais explicável e interpretável.

GAMs foram amplamente estudados com tarefas de regressão e classificação, mas é menos claro como aplicá-los a um aplicativo de classificação. Por exemplo, enquanto os GAMs podem ser simplesmente aplicados para modelar cada item individual na lista, modelar as interações dos itens e o contexto no qual esses itens são classificados é um problema mais desafiador. O TensorFlow Ranking fornece uma implementação do GAM de classificação neural , uma extensão de modelos aditivos generalizados projetados para problemas de classificação. A implementação de GAMs do TensorFlow Ranking permite adicionar pesos específicos aos recursos do seu modelo.

A ilustração a seguir de um sistema de classificação de hotéis usa relevância, preço e distância como recursos principais de classificação. Este modelo aplica uma técnica GAM para pesar essas dimensões de forma diferente, com base no contexto do dispositivo do usuário. Por exemplo, se a consulta veio de um telefone, a distância é mais ponderada, supondo que os usuários estejam procurando um hotel próximo.

Modelo Aditivo Generalizado para exemplo de classificação
Figura 2 : Aplicando GAM de classificação neural para pesquisa local. Para cada característica de entrada, como preço ou distância, um submodelo produz uma subpontuação que pode ser examinada, proporcionando transparência. Recursos de contexto, como o tipo de dispositivo do usuário, podem ser usados ​​para determinar os pesos das pontuações do submodelo.

Para obter mais informações sobre o uso de GAMs com modelos de classificação, consulte a pesquisa relacionada. Você pode começar com um exemplo de implementação dessa técnica no código de exemplo do TensorFlow Ranking.

Suporte de classificação distribuído

O TensorFlow Ranking foi desenvolvido para criar sistemas de classificação em larga escala de ponta a ponta: incluindo processamento de dados, construção de modelos, avaliação e implantação de produção. Ele pode lidar com recursos heterogêneos densos e esparsos, dimensionar até milhões de pontos de dados e foi projetado para oferecer suporte ao treinamento distribuído para aplicativos de classificação em grande escala.

Diagrama de classes de classificação do TensorFlow
Figura 3 : Diagrama de classes de classificação do TensorFlow para suporte ao processamento distribuído. Os módulos verdes podem ser personalizados para o seu modelo de classificação.

A biblioteca fornece uma arquitetura de pipeline de classificação otimizada, para evitar códigos repetitivos e padronizados e criar soluções distribuídas que podem ser aplicadas desde o treinamento do seu modelo de classificação até o atendimento a ele. O pipeline de classificação suporta a maioria das estratégias distribuídas do TensorFlow, incluindo MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy e ParameterServerStrategy . O pipeline de classificação pode exportar o modelo de classificação treinado no formato tf.saved_model , que oferece suporte a várias assinaturas de entrada . operações de treinamento.

A biblioteca de classificação auxilia na construção de uma implementação de treinamento distribuído fornecendo um conjunto de classes tfr.keras.pipeline , que usam um construtor de modelo, um construtor de dados e hiperparâmetros como entrada. A classe tfr.keras.ModelBuilder baseada em Keras permite que você crie um modelo para processamento distribuído e funciona com classes extensíveis InputCreator, Preprocessor e Scorer:

As classes de pipeline do TensorFlow Ranking também funcionam com um DatasetBuilder para configurar dados de treinamento, que podem incorporar hiperparâmetros . Por fim, o próprio pipeline pode incluir um conjunto de hiperparâmetros como um objeto PipelineHparams .

Comece a criar modelos de classificação distribuídos usando o tutorial de classificação distribuída .