Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Рекомендация

Посмотреть на TensorFlow.org Запустить в Google Colab Посмотреть исходный код на GitHub

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

Начать

Мы предоставляем образец приложения TensorFlow Lite, которое демонстрирует, как рекомендовать соответствующие элементы пользователям Android.

Пример Android

Если вы используете платформу, отличную от Android, или уже знакомы с API-интерфейсами TensorFlow Lite, вы можете загрузить нашу модель рекомендаций для начинающих.

Скачать стартовую модель

Мы также предоставляем обучающий скрипт в Github для обучения вашей собственной модели настраиваемым способом.

Код обучения

Понять архитектуру модели

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

Эта кодовая база предоставляет три различных метода последовательного кодирования истории пользователей:

  • Кодировщик мешков слов (BOW): усреднение вложений действий пользователя без учета порядка контекста.
  • Кодер сверточной нейронной сети (CNN): применение нескольких уровней сверточных нейронных сетей для генерации контекстного кодирования.
  • Кодировщик рекуррентной нейронной сети (RNN): применение рекуррентной нейронной сети для кодирования контекстной последовательности.

Чтобы смоделировать каждое действие пользователя, мы могли бы использовать идентификатор элемента действия (на основе идентификатора), или несколько функций элемента (на основе функций), или их комбинацию. Модель на основе функций, использующая несколько функций для коллективного кодирования поведения пользователей. С помощью этой базы кода вы можете настраивать модели на основе идентификаторов или функций.

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

Используйте свои тренировочные данные

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

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

Примеры

В качестве примеров мы обучили модели рекомендаций как на основе идентификаторов, так и на основе функций. Модель на основе идентификатора принимает в качестве входных данных только идентификаторы фильмов, а модель на основе функций принимает как идентификаторы фильмов, так и идентификаторы жанров фильмов. Пожалуйста, найдите следующие примеры входов и выходов.

Входы

  • Идентификаторы контекстного фильма:

    • Король Лев (ID: 362)
    • История игрушек (ID: 1)
    • (и больше)
  • Идентификаторы жанра контекстного фильма:

    • Анимация (ID: 15)
    • Детская (ID: 9)
    • Мюзикл (ID: 13)
    • Анимация (ID: 15)
    • Детская (ID: 9)
    • Комедия (ID: 2)
    • (и больше)

Выходы:

  • Рекомендуемые идентификаторы фильмов:
    • История игрушек 2 (ID: 3114)
    • (и больше)

Тесты производительности

Цифры тестов производительности генерируются с помощью описанного здесь инструмента.

Название модели Размер модели Устройство Процессор
рекомендация (идентификатор фильма в качестве входных) 0.52 Мб Пиксель 3 0,09 мс *
Пиксель 4 0,05 мс *
рекомендация (идентификатор фильма и жанр фильма в качестве входных) 1.3 Мб Пиксель 3 0,13 мс *
Пиксель 4 0,06 мс *

* Использовано 4 нитки.

Используйте свои тренировочные данные

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

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

Советы по настройке модели с вашими данными

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

  • Длина входного контекста: оптимальная длина входного контекста зависит от набора данных. Мы предлагаем выбирать длину входного контекста на основе того, насколько события ярлыка коррелируют с долгосрочными интересами по сравнению с краткосрочным контекстом.

  • Выбор типа кодировщика: мы предлагаем выбирать тип кодировщика в зависимости от длины входного контекста. Кодировщик пакета слов хорошо работает для короткой длины входного контекста (например, <10), кодеры CNN и RNN предоставляют больше возможностей суммирования для большой длины входного контекста.

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