Записки из промышленности

Как машинное обучение интерпретирует проблемы и сокращает расходы для компаний электронной коммерции

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

Прежде чем мы углубимся в решение, вот проблема.

Компания столкнулась с высокой вероятностью неудачной доставки, когда покупатели (те, кто покупал товары на платформе электронной коммерции, такой как Shopee, Lazada, Amazon, eBay и т. Д.), Отклоняли свои посылки в самую последнюю минуту. Это было потрачено впустую огромной суммы денег, и Правление хотело снизить эту ставку.

Два года назад я впервые взял на себя новую роль и возглавил группу данных. Однажды произошла важная встреча, и я был единственным специалистом по обработке данных в комнате, заполненной руководителями высшего звена. Люди присутствовали на одной из этих последующих встреч, обсуждая общее количество случаев неудавшейся доставки (FD), их прирост, потенциальную первопричину каждый случай, основные причины, его тенденции и многое другое, в то время как я был единственным, кто ничего не знал. Я впервые столкнулся с этой неприятной проблемой.

Что случилось в той переговорной?

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

  1. Группа The Questioning: генеральный директор, финансовый директор, отдел маркетинга, они задали массу вопросов. Большинство вопросов начиналось с «Что» и «Почему», некоторые другие были «Как сделать» и «Что, если» .
  2. Группа отвечающих: CDO, CCO, BI Team, они ответили примерно на 30% заданных вопросов, большинство из них ответили для группы «Что» и «Почему», а группы «Как сделать» и «Что, если» остались без ответа.

(конечно, была 3-я группа, которая молчала, это была я)

Это была двухчасовая встреча, и я совершенно растерялся с первых минут. Спустя 1,5 часа я начал спрашивать себя: «Что здесь происходит? Это не обсуждение, это расследование ». Люди пытались понять, что произошло и почему это произошло, но они не могли предотвратить это в будущем. Они также выдвинули некоторые гипотезы, основанные на результатах группы данных. К сожалению, эти гипотезы казались не такими последовательными и почти ничего не доказывали.

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

Ловушка традиционного подхода

Признайтесь, вы тоже видели здесь проблему своей компании? Были ли вы когда-нибудь в дискуссии, где бизнес-команда или финансовая команда постоянно спрашивали о причине возникновения этой проблемы. Затем они также ставят вас в определенные обстоятельства, такие как «что, если мы сделаем это или «Я думаю, это произошло из-за этого ». И вы, как специалист по работе с данными, смотрели бы на свои данные, выполняли то, что вы называли анализ, и выходы были в основном Да / Нет или Истина / Ложь. .

Эта процедура называется проверкой гипотез, которая:

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

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

Проблемы этого подхода:

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

Тогда как выбраться из этого лабиринта?

НЕ доверяйте никаким случайным гипотезам

Довольно иронично сказать, что, поскольку я являюсь частью группы данных, единственное, чему я доверяю, - это свои данные. Гипотеза может исходить от любого, кто вовлечен в проблему, это выглядит как необработанный набор данных. Прежде чем тратить на это свое время, я должен его проверить, очистить, отсортировать (как и то, что я делаю со своими данными), чтобы обеспечить наилучшие результаты. Тогда возникает вопрос: «как мне узнать, какая гипотеза полезна, а какая бесполезна?». Ах да, «вы должны протестировать это, используя свои данные», вы, должно быть, думаете об этом, не так ли? Но подождите, вы не должны просто проверять все гипотезы в списке, вы его очищаете, верно? Бинго, тупик найден.

Позвольте мне резюмировать всю процедуру:

В тот момент я понял, что настоящая проблема исходит от людей, а не от гипотезы или данных, потому что источником гипотезы может быть любой человек. Что, если у них недостаточно знаний, чтобы понять и проанализировать проблему? У них не будет возможности выдвигать гипотезы! Несмотря на то, что они могут предложить некоторые гипотезы, это не будет лучшим решением, потому что все люди и все имеют свои ограничения. Лучшее решение должно быть создано с помощью компьютеров, согласны? Тогда как использовать вычислительную мощность машин для решения этой проблемы?

Вместо этого спрашивайте у компьютеров гипотезы!

У меня просто возникла идея : «Почему бы мне просто не вложить все в какой-нибудь алгоритм неконтролируемого обучения, чтобы проверить, каковы результаты, а затем передать это бизнес-команде и позволить им проверить? ”

Да, я так думал, пока другие люди думали над новыми гипотезами и сверялись с моей командой!

Тут же я решил извлечь 10% данных и поместить их в алгоритм дерева решений. Код был готов к использованию (конечно, я сделал шаблон кода для повторного использования, просто нужно было изменить только набор данных), набор данных с 12 000 записей был очищен. На получение результата у меня ушло почти 2 минуты.

Точность - не единственная цель

