ML for Value / Ваня Максимов – Telegram
ML for Value / Ваня Максимов
5.59K subscribers
191 photos
1 video
1 file
119 links
Путь от ML-модели до Value для компании | RecSys, Search, LLM, Pricing и CLTV

Ваня Максимов, @Ivan_maksimov
Head of AI | Recsys, search, llm @Y.Market, ex-WB, ex-Delivery Club

Консультирую компании, Веду курсы
Публикую релевантную рекламу
Download Telegram
Forwarded from Yandex for ML
⚡️ Рассказываем о первых спикерах Practical ML Conf — большой конференции Яндекса про Machine Learning

Прямо сейчас мы готовим для вас большую хардовую программу с ключевыми инженерами индустрии. И мы уже готовы представить первых спикеров конференции — специалистов из Яндекса, Сбера, Авито, ВТБ, X5 Tech, Дзена и Third Opinion, которые расскажут о реальных кейсах использования ML.

Собрали для вас в карточки всё про первые доклады на Practical ML Conf, которые можно будет услышать уже 7 сентября. И это только часть нашей программы — другие доклады можно посмотреть на сайте конференции.

👉 И если вы ещё не успели зарегистрироваться на Practical ML Conf — то сейчас самое время.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍91
Сегодня была Practical ML Conference: смотрел много докладов, да еще и сам рассказывал про прогноз спроса!)

Очень много прям топ выступлений 🔥

Что понравилось лично мне:

1. Item2Item рекомендации в Дзене
Рекомендации в целом я обожаю, но тут еще и про довольно элегантные вещи с отбором кандидатов и легким ранжированием рассказали

2. CPA аукцион в Маркете
Довольно занятно, что рекламные продукты в маркетплейсах активно развиваются в последние года 2-3, и уже сделали очень мощные архитектуры в проде

3. Рассказ про Kandinsky 2.X
Я про диффузионки знаю только в теории, но доклад так хорошо рассказали, что я понял вообще все:)

4. Мой доклад про прогноз спроса конечно 😅
Рассказывал, как объединить оочень простой бейзлайн с бустингом и получить много профита от этого
👍29🔥191
Почему бустинг плохо понимает линейные зависимости?

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

Условному LightGBM непросто выучить зависимость y = x по 2 причинам:

1. Нужно довольно много сплитов дерева (большая глубина / мнго деревьев), чтобы это выучить
if x < 10 then y = 9
if x > 10 then y = 11
if x > 12 then y = 13
…. (N раз)
if x > 1000 then y = 1001

2. Сложно прогнозировать out-of-distribution
Вторая проблема хорошо видна из “крайних” условий на х:
if x <10 then y = 9
if x > 1000 then y = 1001

Бустинг довольно плох для значений Х, которых не было в трейне (out-of-distribution). И если у вас, например, продажи с растущим трендом, то прогнозировать больше, чем было раньше - очень проблемно

Можно конечно для продаж прогнозировать не сами продажи, а их прирост. Но и это не всегда решает проблему: представьте, что на товар была скидка не более 10%, а сейчас стала 30%. Можно неаккуратно переобучиться на историю скидок именно этого товара и не прогнозировать бОльший рост, даже если на всех товарах (где бывают любые скидки) есть около-линейная зависимость от скидки

Рубрика “Ответы на вопросы из комментариев” #answers
🔥47👍17🗿21
Неклассические бустинги над деревьями (hybrid regression tree boosting)

У бустингов над деревьями есть некоторые проблемы с линейными зависимостями. Почему бы тогда не совместить бустинг, деревья и линейную регрессию?

Идея такая: в классическом дереве для задачи регрессии для прогноза в каждом листе берется среднее таргетов (для rmse loss). Что если вместо простого среднего строить в листе линейную регрессию? И в качестве прогноза брать прогноз линейной регрессии

Так и возник подход hybrid regression tree (HRT) - это дерево, в каждом листе которого есть линейная регрессия. Пример работы можно посмотреть на картинке к посту. Ну и конечно это можно обобщить до бустинга

Штука прикольная, и как-то в универе мы с ребятами даже запилили код hybrid regression tree. Ни о какой оптимизации по скорости и памяти в студенческом проекте речи конечно нет, но поиграться можно

И внезапно наша репа до сих пор топ-1 по запросу ”hybryd regression tree” в гугле аж с 2 звездочками 😅

Это говорит скорее о непопулярности подхода - по метрикам чуть лучше классического lightGBM / CatBoost, но сииииильно медленнее: может работать только на небольших наборах данных до 10-100к строк. Можете, кстати, посчитать сложность алгоритма в комментариях - удивитесь 😄

UPD: В комментариях подсказали, что этот алгоритм завезли в lightGBM. Что ж, очень радует!)


#answers - ответы на вопросы из комментариев
🔥33👍106😁1🗿1
Channel name was changed to «ML for Value / Ваня Максимов»
SUKI в А/В тестах

Сразу оговорюсь - это не то, о чем вы подумали))

в АВ есть фундаментальное предположение SUTVA - Stable Unit Treatment Value Assumption. И обычно обьяснение SUTVA никому не заходит. Поэтому все его успешно игнорируют 😀

У меня есть альтернатива:

SUKI assumption:
S - Student’ t-test
U - Units
K - Key metrics
I - Independence


“Student t-test for Units over Key metrics under Independence assumption”

Это покрывает все необходимые советы для успешного АВ:

S - Student’ t-test
Имхо, если вы не провели сотни АВ или не имеете Masters по статистике, даже не пытайтесь использовать что-то кроме теста Стьюдента. Без стратификации, cuped и прочего - обычный тест Стьюдента. Если его (и другие предположения SUKI) выполнить, то вы получите сильно более корректные выводы, чем с модными методами

U - units
Один Unit (юзер, магазин) может генерировать кучу событий (кликов, покупок). Мы проводим тесты на Unit-ами. То есть в поюзерном тесте метрика должна быть по юзерам (1 юзер = 1 число), а не по сессиям, заказам или юзеро-дням. Иначе наблюдения становятся зависимыми = вся логика АВ ломается

K - Key metrics
Не стоит выбирать 20 метрик и смотерть, какая прокрасится! Ни в одном из тысяч (когда я руководил разработкой АВ платформы, через меня прошло больше 2к тестов) не понадобилось более 2ух целевых метрик. Бывают еще барьерные и контрольные метрики, но это уже совсем другая история:)

I - independence
Ваши наблюдения в тесте должны быть независимы. Как я уже писал, 1 наблюдение = юзер, а не юзер-день или юзер-сессия. В соц сетях и юзеры могут быть зависимыми - стоит подумать, как обьединить их в кластеры, и проводить тесты по кластерам юзеров


В общем, когда в следующий раз вы крикните “какие SUKI сломали мой А/В ?!” - вы знаете ответ 😅
🔥47😁175👍3💩2
В телеге появилась возможность постить сторис от имени канала, но для этого нужно набрать голоса (бусты) от премиум-пользователей 🚀

Если хотите видеть еще и сторис от ml4value, то можете обновить телеграмм (бусты есть только в последней версии) и пробустить канал по ссылочке:

https://news.1rj.ru/str/ml4value?boost

Upd: господа и дамы, лайки - это хорошо, но бусты - еще лучше 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁621🤮1
Рост в ML: Junior —> Middle

Астрологи скоро объявят неделю ревью - пора разобраться, как растить свой грейд

Я не буду писать про классические “делай задачи на следующий грейд” или “помимо раскачки хардов не забывай про софты”. Сосредоточимся на деталях, quick wins и грязных трюках 😇

Для роста из Junior в Middle я бы посоветовал собрать 3 ачивки:


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

