Kantor.AI
11.6K subscribers
142 photos
12 videos
5 files
185 links
Канал Виктора Кантора про Data Science, образование и карьеру в сфере анализа данных. По вопросам сотрудничества: @mariekap

РКН: 5140322136
Download Telegram
О других этапах отбора. Тест по программированию был контестом из четырех задачек, из которых первая проверяла способность написать хоть какую-то простую программу, вторая не предполагала знание алгоритмов, а третья и четвертая подразумевали знание совсем азов вроде обходов графов.

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

Письменный экзамен был из менее "шаблонной" математики, чем онлайн-тест. Но такой, чтобы в 2-3 задачах решение было изящным и лежало на поверхности. Например: чтобы выяснить, существуют ли матрицы A и B такие, что AB - BA = E, достаточно было догадаться вспомнить свойства следа матрицы.

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

Была и еще одна важная причина, по которой письменный экзамен по математике нужно было оставить. Я постарался изучить мнение разных экспертов с незыблемой репутацией в Data Science, и в личной беседе встретил как резко негативные отзывы о таких процедурах отбора, так и отзыв "если бы там не было этих задач, то я бы никогда туда не поступил". Если уж кому-то из звезд DS олимпиадные задачки по математике на вступительных помогли, значит нужно оставить их как шанс для других таких же людей.

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

Соревнование было таким, чтобы лучший результат давали не знания ML (ему мы еще будем учить), а работа с данными и внимательное их изучение. Ради этого мы подготовили данные, в которых была "утечка" (leak) правильных ответов в признаки объектов. Соревнование на этих данных уже тестировалось на группе из 40 человек, и из них только один человек нашел утечку. В нашем случае ей смогли воспользоваться примерно 5% участников. Может показаться, что утечки нужно искать только в соревнованиях на kaggle. Но в индустрии, пропустив утечку в данных, можно запросто получать завышенные оценки качества модели и не долго не замечать подвох.

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

Предмет моей особой гордости — то, что в MADE этапы отбора оценивали людей с разных сторон, и ошибка только на каком-то одном из этапов не лишала возможности поступить в Академию. Главное было хорошо показать себя в других испытаниях. Я нахожу это очень человечной и внимательной к разным талантам людей системой отбора, и ровно этого и хотелось в итоге добиться.
Подошло время запуска очередного осеннего семестра курса Data Mining in Action (DMIA).

Курс проводится уже много лет и постоянно обновляется, развивается и дорабатывается для каждого нового запука. DMIA берет начало из факультатива по машинному обучению в МФТИ, который я начал вести, кажется, в 2011 году. За это время сформировалась сильная команда преподавателей, курс получил свое нынешнее название, переехал в центр Москвы, и сейчас занятия проходят в МИСиС. Количество желающих пройти курс выросло настолько, что в какой-то момент пришлось ввести отбор.

За год на DMIA даже после отбора приходит около 800-1000 человек. Пока мне неизвестны более масштабные курсы по ML в оффлайне.

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

На курсе есть 4 направления с лекциями и семинарами:
- Базовый поток (основы ML)
- Индустрия (применение ML в компаниях)
- Спорт (о том, как участвовать и побеждать в соревнованиях по анализу данных)
-Глубокое обучение.
"Базовое направление" и "глубокое обучение" рассчитаны на начинающих специалистов. "Индустрия" и "Спорт" требуют некоторых знаний в ML.

Форма для записи на курс: https://forms.gle/4xZ48bCZBnBKtALL6 . Подробнее про курс можно почитать на сайте dmia.space
Вчера обсуждал с хорошим знакомым рекомендательные сервисы и понял, что стоит рассказать в канале про uplift моделирование. В начале карьеры мне сильно не хватало знаний про uplift, а сейчас я абсолютно уверен, что его обязательно нужно включать во все курсы по ML в рекомендациях и маркетинге.

Представьте, что вы предлагаете человеку подписаться на какую-то услугу или вовсе показываете целый рекомендательный блок с товарами, а он после этого соглашается на ваше предложение или покупает товар. Значит ли это, что ваши рекомендации работают? Смотря какая у вас цель. Когда вы хотите помочь человеку быстрее получить то, что он итак выберет (так, например, дело обстоит с разными подсказками в приложениях вроде пунктов назначения в приложении Яндекс.Такси), нужно просто верно угадать, что выберет пользователь (купит/посмотрит/лайкнет). Когда же вам нужно заинтересовать клиента чем-то новым или даже просто помочь найти то, что он не сможет разыскать самостоятельно в большом каталоге - ситуация чуть сложнее.

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

Если вам интересно почитать подробнее про uplift - буквально пару недель назад Макс Шевченко и Ира Елисова из Data Science МТС опубликовали отличный туториал: часть 1 - 
https://habr.com/ru/company/ru_mts/blog/485980/ , часть 2 - https://habr.com/ru/company/ru_mts/blog/485976/ . Там же есть много других полезных ссылок. А если вы технический специалист и хотите попрактиковаться в uplift моделировании - можно еще успеть поучаствовать в конкурсе Retail Hero от X5: https://retailhero.ai (остается 10 дней, конкурс недавно продлевали)
#рекомендательные_системы #оценка_эффекта

Что сложного в оценке качества рекомендательных систем (часть 1)

Золотые косинусы

На заре развития рекомендательных систем в ритейле, была компания-первопроходец Х или, как их прозвали тролли-завистники, "Золотые косинусы". Называть их так стали, т.к. одни из самых простых методов сделать рекомендации используют идею порекомендовать то же, что нравится похожим пользователям или похожие на уже купленные/просмотренные товары. А оценивают похожесть часто как косинус угла между векторами признаков объектов.

Last click и first click attribution

Компания Х должна была как-то обосновывать онлайн-ритейлерам, что их блоки с рекомендациями товаров на сайте приносят какую-то пользу. Как это делать проще всего? Конечно сказать: "смотрите, по каким товарам из купленных человек кликал в блоке рекомендаций - вот эти продажи мы вам и сделали!". Но заказчики были не дураки и понимали, что не факт, что именно клик в блоке рекомендаций был таким вот определяющим. И так появилась проблема аттрибуции - к какому действию пользователя аттрибуцировать покупку.

Здесь возникло две крайности. Первая - считать, что то, на что последним кликнул пользователь, и повлияло на факт покупки больше всего (last click attribution). Иронично, что продажи с рекомендательного блока по last click attribution очень легко накрутить - достаточно на странице с товаром разместить рекомендательный блок с самим товаром в нем. Пользователь перед покупкой будет обращать внимание на наличие очень похожего товара в рекомендациях, кликать на него и огорченно обнаруживать, что это тот же самый товар. Зато покупка, если она случится, теперь будет засчитана вашему алгоритму 🙂 Вторая крайность - считать, что наиболее важен первый клик по товару (first click attribution), т.к. именно он породил у пользователя цепочку размышлений о том, не купить ли этот товар.

Каннибализация и А/В тестирование

Стоит ли говорить, что измеренная выручка с рекомендательного блока что по last click attribution, что по first click, часто составляла десятки процентов от выручки всего онлайн-магазина. Только вот денег настолько больше не становилось, рекомендательный блок просто каннибализировал трафик из каталога. Но все более-менее сходились в том, что если через блок идет 20-30% продаж, то он не может быть бесполезной вещью.

Жизнь компании Х сильно усложнилась, когда на рынке появились их конкуренты Y, рассказывавшие заказчикам, что такое А/В тесты. Идея разбивать пользователей на две группы - тестовую (с новыми рекомендациями) и контрольную (со старыми или без них - смотря что было у заказчика) была новой для многих онлайн-ритейлеров, а возможность честно сравнить всю выручку в группах и получить экономический эффект без "жульничества" с каннибализацией вынудила Х тоже начать заниматься проведением А/В тестов. Но не всё так просто, и отчасти статистика была на стороне Х - об этом в следующей части поста.
Что сложного в оценке качества рекомендательных систем (часть 2)

Статистическая значимость

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

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

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

Деление на группы

На этом беды не заканчиваются: увы, мы можем неверно разбить пользователей на группы А и В. Если в группе В было больше состоятельных клиентов, не удивительно, что и результат там будет лучше. Вы скажете: "Ну надо же случайно делить на группы!" Но в том-то и подвох, что на бытовом уровне "случайность" все понимают по-своему. Частая история - относить клиента к той или иной группе по последней цифре номера телефона (например, четные в одну группу, нечетные - в другую). К сожалению, распределение по этим цифрам обычно далеко не равномерное, поэтому такой подход часто приводил к перекосам в группах и невалидным А/В тестам. В частности, я видел такую грубую ошибку в инструментах для А/В тестирования даже в очень технологичных коммерческих компаниях (причем не в одной!).

Так как это все влияет на оценку качества рекомендаций?

Оказывается, в А/В тестировании не все метрики качества одинаково быстро "красятся" - показывают статзначимое отличие в группах. Эмпирическое правило - чем интереснее метрика бизнесу и ближе к конечному результату, тем хуже будет "прокрашиваться". Различие в кликах быстрее красится, чем в добавлениях в корзину. Добавления в корзину - быстрее, чем покупки. А деньги? А деньги вообще часто не значимы, сколько не мучайся, из-за большого разброса в ценах товаров.

Конечно, здесь есть миллион оговорок и, например, таргетируя рекомендации только на определенный сегмент без большого разброса цен, получить статзначимость бывает проще (если сокращение количества наблюдений оказалось менее драматичным, чем сокращение разброса цен). Зато покупки и деньги с блока по last/first click attribution красятся "на ура" - по этому показателю эффект часто на порядок больше, чем "реальный" (без учета каннибализации), заметить его проще. Поэтому даже в условиях, когда все знают про существование А/В тестов, от нехватки данных можно все равно начать измерять "кривые" метрики.

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

Звучит это все довольно безрадостно, но это мы еще не поговорили о том, как измеряют качество модели на исторических данных. До внедрения модель же надо как-то разрабатывать и на чем-то обучать. Вот тут уж такой безысходностью повеет, что мало не покажется. Об этом - в следующей части.
Статзначимость в А/В тестах (часть 1/3)

Итак, победил вариант «Простыми словами про статзначимость в А/В тестах». Разбил ответ на три части: введение, непосредственно по теме и некоторые интересные моменты, которые тоже полезно обсудить. Кто знает ответы на вопросы, выделенные полужирным шрифтом в этом посте, могут просто пролистать его и переходить сразу ко второму.

Зачем вообще нужны А/В тесты?

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

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

Что такое статистическая значимость и A/A тесты?

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

Статистическая значимость эффекта в А/В тесте, грубо говоря, означает, что различие между группами заметно больше, чем было бы в А/А тесте, т.е. «есть реальный эффект», а не случайные отклонения. Что это значит для бизнеса? То, что хотя бы при сохранении тех же условий, что и во время проведения А/В теста, эффект от нововведения с большой вероятностью будет какое-то время сохраняться (важное уточнение: эффект может затухать со временем, никто не отменял «эффект новизны»).
👍2
Статзначимость в А/В тестах (часть 2/3)

Как проверяют гипотезы с помощью статистики

Рассмотрим простой пример: мы с другом 10 раз сыграли в шахматы, и он 10 раз победил, какова вероятность такого исхода, если мы с ним играем одинаково хорошо?

Если мы одинаково хороши, шанс выиграть у каждого 0.5, значит мой шанс проиграть все 10 игр был 0.5 в степени 10, т.е. около 0.001. Выглядит как не очень вероятное событие, придется признать, что друг все-таки играет лучше. Ровно так же мы будем делать и при проверке того, что между группами А и В в А/В тесте есть статзначимые различия.


Как работает проверка статзначимости в А/В

Работает это так: предположим, что у нас есть какое-то нововведение (новое оформление, новый интерфейс, новый алгоритм рекомендаций), и мы проводим А/В тест. А вот эффекта от нововведения нет и различия между группами на самом деле нет. Это в статистике называется «нулевой гипотезой» — тем, что мы в А/В тесте в идеале хотим отвергнуть.

Предположив, что нулевая гипотеза выполняется (статистически различия между группами нет), мы можем оценить, с какой вероятностью p можно увидеть разность показателей в группах больше, чем Y (тысяч долларов выручки, например). Как это сделать? Например, взять наши данные, много раз случайно разбить их на две группы и посмотреть, в каком проценте случаев различие между группами окажется больше Y. За счет случайности разбиений, даже если эффект в вашем разбиении на группы А и В был, в новых группах его не будет (т.к. пользователи случайно перемешаются), и можно считать это хорошей оценкой вероятности p.

Если вероятность p оказалась очень маленькой, значит разница в группах все-таки существенная.

И что, всегда делать несколько тысяч случайных разбиений?

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

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

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

Как понять, что вероятность p «мала» и что такое p-value?

Величина p в статистике называется p-value. Перед проведением любого А/В теста фиксируют уровень значимости, например 5%, и отвергают нулевую гипотезу только если p-value оказывается меньше уровня значимости. Т.е. мы допускаем вероятность 5% сказать, что эффект есть, когда его на самом деле нет. А/В тесты, к сожалению, вещь вероятностная, поэтому «точного» ответа на вопрос «есть ли эффект» не дают, только могут подтвердить его на каком-то уровне значимости. Само p-value в русской литературе называют достигаемым уровнем значимости (не путать с уровнем значимости выше — он был порогом, с которым сравниваем p-value).
Статзначимость в А/В тестах: дополнительные вопросы (часть 3/3)

Я слышал, что p-value — это не вероятность нулевой гипотезы, что это значит?

Все верно, это известная бородатая ошибка при интерпретации p-value. P-value — это не вероятность нулевой гипотезы, а вероятность увидеть в тесте такой же «эффект» или больше, при условии справедливости нулевой гипотезы (т.е. когда эффекта на самом деле нет). От этого можно перейти к вероятности нулевой гипотезы, при условии наблюдаемого эффекта по теореме Байеса, если вдруг вы будете знать все нужные для формулы вероятности, но нужды в этом нет.

А еще я слышал, что нулевую гипотезу нельзя принять, о чем это?

В А/В тесте мы хотим отвергнуть нулевую гипотезу, посмотрев на фактические данные. Но можем не отвергнуть. Подтвердить нулевую гипотезу не можем: если нам не хватает свидетельств против чего-то, это еще не значит, что это что-то верно 🙂

Бытовая иллюстрация:
Старушка на лавочке у подъезда выбирает, как поприветствовать Васю. В качестве нулевой гипотезы она принимает утверждение, что Вася обычный парень. А в качестве альтернативы — что Вася наркоман. Чтобы выбрать доброжелательное или агрессивное приветствие, она оценивает, насколько Вася плохо выглядит сегодня. Если «еще терпимо», то заключает, что свидетельств против нулевой гипотезы не хватает и нужно приветствовать доброжелательно. В этом случае она, однако, не может быть уверена, что Вася не наркоман, т.е. принять нулевую гипотезу. Но как вдумчивая и образованная пожилая женщина, не спешит с выводами и собирает данные.

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

Вот здесь мы вступаем на территорию более сложных формулировок. Если объяснять это не на бытовом уровне, то вы сами выбираете смысл «статистического различия» при формулировке нулевой гипотезы и альтернативы. Например, если мы сравниваем средние чеки в группах А и В, то под «статистически неразличимыми» результатами мы можем иметь ввиду одинаковое матожидание среднего чека в группе А и в группе В. Это будет нулевой гипотезой. Альтернативой — различные матожидания. Есть критерии, которые в качестве нулевой гипотезы рассматривают совпадение медиан распределений или просто совпадение распределений.

А еще слышал что-то про множественную проверку гипотез? Это о чем?

Это о том, что если вы проверяете одновременно несколько гипотез на уровне значимости, скажем, 5% каждая (например, оцениваете эффект сразу и на средний чек, и на конверсию в покупку, и на конверсию в переход на страницу товара), то шанс ложного срабатывания теста хотя бы для одной гипотезы будет уже не 5%, а существенно больше. Есть разные способы учитывать этот эффект.
Записали с Habr Special подкаст на тему Big Data и Data Science ( https://habr.com/ru/article/522724/ ). Есть расшифровка текстом, но если интересно - лучше слушать. Тайм-коды:

0:32 Что такое Big Data?
2:45 О размечивании данных
4:25 Big Data, биг дата, биг дейта или просто большие данные — как правильно?
5:50 Какие компании заказывают себе проекты с Big Data?
8:45 Как оценивается результат внедрения Big Data?
10:14 Сколько времени занимает внедрение Big Data?
10:55 Почему «собрать» данные не так просто, как кажется
12:23 Штатный специалист по Big Data vs внешний исполнитель
14:55 Хорошие специалисты по Big Data — хватает ли их рынку и как их отличить?
19:46 О том, как пришёл в МТС
21:18 О МФТИ
24:00 Big Data — это сложно и дорого?
25:56 О хранении данных
26:52 Две популярные байки о Big Data: о беременной девушке и пиве с подгузниками
29:25 Будущее Big Data
33:39 О сотрудничестве с вузами
36:25 О продактах в сфере Big Data
39:05 О Big Data в реальном секторе (в частности, в энергетике)
42:03 Big Data: с чего начать компании?
👍1
Chief Data Scientist в МТС

Итак, я уже год как Chief Data Scientist МТС (в центре Big Data), пора поделиться впечатлениями. Сразу отвечу на часто задаваемый мне вопрос: в МТС я работаю фуллтайм, если мое имя упоминается где-то еще, то либо за былые заслуги, либо мое участие ограничено свободным временем. В частности, преподавание ML в МФТИ - для меня многолетнее хобби и всегда дополняло основную работу.

Также иногда слышу вброс, что я не очень часто выступал на конфах и редко писал какие-то публикации за этот год. Это часть плана. Во-первых, подход, в который я верю, - сначала выстраивать работу команды, улучшать процессы, делать проекты, а потом уже рассказывать всем об этом. В каких-то командах бывает и наоборот, но мне такое не заходит. Во-вторых, т.к. моя цель прокачать бренд DS команды МТС, а не накачивать до посинения свой, я пушил писать и выступать коллег из своей команды, а также договаривался об их участии в конфах и митапах. Хотя сам тоже периодически выступал и давал интервью (и, кстати, на грядущем AI Journey тоже буду выступать от МТС). Но так или иначе, одни и те же люди на конфах из года в год - это немного скучно, так что новые лица нужны, и этому стоит способствовать.

Первые впечатления
Еще до принятия оффера я познакомился со всей командой (~30 человек). Ребята оказались очень классными, а еще было приятно, что среди них есть приличная доля выпускников DMIA и слушателей нашей специализации на Coursera. Все это вместе подтолкнуло меня к тому, чтобы принять оффер. Вторая вещь, которая бросилась в глаза, - во всех проектах есть четкие KPI, зачастую денежные. Для меня после Яндекса это выглядело как рай для DS, т.к. все можно и нужно делать с измеримым эффектом, а не просто так. Однако чуть позже стало понятно, что мне просто этого очень не хватало, но это явно не панацея. Иногда хорошо бы иметь гибкость поощрить человека, если вместо своего KPI он сделал что-то другое, но еще более полезное. А в ряде случаев KPI можно ввести только формально, и он будет очень несовершенным. Более того, реально инновационные вещи с четкими KPI никто не делает. Но вот для проектной работы очень даже полезно. Так или иначе, от попадания в новую культуру я получил удовольствие, а цели в разных задачах и у нас бывают сильно разными - не всегда это деньги, особенно на старте новых продуктов. Так что гибкость здесь у нас тоже есть.

Из умеренно негативного - сложно было не заметить проблемы с оборудованием и офисом. Пока в Яндексе или Мейле все работают на классных макбуках в зеленом, красивом и удобном офисе, у нас с этим были сложности. Ну, проблемы первого мира, конечно. Подумаешь, не было маков и цветочков. Но вы же понимаете, что стоит какой-то компании удачно побаловать сотрудников, и вскоре весь рынок не понимает, как без этого жить. Но тут уж так повезло, что как раз в мой первый год в МТС это всё наверстывается семимильными шагами. Я уже смог обеспечить маками своих DS'ов (по крайней мере, первых желающих), один человек честно захотел комп с убунтой, и с этим тоже не было проблем, идет масштабный проект выдачи нужного оборудования для всей компании. С офисом (в нашем случае - это БЦ Декарт) все тоже становится лучше и ведутся активные работы по благоустройству и наполнению разными удобными вещами. Например, совсем недавно меня очень выручили зарядки для девайсов в переговорках, которые сначала воспринимались каким-то бесполезным хипстерством, а на деле оказались очень полезной штукой, когда припрет.
Изменения в команде
Теперь пара слов о том, что изменилось в команде за этот год. К моему приходу команда DS уже разрослась, поэтому начали умирать различные активности по обмену опытом в духе общих обсуждений текущих задач. Также у команды не было никакой структуры, все 30 человек предполагались под одним head'ом, который, разумеется, в итоге не сможет нормально уделить внимание никому. Мы структурировали команду, выделив в ней 5 тимлидов с группами по отдельным темам (рекомендашки, предиктивная аналитика, DL и т.д.) исходя из специфики существующих задач, возобновили синки DS'ов, добавили регулярные "набросы", куда можно прийти со своей задачкой и получить по полной от коллег (советов и идей), организовали регулярные 1-on-1 встречи тимлидов с DS'ами и меня с тимлидами, а также сильно менее регулярные 1-on-1 DS'ов со мной (я бы проводил их хоть каждую неделю, но тогда меня наверно уволят за то что ничего больше не делаю))

Из изменений по процессу ведения проектов - за этот год мы прокачали в первом приближении методологию AB тестирования: от построения дизайна и оценки корректности и мощности тестов на исторических данных до ускорения тестов и подбора групп, когда объектов не очень много, и нельзя разбить просто "как-то случайно". Постепенно совершенствуются процедуры ревью DS-проектов, но пока только в некоторых проектах в пилотном режиме. Также пробуем активнее привлекать разработчиков к вычитке кода и выправлению рук DS'ов (пока тоже в тестовом режиме и там где от самих DS'ов есть такой запрос, т.к. разумеется есть и более приоритетные для разрабов задачи). Ну и, разумеется, за этот год сделано немало самых разных проектов, но это уже не про процессы, а про конкретную работу.

Отдельная тема - это внутреннее обучение. Помимо занятий, организуемых внутри своими силами для коллег (уже были про А/В, тестирование в DS, рекомендательные системы, ликбезы коллег не из DS), мы начали активно привлекать внешних экспертов. Это конечно отдельная головная боль, как привлечь человека, который готов рассказывать не базовые курсы для студентов, а что-то более продвинутое, но пока мой нетворк позволяет решать эту проблему, а дальше у нас, надеюсь, стабилизируется состав лекторов и регулярных курсов. Из последнего - был курс про Reproducible ML и выкатку ML в продакшн, а также мини-курс про особенности использования Spark'а в проде и на GPU. Сейчас стартовали для ребят из DS тренировки с опытным кагглером на реальных Kaggle контестах (чтобы прокачиваться и слегка расширять кругозор), на очереди курсы по разным продвинутым темам Computer Vision и NLP, Advanced Applied Statistics и, если все сложится, алгоритмы и разработка (для поднятия общей разработческой культуры). Все это дополняется участием в международных конфах, но тут не буду хвастаться, в этом году это не было сложно, т.к. все онлайн :)

Главная фишка
И, конечно, МТС остаётся местом с отличным разнообразием задач: тут и телеком, и финтех, и медиа, и CV в промышленности, и многое другое. Очень удачное место для развития кругозора в DS. Например, сейчас у нас есть 5 вакансий DS: 2 в телекоме - на оптимизацию сети и на b2b лидогенерацию, 1 в финтехе - на задачи МТС Банка, 2 в облачных решениях - на прогнозирование потребления электроэнергии (временные ряды) и на CV. Если захотите сами присоединиться к нашей DS команде или порекомендовать нам своего знакомого, кидайте резюме нашему HR Ожогиной Яне на [email protected] (в копию можно поставить [email protected])
2
Выводы
Если подводить какой-то итог, то основной вывод такой: если вы Data Scientist, работать в отраслевых компаниях (в частности, в МТС) довольно неплохо. Сейчас многие компании в телекоме, ритейле, финансовой сфере становятся все более похожими на IT-компании в плане удобства работы, но все это возникает в реальном, осязаемом и довольно стабильном бизнесе. Если вы хотите стать ценным специалистом со знанием предметной области, DS отделы в топовых ритейлах, телекомах и банках вас ждут и выглядят сейчас совсем не так скучно для IT-шников, как лет 10 назад. Мир меняется, бюрократия и неповоротливые структуры постепенно становятся все менее модными, а топовые специалисты нужны всем, так что компании тоже меняются, меняются к лучшему, и очень быстро.
Evidently AI

Есть разные пути заниматься чем-то интересным в Data Science: наука, работа в большой компании, консультирование, работа на заказ, построение своего операционного бизнеса по Data Science, создание продукта в своем или чужом стартапе. Так получилось, что стартапная история у меня была в самом начале карьеры, когда я еще ничего не умел. И всегда было очень интересно, что можно сделать, если браться за дело уже обладая опытом в DS.

Теперь же я смотрю на пример Эмели Драль и Лены Самуйловой с их Evidently AI и вижу: сделать можно очень многое, а главное не только стартап, но и классный open source продукт для сообщества.

Немного вводных про команду
Эмели - один из самых крутых индустриальных Data Scientist'ов, которых я знаю. Пока многие игрались в модельки и рассуждали об абстрактных материях, у нее всегда во всех проектах были четкие постановки задач и понятный статзначимый результат в заработанных деньгах или повышении продуктовых метрик. Ну и, кроме того, она уже много лет учит других людей DS, успела поработать CDS в Яндексе и, кстати, вообще поработала за свою долгую по меркам нашей области карьеру над сотней разных проектов. Все это сопровождается очень нестандартным для DS пониманием бизнеса и переговорными скиллами.

Лена - человек, который отвечал за маркетинг в Yandex Data Factory и делал это очень круто, а затем она же выстраивала маркетинговую стратегию Mechanica.AI. При этом маркетингом ее компетенции не ограничиваются: Лена может и волшебно договориться с потенциальным заказчиком о проекте, и разобраться в том, как же эти наши технологии работают. Даже код написать, если очень нужно. В итоге вместе у них с Эмели абсолютно непотопляемая команда, способная уже в этом составе сворачивать горы.


О чем стартап
Так вот девушки уже год пилили свой инструмент для построения интерактивных отчетов о качестве данных и моделей машинного обучения. Если раньше менеджер просил DS'а вручную построить кучу графиков, чтобы лучше понять перформанс модели, то с инструментом Evidently AI это можно будет делать по кнопке. И даже о том, на какие графики полезно смотреть, за пользователей уже подумали :) В open source версии это делается прямо из кода с помощью питоновской библиотеки (недавно выкатили ее MVP), а если у вас все серьезно - также будет доступна полноценная реализация сервиса (эта история пока в процессе).

Пока в библиотеке есть только мониторинг дата дрифта (по картинке в аттаче легко понять, что это, а подробнее можно посмотреть в документации библиотеки), но на подходе много других фичей - подробнее см. https://evidentlyai.com/

А сейчас можно заглянуть к Эмели и Лене в их гитхаб ( https://github.com/evidentlyai/evidently ) и покрутить у себя примеры. А еще можно поставить репозиторию звездочек, чтобы поддержать команду и вдохновить на развитие инструмента :)
19 марта (забавное совпадение, что за день до дня рождения), меня назначили Chief Data Officer в МТС. У нас это, если быть точным, называется "Директор центра Big Data". Теперь моим прямым руководителем стал президент компании, а с локальной задачи развития Data Science команды мне нужно было переключиться на задачу разработки стратегии всего направления работы с данными и их монетизации.

Справедливости ради, до назначения я три месяца был ВрИО, поэтому уже успел погрузиться в свои новые задачи. Работа в топ-менеджменте огромной российской компании, причем лидера в своей сфере, оказалась не только безумно интересной и затягивающей, но и "открыла второе дыхание". Я, конечно, всегда любил свою работу, но последние 3-4 года почти все задачи в Data Science вызывали чувство дежавю. Когда мне стал доступен "вид сверху" на происходящее, ответы на многие вопросы стали ясны. А главное, стало понятно, как развивать эту сферу дальше и создавать в ней новые тренды, а не просто решать задачи в области анализа данных.

В общем, ждите новостей, будет интересно :)
Было непонятно, стоит ли решаться возобновлять наш с коллегами-преподавателями субботний курс Data Mining in Action, при том, что мое рабочее расписание теперь оставляет желать лучшего, а отпуск превратился в далекую несбыточную мечту. Но мы все же решились :) Отбор на курс продлится до 15 апреля включительно, первое занятие 17 апреля, все занятия проходят в Zoom: https://vk.com/wall-78553823_2621
Вот научимся мы решать стандартные задачи машинного обучения (уже почти научились), и чем будут заниматься Data Science отделы в компаниях? Понятно уже, как строить скоринги, модели оттока, рекомендательные системы, чтобы хорошо работало. Допустим, мы это умеем делать. Можем ли мы этим принести пользу каждой бизнес-вертикали компании и каждому подразделению в ней, где это уместно? Конечно можем. А сколько это все займет времени в достаточно большой компании? Скорее всего, несколько лет.

По данным очень классного отчета Deloitte "MLOps Industrialized AI" (https://www2.deloitte.com/us/en/insights/focus/tech-trends/2021/mlops-industrialized-ai.html) в среднем 28% проектов в Data Science проваливаются на фазе production, 47% даже не выходят из фазы RnD, а внедрение модели в прод часто требует нескольких календарных месяцев. Если избежать искушения поиронизировать над аптекарской точностью этих процентов, можно заметить, что числа в целом согласуются с оценкой "на глаз" по опыту в индустрии.

Направление Machine Learning Ops касается именно инструментов для воспроизводимых исследований в ML, выкатки моделей в продакшн и мониторинга их работы. Отчет Deloitte иллюстрирует одну из популярных идей в современном ML: в будущем вызов будет не в построении моделей, а в их внедрении и масштабировании на весь бизнес. Поэтому в значительной степени ML Ops - это просто будущее ML. А, казалось бы, несравнимые вещи: одно, считай, прикладная математика, а другое - инженерное направление. Впрочем, ML не первая область, в которой так происходит.

Насколько верен такой взгляд на будущее ML - поживем, увидим. Но про MLOps теперь и правда можно услышать на любом митапе, любом курсе, да и мы на DMIA уже решили открыть экспериментальное направление Production ML, об этом же. Кстати, в бигдате МТС тоже в прошлом году появился фреймворк для унификации процесса выкатки в прод наших моделей. А еще можно вспомнить и про ebonite от Zyfra, первый публичный релиз которого случился еще в ноябре 2019. Словом, тема уже очень горячая, так что если у вас скорее менеджерская роль, очень рекомендую упомянутый отчет Deloitte, а если вы про работу руками - разумеется, покрутить фреймоворки, если еще не :)
Пассивный доход в DS

