Эта запись первоначально появилась в блоге Atrium. Автор Сакет Чатурведи.

Проблемы машинного обучения можно условно разделить на две части:

  1. Под наблюдением. Благодаря контролируемому обучению мы знаем, что хотим предсказать. В частности, мы знаем, что такое целевая переменная.
  2. Без присмотра. При неконтролируемом обучении мы не знаем, что хотим предсказать. В частности, мы работаем с необработанными данными, и у нас нет конкретной целевой переменной, определенной или доступной.

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

Всегда ли нам нужен инструмент autoML для реализации этих решений? Нет. Давайте рассмотрим сценарий, в котором клиенты могут внедрить решение для машинного обучения и интегрировать его обратно в Salesforce, чтобы получать прогнозы и предпринимать действия:

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

Что такое Героку? Как это работает с Salesforce?

Heroku — это облачная платформа как услуга (PaaS), обеспечивающая поддержку различных языков программирования с открытым исходным кодом. Открытый исходный код для Heroku — то же, что Apex и Lightning для Salesforce. Это позволяет разработчикам беспрепятственно создавать, запускать и масштабировать приложения.

Для взаимодействия с Salesforce Heroku предоставляет службу интеграции под названием Heroku Connect, которая обеспечивает двунаправленную синхронизацию данных между Salesforce и Heroku PostgresSQL.

3 компонента, которые будут задействованы при реализации решения

Heroku Connect
Он обеспечивает двунаправленную синхронизацию данных между объектами Salesforce и Heroku Postgres. Его можно легко настроить с помощью учетной записи Heroku, и он предоставляет интерфейс «укажи и щелкни» для настройки.

Heroku Postgres
Это облачная база данных как услуга для Heroku. Он основан на PostgreSQL, базе данных с открытым исходным кодом.

Платформа Heroku
Мы можем понимать платформу Heroku как место, где выполняется код. Он предоставляет вам виртуальные контейнеры (иначе dynos), которые запускают приложения, которые могут быть написаны на различных языках программирования. Масштабируемости можно добиться, просто увеличив количество динамометров, которые приложение может использовать для выполнения.

Архитектура высокого уровня

Вышеупомянутая архитектура использует Heroku Connect для двунаправленной синхронизации между Salesforce и Heroku Postgres для получения данных и обратной записи любых обновлений в объекты Salesforce.

Вот несколько моментов, касающихся архитектурных компонентов:

  • Postgres хранит данные Salesforce в реляционных таблицах и создает настраиваемые таблицы для хранения промежуточных результатов. Другими словами, Postgres работает как источник данных, а также как промежуточный слой.
  • Python используется для преобразования данных, разработки функций, обучения моделей и задач прогнозирования.
  • Heroku предоставляет платформу для размещения сценариев Python и выполнения соответствующего кода.

Пошаговый подход к решению нашей проблемы из предыдущего

Возвращаясь к проблеме, о которой мы говорили ранее:

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

Вот пошаговый подход к использованию вышеуказанной архитектуры для решения проблемы:

Шаг 1. Определите данные для поддержки решения

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

Чтобы просмотреть результаты в Salesforce, нам потребуется создать поле в объекте возможности, в котором будут храниться результаты кластеризации.

Шаг 2: Настройте Heroku Connect и Postgres

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

Настройте базу данных Postgres для использования с вашим приложением Heroku для синхронизации данных. Синхронизация должна быть настроена как двунаправленная для объекта, для которого вы хотите записать прогнозы. Это будет объект возможности.

Шаг 3: Манипуляции с данными, очистка, проектирование признаков и моделирование

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

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

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

  • Numpy — научные вычисления.
  • Pandas — чтение/запись наборов данных
  • Sklearn — библиотека машинного обучения.

Numpy и Pandas позаботятся о любых вычислениях данных и манипуляциях, необходимых для задачи, и о создании данных для обучения алгоритму кластеризации.

Для обучения и прогнозов мы будем использовать Sklearn. Как только модель обучена, мы извлекаем ее в виде файла рассола. Простыми словами, файл pickle — это представление вашего объекта в виде потока байтов. Чтобы использовать его снова, вы выполняете обратную операцию.

Шаг 4. Разверните код на Heroku и запланируйте задания для выполнения скриптов.

После создания всех сценариев для извлечения, обработки данных, разработки функций и обучения моделей разверните код в Heroku. Здесь для простоты мы будем использовать GitHub в качестве репозитория кода. Heroku обеспечивает прямую интеграцию с Git для развертывания кода.

Планировщик Heroku будет запускать сценарии прогнозирования через определенные промежутки времени, чтобы извлекать данные из Postgres, выполнять прогнозы и обновлять таблицы Postgres. Прогнозы будут записаны обратно в объекты Salesforce с помощью синхронизации Heroku Connect, которую мы настроили на первом этапе.

Вариант использования заканчивается здесь?

Нет. Прогнозы можно использовать двумя способами:

  1. Покажите его в записях Salesforce и позвольте пользователю выполнить действие.
  2. Используйте вывод в Einstein Discovery, чтобы предсказать другой результат.

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

Таким образом, решение расширяется от использования пользовательской модели машинного обучения до использования пользовательской модели машинного обучения с Salesforce Einstein для создания надежного решения, которое может удовлетворить множество бизнес-задач. Более того, Salesforce Einstein работает с настраиваемой моделью и предоставляет рекомендации о том, как можно улучшить результаты, а также дает представление о причинах получения прогноза.

Это лучше, чем использование инструмента AutoML?

На этот вопрос нет однозначного ответа. Решения могут быть реализованы с использованием языков программирования, таких как Python, которые дают вам свободу реализации решения, полностью адаптированного к требованиям заказчика.

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

Где еще это может помочь?

Проекты машинного обучения — это не только получение прогнозов и создание историй. Данные не всегда настолько чисты, насколько нам хотелось бы. Такой подход позволяет реализовать:

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

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

Что вы порекомендуете для организации и координации всех этих мероприятий?

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

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

Получите помощь по внедрению пользовательской модели машинного обучения и ее интеграции с Salesforce

Здесь мы рассмотрели простую структуру того, как мы можем реализовать пользовательскую модель машинного обучения и интегрировать ее с Salesforce с помощью Heroku. Эту платформу можно использовать с другими решениями PaaS, которые обеспечивают возможность размещения вашего кода и могут быть интегрированы с Salesforce.

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