Обзор рейтинга TensorFlow, Обзор рейтинга TensorFlow

Библиотека TensorFlow Ranking помогает вам создавать масштабируемое обучение для ранжирования моделей машинного обучения, используя хорошо зарекомендовавшие себя подходы и методы, полученные в результате недавних исследований. Модель ранжирования берет список похожих элементов, таких как веб-страницы, и создает оптимизированный список этих элементов, например, наиболее релевантных для наименее релевантных страниц. Обучение ранжированию моделей находит применение в поиске, ответах на вопросы, рекомендательных системах и диалоговых системах. Вы можете использовать эту библиотеку для ускорения построения модели ранжирования для вашего приложения с помощью Keras API . Библиотека Ranking также предоставляет утилиты рабочего процесса, упрощающие масштабирование реализации модели для эффективной работы с большими наборами данных с использованием стратегий распределенной обработки.

В этом обзоре представлен краткий обзор разработки моделей обучения для ранжирования с помощью этой библиотеки, представлены некоторые расширенные методы, поддерживаемые библиотекой, и обсуждаются утилиты рабочего процесса, предоставляемые для поддержки распределенной обработки для ранжирования приложений.

Развитие обучения ранжированию моделей

Построение модели с помощью библиотеки ранжирования TensorFlow выполняется следующим образом:

  1. Укажите функцию оценки, используя слои Keras ( tf.keras.layers )
  2. Определите метрики, которые вы хотите использовать для оценки, например tfr.keras.metrics.NDCGMetric
  3. Укажите функцию потерь, например tfr.keras.losses.SoftmaxLoss
  4. Скомпилируйте модель с помощью tf.keras.Model.compile() и обучите ее вашими данными.

Учебник «Рекомендовать фильмы» знакомит вас с основами построения модели обучения ранжированию с помощью этой библиотеки. Ознакомьтесь с разделом Поддержка распределенного ранжирования для получения дополнительной информации о построении крупномасштабных моделей ранжирования.

Расширенные методы ранжирования

Библиотека TensorFlow Ranking обеспечивает поддержку применения передовых методов ранжирования, разработанных и реализованных исследователями и инженерами Google. В следующих разделах представлен обзор некоторых из этих методов и способы их использования в приложении.

Порядок ввода списка BERT

Библиотека ранжирования предоставляет реализацию TFR-BERT, архитектуры оценки, которая сочетает BERT с моделированием LTR для оптимизации упорядочения входных данных списка. В качестве примера применения этого подхода рассмотрим запрос и список из n документов, которые вы хотите ранжировать в ответ на этот запрос. Вместо изучения представления BERT, оцениваемого независимо по парам <query, document> , модели LTR применяют потери при ранжировании для совместного изучения представления BERT, которое максимизирует полезность всего ранжированного списка по отношению к меткам истинности. Следующий рисунок иллюстрирует эту технику:

Диаграмма BERT ранжирования TensorFlow
Рис. 1. Схема архитектуры TensorFlow Ranking BERT, показывающая совместную модель LTR для списка из n документов с использованием BERT-представлений отдельных пар <запрос, документ>.

Этот подход сглаживает список документов, ранжируемых в ответ на запрос, в список кортежей <query, document> . Затем эти кортежи передаются в предварительно обученную языковую модель BERT. Объединенные выходные данные BERT для всего списка документов затем настраиваются совместно с одним из специализированных потерь ранжирования , доступных в TensorFlow Ranking.

Эта архитектура может обеспечить значительное улучшение производительности предварительно обученной языковой модели, обеспечивая современную производительность для нескольких популярных задач ранжирования, особенно при объединении нескольких предварительно обученных языковых моделей. Для получения дополнительной информации об этой методике см. соответствующие исследования . Вы можете начать с простой реализации в коде примера TensorFlow Ranking.

Обобщенные аддитивные модели нейронного ранжирования (GAM)

