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

РКН: 5140322136
Download Telegram
Статзначимость в А/В тестах: дополнительные вопросы (часть 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 и любых других людей с огромными зарплатами.
Задача направления Big Data в большой группе компаний

Во многих больших компаниях, пытавшихся отдельно от развития новых базовых бизнес-вертикалей монетизировать направление Big Data, эксперимент заканчивается неудачей или, как минимум, очень неуверенным успехом. Обычно большая компания зарабатывает сколько-то сотен миллиардов в год, а такая «прямая» монетизация Big Data даёт еще +0,5-1%. Как-то так себе, согласитесь?

Разберёмся, почему так выходит. Традиционно в компаниях-«гигантах» прорабатывают два пути: внутренние оптимизации за счёт анализа данных и внешние продажи. Внутренние оптимизации действительно и при 1% экономии могут дать большой эффект в абсолюте, но это все-равно по-прежнему будет 1%. Мне вот, кстати, работая в Data Science, всегда было грустно осознавать, сколько интеллекта и труда вкладывается в этот наш 1%, хотя один толковый и опытный менеджер, поправив парочку бизнес-процессов, может обеспечить значительно более крутой результат. Если же мы говорим про внешние продажи, то, сразу отметая прямую продажу данных, что вы будете продавать другой компании? Наверно тоже какой-то эффект на 1-2%. Вам заплатят еще меньше, конечно, но вы можете надеяться выехать на том, что компаний много. Увы, гигантов в каждой отрасли мало, а если еще оставить те отрасли и те размеры компаний, у которых точность измерений не съест этот ваш 1% эффекта, выходит совсем не густо.

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

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

Настоящий же эффект от Big Data не в том, чтобы кому-то что-то экономить, а в том, чтобы радикально больше зарабатывать. И, пока вы не записали меня в «мотивационные спикеры» с очевидными идеями, поясню мысль: современный бизнес меняется, и то что раньше было банком или телекомом, сегодня им не является. Почему трудно угнаться за тем же Тинькофф банком? Потому что он не банк, а IT компания, и заложено это было довольно давно. Почему Яндекс может развивать такси или фудтех бизнес, а другие нет? Потому что технологии и люди внутри Яндекса позволяют строить это как бизнес из будущего, а не из настоящего. Открыть компании дорогу к новым современным бизнесам, в которые без технологий не сунешься, - вот основная задача Big Data и самая крутая монетизация.
Нисколько не приуменьшаю значимость сильных предпринимателей и биздевов внутри больших компаний (без них точно ничего не выйдет), но в будущем лидировать будут те компании, которые сами по себе одна большая Big Data.
Обсуждали с коллегами из очень мне симпатичной и горячо мной любимой компании их подготовку учебника по ML. Они привлекают кучу крутых людей к ревью программы и содержания глав, и в написании тоже участвуют разные опытные в индустрии и науке коллеги. Сначала я поревьюил вместе с ними программы, потом вписался автором раздела по кластеризации.

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

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

2. Второй пример - квантизация признаков. Есть классическая история, когда в донейросетевую эпоху фрагменты изображений кластеризовали, каждый кластер называли «визуальным словом», а фичи для изображения готовили, нарезая по кусочкам и считая количество различных визуальных слов (по попаданиям кусочков изображения в кластеры). Может показаться, что вместе с bag of visual words это ушло в историю, но в целом трюк с использованием кластеров вместо фичей вас может спасти всегда, когда разнообразие значений признаков слишком велико для вашего датасета. Другая причина заменять фичи кластерами - если есть потребность не выдавать их as is. В обоих случаях вам конечно подойдут и достаточно компактные эмбеддинги. По сути bag of visual words был ручной попыткой строить понятные интерпретируемые эмбеддинги для картинок, а новый расцвет нейросетей просто увёл нас от ручных поделок к более автоматизированным.

3. Квантизацию можно делать не только по признакам, но и по объектам. Здесь два примера. Во-первых, когда у вас нет возможности использовать или передавать данные по каждому объекту (например по пользователям), но есть - по агрегату, может быть уместно их просто кластеризовать и работать с кластерами. Для решения полезных бизнесу задач порой этого более чем достаточно. Во-вторых, вам может просто не хватать данных по каждому объекту. В частности, когда вам маловато данных по каждому пользователю для построения рекомендаций, можно на первых порах ограничиться рекомендациями для небольших кластеров пользователей. Впрочем, будет ли это лучше, чем рекомендашки там, где данные есть, и их последующее скрещивание с kNN-ом, надо смотреть по ситуации.

4. Ещё один пример - автоматическая поддержка каталогов типа каталога товаров в Яндекс Маркете, когда у каждого агрегируемого магазина своё дерево категорий, а вам нужно иметь в агрегаторе обобщенное, ещё и периодически обновляемое.

И всё это если абстрагироваться от примеров кластеризации в NLP, сегментаций клиентских баз и других классических применений кластеризации, где вызывает вопросы субъективная оценка качества «на глазок» либо по отстранённым от полезности результата метрикам. Ровно такие применения с непонятным измерением ценности обычно и дискредитируют задачу кластеризации в глазах DS’ов из бизнеса. Для меня же было неожиданным наблюдением, что за применениями, вызывающими хейт, мы часто забываем про более понятные кейсы, которые вполне себе адекватны. Так что внезапно кластеризация не полностью бесполезная и унылая хрень, нужная только чтобы заняться каким-то ML, но не брать ответственность за результат.
С тех пор как я начал преподавать, у меня всегда были проблемы с тем, чтобы слушать лекции. Из-за профдеформации я начал считать, что лектор должен меня заинтересовать, а не я должен интересоваться предметом. И это явно не тот перекос, который чем-то помогает слушателю технических дисциплин :)

Разумеется, в 2021 году есть куча доступных материалов, с которыми очень хочется ознакомиться, когда думаешь в терминах "сейчас узнаю что-то полезное". Но вот ты запускаешь какой-нибудь клевый курс или доклад на ютьюбе, и снова начинается в голове это "ну давайте, развлекайте меня". В итоге не досматриваешь и до середины, забиваешь, почти ничего полезного не узнал, ещё и почувствовал себя совершенно избалованным.

Но я нашел способ вывернуть наизнанку преподскую и спикерскую профдеформацию. Теперь, когда смотрю чужой доклад, я думаю: надо найти в нём все классные идеи по подаче материала и подходы, как сделать рассказ понятным, и тоже их использовать. И тут уже не возникает того цинизма и привередливости, а наоборот, начинаешь ловить каждое слово. Например, давным-давно, когда только вышла специализация Advanced Machine Learning на Курсере (за которую Женя Соколов получал какую-то награду вживую от самого Andrew Ng, даже фоточка осталась), мне очень зашел рассказ Кати Лобачевой про LSTM. Уж не знаю, чем вдохновлялась она, но методически, с точки зрения качества объяснения, это было очень доступно. В итоге все годы с тех пор рассказываю студентам очень похожим образом.

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

Но метод оказался рабочим. Сейчас есть очень много молодых и талантливых преподавателей и спикеров разных митапов, и иногда после работы я нахожу время посмотреть их лекции и выступления вместо какого-то фильма или сериала. Т.к. я смотрю это не только ради контента, но и чтобы продолжать учиться выступать, часто это вызывает у меня чувства "блин, какие все же классные ребята есть". У кого-то здорово поставлена речь, кто-то особенно хорошо держится и не волнуется, кто-то весел и бодр, и заряжает этим слушателя. Концентрируйтесь на хорошем и сразу становится интереснее слушать :)
Математика в машинном обучении

Вот люди часто спорят, нужно ли знать математику, чтобы заниматься машинным обучением, или нет. И в каком объеме. Ответ простой: есть вещи, которые можно делать с достаточно скудным знанием математики на уровне что такое градиентный спуск (и то иногда на уровне ощущений), а есть ситуации, когда вы порадуетесь, что понимаете преобразование Фурье, двойственные задачи или, например, теорему Стокса. И это весь ответ: с разными знаниями вы можете решать разные задачи и понимать методы ML с разной глубиной осознания. Нужно это вам или нет - решайте сами. Каждая команда тоже сама решает, какие люди ей нужны.

