Канал Доброго Вани | Data Science и Продуктики
1.44K subscribers
535 photos
26 videos
7 files
120 links
Самый добрый канал про DataScience, ML, техпред, стартапы и про много чего еще 🥰

Реклама, сотрудничество и любые другие вопросы -> @Pleshakovski
Download Telegram
Продолжаем рубрику с разбором вопросов на собесах

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

МЛ
Я построил линейную регрессионную модель, показывающую 95% доверительный интервал. Означает ли это, что существует 95% вероятность, что коэффициенты моей модели верно оценивают функцию, которую я хочу аппроксимировать?
Ответ:
Доверительный интервал — это результат процедуры, свойства которой определяются при многократном повторении эксперимента.
Корректная интерпретация:
"Если бы мы многократно (бесконечное число раз) повторяли эксперимент, собирали новые данные и каждый раз строили 95% доверительный интервал для коэффициента, то в 95% случаев эти интервалы содержали бы истинное значение параметра."

Big Data
Что такое parquet? В чем отличие csv?
Ответ:
• Колоночный формат: Данные хранятся по столбцам, а не по строкам (как в CSV, JSON).
• Минимизация I/O-операций: При запросе к определенным столбцам читаются только нужные данные, а не вся строка.
• Predicate Pushdown: Фильтрация данных на этапе чтения (например, WHERE age > 20). Parquet хранит метаданные (мин/макс значения для блоков), что позволяет пропускать ненужные блоки данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥2
Сегодня предлагаю немножко поботать и напрячь извилины всем МЛщикам на канале

Alternating Least Squares (ALS). SOTA или, быть может, переоцененная база? Краш или обычный тюбик? Разбираем по-честному.

Начнем с фанфакта, который я выяснил за последний год: почти все +- крупные команды рекомендаций в РФ сейчас используют ALS (в том числе, в рантайме). ALS — это алгоритм для матричного разложения, используемый в системах рекомендаций на основе колаборативной фильтрации (напомню, что факторизацию и колаборативку разбирали в этом посте).

Глобальная цель ALS, как и у любого матричного разложения, получить матрицу X и матрицу Y из исходной матрицы R взаимодействий объектов x и y. Например, у нас есть маркетплейс, на котором пользователи могу кликать на товары. Тогда матрицей R могут быть взаимодействия всех пользователей со всеми товарами (1 или 0: кликал ли юзер на айтем или нет), а X и Y — матрицы, состоящие из искомых векторных представлений этих юзеров (x) и айтемов (y). См. фото 1.

Идея ALS в следующем:
А давайте в нашем цикле сходимости попеременно фиксировать матрицу X и матрицу Y и вычислять оставшуюся незафиксированную оптимальную матрицу аналитическим методом. Таким образом, при фиксации матрицы Y, оптимальный вектор x можно будет вычислить по формуле на фото 2. После нахождения всех векторов x, мы их фиксируем и аналогично находим вектора y. Это мы будем называть ALS-шагом.

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

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

Изображения взял из Учебника ШАДа. У них также есть разбор IALS, вот ссылочка.


Вобщем, ALS стал базированной базой RecSys не просто так: оптимизация, интерпретируемость (благодаря аналитическому подходу), легковесность, простота в дообучении — его основные преимущества.

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

Накиньте ❤️, если понравился разбор!
11👍4🔥2
Как торговаться на собесах 🍑

Если вы получили оффер и вам уже сказали какую ЗП вы будете получать, то не торопитесь его принимать. Вы можете спокойно за несколько секунд зарабатотать 30% к своей ЗП, а то и более.

Зачем торговаться?
Давайте включим простую математику, если вам предложили ЗП в 300к, а вы сторговали ЗП на 360к, 360к - 300к = 60к в месяц вы сторговали, 60к*12 месяцев = 720к, вы за несколько минут заработали 720к в разрезе года, вы просто СЛОН 🐘
Именно так у меня было с СамокатTech 🥳

Почему можно торговаться?
1️⃣ Берём большие цифры, то есть если все в среднем будут просить больше по рынку, то работодателю ничего не остаётся кроме того, как повысить заработную плату и нанимать людей, ведь вакансии надо закрывать, а фичи пилить 👷
2️⃣ К тому же бизнес зачастую имеет средства для повышения ЗП, особенно большие компании 😁
3️⃣ Ну и мы живём в той стране, в которой инфляцию нужно обгонять каждый год, а если вы не будете этого делать, то будете падать в благах, если ваша ЗП не будет меняться 👀
4️⃣ Офферы не отзывают, если вы попросите больше ЗП, запомните фразу: "Как компания ищет лучшего кандидата, так и кандидат ищет лучшего работодателя" 👁

Алгоритм торговли 💪
Допустим вам дали оффер с ЗП, тогда вы пишите следующее:
"Да, возращаюсь с ответом. Только вот другая компания Y сделал оффер X минут назад. У вас и у них хорошие команды и задачи. Но есть финансовый момент, что они предложили мне на Z$ больше. И выбор мой усложняется. <тут описываешь почему тебя компания зацепила>. Можете ли вы сделать что-нибудь по этому, чтобы облегчить мой выбор?"

И тогда с большой долей вероятности к вам могут прийти с повышенным оффером, и да это можно делать даже тогда, когда у вас нет второго оффера, но это ваш выбор... 🤡

В своём @eboutdatascience я помогаю увеличить шанс получения самого жирного оффера: гайды по собесами, по торгам, по техничкам, по резюме, разборы живых собесов, говорю про менталку и то, как устроен найм в целом
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥1😈1💅1🗿1
🍭 Праздник к нам приходит, праздник к нам приходит.. Админ КДВ подводит итоги года!

💕 В этом году я сменил место работы и с головой ушел в рекомендации в Яндекс Маркете. Поэтому много писал о ранжировании и рекомендашках. Очень важный пост про индексы, про основные подходы в рекомендашках, про BERT в RecSys.

О причинах смены места работы тоже, кстати, пост есть)

💕 Я окончил бакалавриат в МИСИС и поступил в Магистратуру Центрального Университета на Продуктовый менеджмент. Всем абитуриентам рекомендую почитать про мои первые впечатления.

А в этом посте сравнил магистратуры в ЦУ, Вышке и МИСИС. Будет полезно всем будущим магистрам!

Я обожаю путешествия, и в этом году 2 недели провел в стране, в которой давно хотел оказаться (а еще в Грузии и Китае). Серия постов про Японию 🇯🇵

Год получился очень насыщенным и интересным! А в следующих постах подведем итоги канала
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥196🎉3💅21
This media is not supported in your browser
VIEW IN TELEGRAM
20🔥10🍾5👍1👏1
❤️ Прошел практически год с моего увольнения и прихода в Яндекс.

Как вы знаете, Маркет, Лавка, Браузер, Еда, Такси, Алиса, Диск, Карты, Музыка, Недвижимость, Кинопоиск, Афиша, Телемост, Переводчик (пальцы устали печатать) и многое другое — это все Яшечка.

🐦 Все эти сервисы создают люди, талантливые и неповторимые в своих лучших чертах.

За этот год я познакомиться с десятками крутых ребят. Выяснилось, что многие ведут свои каналы — и так родилась на свет самая яндексовая папка каналов from YNDX .

Ребята вещают об аналитике, МЛе, продуктах — и других темах. Вобщем рекомендую изучить каналы и экспертизу ребят, даже если на новогодние праздники уже слишком плотный график 😜
Please open Telegram to view this post
VIEW IN TELEGRAM
115🔥14💘7👎4
🍭 Продолжаем подводить итоги года!

Итак, за этот скромный год канал вырос с 550 подписчиков до 1350 - почти в 2.5 раза. И это только начало!

🎄 Ну а краткую сводочку я подготовил в двух редакциях. В одной (tgstat) статистики посчитаны без картиночных вложений к постам, а в другой — с ними. Я рад, что ЛЛМ отобразила реальное текущее позиционирование канала: МЛ+продуктики+кусочки моей жизни — пазл сложился так, как я и задумывал (всё-таки у КДВ должно быть лицо, моё лицо 👀)

Больше всего реакций:
Как мы защитили диплом
Плод моих трудов в бакалавриате
Как меня развели мошенники

А больше всего просмотров неожиданно набрал мем про ГПУ

🎁 Давайте поздравим друг друга с Наступающим, поставив 🍾 под этим постом?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾18🔥54👎1
💕 Предлагаю долго не размусоливать — и сразу с корабля на бал. Как-то так вышло, что до сих пор на этом канале мы не говорили о задаче и подходах к Next Item (Action) Prediction.

Как обычно, будем обсуждать всё в контексте маркетплейса. Пусть, для определенности, у нас есть User_1, который купил товары Item_1, Item_2, ..., Item_N. Мы хотим по этой цепочке спрогнозировать Item_N+1, который пользователь с наибольшей вероятностью приобретет следующим.

✏️ Важные замечания:
• Количество Item ограничено. Да, на маркетплейсе могут появляться новые товары, но мы будем считать, что асортимент внутри дня меняется незначительно. Допустим, что всего у нас M айтемов.
• Пользователи могут быть "Холодными" — то есть с короткой историей. Например, пользователь зарегистрировался только вчера и еще не успел купить ни одного товара. Пусть, на момент построения модели у нас U уникальных пользователей.

Очевидно, что у пользователей может быть как короткая, так и длинная история взаимодействий. Однако при обучении нейросети на Next Item Prediction все вектора пользователей (последовательность их действий) должны быть одинаковой длины (назовем ее D).

✏️ Сделаем следующее:
• У пользователей со слишком длинной историей оставим только последние D действий
• У пользователей с длиной истории меньшей, чем D, оставим все действия и дополним их "Паддингами" (то есть нулями). Для D=5 у нас может получиться история юзера "0, 0, Item_X, Item_Y, Item_Z".

Таким образом, для каждого из U пользователей мы хотим выбрать один из M товаров, который те захотят приобрести. При этом для каждого пользователя мы имеем его вектор длины D — для всех пользователей получится матрица размера U x D (см фото).

🌼 Такс, задачу мы поставили. Осталось поговорить только про методы решения — SasRec, Bert4Rec, Pinnerformer, Argus. Но о них уже в следующий постах

Изображение взято из статьи на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84👎3🔥3
Традиционный QA с админом объявляется открытым в 2026!

Любые ваши вопросы (желательно содержательные), идеи по рубрикам, обратная связь по каналу — и вообще всё, что вы хотите мне сказать.

Постараюсь ответить на всё в комментариях под этим постом. Давайте общаться!

Присылайте сюда 👉 t.me/questianonbot?start=1397630247c
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍2