Мир данных и всего такого
166 subscribers
20 photos
4 videos
46 links
Product Analyst в Aviasales, ex-Lead Analyst в Wuplo, ex-Product Analyst в VK.

Обсуждаем Data Science, Product, данные и просто рефлексируем.
Download Telegram
Путеводитель по каналу ✈️

Ранее особо не упоминал о себе, но, как мне кажется, сделать маленькую заметку нужно.

Я Артём 👋. Занимаюсь анализом данных в Aviasales 🛫. До этого занимался тем же самым в 🟦, а еще раньше в берлинском e-grocery стартапе Wuplo.

Здесь делюсь необычным и полезным на аналитические темы в самом широком смысле. А еще мне нравится писать о здоровье, нейрофизиологии и спорте 🏋️‍♀️ (да, чем старше становлюсь, тем больше дурею с этой прикормки)


А вот и посты для навигации

🔵Почему Propensity Score Matching не лучший вариант для оценки эффекта без A/B

🔵Про снижение дисперсии, но не про CUPED

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

🔵Про долгосрочные эффекты в экспериментах

🔵Как НЕ сделать стартап

🔵Активация в продукте и aha moments

🔵Зачем нужен контроль MDE и мощности на этапе оценки эксперимента и что можно сделать не так

🔵Дельта-метод и ratio-метрики

🔵О множественном тестировании гипотез

🔵Можно ли изменить уровень IQ в течение жизни?

🔵Дисбаланс в A/B экспериментах: как влияет разное количество пользователей в группах на результаты?

🔵Что делать, когда нет возможности засетапить A/B? Causal Inference методы на практике

🔵Разбор стрима Валерия Бабушкина и Адама про здоровье

🔵Про важность долгосрочного планирования
Please open Telegram to view this post
VIEW IN TELEGRAM
19🦄4👍3
Сегментация в продукте 🙂

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

Разные типы сегментаций решают разные задачи, конечно. Это могут быть как довольно простые сегменты вроде RFM, которые часто полезны для оптимизации / персонализации маркетинговых рассылок (кстати, набор и количество букв в такой сегментации может быть каким угодно, если он решает задачу; вот, например, доклад от Авито об адаптированной RFM сегментации), так и более сложные, на основе намерений пользователей или их Customer Journey Map.

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

Понимание того, к какому сегменту относится пользователь в конкретный момент для продукта позволяет, например, оптимизировать путь пользователя и предлагать более релевантные фичи для решения его текущей задачи. А для аналитики -- делать метрики более чувствительными во время A/B или находить полезные инсайты, изучая поведение пользователей в контексте сегментов.

Я как раз нахожусь в процессе решения подобной задачи, поэтому интересно будет послушать о вашем опыте и попытках решения такой задачи 🍿
Please open Telegram to view this post
VIEW IN TELEGRAM
111👍3
💭 Важность dream team

Нередко на собесах задают вопрос о том, что для меня важно в работе. И в моем ответе всегда есть пункт о важности атмосферы в команде. Но обычно это где-то в конце списка как приятное дополнение (интересные задачи и продукт всё же сложно сдвинуть с первого места 🙈)

Тем не менее, все чаще прихожу к выводу, что для меня приятная атмосфера внутри команды является очень важным фактором не только с точки зрения какого-то психологического комфорта, но и с точки зрения роста и мотивации.

Но как на раннем этапе понять, соответствует ли культура и атмосфера внутри команды желаемой? 🤔

Я думаю, во многом это субъективный, индивидуальный и где-то случайный фактор. Мне повезло с моей первой работой в индустрии в Wuplo, потому что долгое время та атмосфера внутри компании была для меня где-то около идеала. И тогда это способствовало быстрому и эффективному техническому и продуктовому развитию меня, а я отдавал много результата. А повезло, потому что у меня невольно сформировался запрос на такое в будущем.

А сейчас у меня просто топовая+топовая особенная команда и приятная атмосфера внутри, что здорово и что тоже в какой-то мере является результатом «присматривания» друг к другу на этапе собесов.

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

Поделитесь, что для вас особенно важно в команде и почему?
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍22
📕 Causal Inference для нестандартных задач

Ранее рассказывал про опыт применения методов причинно-следственного вывода в своих задачах, а на днях прочитал интересную статью от Meta Research A Causal View for Item-level Effect of Recommendation on User Preference.

Чем примечательна?

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

Так вот авторы статьи исследуют, как на создание такого эффекта эхо-камеры влияют рекомендательные системы.

Любопытен предложенный подход к решению задачи 😟

Для корректной оценки наличия такого эффекта от рекомендательной системы, авторы по сути пытаются ответить на вопрос: как эффект от рекомендации конкретного элемента v влияет на предпочтения пользователя j, то есть хотим понимать эффект от каждой отдельной рекомендации.

Далее все стандартно: нужно устранить влияние конфаундеров. Для этого в статье применяется двухэтапная корректировка:

✔️ стратификация по времени для устранения временных конфаундеров
✔️ matching по признакам юзеров для устранения user features конфаундеров

Но когда речь идет об оценке эффекта на каждой паре (v, j), мы сталкиваемся с тем, что на больших данных это очень трудозатратная задача по времени, а матчинг по стандартному propensity score будет не оптимален, потому что мало данных на каждый элемент v + много комбинаций.

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

Например, для устранения конфаундеров пользовательских признаков вместо использования propensity scores в авторы выбрали два наиболее влияющих признака пользователя (общая активность пользователя и предпочтение определенной категории пользователем), и на их основе построили простую метрику близости без явного расчета многомерной вероятности (все еще учитываем значимые факторы пользовательского поведения но значительно ускоряем матчинг). Плюсом во время матчинга используется сортировка и бинарный поиск, что позволяет сократить сложность матчинга до линейной вместо квадратичной при наивном подборе.

Затем посчитали , что варианты предложенного метода в ~15-20 раз быстрее, чем вычисление тех же эффектов на основе стандартных методов с использованием propensity scores 🤨

Какие получились выводы рисеча?

🔵рекомендации усиливают предпочтения в пределах уже известных пользователю категорий, но если контент разнокатегорийный, то заметного подкрепления интереса не происходит​ 🤔
🔵показ очень похожего контента в том же тематическом русле с высокой вероятностью усиливает «закрепление в пузыре», тогда как рекомендация похожего по аудитории, но тематически другого контента намного реже ведёт к усилению прежних предпочтений

Из этого следует предложенный практический вывод: для борьбы с эффектом Filter Bubble можно рекомендовать пользователю новые элементы, которые похожи на его интересы, но из других категорий. Такой подход всё ещё учитывает предпочтения, не показывая совсем неинтересное, но расширяет кругозор, снижая замкнутость 🌿

Но ключевая ценность статьи, как мне кажется, именно в подходе к решению задачи, можно брать на вооружение 🔫
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥6👍4
Уже несколько недель ношу Oura Ring и теперь почти не снимаю. Рассказываю, чем оказалось полезно, а что не очень 🙂

Что нравится?

🔵полученные данные помогают обращать внимание на то, на что обычно внимания не хватает: для меня это в первую очередь качество сна, уровень стресса / отдыха в течение дня
🔵 сон измеряет довольно точно – оказалось, что я сплю заметно меньше, чем думал
🔵формат кольца довольно удобен для сна, через несколько дней привыкаешь и совсем не замечаешь его
🔵 удобное приложение, где можно отследить детально все тренды и найти закономерности между плохим сном / высоким уровнем стресса и какими-то действиями, которые кстати удобно добавлять в виде тегов. У меня, например, сон заметно лучше, если в этот день была силовая тренировка 🍌
🔵 заряд держит достаточно долго, около 5 дней: я заряжаю, пока принимаю душ, и этого вполне хватает, чтобы не думать об этом дополнительно
🔵 за счет постоянного мониторинга пульса, температуры тела и прочих параметров может сигнализировать, если что-то идет не так: например, начало вирусной инфекции или что-то подобное (не проверял, но заранее есть сомнения в точности)

А теперь, что не нравится

🟣ни с чем не сравнивал, но по ощущениям не всегда точно измеряет активность, но это простительно, так как Oura скорее про качество восстановления
🟣приходится снимать во время силовых тренировок
🟣регулярная подписка на приложение, но всегда можно при необходимости выгрузит сырые данные и покрутить их в jupyter notebook 🧠

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


А у вас какие способы следить за сном и отдыхом? 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍116
О старении 🍀


Во время отпуска посмотрел очередное видео о долголетии с участием биофизика Петра Федичиева (CEO стартапа биотехнологической компании Gero, где в том числе занимаются поиском методов борьбы со старением).

Самое интересное ниже в тезисах:

🟣 На текущий момент есть разные подходы к решению проблемы старения: попытки «омоложения» и замедление старения. Наиболее вероятный сценарий связан именно с замедлением старения (вернуть клетки с накопленными повреждениями к более молодому состоянию – очень сложная задача)

🟣Сейчас «вакцины от старения» уже тестируются на собаках (на мышах сложно оценивать эффект, старение собак более похоже на старение людей)

🟣 Одна из ключевых решаемых задач сейчас это поиск «быстрых» маркеров старения. Способ оценки эффективности той или иной терапии без необходимости ждать сотни лет для оценки эффекта (привет прокси-метрикам для некоторых A/B экспериментов в продукте 😐)

🟣 Выводы исследований подобные «Занятия теннисом продлевают жизнь на 9 лет» скорее всего ассоциированы со смещенной выборкой людей, чем с реальным эффетком (более состоятельные люди чаще могут себе позволить заниматься теннисом, у таких людей больше возможностей получать лучшую медицину)

🟣 Эффект от Рапамицина на продолжительность жизни есть, но он небольшой

🟣 Государственные регуляции сильно тормозят возможные исследования и эксперименты новых методов (зато в Гондурасе можно прямо сейчас за N денег получить генную терапию, которая имеет статзначимый, но небольшой эффект +2-3 года)

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

Ну и основной вывод в том, что мы все ближе к появлению терапии для замедления старения, поэтому очень важно стараться сохранять свое тело и разум в хорошем состоянии и стараться не умирать 🍌
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍8
А еще я воскресил бота для изучения английских слов, которым когда-то занимался для стартапа Wordbi. Немного доработал и порефакторил

Чуть позже выложу код с проектом, чтобы была возможность сделать форк и допилить под свои нужды, а пока буду рад любому фидбеку 🙂

Бот тут: @wordbi_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🦄3
Давно здесь ничего не писал, но на это есть причины!


🔵 много всего интересного на работе. Скоро обязательно расскажу что-нибудь об этом 🛫

🔵AI Talent Hub. Я поступил в магистратуру ITMO в хаб, и какое-то время заняла подготовка к вступительным испытаниям 🧠
Рекомендую обратить внимание на эту программу и, конечно, теперь я буду рассказывать еще и об активностях на просторах магистратуры

🔵Пет проекты. Снова почти полностью переделал Wordbi, теперь там можно играть с друзьями, соревнуясь в знании слов на скорость 👍

🔵Путешествия. Впервые был во Франции и в Венгрии. Понравилось!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
916👍8🔥3
Привет! Хочу поделиться некоторыми новостями 😊



🔵Сегодня на Матемаркетинге 2025 мой котлега из Aviasales Олег Яксин рассказал о том, как автоматизировать анализ экспериментов и не запутаться в статистических методах, а также представил удобную библиотеку для дизайна и оценки A/B экспериментов ABiasales. На мой взгляд, это один из самых полезных докладов на конференции, поэтому очень рекомендую к просмотру, а также рекомендую попробовать использовать либу или даже контрибьютить в нее 🙂

А еще у нас есть вакансии и хэндбук, где можно узнать чуть большу про аналитику в Aviasales и о вакансиях ✈️



🔵Выделил из конференции в этом году еще несколько докладов, которые мне очень отозвались. И в течение следующей недели буду рассказывать о них здесь 🤓

А пока просто поделюсь, о чем эти доклады:

🔴Павел Дубинин из Яндкеса рассказывал о Datalens и нейроаналитике внутри

🔴Максим Николаев (ПОМИ РАН, СПБГУ) делился описанием и опытом применения байесовского бустинга для Causal Inference (BART)

🔴Дмитрий Забавин из Glowbyte рассказал об опыте разработки статистического критерия для многомерных A/B

🔴Виктор Харламов из Т-банка рассказал о подходе, который позволяет с помощью uplift-моделирования максимизировать счастье клиентов при ограниченном бюджете (на примере экспериментов с кэшбэком)

🔴Владимир Ходзицкий из Островка поделился опытом разработки инструмента, который помогает вручную сплитить B2B партнеров в сложных A/B тестах с небольшим объемом выборок



🔵Магистратура. AI Talent Hub

Мне интересно поделиться деталями обучения, с удовольствием отвечу на любые вопросы в комментариях, поэтому задавайте! Из интересного:

🔴Один из курсов у нас был – AI хакатон, в рамках которого нам нужно было интересный кейс и за несколько дней реализовать MVP решение задачи. Мы с командой выбрали кейс от Яндекса – автоматическое ревью проектов на Яндекс.Практикум. Суть в том, чтобы научиться проверять решения студентов некоторых курсов, оставлять комментарии в качестве ревьювера кода и принимать или отклонять решения. Это, конечно, сильно экономит время людям-ревьюверам при проверке учебных проектов. Очень интересная задача, и наша команда даже заняла 3-е место в хакатоне

🔴В сентябре мы могли выбирать любые предметы из большого списка (из необычного -- в список включены даже ML Design, C++ или Rust, например). Часть курсов уже подходит к концу, но большая часть закончится в конце семестра

🔴Учеба отнимает в среднем ~2 часа в день, за исключением некоторых сложных периодов


Делитесь и вы докладами или материалами, которые выделили для себя в последнее время!
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6
B2B эксперименты 😾


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

В B2B объектами эксперимента обычно являются партнеры, а не пользователи. А это означает – маленькие выборки, сильное различие метрик между партнерами и, как следствие, нарушение баланса между группами еще до эксперимента. Если не обрабатывать такие случаи, будем получать некорректные результаты экспериментов 😕

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

Алгоритм действий следующий:

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

⚪️разбиваем всю выборку на K страт по выбранным признакам

⚪️из каждой страты случайно выбираем определенную долю партнеров в control / treatment

На выходе получаем группы, которые сбалансированы по выбранным признакам (и если сделали все правильно, то и по интересующим нам метрикам).

После стратификации предлагается делать рерандомизацию. Зачем рерандомизация и что это?

По сути мы просто подбираем «идеальный» сплит, сэмплируя в группы с теми же сегментами N раз с разным random seed. Выбираем единственный сплит, в котором интересующая нас метрика сбалансирована лучше всего по какой-либо метрике (в пример приводится метрика balance score: отношение стандартного отклонения метрики между группами / среднее метрики между группами)

Но, безусловно, такой подход нужно использовать с осторожностью, не допуская:

🔴протекания признаков (если признак потенциально искажен будущим эффектом от эксперимента или вычисляется с учетом данных, которые появятся после начала эксперимента)

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

На самом деле, в докладе еще много про создание единого инструмента для аналитиков для дизайна таких тестов, чтобы к подобным тестам было доверие со стороны бизнеса и единая методология.


А вы сталкивались с B2B-экспериментами или просто с маленькими выборками? Делитесь! 😐
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍6
Скоро Новый Год! 🎄


А это значит, что по уже сложившейся традиции мы снова разыграем книгу Р. Кохави Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing в переводе (победитель может выбрать и оригинальную версию, но в электронном виде) 👀

Для участия достаточно нажать на кнопку ниже. А итоги подведем уже в новом году, 4 января!

Пусть в следующем году данные радуют чаще, чем удивляют, корреляции не притворяются причинностью, а результаты совпадают с ожиданиями ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64
👀 Causal Inference с помощью байесовского ансамбля деревьев или еще один метод для A/B без A/B


Еще один доклад с Матемаркетинга от Максима Николаева.

Доклад о причинно-следственном выводе (я уже рассказывал о других методах тут, тут и тут).

Напомню, что иногда бывает так, что мы хотим оценить эффект от какой-либо фичи без A/B эксперимента (невозможно провести, фича раскатана давно без A/B или мы хотим обосновать на данных проведение дорогого эксперимента). Вот тут-то и пригодятся методы Causal Inference.

Итак, BART – Bayesian Additive Regression Trees – байесовский ML подход, где причинный эффект оценивается как разница прогнозов модели при "включенной" и "выключенной" фиче.

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

Основная идея BART – не сделать группы похожими (как мы делали в PSM / PSW методах), а построить вероятностную модель мира, которая хорошо предсказывает исход по признакам и факту воздействия на пользователя (наша фича).

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

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

😭 К сожалению, BART все еще не устраняет проблему скрытых конфаундеров, а значит корректность применения все также зависит от того, насколько достаточный набор конфаундеров мы соберем до воздействия на пользователя (платформа, активность пользователя и так далее: все то, что в вашем продукте влияет на вероятность использования фичи и на целевую переменную).

Алгоритм применения метода такой:

⚪️определяем, что для нас treatment (использование фичи, например) и что для нас результат (конверсия в покупку)
⚪️собираем датасет с конфаундерами до воздействия на пользователя (параметры пользователя, активность, история)
⚪️оцениваем propensity score для каждого пользователя (вероятность использования фичи с учетом признаков)
⚪️проверяем overlap по propensity scores (важно, чтобы была большая доля, то есть для каждого юзера с маленьким PS без воздействия нашелся юзер с таким же PS с воздействием)
⚪️обучаем одну совместную модель для всех наблюдений сразу, но с разложением на базу и прибавку от воздействия
⚪️причем модель обучается байесовски: много раз случайно меняет структуру своих деревьев, проверяет, улучшается ли объяснение данных, сохраняет только правдоподобные варианты
⚪️из каждой такой модели считаем эффект от воздействия
⚪️собираем эффекты по всем моделям


Преимущества:

🟢получаем байесовские доверительные интервалы для эффекта "из коробки"
🟢более стабилен, когда вероятность тритмента сильно влияет на целевую переменную (более активные пользователи изначально более склонны совершить покупку)
🟢лучший выбор, когда нам нужен не просто средний эффект по всей выборке (ATE), а возможность оценивать эффект по сегментам (CATE): например, а какой эффект на новых пользователях, а на старых?

Недостатки:

🟣Все еще не заменяет A/B эксперимент при условии, что мы не нашли все конфаундеры (кто нашел все, рассказывайте)
🟣Вычислительно тяжелый (Монте-Карло)
🟣Требует Overlap, как и многие другие методы


Что почитать: мне понравился handbook, предложенный в докладе – Machine Learning for Causal Inference


Делитесь своим опытом применения методов Causal Inference!
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥42👍2💊1