Machine Learning (ML) в BigQuery

20 ноября, 2023

Машинное обучение (Machine Learning, ML) — это направление искусственного интеллекта (ИИ), сосредоточенное на создании систем, которые обучаются и развиваются на основе получаемых ими данных.

Введение

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

BigQuery ML позволяет создавать и запускать модели машинного обучения (ML) с помощью запросов GoogleSQL. Модели BigQuery ML хранятся в наборах данных BigQuery, аналогично таблицам и представлениям. BigQuery ML также позволяет получать доступ к моделям Vertex AI и API Cloud AI для выполнения задач искусственного интеллекта (AI), таких как генерация текста или машинный перевод. Gemini для Google Cloud также предоставляет помощь на основе AI для задач BigQuery.

Искусственный интеллект (ИИ) – это область computer science, основная цель которой заключается в создании вычислительных систем, способных действовать автономно.

Introduction to AI and ML in BigQuery

Обычно выполнение ML или AI на больших наборах данных требует серьезного программирования и знания фреймворков ML. Эти требования ограничивают разработку решений очень небольшой группой людей в каждой компании и исключают аналитиков данных, которые понимают данные, но имеют ограниченные знания ML и опыт программирования. Однако с BigQuery ML специалисты по SQL могут использовать существующие инструменты и навыки SQL для построения и оценки моделей, а также для генерации результатов из LLM (Large Language Model, большие языковые модели) и API Cloud AI.

Вы можете работать с возможностями BigQuery ML, используя:

  • консоль Google Cloud;
  • инструмент командной строки bq;
  • API BigQuery REST;
  • интегрированные блокноты Colab Enterprise;
  • внешние инструменты, такие как Jupyter notebook или платформа бизнес-аналитики (BI).

BigQuery ML предлагает ряд преимуществ по сравнению с другими подходами к использованию ML и AI в облачном хранилище данных:

  • BigQuery ML делает машинное обучение и ИИ доступнее, позволяя аналитикам данных — основным пользователям хранилищ — создавать и запускать модели с помощью привычных инструментов бизнес-аналитики и электронных таблиц. Это помогает внедрять прогнозную (предиктивную) аналитику для поддержки решений во всей компании;
  • вам не нужно программировать решения на Python или Java. Обучение моделей и доступ к возможностям ИИ происходит через SQL — язык, который аналитики уже знают;
  • BigQuery ML ускоряет разработку и внедрение моделей, поскольку данные не нужно перемещать из хранилища. Вместо этого ML работает прямо внутри данных, что дает некоторые преимущества - меньше сложностей благодаря сокращению числа необходимых инструментов и быстрее выход в продакшн, поскольку не требуется перемещать и преобразовывать большие объемы данных для обучения моделей в Python-фреймворках.

В BigQuery ML встроены модели, прошедшие внутреннее обучение:

  • Contribution analysis (контрибуционный анализ или анализ вклада) - определяет влияние одного или нескольких факторов на значение заданной метрики. Например, позволяет оценить влияние местоположения магазина и даты продаж на выручку;
  • Linear regression (линейная регрессия) - используется для прогнозирования значения числовой метрики для новых данных на основе модели, обученной на аналогичных удалённых данных. Метки имеют реальные значения, что означает, что они не могут быть положительной бесконечностью, отрицательной бесконечностью или NaN (нечисловое значение);
  • Logistic regression (логистическая регрессия) - классифицирует данные по двум или более возможным значениям (например, низкая, средняя или высокая ценность). Метки могут принимать до 50 уникальных значений;
  • K-means clustering (кластеризация методом K-средних) - используется для сегментации данных. Например, эта модель определяет сегменты клиентов. K-средние — это метод обучения без учителя, поэтому обучение модели не требует меток или разделения данных на обучающие и тестовые наборы;
  • Matrix factorization (матричная факторизация) - предназначена для создания систем рекомендаций по продуктам. Вы можете создать рекомендации по продуктам, используя исторические данные о поведении клиентов, транзакциях и рейтингах продуктов, а затем использовать эти рекомендации для персонализированного взаимодействия с клиентами;
  • Principal component analysis (PCA, метод главных компонент) - используется для уменьшения размерности данных, а также для выявления и визуализации структур в многомерных данных. PCA позволяет преобразовать набор взаимосвязанных переменных в меньший набор некоррелирующих переменных, называемых главными компонентами, при этом сохраняя как можно больше вариации в данных. Меньшие наборы данных легче исследовать и визуализировать, а анализ данных становится намного проще и быстрее для алгоритмов машинного обучения без обработки посторонних переменных;
  • Time series (прогнозирование временных рядов) - предназначены для выполнения прогнозов временных рядов. Вы можете использовать эту функцию для создания миллионов моделей временных рядов и использовать их для прогнозирования. Модель автоматически обрабатывает аномалии, сезонность и праздники.

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

Существуют модели, которые являются внешними по отношению к BigQuery ML и обучены в Vertex AI: Deep neural network (DNN), Wide & Deep, Autoencoder, Boosted Tree, Random forest, AutoML. Еще BigQuery ML позволяет импортировать пользовательские модели, которые обучаются вне BigQuery, а затем выполнять прогнозирование в BigQuery. К ним относятся: Open Neural Network Exchange (ONNX), TensorFlow, TensorFlow Lite, XGBoost.

В официальной документации Google представлено дерево решений по выбору модели.

Руководство по выбору модели

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

Использование BigQuery ML

С помощью BigQuery ML можно решать множество различных задач. Но ключевых в BigQuery можно выделить именно три:

  1. Прогнозирование;
  2. Обнаружение аномалий в данных;
  3. Система рекомендаций.
Прогнозирование

Прогнозирование (Forecasting) — это метод, при котором вы анализируете исторические данные, чтобы сделать обоснованный прогноз будущих тенденций. Например, вы можете проанализировать исторические данные о продажах в нескольких магазинах, чтобы спрогнозировать будущие продажи в этих местах. В BigQuery ML вы выполняете прогнозирование на основе данных временных рядов.

Прогнозирование (Forecasting)

Обнаружение аномалий

Обнаружение аномалий (Anomaly detection) — это метод интеллектуального анализа данных, который можно использовать для выявления отклонений данных в данном наборе данных.

Обнаружение аномалий (Anomaly detection)

Система рекомендаций

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

  • Фильтрация на основе контента: использует сходство элементов для предоставления рекомендаций. Например, если пользователь смотрит два видеоролика с милыми кошками, система рекомендаций может порекомендовать ему больше видеороликов с милыми животными;
  • Совместная фильтрация: использует сходства между пользователями (на основе пользовательских запросов) для предоставления рекомендаций. Например, если пользователь A ищет что-то похожее на пользователя B, и пользователю B нравится видео 1, то система рекомендаций может порекомендовать видео 1 пользователю A, даже если пользователь A не смотрел никаких видеороликов, похожих на видео 1.

Вот некоторые примеры использования:

Системы рекомендаций (Recommendation)

А. Экспорт рекомендаций по маркетинговой активации

  1. Для активации через Google Ads, Display & Video 360 и Search Ads 360;
  2. Для активации по электронной почте.

Б. Другие способы экспорта рекомендаций из BigQuery

  1. BigQuery в фреймворк данных pandas;
  2. Экспортировать прогнозы в Google Cloud Storage.

Экспортируя полученные прогнозы из BigQuery ML обратно в Google Analytics, вы сможете создавать индивидуальные аудитории ремаркетинга и эффективнее таргетироваться на клиентов с помощью рекламы, поиска или активации по электронной почте.

Таким образом, BigQuery ML предназначен не только для работы с данными Google Analytics 4. Его можно использовать для любых данных вашей организации, необходимых для принятия управленческих решений.

В официальном аккаунте Google Cloud Platform на GitHub представлены примеры использования BigQuery ML в различных отраслях и проектах.

  • В розничной торговле - системы рекомендаций, модель склонности к покупке, прогнозирование Lifetime Value (LTV), кластеризация (сегментация клиентов с помощью кластеризации k-средних), прогнозирование спроса на основе временных рядов;
  • Гейминг - модель предсказания оттока игроков с использованием Google Analytics 4 и BigQuery;
  • Финтех - решение для выявления мошеннических операций с кредитными картами в реальном времени.

Некоторые примеры также представлены в официальной справке Google Cloud.

Примеры машинного обучения в BigQuery ML

Главное в ML

В задачах машинного обучения определение признаков (или фич) и меток (или целевых переменных) является ключевым этапом.

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

Корректное определение и обработка признаков и меток является основой успешного обучения модели, так как именно они определяют, как хорошо модель будет справляться с задачами предсказания.

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

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

Атрибуты фильма, которые вы будете использовать в качестве входных данных, называются признаками модели. Метка – это прогнозное значение, которое требуется узнать, то есть в данном случае – количество проданных билетов.

Какие могут быть примеры признаков?

  • оценка содержимого кинофильма (например, PG-13 означает, что фильм рекомендуется для детей младше 13 лет);
  • фильм будет показан в рабочие или выходные дни?
  • в какое время дня будет демонстрироваться фильм (днем, вечером, ночью)?
  • жанр фильма (комедия, триллер, боевик и т.д.);
  • как давно снят фильм (в днях);
  • средний рейтинг фильма по оценкам критиков (по шкале от 1 до 10);
  • общая сумма кассовых сборов за предыдущий фильм этого же режиссера, если применимо;
  • общая сумма кассовых сборов за предыдущий фильм с этим же актером в главной роли, если применимо;
  • местоположение кинотеатра;
  • тип кинотеатра (например, большой кинотеатр с несколькими залами, под открытым небом, в ТЦ и т.д.).

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

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике