Расширенная регуляризация нейронных сетей в интернет-магазинах — с помощью… напалма

    Подмигнув дедушке Энштейну, поправив ранец с напалмом и пригладив стильную черную маечку с изображением формулы закона нормального распределения, ведущий аналитик распахнул двери PR-отдела, блистательно улыбнулся и спросил: «Ребят, продолжаете собирать e-mail клиентов в эксельках и креативите методом блуждания левой руки с закрытыми глазами?». Получив радостное «ага :-)», боец мысленно поблагодарил Джона Непера за проделанную работу на благо просвещения человечества и сокращение рутинного труда и… бодро нажал на гашетку.

    Альберт Энштейн всегда вдохновлял аналитиков на внедрение передовых алгоритмов

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

    «Вот это концентрация» — подумал аналитик, взял миниган и шагнул в отдел по работе с клиентами в CRM. «Ребят, клиентов сегментируете по числу подарков от них на новый год, а от слова 'кластеризация' начинает резко болеть голова в области лба?». Не дожидаясь ответа и нашептывая: «Я вас сейчас научу считать churn-rate и CLV в уме» — аналитик сделал шаг вперед и провалился в атмосферу магического мышления, суеверий и стим-панка.

    Стим-панк вроде о прикладной науке, но когда присматриваешься — магия, чистая магия!

    Впереди был отдел управления контентом, а из инструментов популяризации новых эффективных алгоритмов оставались квантовый аннигилятор и старенькая, но с хорошим тембром в стиле «BMW» — бензопила. Выбрав проверенную боевую подругу, аналитик тихо постучал в дверь контентного отдела, виновато вошел и спросил: «Продолжаете покупать на amazon и aliexpress — Ага!», «Продолжаете упорно не использовать персонализацию в каталоге интернет-магазина, не верить в ее эффективность и не пользоваться AB-тестированием — Ну конечно, все равно же что-то продается!». «Да пребудет с нами сила» — это последнее, что было услышано из уст санитара леса, пока его не успел заглушить звук заведенного мотора…

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

    «К вам на собеседование дата-сайнтист» — услышал прикорнувший на диванчике в обеденный перерыв покоритель многомерных пространств и… проснулся. Что за странный сон, к чему бы это? Ах да, мы же внедряем нейросети в интернет-магазине — за дело!


    «Какой мне странный сон приснился» – подумала Алиса и побежала домой, чтоб не опоздать к чаю.

    К чему это я? ) Проблематика поста проста — как заставить интернет-магазин приносить бОльшую прибыль при малых затратах на новейшие технологии машинного обучения. И как убедить владельца магазина и сотрудников — ими пользоваться! (и рука снова тянется к оружию)

    Софт — близок и доступен как никогда ранее


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

    Любите экстремальные удовольствия — да пожалуйста, «pip install» и, пока наливается чашечка кофе, на ноуте аналитика уже установлено все, что позволит поднять нейронку и потренировать на небольшом объеме данных. Получите результат на несколько процентов лучше.

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

    В общем, с технологиями сейчас все очень доступно и можно особо не думать — бери готовое с поддержкой тензоров и GPU, запускай на ноутбуке аналитика какую-нить готовую хрень на python, настраивай с боя ssh-проксирование и внедряй сервис для клиентов.

    Алгоритмы для интернет-магазина, которые скорее всего увеличат его прибыль


    Тут тоже все радужно и доступно. Пройдем по каждому.

    Персональные рекомендации


    Если данных относительно мало — бери готовый сжиматель матриц на Spark и готово. Если данных довольно много — можно засунуть их память и гонять классическую коллаборативную фильтрацию.
    Из свеженького и вкусненького и есть бюджет на кластер с GPU — можно попробовать приготовить Amazon DSSTNE. Тут коллеги обучают классический denoising autoencoder — который «восстанавливает» персональные рекомендации клиента. Моделька широко-плоская, зато матрички множатся кусками на разных ядрах/машинах и на C++, оставляя TensorSLOW далеко за бортом.


    Amazon DSSTNE получает от ооочень длинного вектора Товаров Пользователя значительно более короткую distributed representation (набор категорий/подкатегорий Товаров), которая потом расжимается в «полный» вектор рекомендаций Товаров Пользователю

    Для content-based рекомендаций можно сначала задействовать готовый поисковик, а затем посмотреть в сторону «смысловых векторов» слов и фраз — начав с Word2Vec или GloVe.

    Продвинутый поисковик


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

    Чатбот


    Чтобы научить чатбота отвечать на вопросы нужно… немало потрудиться головой и ручками. Проще всего сделать это на… регулярках и предикатах первого порядка, хранимых в базке типа MySQL. Еще можно сделать формочки с параметрами в стиле заказывания билетов на самолет в США. А на популярный вопрос «а как сделать чатбота на нейросети» — в ответ хочется истерически хохотать, вырывать листики из известной книжечки известного профессора, склеивать самокрутки и выпускать восьмерки на боку (символ бесконечности) в лицо вопрошающего.

    Автоматизация техподдержки


    Тут тоже готовая история с известными реализациями. Проблемы две: нужен большой корпус диалогов на языке магазина (а для русского языка ситуация с корпусами пока плачевная) и в Recall@5 будут попадать нерелевантные ответы, если пришел новый вопрос (да, да, та самая generalization), т.к. нейронные сети пока в основном помогают, лишь изредка выполняя работу лучше человека (а для этого нужно убиться, тренируя их).

    Next Best Offer


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

    Кластеризация клиентов


    Тут тоже давно все готово и легко развернуть за минуты. Можно определить целевые группы клиентов и бомбить их персональными рекомендациями!

    В нашем продукте мы реализовали пока часть этих алгоритмов: content-based рекомендации и коллаборативную фильтрацию. Ну чтобы было с чего начинать… сражение.

    А как доказать, что алгоритмы работают?


    Вот тут уже становится интереснее.

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

    И… и приехали!

    Доказать, что стало лучше и выделенные ресурсы на вумных ребят, много умных непонятных слов и еще более непонятных картинок в matplotlib окупаются — оказывается непросто, очень непросто.


    Страшные и непонятные картинки на ноутбуках аналитиков

    К большому и огромному сожалению, толковых статей и методик на тему «как доказать, что персональные рекомендации работают» на порядки-порядки меньше, чем увлекательных статей на тему GAN или по генерации порнографических изображений с помощью глубоких нейронок. А когда вчитываешься в то, о чем пишет тот же NetFlix, в то, как коллеги грубой эмпирикой, искренней верой и заклинанием вуду измеряют и совершенствуют свою рекомендательную систему — становится очень весело (вы статейки обязательно прочитайте, если не читали, там реальный опыт пионеров).

    По сути, все сводится к «вере» и интенсивному и постоянному AB-тестированию при котором часть клиентов проходят мимо обученных моделей, а часть — через алгоритмы машинного обучения.

    Постоянная обратная связь — обязательна


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

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

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

    Это еще не все. Сравнение работы алгоритмов, которые, как известно, могут взять и перестать работать (лучше, чем было до них) — требует постоянного измерения конверсии и AB-тестирования во всех структурных подразделениях: от отдела маркетинга до отдела по работе с клиентами. Иначе — вы получите красивую современную, дорогую (особенно если возьметесь за нейронные сети с GPU) и бестолковую игрушку и набор гуру в команду, говорящих на непонятном языке.

    Выводы. С чего начинать интернет-магазинам прыгать в уходящий поезд?


    1. Надеюсь стало понятно, что крупные игроки на рынке давно просчитали рост прибыли от использования машинного обучения для персонализации контента, активно развивают это направление, нанимают лучшие умы и эксплуатируют лучшее железо (GPU). Информации на тему эффективности в открытом доступе — днем с огнем не сыскать. Но судя по докладам на конференциях 1-2 модели из грубо 10 взлетают и позволяют не только увеличить конверсию, но и обойти конкурентов — став ближе к Клиентам.

    2. Пока вы не начали прозрачно и системно измерять конверсию — вам персонализация с помощью машинного обучения скорее всего не поможет и даже усложнит бизнес-процессы.

    3. После создания четких и постоянных метрик конверсии, учитесь проводить системное AB-тестирование изменений интернет-магазина, сделанных вручную (дизайн главной страницы поменяли, логику мастера заказа).

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

    5. Если ваша цель — вывести отдел по работе с клиентами на орбиту Марса, аналогично проследите, что список клиентов не находится в эксельке или переписке. Минимум — он должен быть в CRM. Затем с помощью примитивных техник (байесовский классификатор, логистическая регрессия) попробуйте, при включенном AB-тестировании, начать работать с churn-группами и привлекательными с помощью CLV-анализа Клиентами. Хорошенько подумайте, привлеките вумных аналитиков — как убедиться, что внедренные модели улучшили конверсию и релевантность предложений Клиентам. Это может оказаться гораздо сложнее — чем все вместе взятое и сделанное раньше :-) По секрету: конверсия станет гораздо выше, но доказать это австралопитекам — заявка на нобелевскую премию.

    6. После получения устойчивого результата и выстраивании базовых процессов в структурных подразделениях интернет-магазина можно подумать уже об увеличении качества алгоритмов с помощью нейронных сетей или привлечения более ценных специалистов датасайнтистов-аналитиков.

    Помните, что улучшать можно только то, что вы можете измерять!

    А если сделать иначе?


    Люди, к сожалению, в большинстве не любят меняться. Кто будет что-то улучшать на 5%, если и так работает и 20 лет до этого работало и «все так делают». Понятно, предложив в бухгалтерии провести «дискриминантный анализ Фишера» максимум, что вы можете достичь — это повысить у наиболее активных женщин, любящих умных мужчин, выработку гормонов. Но в основном — вас будут тихо ненавидеть :-) Единственный сотрудник, который скорее всего не откажется от лишних 5% конверсии и прибыли — это руководитель отдела продаж, но доказать ему, что персонализированный с помощью машинного обучения контент работает — вы не сможете без тяжелых наркотиков. Убедить 20 лет продающих без AI людей сможет только постоянно проводимое на сайте AB-тестирование в виде розовой кошечки и зеленого щеночка. Говорят, иногда помогают выкрашенные в белый цвет девушки с Физмата, рассуждающие о прелестях точных измерений всего и всегда — но найти этих богинь очень трудно, гораздо больше богинь, которые разбираются в соцсетях лучше, чем в работе собственного мозга.


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

    Итоги


    В общем, коллеги, работающего на 100% рецепта внедрить новые технологии персонализации и предиктивного маркетинга в интернет-магазин — нет. Иногда поможет децимация. Иногда — реализация наяву сна из начала поста. Но лучше, конечно, действовать терпением и любовью — если на них выделен бюджет :-) По опыту — нужна помощь и поддержка сверху и четко определенная цель: увеличить конверсию и постоянно это измерять и измерять. Ослабите хватку — останетесь с дорогой игрушкой и кучей новых неизвестных слов. Всем удачи и с наступающим — желаем побольше непрерывных ABCDE-тестирований в новом году!

    1С-Битрикс 90,29
    Компания
    Поделиться публикацией
    Комментарии 10
    • +1
      И вроде всё верно написано, но первые абзацы про сон явно лишние.
    • +1
      Люди, к сожалению, в большинстве не любят меняться.

      Это пишут люди, у которых в коде в одном файле намешаны PHP4 и PHP5 классы с var и без, а "новое продвинутое" API D7 это те же классы со статическими методами, но с наследованием и неймспейсами.

      • +1
        А теперь давайте возьмем процентное соотношение тех и других.
        Ставлю, что «правильно» работающих и 2% не наберется.
        • +1
          одно дело меняться самому, а другое — массивы кода менять :-)
        • +1
          Какой-то неприятный осадок от статьи. Не то, чтобы много непонятных слов, а та легкость, с которой автор ими манипулирует. А под ними в сути ссылки даже не на какие-то конкретные кейсы или туториалы, а просто ссылки на библиотеки и википедию. Причем ссылки подчас не ревалентные.

          Если простыми словами: как будто коммивояжер запудрил мне мозги «вжух»-магией, продал втридорога китайский пылесос и с веселым свистом уже удаляется от моего дома, а я думаю, зачем я это взял, и что мне с этим делать.
          • 0
            Ну почему-же ссылки нерелевантные, какая не туда ведет? Все, что в ссылках — я изучил не один раз и сделал не один прототип. В этой области работают не один год, пишу код и копаю очень глубоко на уровне и кода и библиотек и математики, могу пояснить подробно каждый пункт в деталях.
            • +2
              А мне понравилось.
              В начале конечно вода.

              Зато потом хорошая сжатая подборка.
              То, что нужно для вдумчивого изучения.
            • +1

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

              • 0
                Для небольших магазинов — тоже работает и хорошо! Если магазин сделан на нашей платформе — все уже включено и работает из коробки :-)

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое