Мотивация
Big Query ML позволяет создавать модели машинного обучения без дополнительных навыков внедрения. Он также не требует ETL и очень прост в использовании. Я понял, как построить простейшую систему рекомендаций с помощью BigQuery ML.
Обзор
- Создайте механизм рекомендаций с помощью BigQuery ML Matrix Factorization, создайте список рекомендаций (пользователь x элемент) и зарегистрируйте его в хранилище данных.
- Реализуйте API рекомендаций, чтобы получить список элементов рекомендаций с использованием идентификатора пользователя в качестве ключа с сервера API, развернутого на K8s.
- Чтобы лучше понять GCP, мы также будем использовать Cloud Build для создания конвейера CI / CD и экспериментировать с автоматизацией процессов сборки и развертывания.
Оглавление
- Создайте механизм рекомендаций и зарегистрируйте список рекомендаций в хранилище данных
- Создайте механизм рекомендаций с помощью BigQuery ML
- Зарегистрируйте список рекомендаций в хранилище данных - Внедрить сервер API в Golang
- Структура каталогов
- Исходный код - Создайте конвейер CI / CD и разверните сервер API в Kubernetes
- Настройки Google Kubernetes Engine (GKE)
- Создать кластер GKE
- Настройки Cloud Build - Проверьте свой API рекомендаций с помощью Postman
1. Создайте механизм рекомендаций и зарегистрируйте список рекомендаций в Datastore.
Создайте механизм рекомендаций с помощью BigQuery ML
Об алгоритме рекомендации
Реализуйте ко-фильтр на основе пользователей с матричной факторизацией. Введение в алгоритм матричной факторизации не является основной темой этой статьи, поэтому я опущу его, но я думаю, что эту статью легко понять. [Построение системы рекомендаций в TensorFlow: Обзор] (h ttps: // cloud.google.com/solutions/machine-learning/recommendation-system-tensorflow-overview )
Набор данных
[MovieLens 100K] (https://www.kaggle.com/rajmehra03/movielens100k)
Метод реализации
Я сослался на следующую статью Google.
[Использование BigQuery ML для получения рекомендаций на основе рейтингов фильмов] (https://cloud.google.com/bigquery- ml / docs / bigqueryml-mf-explicit-tutorial )
Примечание. Начиная с 2021/01 года матричная факторизация BigQuery ML требует, чтобы вы приобретали слоты в отделе бронирования. Вы, вероятно, купите слоты Flex, но будьте осторожны, чтобы удалить их, когда закончите использовать их. [Введение в бронирование] (https://cloud.google.com/bigquery/docs/reservations-intro)
Запрос на создание системы рекомендаций (обучение модели)
Создание списка рекомендаций (прогноз)
Результат прогноза
Предскажите оценку обзора для каждого элемента (фильма) для каждого пользователя с помощью обученной модели.
Создайте список рекомендаций (пользователь x элемент)
Сделайте его форматом для регистрации в хранилище данных с помощью BigQuery.
Здесь названия 10 фильмов связаны с идентификатором пользователя в рекомендуемый порядок (в порядке убывания баллов).
Зарегистрируйте список рекомендаций в хранилище данных
Существует проблема, заключающаяся в том, что пакет google-cloud-datastore не может быть импортирован при использовании Dataflow, поэтому я расскажу, как реализовать его в Apache Beam.
Добавьте список рекомендаций в хранилище данных с помощью Apache Beam
Экспортируйте список рекомендаций, созданный BigQuery, в виде CSV и зарегистрируйте его в хранилище данных с помощью следующей программы Apache Beam.
Я запустил его в облаке оболочка.
2. Внедрить API-сервер в Golang.
Структура каталогов
main.go
RecommendedFunc.go
Recommended.go
Я упоминал здесь о реализации клиента хранилища данных.
[Клиентские библиотеки режима хранилища данных] (https://cloud.google.com/datastore / docs / reference / libraries )
Dockerfile
3. Создайте конвейер CI / CD и разверните сервер API в Kubernetes.
Настройки Google Kubernetes Engine (GKE)
Создайте файл манифеста GKE
Создайте развертывание, обратившись к следующему
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
k8s.yml
Создать кластер GKE
При создании кластера включите Cloud Datastore в разделе «Установить доступ для каждого API».
Настройки сборки облака
Создайте файл конфигурации Cloud Build
с помощью Cloud Build для среды CI / CD. Создайте образ докера, созданный в среде разработки, поместите его в реестр контейнеров и опишите ряд настроек, чтобы он был развернут на GKE.
cloudbuild.yaml
Установить триггер в Cloud Build
Я связал репозиторий GitHub и инициировал отправку в главную ветку с настройками по умолчанию.
4. Тестируйте рекомендации API с помощью Postman
Отправьте в репозиторий, зарегистрированный в Cloud Build. Сервер API развернут в GKE. После развертывания проверьте конечную точку на экране управления GKE, добавьте userId в параметр, как показано ниже, и сделайте запрос.
Подтверждение результатов рекомендации
Тест завершен, когда для идентификатора пользователя возвращается результат рекомендации (список фильмов).