Вот вам простой пример: для всех, кто занимается ML давно, древний баян, но зато очень показательный. Если вы решаете задачу оптимизации, а у вашей функции нет градиента (например, она зашумлена), но вас устроит минимизировать ее сглаженную версию, то можно устроить градиентный спуск без градиента. Начинаете в точке x, выбираете случайный вектор p из равномерного распределения на единичной сфере и маленькое число b. Считаете f(x + bp) и вычитаете s*f(x+bp) из x, где s - размер шага градиентного спуска на текущей итерации. Повторяете такие итерации и, о чудо, в среднем (в терминах матожидания) вы движетесь в сторону антиградиента сглаженной функции f.

Если математика для вас темный лес, остается просто поверить в то, что это работает. Если вы немного в ней разбираетесь, то для случая незашумленной f вы распишете f(x+bp)-f(x) по Тейлору до первого члена и догадаетесь, что из-за равномерного распределения p на единичной сфере слагаемым -f(x) можно пренебречь, т.к. после взятия матожидания оно все равно зануляется. А если вы прям неплохо шарите или можете все быстро вспомнить, то вам по силам разобрать выкладки вроде того, что на странице 2 и 5 вот этой вот статьи https://arxiv.org/pdf/cs/0408007.pdf (а может даже написать их самостоятельно), и понять, причем там сглаживание, о каком сглаживании в принципе идет речь, и что вообще лучше разобраться, почему это работает, причем там размерность пространства, и как она влияет на размер шага, да и что там в целом со сходимостью. Не интересно - да и фиг с ним. Интересно - вот вам и математика.
Про пиар

Неловкий момент, когда PR отрицает годы работы Data Scientist'ов в рисковом блоке банка - Альфа сообщила, что задачу кредитного скоринга теперь (!) решает ИИ: https://www.vedomosti.ru/press_releases/2021/11/29/alfa-bank-nachal-vidavat-krediti-s-pomoschyu-iskusstvennogo-intellekta

Для справки: к ИИ относятся и нейросетки, и любые другие модели машинного обучения. Причем какого-то сакрального смысла в использовании именно сеток или именно бустинга нет: что получилось настроить работать лучше (точнее и стабильнее в случае скоринга), то и надо использовать.

Таким образом либо в Альфе раньше вообще не использовали машинлернинг в скоринге (что странно, все крупные банки и операторы уже много лет это делают), либо теперь его решили назвать ИИ и сделать пресс-релиз (возможно, заменив одну модельку на другую, но это не точно). Короче как ни крути, а неловко вышло - написали новость про то, что у всех давно есть. Возможно, посыл был в том, что аккуратно дотащили скоринг до риал-тайм продакшена и хорошо встроили в процесс выдачи кредитов, либо в том, что перестали перед выдачей валидировать прогноз человеком и полностью поручили модели - в таком случае конечно не rocket science, но все равно неплохо. Словом, готов поспорить, что ребята из Альфы таки сделали что-то хорошее, но вот то, как это анонсировано - просто ужас :)
14 декабря пройдет DataStart - онлайн-конференция по Data Science. Я уже не первый год выступаю на ней и каждый раз встречаю на DataStart много крутых спикеров. Уверен, что в этом году тоже будет здорово.

В этот раз вас ждёт 2 трека и 16 часов докладов про кейсы, успехи и фейлы на бесплатной онлайн-трансляции

📌 Регистрация - https://clck.ru/Z7pec

Трансляция идет в 2 потока, для тех кто хочет увидеть всё или пересмотреть доклады повнимательнее есть опция приобрести записи (должна же как-то конференция монетизироваться, по своему опыту знаю что подобные мероприятия это тяжкий труд большой команды людей :)

Промокод на скидку: Kantor500

Некоторые из докладов:
- Методы оптимизации процесса разметки для обучения нейронных сетей
- Хаос в машинном обучении
- Face Recognition
- Как замашинлернить всё в большой компании (это мой :))

Среди спикеров: Иван Оселедец, Паша Финкельштейн, Влад Виноградов (EORA), Дмитрий Гронский (Ozon) и др.

📌 Регистрация - https://clck.ru/Z7pec
Через полчаса подводим итоги года в DS. Присоединяйтесь :)