Когда я собирал вопросы читателей этого канала, один из вопросов меня удивил: «как получать пассивный доход». Я вроде не финансовый консультант, более того, за свою недолгую жизнь я пару раз расставался со всеми сбережениями почти целиком. Но, наверное, сейчас я готов дать ответ для людей из сферы DS.

Если говорить о внерабочей монетизации знаний по DS, то первой в голову приходит прямая продажа своих знаний, т.е. заработок на обучении других людей. Например, иногда люди думают, что курс на Курсере с отчислением роялти авторам - это нормальный пример пассивного дохода (возможно из-за нашей специализации этот вопрос и прилетел ко мне). На самом деле такой себе. Хватит и организационных проволочек вроде согласования договора между партнерами по два года, и того факта, что любой курс устаревает, поэтому это конечная история. Захотите обновить - будьте добры опять договариваться все вместе, чтобы что-то сделать. В итоге правильнее сказать, что это не пассивный доход, а работа с оплатой, разнесенной по времени на несколько лет. В течение нескольких лет ваша карьера в DS может улететь в космос настолько (за счёт того, что область у нас молодая и богата такими возможностями), что роялти за 4 года вы будете зарабатывать за месяц или два. Если вы хотите увеличить эти отчисления, можно избавляться от посредников, запускать свои курсы на платформах, покупаемых за фиксированную плату, самому решать вопросы с записью. Либо инвестировать в это деньги и нанимать людей опять же за фикс, выстраивать продажи, и так далее и так далее. Но так обучение из попытки сделать источник условно-пассивного дохода превращается в полноценный бизнес, а мы не этого с вами хотели 🙂 Кроме того, если прям откровенно и смело максимизировать прибыль от обучения, оно начинает скатываться в инфобиз, так что вместо пассивного дохода можно в конце-концов лишь испортить себе репутацию.

Конечно, зарабатывать на обучении можно, но доход не особенно пассивный: возни много и с онлайн, и с оффлайн курсами. В оффлайне стоимость часа может получиться выше, чем на основной работе, и может показаться, что можно получать тот же доход, освободив больше времени. Но, если учесть затраты времени на продажи и подготовку лекций, то это тоже не супер. В лучшем случае вы сможете себе позволить работать 30 часов вместо 40-50, причём только тогда, когда ваше имя начнёт само вас продавать и поток корпоративных заказов будет больше, чем у вас есть времени. И не забывайте, что если при этом вы не будете обновлять материалы и совершенствовать свои скиллы, вас заменят в этом сегменте более молодые и голодные 🙂 В принципе, сделать бизнес на образовании, и собрать команду, с которой вы можете отойти от текучки, вполне возможно, но опять же все это не про пассивный доход, все равно придётся работать.

Так как же получать «пассивный» доход? Вы будете смеяться, но, когда вы Data Scientist - устроиться на работу. Серьезно. Во-первых, в DS высокие зарплаты, по сравнению с другими сферами. Во-вторых, вы уж извините, но это не сильно пыльная работа. В третьих, на работе, даже будучи самым ответственным и трудолюбивым, вы будете напрягаться меньше, чем пытаясь создать любой актив, который вас будет кормить. Заметьте, зарплату вы получите независимо от того, как поработаете. И даже уволят вас не сразу за плохие результаты, так что когда начинаете сдавать, у вас есть время прийти в себя. Ну и дальше остаётся только не проедать всю эту зарплату и максимально быстро копить деньги в ценных бумагах. Если вы смелый человек - ETF на S&P500 из расчета, что после ухода с работы можно проедать в год 3-4% тела капитала. Если осторожный - дивидендные акции и облигации. У компании, где я сейчас работаю, например, очень хорошая дивидендная политика. И у ряда других больших российских компаний тоже, акционеры же есть разные, и те, кто с большими долями, тоже хотят получать дивиденды 🙂 Ничто не мешает присоединиться к ним. У американских компаний тоже встречаются очень неплохие дивиденды. В итоге лет 10 в офис походите, и будет у вас все хорошо.
Космические зарплаты в IT за это время никуда не денутся. Вот такой вот банальный ответ на вопрос для DS и любых других людей с огромными зарплатами.