Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Массовый скоринг в CRM – секреты и подводные камни

SECR 2019
November 15, 2019

Массовый скоринг в CRM – секреты и подводные камни

Александр Сербул
руководитель направления контроля качества и интеграции внедрений, 1С-Битрикс
SECR 2019

В докладе расскажем, как мы делали скоринг Лидов и других сущностей в массовой облачной CRM Битрикс24: от прототипа до “боевого” высоконагруженного веб-сервиса. Доклад будет полезен разработчикам, аналитикам, менеджерам, интересующимся вопросами скоринга, классификации в CRM и эффективного применения алгоритмов машинного обучения для решения бизнес-задач. Специально для SECR сделаем дополнительное техническое описание подробностей прототипа, алгоритмов и пр. Дополнительно готовы рассказать также о голосовом управлении в Битрикс24 и возможностях библиотеки DeepPavlov.

SECR 2019

November 15, 2019
Tweet

More Decks by SECR 2019

Other Decks in Programming

Transcript

  1. О чем поговорим 1) Как мы пришли к решению сделать

    массовый скоринг в CRM. Потребности бизнеса, клиентов, рынка. 2) Выбор технологического стека, первый прототип. 3) Полезные новейшие возможности Amazon Web Services и, вообще, облаков, для скоринга и других применений ML. 4) Эпопея по выбору фич. 5) Несбалансированные данные – как не сойти с ума. 6) Оптимизация моделей скоринга: grid, random, байес … 7) Внедрение скоринга в продукт – интерфейс дело тонкое и интеллектуальные барьеры. 8) Статистика по боевой эксплуатации проекта. 9) О чем мечтаем.
  2. CRM становятся все интереснее… Лид (lead) Некая контактная информация Город

    Канал регистрации Число и типы писем Число и типы звонков Число общений в «открытых линиях» Число и продолжительность встреч Число задач И многие другие Сделка (deal) Компания (company) Контакт (contact) Задача (task) Встреча (meeting)
  3. Каждая циферка – компания, многие - с данными в CRM

    1) Миллионы компаний- клиентов с кучей данных в CRM 2) Данные не должны простаивать  3) Мы поверили, что можно сделать универсальный алгоритм скоринга для разных фич, клиентов, видов бизнеса и взялись за дело …
  4. Почему людям может быть нужен скоринг Лидов и Сделок в

    CRM? • Много данных, с чего менеджеру начинать рабочий день? Геймификация. • Аналитика – непонятно, дорого?, абстрактно. Где взять настоящих аналитиков? • Лень думать, хочется БОЛЬШУЮ ЗЕЛЕНУЮ КНОПКУ • Любим одну циферку больше, чем несколько. Сжатая статистика… • Простота – залог надежности • Лента в Facebook и другие способы принятия решений • Верхние тарифы крупных вендоров: SalesForce, SAP …
  5. Выбор фич – основной секрет успеха - встречи с бизнес

    экспертами - анализ хранимых в Битрикс24 CRM сущностей - учет активностей Лида: звонки, письма, сообщения в открытую линию, встречи и т.п. - нормализация счетчиков по интервалам - распознавание телефонных разговоров с менеджерами, не содержащих персданных - анализ некоторых текстов переписки по email и в открытых линиях, не содержащих персданных - Лайки/дизлайки… У каждого клиента – уникальный набор фич.
  6. Как мы делали прототип … • Опыт прошлых проектов: рекомендательная

    система для интернет-магазинов (Apache Spark, Apache Lucene, Apache Mahout); чатботы (Deeplearning4j). • Технологический стек компании: PHP, JavaScript, C++, Java. • Технологический стек прототипа (август 2018): python, Jupyter Notebooks, scikit-learn, anaconda, pandas, seaborn. • Выгрузка датасетов CRM клиентов из Битрикс24 REST API • Первые фичи, встречи с экспертами бизнеса • Команда: 1 человек, 2 недели. • Трудности и методы их преодоления.
  7. Непростой выбор предиктивной модели для скоринга • Простые, интерпретируемые линейные

    модели ( + полиномиальное преобразование фич, kernel-trick) • Машина опорных векторов • Метод ближайших соседей • Машина факторизации • Деревья решений, xgboost • Нейронная сеть
  8. Сервис: «Amazon Machine Learning» - простая линейная и интерпретируемая модель:

    логистическая регрессия - админки для загрузки CSV, выгрузки предсказаний - базовые статистики по фичам: min, max, средние, гистограммы - просто отличная визуализация качества классификатора с возможностью поиграть с recall/precision - автоматическая «подгонка» модели под размер (feature pruning) - поддержка текстов: автосоздание корпуса, визуализация самых влияющих слов - деплой моделей под практически любые нагрузки - язык трансформации фич (биннинг, n-grams …)
  9. Несбалансированный датасет и оптимизация модели Эксперименты на прототипе: - “imbalanced-learn”:

    upsampling, downsampling - scikit-learn: grid, random-search - hyperopt – иногда лучше random-search, а иногда хуже  - другие модели: SVM, деревья разные и пушистые, до нейронок дело не дошло пока Что мы выбрали: - upsampling (простой, выборкой с повторением) - минимальный датасет: >2000 лидов или сделок - AUC, порог вероятности 0.5, пока без настройки - L2-регуляризация (поможет для коррелирующих фич), вопрос залу: почему не L1?
  10. Как поверить в модель? Я серьезно. Эксперименты на прототипе: -

    корреляционный анализ, pearson, kendall, копулы? - хорошенько глазками посмотреть распределения фичи и целевого признака и подумать - деревья, качество и отсутствие адекватности прогноза В Amazon Machine Learning: - посмотреть силу корреляции фичи с целевым признаком
  11. Как контролировать качество в «скоринге»? • Понять физику и химию

    Precision и Recall • Не увлекаться циферками: ROC AUC и т.п. Балансировка и AUC. • Очень неудачные термины: ошибка 1-2 рода, основная и альтернативные гипотезы • Посмотреть на полученный прогноз глазами менеджера, склонного к насилию, знающего ваш домашний адрес
  12. Метрики – только самые нужные • Precision – процент «мусора»

    в ответе –Точность работы поисковика • Recall – сколько данных удалось достать в ответе? – Сколько из того, что был должен дать реально дал
  13. Сравнение со случайным классификатором • Адаптировать метрики под сильно несбалансированный

    датасет • Почитать recall, precision, f1 и сравнить с полученным моделью • Искусство, никакой науки 
  14. Статистика и факты «с боя» - нагрузка Почти 700 моделей

    буквально в считанные дни поле запуска на ограниченную аудиторию … 1 модель – 1 компания
  15. Дальнейшие шаги • Оптимизация моделей внутри Amazon Sage Maker –

    random и байесовский поиск на кластерах. • Активное использование ClickHouse и python внутри компании. Внутренние скоринги для бизнеса и маркетинга. • Возможно частичный переход на более мощные модели внутри Amazon Sage Maker. • Развитие продуктовой аналитики и предиктивного маркетинга на основе данных (которых все больше и больше и больше и больше).
  16. Сервис «Amazon Sage Maker» • Немало встроенных МАСШТАБИРУЕМЫХ алгоритмов •

    Поддержка работы с Jupiter Notebooks (kernels: Python 2 and 3, Apache MXNet, TensorFlow, and PySpark) • Авто-масштабирование, развертывание, A/B- тестирование • Оплата только за хостинг железа для моделей • Можно поднимать машины с GPU
  17. Больше моделей, хороших и понятных! Маркетинг Купит Лопату? Станет платником?

    Уйдет к конкуренту? Принесет больше $1000 в год Купит Машину?
  18. Внедрение ML в продукты для оптимизации продаж Уйдет к конкур

    енту? Станет платник ом? Принесет больше $1000 в год Уйдет, p=0.7 Станет, p=0.73 Да, p=0.84 Менеджер по особо важным клиентам Купит Товар 1? Купит Товар 1? Купит Товар 1? Купит Товар 1? Купит Товар 1? Интерес уется вином №129? Персональная рекомендация (коллаборативная) Персональная рекомендация (content-based) Чем удержать «важного» клиента? Персональное предложение, от которого сложно отказаться Марк етинг
  19. Итоги • Простая модель (логистическая регрессия) – работает, на удивление,

    хорошо • Правильные интерпретируемые фичи – ключ к успеху и универсальным моделям • Перед предиктивными моделями нужна хорошая, понятная аналитика и интенсивные коммуникации с экспертами бизнеса • Сейчас довольно просто развернуть подобный массовый ML- сервис в облаке, например Amazon, Google в разумное время
  20. Чатботы – технологии «попроще» •Регулярные выражения •Примитивные «движки» с правилами

    •Заполнение цепочки форм •Вычленение фактов из теста и выполнение действий •api.ai – простой движок на веб-хуках
  21. Чатботы – фреймворки, элементы Google Cloud Natural Language API, Amazon

    Comprehend •Анализ тональности текста •Выявление намерения (категория) •Вычленение сущностей (личности, места, даты и т.п.) •Синтаксический разбор (части речи) •Ключевые слова •Определение языков
  22. Deeppavlov.ai •https://deeppavlov.ai •http://ipavlov.ai •Очень интересные, мощные архитектуры моделей и нейросетей

    •Есть готовые «русскоязычные» модели •Отличная поддержка на форуме: https://forum.ipavlov.ai
  23. Deeppavlov.ai - возможности • Определение намерения, тональности • Морфологическая разметка

    (11 языков, в т.ч. русский)! • Определение сущностей (имена, места, организации, даты, количества) с быстрым стартом • Семантическое ранжирование! • Коррекция правописания • Ответ на вопрос цитатой из контекста
  24. Чатботы – элементы Морфологический словарь? Словарь синонимов? Семантический граф? Гипонимы/гиперонимы

    Устранение неоднозначностей… Национальный корпус русского языка…
  25. Чатботы – кейсы применения • Узкая специализация: пиццерия, магазин, справка

    (ИНН), база знаний, распознавание изображений • Сбор фактов и выполнение действия (заказ пиццы, билета) • «Точечное» машинное обучение: анализ тональности, классификация, вычленение фактов
  26. Чатботы – кейсы на Битрикс24 • Можно использовать в открытых

    линиях в >100к компаний Битрикс24 • Можно использовать в CRM • Можно использовать в мессенджере • Современная, удобная платформа для интеграции
  27. Бот плафторма Битрикс24 • Можно писать на любом языке •

    Неплохая документация с примерами • Есть заготовка на PHP • Веб-хуки
  28. темы доклада Наши эксперименты Наши эксперименты: Ф.М. Достоевский, "Преступление и

    наказание“ Число слоев сети: 2 Число нейронов в каждом слое: 400 Коэффициент встряхивания "мозгов" (dropout): чуть больше единицы Память сети: 50 символов назад Число параметров, которые мы учим - меньше миллиона.
  29. темы доклада Наши эксперименты: Л.Н. Толстой, "Война и мир" Число

    слоев сети: 3 Число нейронов в каждом слое: 400 Коэффициент встряхивания "мозгов" (dropout): чуть больше единицы Память сети: 150 символов назад Число параметров, которые мы учим - несколько миллионов Наши эксперименты
  30. темы доклада Наши эксперименты: Код ядра Битрикс 3-х слойная сеть,

    размер слоя: 400 нейронов, несколько миллионов параметров, память: 150 символов назад, обучение - ночь Наши эксперименты
  31. «Нейробот» Embedding+encoding - каскад сжатия вопроса/контекста (RNN/FF/CNN, softsign, adam) Слой

    векторного умножения (dot product) либо другой kernel Корректирующий слой (feed forward + softmax) Ответ сети: похожесть вопроса и ответа (0-1) TF-IDF/Ngram – токенизация TF-IDF/Ngram - токенизация Embedding+encoding - каскад сжатия ответа (RNN/FF/CNN, softsign, adam) "Вопрос" "Ответ" Кластер веб-серверов, Кэширование, REST-API GPUs (TitanX) Возможные ответы на контекст Глубокая нейронная сеть с двумя входами и одним выходом с адаптивной архитектурой. Внутри сети происходит совмещение семантических пространств вопросов и ответов. В 2017 году – сделали совместный пилот с мэрией Москвы
  32. Где брать людей в команду? •Акселераторы, хакатоны •Физтех-акселератор (pha.vc) •Сообщество

    «OpenDataScience» (ods.ai) •aione.world, «ScienceGuide» Синергия, синергия, синергия…
  33. Где брать людей в команду? •Бигдата: хорошие программисты и опытные

    сисадмины – 1 штука на проект •Создание/тюнинг моделей: физматы – 1 штука на отдел •Product owner с обновленным мозгом – 1 штука на проект(ы) •Менеджеры – 1024 килограмм  •python, java, unix, spark, scala, julia