Хорошо, если вы опытный специалист по анализу данных, у вас возникнет вопрос: «Почему вы не применили предварительную обработку и разработку функций, прежде чем использовать свой прогноз?». Это хороший вопрос! Мой ответ: «вовремя». На самом деле я не хотел получать высокоточные прогнозы, мне просто нужно было видеть «как выглядят мои данные и важность каждой функции». В реальной жизни вам в основном приходится жертвовать качеством (в данном случае точностью) и временем ответа (как долго вы можете понимать свои данные в этом случае). Конечно, компания не будет ждать слишком долго, чтобы получить решение от группы данных, им просто нужно что-то достаточно разумное, чтобы принять решение. Это еще одна ловушка для специалистов по анализу данных, когда они, как правило, тратят много времени на получение наилучшей модели прогнозирования. Вот небольшая диаграмма компромиссов, которую вам нужно понять:

Давайте поговорим о дереве решений

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

Дерево решений - это алгоритм в группе классификации, которая является подмножеством контролируемого обучения. Результатом этого алгоритма может быть двоичное значение, такое как Истина / Ложь, или Да / Нет, или Хорошо / Плохо, или Мужской / Женский или просто 0/1. Иногда результат может быть группой ярлыков, например Красный / Зеленый / Синий, или Низкий / Средний / Высокий или XS / S / M / L /. XL (размер футболки).

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

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

Попробуйте интерпретировать вашу модель

Вам должно быть интересно, почему я выбрал Дерево решений вместо Случайного леса или Логистической регрессии. Причина в следующем: Я искал гипотезу, а не предсказание.

У нас есть много алгоритмов машинного обучения, и их можно сгруппировать как контролируемые, неконтролируемые, регрессионные, классификационные и т.д. False или любой другой вид классификации, который вам нужен), вы можете использовать любой алгоритм из группы Classification. Но не рекомендуется использовать только один алгоритм вместо других или использовать их случайным образом. В чем проблема в нынешней ситуации? Его:

«Как снизить количество случаев, когда доставка не выполняется?»

Это не «что будет, если я дам вам новую информацию о заказе?» Будет ли он доставлен успешно или нет? ». Так, например, если вы выбираете логистическую регрессию, вы можете предсказать результат, но не знаете, как его предотвратить. Это еще одна большая ловушка для Data Team, особенно для инженеров машинного обучения, которые продолжают сосредотачиваться на своем алгоритме и теряют связь с бизнес-командами. Фактически, я и моя команда совершали одну и ту же ошибку в прошлом, поэтому не беспокойтесь, если у вас была такая же проблема. Хорошая новость в том, что теперь у нас есть урок и опыт.

Итак, среди этих алгоритмов Decision Tree - самый простой способ интерпретировать ваши данные (KNN и SVM тоже хороши, но в этом блоге я выбрал Decision Tree, потому что это самый простой способ).

Уроки, которые мы извлекли из Дерева решений

Давайте углубимся в вывод дерева решений, у нас есть 3 верхних ветви:

  1. succ_mord_cnt_std: эта функция представляет общее количество заказов / бронирований, которые Покупатель успешно заказал (заказал и получил).
  2. payment_type: эта функция отображает способ оплаты покупателем этого заказа / бронирования. У нас есть много разных способов, таких как: оплата кредитной картой, стоимость доставки, банковский перевод, код ваучера, внесение 50% стоимости… И я сделал быстрое кодирование меток для этой функции перед запуском этого примера .
  3. total_paid_amt: эта функция представляет общую стоимость того заказа / бронирования, которое было оплачено.

Хорошо, после проверки трех верхних веток я попытался интерпретировать каждую из них как одно предложение «если Покупатель этой посылки [что-то сделал], то эта посылка потенциально будет доставлена успешно » вроде:

  • Первое отделение: если покупатель этой посылки уже заказал более 12 заказов / бронирований в прошлом, то эта посылка потенциально будет успешно доставлена. .
  • Вторая ветвь: если Покупатель этой посылки использовал метод ≤ 0,5 (это «оплата кредитной картой» который был закодирован), то эта посылка потенциально будет успешно доставлена.
  • Третье отделение: если покупатель этой посылки приобрел на общую сумму менее 30 750 донгов (то есть эта посылка стоила менее 30 750 донгов) , то эта посылка потенциально будет успешно доставлена.

