Бывает, что привычные A/B-тесты кажутся слишком сложными или затратными, и возникает соблазн искать быстрые альтернативы. Но насколько они эффективны?
Меня зовут Сима Гиззатуллина, я продуктовый аналитик в Lamoda Tech. Я расскажу, как мы искали инструмент для оценки контентного продукта, какие подводные камни обнаружили, и почему в итоге простые пути оказались не такими уж простыми. Поделюсь, как проводили исследование от построения модели атрибуции до разных сортов мэтчинга, и к чему в итоге пришли.
Что такое продукт Discovery?
Изучая наших пользователей, мы поняли, что иногда они листают приложение без конкретной цели или ищут вдохновение для нового образа. Чтобы помочь им определиться с выбором, в Lamoda создали раздел «Идеи», который внутри команды назвали Discovery. Это контентный продукт, где мы исследуем моду и предлагаем пользователям идеи для формирования их собственного стиля.
Discovery состоит из трех частей:
1. Онлайн-журнал про лайфхаки и крутые стилистические решения от наших редакторов.
2. Женские и мужские образы, которые составляются стилистами.
3. Актуальные сезонные подборки товаров от стилистов и блогеров.
Для роста любого продукта важно понимать направление развития и отслеживать, верно ли мы по нему двигаемся. И как любому продукту, Discovery была нужна своя аналитика. За год мы выстроили с нуля аналитическую основу, исходя из пирамиды потребностей.
Когда мы удовлетворили базовые потребности, то начали задаваться более высокоуровневыми вопросами. В частности, нас интересовало, приносит ли наш продукт выгоду компании?
Наш продукт ориентирован больше на вдохновение, чем на продажи. Его основная цель — вдохновлять пользователей и повышать осведомленность о мире моды, выполняя еще и просветительскую функцию, а не просто генерируя доход. Из-за этого оценить эффективность Discovery становится довольно сложно, так как он не приносит прибыли напрямую. Как же тогда проанализировать успешность продукта?
А что А/Б?
И правда, при запуске любой фичи, а тем более крупного продукта, стандартной практикой является проведение A/B-теста. После подтверждения положительного влияния на бизнес нововведение распространяют на всех пользователей. Продукт Discovery тоже прошел A/B-тест, но метрики остались серыми. Несмотря на это, решение о его запуске было принято, так как на тот момент Discovery рассматривался как имиджевый продукт, выделяющий Lamoda среди других компаний в сфере e-commerce. С тех пор прошло более трех лет, продукт значительно эволюционировал и улучшился, поэтому мы вновь вернулись к вопросу его эффективности для бизнеса.
Изначально мы рассматривали вариант провести ухудшающий А/B-тест, то есть отключить у части пользователей контент Discovery и посмотреть, что изменится в их действиях. Но это оказалось слишком дорого и тяжело, потому что:
В приложении много точек входа в Discovery-контент. Отключить их все и ничего не сломать выглядело нереальным.
Мы целились в денежные метрики, а прокси-метрики нам не подходили, поэтому результатов эксперимента пришлось бы очень долго ждать.
Исходя из этого, мы решили, что можно обойтись без А/Б-теста, и попробовали зайти к оценке продукта с других сторон.
Атрибутируем продажи к просмотру контента
Почти в каждом контенте Discovery (подборках, статьях, образах) есть ссылки на конкретные товары. Когда пользователь покупает товар после просмотра контента, и мы понимаем, что атрибуция сработала, это значит, что мы принесли компании профит. Для этого необходимо знать, какой путь проходит пользователь от просмотра контента до заказа. Есть три варианта:
Тривиальный: открыл статью → увидел товар → открыл карточку товара → добавил в корзину → заказал.
Более сложный: открыл статью → увидел товар → открыл карточку товара → добавил в избранное → спустя время перенес в корзину → заказал.
Дополнительный: открыл статью → увидел товар → добавил товар в избранное, не открывая его карточки → спустя время перенес в корзину → заказал.
Изучив пути пользователя от контента до покупки, мы пришли к следующей схеме, где прописали его шаги:
Сколько времени может пройти между обозначенными шагами? Чтобы узнать это, определяем окна атрибуции. Для этого посчитаем все временные промежутки между всеми шагами, описанными выше, и возьмем 90-й перцентиль как искомое окно.
В результате на выходе получаем изменение денежных метрик по времени в разбивке по типам контента. Например, видим, что образы от стилистов оказываются более эффективными в денежном эквиваленте, чем подборки блогеров.
Плюсы атрибуции:
Можем сравнивать виды контента внутри Discovery между собой и отслеживать динамику.
Можем смотреть на эффективность внутри контента — например, сотрудничество с какими блогерами приносит более высокие результаты.
Но есть и минусы:
Атрибуция не учитывает мультиканальность. Если пользователь увидел один и тот же товар в разных продуктах Lamoda — в каталоге, поиске, на полках рекомендаций, мы это не можем учесть.
Атрибуция работает локально. Мы не можем сравнивать контент Discovery с остальными продуктами Lamoda и сказать, что Discovery эффективнее, чем рекомендательная система.
Кажется, описанный подход не может достоверно ответить на вопрос о влиянии продукта на метрики компании. Поэтому мы решили обратить фокус на поведение пользователей.
Гипотеза №1: контент мотивирует пользователей качественнее использовать приложение
Мы предположили, что при одинаковой частоте заходов в приложение за определенный период пользователи, взаимодействующие с продуктом Discovery, будут более качественно использовать приложение, чем те, кто не пользуется Discovery.
Под более высоким качеством использования мы понимаем более высокие значения следующих метрик:
количество добавлений в корзину;
количество добавлений в избранное;
выручка.
Например, user1 зашел в приложение пять раз за одну неделю. User2 тоже зашел в приложение пять раз за одну неделю, но еще прочитал статью из Discovery и пролистал подборку образов. Наша гипотеза состоит в том, что user2 будет чаще добавлять товары в корзину и в избранное, и генерить больше выгоды.
А кого считать активным пользователем Discovery? Для этого мы провели анализ активности пользователей за продолжительный период времени и сегментировали их на основе двух критериев:
Частота использования приложения/сайта Lamoda: количество дней активности.
Доля дней, в которые пользователь взаимодействовал с контентом Discovery: % от общего числа активных дней.
На основе этих критериев мы экспертно установили порог, при котором пользователь считается активным пользователем Discovery — 33% от всех активных дней. Для визуализации распределили пользователей по квадрантам, чтобы затем понять, как дальше проводить исследование.
Затем выбрали группы для сравнения:
активные юзеры, которые смотрели контент Discovery (тест);
активные юзеры, которые не смотрели контент Discovery (контроль).
Однако сравнивать эти группы напрямую не корректно, потому что уровень активности этих пользователей может различаться, достаточно хотя бы сравнить среднее количество активных дней между группами. Чтобы сделать эту разницу более наглядной, построим график распределения пользователей по числу активных дней
Чтобы уравнять графики, мы применили метод Simple Matching. Для каждого пользователя из тестовой группы был подобран максимально похожий пользователь из контрольной группы. Сходство оценивалось на основе единственного показателя — количества активных дней в приложении. Как выглядит распределение пользователей после мэтчинга:
После мэтчинга мы принялись считать метрики качества использования приложения. И получили такие показатели активных пользователей Discovery:
Разница между активными юзерами Discovery и остальными, % | |
Количество добавлений в корзину | +122% |
Количество добавлений в избранное | +17% |
Выручка | +22% |
То, что мы сделали, называется квазиэкспериментом. Он отличается от А/В-тестирования тем, что у нас нет рандомизированного разделения пользователей. То есть мы с помощью различных инструментов подбираем тест и контроль таким образом, чтобы юзеры были максимально друг на друга похожими с единственной лишь разницей — наличием/отсутствием исследуемой фичи.
Итак, результаты получились отличные. Можно презентовать менеджерам и закрывать эпик в Jira? Но это была только первая, верхнеуровневая итерация исследования. К тому же у бизнеса появилась следующая гипотеза, которую очень хотелось проверить.
Гипотеза №2: контентный продукт влияет на удержание пользователей
Возникло предположение, что пользователи, которые активно пользуются продуктом Discovery, потребляют контент и вдохновляются стилем, как следствие, проявляют более высокую лояльность к Lamoda и возвращаются в приложение снова и снова.
После доработки конкретная гипотеза звучала так: через месяц активный пользователь Discovery вернется в приложение с бóльшей вероятностью, чем неактивный.
Чтобы это проверить, мы решили провести еще один квазиэксперимент с применением новых инструментов (среди них PSM, Diff in Diff и другие).
Обращаемся к Propensity Score Matching
Это популярный метод, который позволяет подобрать к исследуемой группе (тест) максимально похожую группу из оставшегося пула юзеров (псевдоконтроль), сравнивая их по Propensity Score. Единственное отличие между этими юзерами — наш тритмент, то есть активный заход в Discovery.
Наши действия:
Делим нашу аудиторию на исследуемую группу (активные пользователи) и всех остальных. Выделяем юзеров с тритментом.
Выбираем фичи, по которым определяем свойства юзеров и будем выравнивать выборки.
Генерируем Propensity Score — модель оценки вероятности попадания юзера в тестовую группу.
Мэтчим пользователей по полученным Propensity Score.
Остановимся подробнее на некоторых моментах:
Мы исследовали поведение во время первых 30 дней «жизни» новичков в приложении.
Не взяли качественные фичи юзера (гендер/возраст), так как они не обязательны для заполнения в профиле приложения, и использовав их для модели, мы сильно сузим нашу выборку. Возьмем следующие количественные метрики:
факт регистрации на сайте / в приложении;
длительность сессий;
количество заказов;
количество активных дней.
Исключили юзеров, которые заходят на Lamoda не в приложении, а в веб-формате, потому что:
точек входа в Discovery в веб-версии значительно меньше, чем в приложении;
новичком в веб-версии стать в разы проще — для этого достаточно очистить кэш в браузере.
Распределение фичей до мэтчинга выглядит так:
Видим, что по всем метрикам есть большой дисбаланс, нужно это исправить. Для этого прогоним пользователей через модель.
Моделирование Propensity Score
Для моделирования Propensity Score мы протестировали три инструмента и сравнили их точность:
Логистическая регрессия (используется чаще всего);
LightGBM;
Yandex CatBoost.
Мы выбрали модель Yandex CatBoost, так как она оказалась самой точной. Для оценки точности использовали метрику ROC AUC.
Соотнесение результатов
Чтобы подобранные юзеры были максимально друг на друга похожи, выбрали мэтчинг без замены и ограничили радиус поиска в 1⁄4 стандартного отклонения Propensity Score.
Валидация выводов
Для валидации мы оцениваем баланс с помощью стандартизированной разницы средних:
где — среднее значение метрики, — стандартное отклонение метрики в группе.
Нам важно получить SMD меньше 0,1 — так мы считаем, что фичи будут полностью сбалансированы.
Так и получилось, все ковариаты сбалансировались! Но я решила дополнительно посмотреть красные прокрасы по метрикам после мэтчинга (использовала t-критерий). Видно, что по двум метрикам из четырех прокрасы остаются.
Но даже если бы прокрасов не было, все равно нужно было провести третий вариант валидации — посмотреть, для какого процента пользователей в тестовой группе нашлась пара из контроля в результате мэтчинга.
Все юзеры в тесте | Юзеры в тесте с подобранной парой | % юзеров с парой после мэтчинга |
n1 | n2 | 7,8 |
Как видим, срезается бóльшая часть выборки — осталось меньше 8% пользователей из тестовой группы. Это недостаточно репрезентативная выборка, на которую можно опираться.
Вывод: несмотря на то, что ковариаты сбалансировались, Propensity Score Matching как инструмент нам не подходит.
Выбираем альтернативу
Раз PSM нам не подошел, надо выбрать другой инструмент, и в идеале он должен быть интуитивно понятнее.
Первое, что приходит на ум — косинусное расстояние. Суть в том, что мы представляем пользователя как вектор из его фичей. Если у нас две фичи, то юзер представляется как вектор в двумерном пространстве. Итак, у нас есть два юзера, то есть два вектора, и угол между ними. Логично предположить: чем меньше этот угол, тем более схожи юзеры между собой. В этом и смысл мэтчинга по косинусному расстоянию – для пользователя из теста (user_1) подбираем такого юзера из контроля (user_2), чтобы угол между их векторами был наименьшим.
Все условия остались те же, векторы задались теми же фичами, что и при использовании PSM. У нас 4 фичи, а значит, юзер представляется как вектор в четырехмерном пространстве. Мы представили векторы и смэтчили по наименьшему косинусному расстоянию.
Теперь нужно проверить, работает ли такой подход. Видим, что ковариаты сбалансированы и прокрасов нет.
Доля оставшихся юзеров после мэтчинга — 62,3%. Это победа!
До мэтчинга | После мэтчинга | % юзеров с парой после мэтчинга |
n1 | n2 | 62,3 |
Посмотрим на распределение метрик:
Осталось проверить нашу гипотезу. Согласно результатам, активные пользователи Discovery действительно с большей вероятностью возвращаются во второй месяц. Это отличный результат.
Тест | Контроль | Diff | |
Retention первые 30 дней | n1, % | n2, % | +2 п.п. |
Заключение
Когда мы обсуждали план исследования, то основной причиной отказа от A/B-теста являлось время — мы хотели его сэкономить, сохранив при этом качество результатов.
Благодаря описанному исследованию мы смогли доказать потенциальную пользу продукта для компании. Но использованные способы не обладают высокой доказательной силой по сравнению с A/B-тестами. Да и ресурсов мы в итоге потратили немало.
А к какому итогу мы бы пришли, если бы все-таки провели классический A/B-тест?
Квазиэксперимент | А/В-тестирование |
Получили результаты спустя 6 месяцев с момента заведения задачи | Получили результаты спустя 6 месяцев с момента заведения задачи |
0,3 FTE аналитика за весь период ресерча | 1-2 дня аналитика + разработка |
Хорошие результаты, но доказательная сила и причинно-следственная связь сомнительные | Четкие и убедительные результаты с высокой доказательной силой и причинно-следственной связью |
Конечно, 6 месяцев для А/В-теста это тоже долго. Но остальные пункты перекрывают этот минус. Для себя мы сделали вывод, что если есть возможность провести классический А/В-тест, это нужно сделать. Более того, наши результаты помогли убедить менеджмент провести его!
К каким выводам пришла лично я:
Нужно настаивать и убеждать менеджеров в том, чтобы проводить классические А/В-тесты, даже если это требует много ресурсов и вы встречаете сопротивление.
Propensity Score Matching — сильный инструмент, однако его нужно использовать с осторожностью, ведь часто он бывает неприменим для определенной выборки.
Иногда проще — значит лучше. Не стоит пренебрегать «примитивными» (по сравнению с PSM) инструментами, иногда они могут работать не хуже, а возможно и лучше, чем всеми известные методы.
Поделитесь своим опытом в комментариях: в каких кейсах применяли методы, альтернативные A/B-тестам, и насколько эффективными они оказались?