Лайфхак: если вы не знаете, где найти такую задачу - сделайте простую систему алертов на метрики ML/бизнеса в телеграм. Для этого не нужны SOTA навыки, но придется пообщаться со многими людьми и убедиться в полезности алертов. Убиваете сразу 3 зайцев: Показываете самостоятельность, приносите пользу, становитесь заметны вне своей команды


2. Разобраться во всех кусках ML продукта, над которым работает ваша команда
Не только посмотреть код ML-модели, но и понять, почему были приняты все основные решени в архитектуре. Уметь в Aiflow / Docker / что угодно еще для поддержки модели. Понимать как именно модель приносит пользу бизнесу

Лайфхак: Не пытайтесь выглядеть всезнающим. Чтобы реально разобраться в деталях придется задать 1000 и 1 глупый вопрос. Со временем ваши глупые вопросы станут умными, а умные вопросы - имхо, один из главных показателей middle / senior DS


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


Другие советы я выложу в сторис, когда мы с вами добьем пару бустов каналу 💪

Если у вас есть еще годные советы Junuior-ам, пишите в комменты - обсудим ⬇️
👍49🔥75💩1🦄1
Рост в ML: Junior —> Middle
Грязные трюки edition
😈


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

Так что умножай сроки х2 - не прогадаешь. Актуально и для начинающих тим лидов:)

2. 30% времени - на курсы
До роста в синьора твоя кривая обучения стремится в космос, особенно на позиции джуниора. Каждый потраченный час на хороший курс или статью существенно улучшает знания и навыки. Пользуйся этим! Да, это инвестиция в будущее: если ты останешься в той же компании, то это ей окупится. Ну а если не останешься… то плохая программа роста там 😅

3. Скажи всем, что хочешь стать миддлом
Как ни странно, тим лиды и тиммейты не экстарсенсы. Хочешь стать миддлом / + 20% к зп / удаленку - хотя бы скажи про это. Лучше не прям перед ревью, а в начале полугода. И повторяй почаще) Так у тебя с тимлидом есть шанс придумать план, как стать миддлом, и есть шанс его воплотить, поправляя косяки по ходу дела. Если же об этом не говорить, может задач на ”показать себя” и не появится

P.S. Долго думал над форматом сторис - пока продолжаю его искать. Если у вас есть идеи - пишите в комменты, все учту)
👍55🔥9💩2
Рост в ML: Middle —> Senior

По просьбам из комментариев, кратко опишу, как я отличаю джунов-миддлов-синьеров

Джун - хорошо делает хорошо поставленные задачи. Запилить фичу, написать автотесты и тп
Миддл - может полноценно развивать ML-проект. Добавляет фичи, ускоряет инференс и тд
Синьор - сам найдет бизнес-проблему, сам придумает решение и сделает, подскажет как лучше

Для роста из миддла в синьера потребуется уже 1-3 года и сбор вот таких ачивок:

1. Стань лидером ML-проекта
Наверняка можно взять устоявшийся проект на развитие / придумать новый. Важно, чтобы все от общения с бизнесом до внедрения в прод мог лидить именно ты. Это покажет самостоятельность и подарит чувство “Да, этому чуваку можно доверить большое дело”

2. Работай в команде
Как правило, затаскивать большие штуки в одиночку - крайне сомнительная затея. Если ты работаешь в стартапе, может и получится. Но в любой крупной компании в одиночку шансы крайне малы. Бери себе в помощь джунов, найми стажера, делегируй часть работы соседней команде - будь креативен 👩‍🎨

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

P.S. Читать статьи (хабр и медиум тоже!) - это не 1-2 в неделю, а хотя бы 10-15. Большинство из них bullshit bingo, поэтому помогут развиваться процентов 5 статей

Как определить, что у тебя получился этот пункт: к тебе стали чаще ходить за советом и звать на встречи по принятию решений:)

