Мотивация

Big Query ML позволяет создавать модели машинного обучения без дополнительных навыков внедрения. Он также не требует ETL и очень прост в использовании. Я понял, как построить простейшую систему рекомендаций с помощью BigQuery ML.

Обзор

  • Создайте механизм рекомендаций с помощью BigQuery ML Matrix Factorization, создайте список рекомендаций (пользователь x элемент) и зарегистрируйте его в хранилище данных.
  • Реализуйте API рекомендаций, чтобы получить список элементов рекомендаций с использованием идентификатора пользователя в качестве ключа с сервера API, развернутого на K8s.
  • Чтобы лучше понять GCP, мы также будем использовать Cloud Build для создания конвейера CI / CD и экспериментировать с автоматизацией процессов сборки и развертывания.

Оглавление

  1. Создайте механизм рекомендаций и зарегистрируйте список рекомендаций в хранилище данных
    - Создайте механизм рекомендаций с помощью BigQuery ML
    - Зарегистрируйте список рекомендаций в хранилище данных
  2. Внедрить сервер API в Golang
    - Структура каталогов
    - Исходный код
  3. Создайте конвейер CI / CD и разверните сервер API в Kubernetes
    - Настройки Google Kubernetes Engine (GKE)
    - Создать кластер GKE
    - Настройки Cloud Build
  4. Проверьте свой 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 в параметр, как показано ниже, и сделайте запрос.

Подтверждение результатов рекомендации

Тест завершен, когда для идентификатора пользователя возвращается результат рекомендации (список фильмов).