После этого я попытался понять свою гипотезу, используя нетехнические навыки (или свой здравый смысл), и объяснил ее бизнес-группе следующим образом:

  • Первая ветвь: для всех покупателей, которые заказали менее 12 заказов / бронирований в прошлом, они являются новыми пользователями, они могут рассылать спам (делать поддельные заказы), поэтому они относятся к группе высокого риска. которые потенциально не получают посылку или просто потому, что они новичок в платформе, поэтому они разместили заказ случайно, возможно, они хотели отменить свой заказ, но не знали, как это сделать. С другой стороны, покупатель, который заказал более 12 заказов / бронирований, является своего рода лояльным пользователем (часто покупающим товары на нашей платформе), и мы можем им доверять. Итак, если покупатель этой посылки уже заказал более 12 заказов / бронирований в прошлом, то эта посылка потенциально будет успешно доставлена.
  • Второй филиал: для всех покупателей, которые используют кредитную карту для оплаты, это те, у кого есть работа (банкир выдает кредитную карту только тому, у кого высокий кредитный рейтинг, а тот, у кого есть работа со стабильным доходом), поэтому у них достаточно денег, чтобы покупать товары (даже если они передумают, они примут товары, потому что для них это не имеет большого значения). Или, можно сказать, люди, которые не совершали авансовый платеж, позже передумают, или они потратят все свои деньги и не смогут заплатить, когда они будут доставлены, или, что бы там ни было, у нас нет никаких гарантий от них, поэтому если Покупатель этой посылки использовал метод ≤ 0,5 (это было закодировано «оплачено кредитной картой»), то эта посылка потенциально будет успешно доставлена.
  • Третье отделение: для всех дорогих посылок (стоимостью более 30 750 вьетнамских донгов), не оплаченных авансом, существует высокий риск возврата (допустим, если я заказал в вашем магазине телевизор с диагональю 70 дюймов). без предоплаты, как вы думаете, я получу его и заплачу деньги после того, как вы доставите его мне домой? Вероятность 50–50 или даже меньше 50%). Итак, если покупатель этой посылки приобрел на общую сумму менее 30 750 вьетнамских донгов (то есть эта посылка стоила менее 30 750 вьетнамских донгов, что эквивалентно 1,2 доллара США), то эта посылка потенциально будет успешно доставлен.

Вот краткое изложение гипотез, которые я интерпретировал из Дерева решений на нетехнический язык:

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

Современные проблемы требуют современных решений

Хорошо, после долгого процесса, теперь у нас есть 3 гипотезы, сгенерированные алгоритмом машинного обучения, давайте посмотрим, как бизнес их решит, и закроем дело? Нет! Пора немного сменить тему. Давайте проверим наши 3 гипотезы:

  1. Количество заказов в прошлом
  2. Способ оплаты
  3. Стоимость бронирования

… Чему вы научились у них? Это человеческое поведение!

Основываясь на моем личном исследовании с командой Customer Insight, когда я работал в компании Nielsen, я обнаружил, что наше поведение определяет наши действия, что косвенно означает: вы можете изменить действия людей, изменив их поведение. Тогда как обратиться к нашей проблеме?

  • Что касается проблемы «Количество заказов в прошлом», мы можем сотрудничать со службой поддержки клиентов, чтобы оказывать дополнительную поддержку новым пользователям, продолжать отслеживать их заказы и принимать надлежащие меры, например поднимать трубку и подтверждать их заказы, когда они размещали любой крупный заказ. Или мы можем дать им дополнительные инструкции о том, как размещать заказы, как связаться с нами, когда им понадобится помощь, и как отменить любой заказ, когда они потеряют интерес.
  • Для решения проблемы «Способ оплаты» у нас была кампания, в которой мы зарезервировали 30 000 донгов (эквивалент 1,2 доллара США) и разделили их на 3 ваучера (по 10 000 донгов за каждый). Когда они разместили заказ и выбрали метод «Стоимость доставки», мы предложили им ваучер (10 000 вьетнамских донгов) для снижения стоимости доставки, если они согласились перейти на другой метод предоплаты. Конечно, мы предложили им «запомнить мой способ оплаты», чтобы они использовали его позже (на самом деле, именно так мы заставляем их снова использовать этот метод в будущем), и продолжаем делать это 3 раза. В большинстве случаев нам удавалось сохранить их с использованием метода предоплаты после 3-го заказа, и они продолжают использовать его навсегда. После этого во второй кампании мы применили первые 3 платы за бесплатную доставку, чтобы повысить эффективность.
  • Для проблемы «Стоимость бронирования» мы использовали тот же метод с проблемой «Количество заказов в прошлом», позволяя колл-центру продолжать взаимодействовать с покупателями, у которых дорогостоящие покупки.

BLUF

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

Однако угадайте, что я получил после пары кампаний? Уровень неудавшейся доставки снизился на 7% по сравнению с тем же периодом прошлого года! Это величайшее достижение, которое моя команда внесла в организацию после более чем 2-х летнего столкновения с высоким уровнем FD и более 6 проектов, направленных на снижение скорости FD (и все они были провалены, потому что их возглавляли бизнес-команды, который придерживался традиционного подхода).

А теперь давайте посмотрим, что мы обсуждали!

3 распространенных ошибки:

  1. получение гипотез от случайных людей;
  2. тратить слишком много времени на улучшение своей модели;
  3. выбор неправильного алгоритма, который невозможно интерпретировать.

Важные примечания:

  1. наше поведение движет нашими действиями;
  2. Ценность Data Team состоит в том, чтобы помочь бизнесу обрести ценность (на самом деле, это не наши крутые модели прогнозирования);
  3. современные проблемы требуют современных решений;
  4. если это не работает в течение длительного времени, прекратите это делать (но вы можете сделать это наоборот)

Счастливого обучения каждый день!