Для некоторых систем ранжирования, таких как оценка приемлемости кредита, таргетинг рекламы или рекомендации по лечению, прозрачность и объяснимость являются критическими факторами. Применение обобщенных аддитивных моделей (GAM) с хорошо понятными весовыми коэффициентами может помочь вашей модели ранжирования быть более объяснимой и интерпретируемой.

GAM были тщательно изучены с задачами регрессии и классификации, но менее ясно, как применять их к приложению ранжирования. Например, хотя GAM можно просто применять для моделирования каждого отдельного элемента в списке, моделирование как взаимодействий элементов, так и контекста, в котором эти элементы ранжируются, является более сложной задачей. TensorFlow Ranking предоставляет реализацию нейронного ранжирования GAM , расширение обобщенных аддитивных моделей, предназначенных для задач ранжирования. Реализация TensorFlow Ranking для GAM позволяет вам добавлять определенные веса к функциям вашей модели.

Следующая иллюстрация системы ранжирования отелей использует релевантность, цену и расстояние в качестве основных характеристик ранжирования. В этой модели применяется метод GAM для разного взвешивания этих параметров в зависимости от контекста пользовательского устройства. Например, если запрос пришел с телефона, расстояние имеет больший вес, предполагая, что пользователи ищут ближайший отель.

Обобщенная аддитивная модель для примера ранжирования
Рисунок 2 : Применение нейронного ранжирования GAM для локального поиска. Для каждой входной характеристики, такой как цена или расстояние, подмодель создает подоценку, которую можно изучить, обеспечивая прозрачность. Контекстные характеристики, такие как тип пользовательского устройства, можно использовать для определения весов оценок подмоделей.

Дополнительные сведения об использовании GAM с моделями ранжирования см. в соответствующем исследовании . Вы можете начать с примера реализации этой техники в примере кода TensorFlow Ranking.

Поддержка распределенного ранжирования

TensorFlow Ranking предназначен для комплексного построения крупномасштабных систем ранжирования: включая обработку данных, построение моделей, оценку и развертывание в производстве. Он может обрабатывать разнородные плотные и разреженные функции, масштабироваться до миллионов точек данных и предназначен для поддержки распределенного обучения для крупномасштабных приложений ранжирования.

Диаграмма классов ранжирования TensorFlow
Рисунок 3 : Схема классов TensorFlow Ranking для поддержки распределенной обработки. Зеленые модули можно настроить для вашей модели ранжирования.

Библиотека обеспечивает оптимизированную архитектуру конвейера ранжирования, позволяющую избежать повторяющегося шаблонного кода и создавать распределенные решения, которые можно применять от обучения модели ранжирования до ее обслуживания. Конвейер ранжирования поддерживает большинство распределенных стратегий TensorFlow, включая MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy и ParameterServerStrategy . Конвейер ранжирования может экспортировать обученную модель ранжирования в формате tf.saved_model , который поддерживает несколько входных сигнатур . Кроме того, конвейер ранжирования предоставляет полезные обратные вызовы, в том числе поддержку визуализации данных TensorBoard и BackupAndRestore , чтобы помочь восстановиться после сбоев в долгосрочной работе. тренировочные операции.

Библиотека ранжирования помогает в создании реализации распределенного обучения, предоставляя набор классов tfr.keras.pipeline , которые принимают на вход построитель моделей, построитель данных и гиперпараметры. Класс tfr.keras.ModelBuilder на основе tfr.keras.ModelBuilder позволяет создавать модель для распределенной обработки и работает с расширяемыми классами InputCreator, Preprocessor и Scorer:

Классы конвейера TensorFlow Ranking также работают с DatasetBuilder для настройки обучающих данных, которые могут включать гиперпараметры . Наконец, сам конвейер может включать набор гиперпараметров в виде объекта PipelineHparams .

Начните создавать модели распределенного ранжирования с помощью руководства по распределенному ранжированию .

