![]() | ![]() |
Персонализированные рекомендации широко используются для различных вариантов использования на мобильных устройствах, таких как поиск мультимедийного контента, предложение продуктов для покупок и рекомендация следующего приложения. Если вы заинтересованы в предоставлении персонализированных рекомендаций в своем приложении при соблюдении конфиденциальности пользователей, мы рекомендуем изучить следующий пример и набор инструментов.
Начать
Мы предоставляем образец приложения TensorFlow Lite, который демонстрирует, как рекомендовать релевантные элементы пользователям на Android.
Если вы используете платформу, отличную от Android, или уже знакомы с API-интерфейсами TensorFlow Lite, вы можете загрузить нашу начальную модель рекомендаций.
Мы также предоставляем обучающий скрипт в Github для обучения вашей собственной модели настраиваемым способом.
Понимание архитектуры модели
Мы используем архитектуру модели с двойным кодировщиком: контекстный кодировщик для кодирования последовательной пользовательской истории и кодировщик меток для кодирования прогнозируемого кандидата в рекомендации. Сходство между кодировкой контекста и метки используется для представления вероятности того, что предсказанный кандидат соответствует потребностям пользователя.
С этой кодовой базой предоставляются три различных метода последовательного кодирования пользовательской истории:
- Кодер пакетов слов (BOW): усреднение встраивания действий пользователя без учета порядка контекста.
- Кодер сверточных нейронных сетей (CNN): применение нескольких слоев сверточных нейронных сетей для генерации контекстного кодирования.
- Кодер рекуррентной нейронной сети (RNN): применение рекуррентной нейронной сети для кодирования контекстной последовательности.
Чтобы смоделировать каждое действие пользователя, мы могли бы использовать идентификатор элемента действия (на основе идентификатора) или несколько функций элемента (на основе функций) или их комбинацию. Модель, основанная на функциях, использующая несколько функций для коллективного кодирования поведения пользователей. С помощью этой базы кода вы можете создавать модели на основе идентификаторов или функций настраиваемым способом.
После обучения будет экспортирована модель TensorFlow Lite, которая может напрямую предоставлять прогнозы топ-K среди кандидатов в рекомендации.
Используйте свои тренировочные данные
В дополнение к обученной модели мы предоставляем набор инструментов с открытым исходным кодом в 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 обеспечивают больше возможностей суммирования для большой длины входного контекста.
Использование базовых функций для представления элементов или действий пользователя может повысить производительность модели, лучше разместить новые элементы, возможно, уменьшить пространство для встраивания, следовательно, уменьшить потребление памяти и повысить удобство работы с устройством.