4. Придется научиться общаться 😄
Да-да пресловутые soft skills. Большинство миддлов сыпятся именно на них. Можно прокачивать навыки общения, начав вести регулярные встречи с бизнесом (если их нет - поставь срочно!). Из неплохих лайфхаков - выбери 2-3 синьор/лид людей из бизнеса и поставь им 1-1 раз в пару недель. И общаться научишься, и свою visibility поднимешь)
👍39🔥14💩1
Визуализация эмбеддингов из коробки 📦

Наконец появилась приятная библиотека spotlight для визуализации данных в ноутбуке без тысяч строк на matplotlib и seaborn

Самое приятное для меня: помимо классических визуализаций табличек, spotlight умеет в неструктурированные данные (картинки) и эмбеддинги!

В общем, буду активно тестить🤓
👍35🔥6🤔1💩1
Хорошо рабатаешь - хорошо отдыхай

Я вернулся из почти 3-ех недельного отпуска, и к его концу мне уже очень хотелось вновь начать работать)
За это время я не отвечал ни в каких чатах, не смотрел дэшборды и тп - все прекрасно работало надеюсь 😅

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

1. Не писать и не отвечать в чатах до 9 и после 19
Подождать 9 утра или следующего дня может практически любая проблема
Если у вас периодически падает сервис по ночам и нужно прям дежурить - только тогда явно выделяйте дежурных с доп окладами и регулярной сменой. И только до того времени, когда вы стабилизируете свой сервис - это должно стать фокусом, а не тех долгом в далеком беклоге

2. Хотя бы 1 выходной с нулевой терпимостью к анализу данных
Я имею в виду не только не работать (надеюсь, вы и так не работаете в сб-вс), но и не продумывать архитектуры, не проходить мощные курсы, не зарешивать кагл и тд

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

Чтобы точно не работать в выходные:
- Не катите в прод в пятницу 😄
- Подкладывайте бэкапы на случай падения процессов / сервисов на выходных
- Работайте над стабильностью ваших сервисов

3. Ну прям совсем не работайте в отпуске
Я насильно кикаю с зум-встреч тех, кто пришел на них в свой отпуск. Пару раз кикал даже своих руководителей)
Нам кажется, что за неделю-две без нас компания никак не проживет, но в реальности - еще как проживет! И это довольно полезное наблюдения в том числе для делегирования
👍98🔥12👎3
Розыгрыш подписки телеграмм-premium

Вместе с Ромой из канала Start career in DS проводим конкурс розыгрыш 🤡

Мы оба работаем в Яндекс Лавке и делаем прогноз спроса, ценообразование и оптимизацию ассортимента круче. У Ромы на канале можно прочитать много всего интересного)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡10❤‍🔥4🔥31
Forwarded from Start Career in DS
This media is not supported in the widget
VIEW IN TELEGRAM
❤‍🔥13🤡8
Наконец вышел видос на ютубе!

Давненько уже мы встретились с Сашей - автором @datafeeling и записали живой разговор про карьеру в ML
Долго монтировали все это дело, и теперь вы можете посмотреть

➡️ Выпуск на ютубе

P.S. Качество звука так себе, потому что это наш первый опыт самостоятельной записи на камеру 🙃
💩14🔥9🤔3🥴1
GPT-4 захватывает мир, в то же время..

Поиск Гугла ломается при добавлении цвета “Rose”. Начинает выдавать вообще не ML-иконки:)

У меня такому феномену 4 объяснения-гипотезы:
- Поиск Гугла не учитывает контекст последних запросов (до этого гуглил “ml icon”)
- Поиск Гугла не учитывает персональный вектор пользователя (странно парню рекомендовать пусть в спорных кейсах косметику)
- Что-то ломается из-за поиска по специфичному домену ML
- Popularity bias во всей красе (домен косметики явно популярнее ML)

Знатоки NLP и поиска, что думаете? ⬇️
👍21🤔8💩6🥴3