,

Библиотека TensorFlow Ranking помогает вам создавать масштабируемое обучение для ранжирования моделей машинного обучения, используя хорошо зарекомендовавшие себя подходы и методы, полученные в результате недавних исследований. Модель ранжирования берет список похожих элементов, таких как веб-страницы, и создает оптимизированный список этих элементов, например, наиболее релевантных для наименее релевантных страниц. Обучение ранжированию моделей находит применение в поиске, ответах на вопросы, рекомендательных системах и диалоговых системах. Вы можете использовать эту библиотеку для ускорения построения модели ранжирования для вашего приложения с помощью Keras API . Библиотека Ranking также предоставляет утилиты рабочего процесса, упрощающие масштабирование реализации модели для эффективной работы с большими наборами данных с использованием стратегий распределенной обработки.

В этом обзоре представлен краткий обзор разработки моделей обучения для ранжирования с помощью этой библиотеки, представлены некоторые расширенные методы, поддерживаемые библиотекой, и обсуждаются утилиты рабочего процесса, предоставляемые для поддержки распределенной обработки для ранжирования приложений.

Развитие обучения ранжированию моделей

Построение модели с помощью библиотеки ранжирования TensorFlow выполняется следующим образом:

  1. Укажите функцию оценки, используя слои Keras ( tf.keras.layers )
  2. Определите метрики, которые вы хотите использовать для оценки, например tfr.keras.metrics.NDCGMetric
  3. Укажите функцию потерь, например tfr.keras.losses.SoftmaxLoss
  4. Скомпилируйте модель с помощью tf.keras.Model.compile() и обучите ее вашими данными.

Учебник «Рекомендовать фильмы» знакомит вас с основами построения модели обучения ранжированию с помощью этой библиотеки. Ознакомьтесь с разделом Поддержка распределенного ранжирования для получения дополнительной информации о построении крупномасштабных моделей ранжирования.

Расширенные методы ранжирования

Библиотека TensorFlow Ranking обеспечивает поддержку применения передовых методов ранжирования, разработанных и реализованных исследователями и инженерами Google. В следующих разделах представлен обзор некоторых из этих методов и способы их использования в приложении.

Порядок ввода списка BERT

Библиотека ранжирования предоставляет реализацию TFR-BERT, архитектуры оценки, которая сочетает BERT с моделированием LTR для оптимизации упорядочения входных данных списка. В качестве примера применения этого подхода рассмотрим запрос и список из n документов, которые вы хотите ранжировать в ответ на этот запрос. Вместо изучения представления BERT, оцениваемого независимо по парам <query, document> , модели LTR применяют потери при ранжировании для совместного изучения представления BERT, которое максимизирует полезность всего ранжированного списка по отношению к меткам истинности. Следующий рисунок иллюстрирует эту технику:

Диаграмма BERT ранжирования TensorFlow
Рис. 1. Схема архитектуры TensorFlow Ranking BERT, показывающая совместную модель LTR для списка из n документов с использованием BERT-представлений отдельных пар <запрос, документ>.

Этот подход сглаживает список документов, ранжируемых в ответ на запрос, в список кортежей <query, document> . Затем эти кортежи передаются в предварительно обученную языковую модель BERT. Объединенные выходные данные BERT для всего списка документов затем настраиваются совместно с одним из специализированных потерь ранжирования , доступных в TensorFlow Ranking.

Эта архитектура может обеспечить значительное улучшение производительности предварительно обученной языковой модели, обеспечивая современную производительность для нескольких популярных задач ранжирования, особенно при объединении нескольких предварительно обученных языковых моделей. Для получения дополнительной информации об этой методике см. соответствующие исследования . Вы можете начать с простой реализации в коде примера TensorFlow Ranking.

Обобщенные аддитивные модели нейронного ранжирования (GAM)

Для некоторых систем ранжирования, таких как оценка приемлемости кредита, таргетинг рекламы или рекомендации по лечению, прозрачность и объяснимость являются критическими факторами. Применение обобщенных аддитивных моделей (GAM) с хорошо понятными весовыми коэффициентами может помочь вашей модели ранжирования быть более объяснимой и интерпретируемой.

GAM были тщательно изучены с задачами регрессии и классификации, но менее ясно, как применять их к приложению ранжирования. Например, хотя GAM можно просто применять для моделирования каждого отдельного элемента в списке, моделирование как взаимодействий элементов, так и контекста, в котором эти элементы ранжируются, является более сложной задачей. TensorFlow Ranking предоставляет реализацию нейронного ранжирования GAM , расширение обобщенных аддитивных моделей, предназначенных для задач ранжирования. Реализация TensorFlow Ranking для GAM позволяет вам добавлять определенные веса к функциям вашей модели.

Следующая иллюстрация системы ранжирования отелей использует релевантность, цену и расстояние в качестве основных характеристик ранжирования. В этой модели применяется метод GAM для разного взвешивания этих параметров в зависимости от контекста пользовательского устройства. Например, если запрос пришел с телефона, расстояние имеет больший вес, предполагая, что пользователи ищут ближайший отель.

Обобщенная аддитивная модель для примера ранжирования
Рисунок 2 : Применение нейронного ранжирования GAM для локального поиска. Для каждой входной характеристики, такой как цена или расстояние, подмодель создает подоценку, которую можно изучить, обеспечивая прозрачность. Контекстные характеристики, такие как тип пользовательского устройства, можно использовать для определения весов оценок подмоделей.

Дополнительные сведения об использовании GAM с моделями ранжирования см. в соответствующем исследовании . Вы можете начать с примера реализации этой техники в примере кода TensorFlow Ranking.

Поддержка распределенного ранжирования

TensorFlow Ranking предназначен для комплексного построения крупномасштабных систем ранжирования: включая обработку данных, построение моделей, оценку и развертывание в производстве. Он может обрабатывать разнородные плотные и разреженные функции, масштабироваться до миллионов точек данных и предназначен для поддержки распределенного обучения для крупномасштабных приложений ранжирования.

Диаграмма классов ранжирования TensorFlow
Рисунок 3 : Схема классов TensorFlow Ranking для поддержки распределенной обработки. Зеленые модули можно настроить для вашей модели ранжирования.

Библиотека обеспечивает оптимизированную архитектуру конвейера ранжирования, позволяющую избежать повторяющегося шаблонного кода и создавать распределенные решения, которые можно применять от обучения модели ранжирования до ее обслуживания. Конвейер ранжирования поддерживает большинство распределенных стратегий TensorFlow, включая MirroredStrategy , TPUStrategy , MultiWorkerMirroredStrategy и ParameterServerStrategy . Конвейер ранжирования может экспортировать обученную модель ранжирования в формате tf.saved_model , который поддерживает несколько входных сигнатур . Кроме того, конвейер ранжирования предоставляет полезные обратные вызовы, в том числе поддержку визуализации данных TensorBoard и BackupAndRestore , чтобы помочь восстановиться после сбоев в долгосрочной работе. тренировочные операции.

Библиотека ранжирования помогает в создании реализации распределенного обучения, предоставляя набор классов tfr.keras.pipeline , которые принимают на вход построитель моделей, построитель данных и гиперпараметры. Класс tfr.keras.ModelBuilder на основе tfr.keras.ModelBuilder позволяет создавать модель для распределенной обработки и работает с расширяемыми классами InputCreator, Preprocessor и Scorer:

Классы конвейера TensorFlow Ranking также работают с DatasetBuilder для настройки обучающих данных, которые могут включать гиперпараметры . Наконец, сам конвейер может включать набор гиперпараметров в виде объекта PipelineHparams .

Начните создавать модели распределенного ранжирования с помощью руководства по распределенному ранжированию .