Серия вторая 😄
Отчет значит читаю неспеша, решил сперва понять, что я за эмбединги то выгружал такие, а то вдруг я что неправильно выгрузил😂
Короч изза того что клиентами были юрлица, то и эмбединги это были своего рода фичи по всем компаниям рф. Но как их сделать? Очень уж хочется понять, что компания 1 похожа на компанию 2. DS почесал то откуда руки росли и светлая мысль пришла откуда и ожидалось - у каждой компании же есть оквэд (код вида деятельности), значит их нужно использовать. Вроде даже и идея то прикольная, но при чем тут эмбеды? Т.е. банально коды в качестве фичей можно было бы использовать, но где же тут DATA SCIENCE а?🤣
В общем по всем компаниям были спарсены эти коды из интернетов, эти коды были замапплены на словарь с описанием оквэдов, т.е. теперь у каждой компании есть теперь тексты...
Чувствуете, да, чем запахло? Если вы подумали, что тут сейчас NLP бригада подъедет, то вы ошиблись, это же уже DEEP LEARNING будет, а мы рексис ващет строим, поэтому на эти тексты мы натравимword2vec обученный и усредним 😦
Я конечно прихуел... блэд, это конечно было давно, но даже тогда это дерьмо только на курсах показывали, для примера, что "queen-king=woman" и все.
Но мало всего прочего, компании то появляются новые, где их оквэды брать? Как эту базу обновлять? Кто должен этот word2vec применять, а? А у DS лапки🙂
Отчет значит читаю неспеша, решил сперва понять, что я за эмбединги то выгружал такие, а то вдруг я что неправильно выгрузил
Короч изза того что клиентами были юрлица, то и эмбединги это были своего рода фичи по всем компаниям рф. Но как их сделать? Очень уж хочется понять, что компания 1 похожа на компанию 2. DS почесал то откуда руки росли и светлая мысль пришла откуда и ожидалось - у каждой компании же есть оквэд (код вида деятельности), значит их нужно использовать. Вроде даже и идея то прикольная, но при чем тут эмбеды? Т.е. банально коды в качестве фичей можно было бы использовать, но где же тут DATA SCIENCE а?
В общем по всем компаниям были спарсены эти коды из интернетов, эти коды были замапплены на словарь с описанием оквэдов, т.е. теперь у каждой компании есть теперь тексты...
Чувствуете, да, чем запахло? Если вы подумали, что тут сейчас NLP бригада подъедет, то вы ошиблись, это же уже DEEP LEARNING будет, а мы рексис ващет строим, поэтому на эти тексты мы натравим
Я конечно прихуел... блэд, это конечно было давно, но даже тогда это дерьмо только на курсах показывали, для примера, что "queen-king=woman" и все.
Но мало всего прочего, компании то появляются новые, где их оквэды брать? Как эту базу обновлять? Кто должен этот word2vec применять, а? А у DS лапки
Please open Telegram to view this post
VIEW IN TELEGRAM
Серия третья 🥰
Ну ладно, эмбединги хуединги, сделала и сделала, что ж там дальше? Читаю значит текстом объяснение, не дословно конечно, потому что не помню, но смысл был следующий:
"Для обучения рекомендательной системы нужно выбрать метрику оценки, но все существующие метрики, слишком "обычные", поэтому была разработана новая, уникальная метрика специально, для решения этой задачи"
Короч перевожу - вертел я ваши метрики, щас свою создам🙀
Об этих метриках самописных я отдельную историю расскажу как пришлось разъебать одного сотрудника, изза горя от ума.
Но тут я так поступить не мог, поэтому пришлось дочитывать. Дальше был целый лист с формулами и каким-то описанием, что там считается. Логики если честно я совсем не уловил, просто в конце из формул был сделан вывод, что это самая заебатая метрика среди всех, но ее не использут, потому что все тупые, а я самый датасаентист среди всех. Сферический теоретик в вакууме, причем в коде реально считается только эта метрика, всех других будто не существует. А метрики получались такими странными, что я так до конца и не понял - она классная когда большая или маленькая😂 Просто в конце отчета метрика была равна скажем 1000. Спасибо бро, очень понятно, что ты этим сказать хотел 😀
Ну ладно, эмбединги хуединги, сделала и сделала, что ж там дальше? Читаю значит текстом объяснение, не дословно конечно, потому что не помню, но смысл был следующий:
"Для обучения рекомендательной системы нужно выбрать метрику оценки, но все существующие метрики, слишком "обычные", поэтому была разработана новая, уникальная метрика специально, для решения этой задачи"
Короч перевожу - вертел я ваши метрики, щас свою создам
Об этих метриках самописных я отдельную историю расскажу как пришлось разъебать одного сотрудника, изза горя от ума.
Но тут я так поступить не мог, поэтому пришлось дочитывать. Дальше был целый лист с формулами и каким-то описанием, что там считается. Логики если честно я совсем не уловил, просто в конце из формул был сделан вывод, что это самая заебатая метрика среди всех, но ее не использут, потому что все тупые, а я самый датасаентист среди всех. Сферический теоретик в вакууме, причем в коде реально считается только эта метрика, всех других будто не существует. А метрики получались такими странными, что я так до конца и не понял - она классная когда большая или маленькая
Please open Telegram to view this post
VIEW IN TELEGRAM
О метриках рекомендательных систем можно тут почитать
https://www.evidentlyai.com/ranking-metrics/evaluating-recommender-systems
или тут
https://towardsdatascience.com/metrics-of-recommender-systems-cde64042127a
Даже если вы считаете основной метрикой "свою" кастомную, то это не означает, что другие - это мусор. Для принятия взвешенного решения нужно рассчитывать несколько метрик, чтобы понять плюсы и минусы различных решений.
В любом случае ваши оффлайн данные для обучения будут содержать баес по отношению к показам текущих товаров и только аб тест сможет сказать насколько то или иное решение лучше.
P.S. АБ теста или бейслайна тоже кстати не было
На собезах между прочим часто прошу назвать все метрики которые знаешь для регрессии. В больее чем в половине случаев ответ ограничивается 1й или 2мя метриками
Please open Telegram to view this post
VIEW IN TELEGRAM
Evidentlyai
10 metrics to evaluate recommender and ranking systems
How do you evaluate recommender and ranking systems? This guide gives an overview of popular ranking metrics and approaches to evaluating recommendations.
Серия четвертая ❤️
Сайт для которого мы рекомендашки делали занимался реализацией разных активов - бензоколонок, кафешек, домов, машин, даже нефтяных месторождений. И у каждого актива в зависимости от его категории были какието свои фичи, а этих категорий было около 10. DS при этом очень уж хотел объеденить все эти фичи в одно пространство, но как это сделать?🤔
Короч, а что если взять фичи из 1 категории активов и натравить на них...PCA и взять первые 10 компонент. Потом взять фичи 2й категории, повторить и т.д. Получится что все активы содержат фичи pca1,pca2,...,pca10. Охеренно похоже ведь 🤣
У тебя в одной категории марка автомобиля с годом выпуска, а в другой площадь квартиры, а теперь ровно 10 фичей с одинаковым названием. Почему ds подумал, что компоненты нескольких pca совпадать будут мне не известно, но так вот было сделано. Собственно тогда я уже и решил, что эту модельку уже не спасти😦
Сайт для которого мы рекомендашки делали занимался реализацией разных активов - бензоколонок, кафешек, домов, машин, даже нефтяных месторождений. И у каждого актива в зависимости от его категории были какието свои фичи, а этих категорий было около 10. DS при этом очень уж хотел объеденить все эти фичи в одно пространство, но как это сделать?
Короч, а что если взять фичи из 1 категории активов и натравить на них...
У тебя в одной категории марка автомобиля с годом выпуска, а в другой площадь квартиры, а теперь ровно 10 фичей с одинаковым названием. Почему ds подумал, что компоненты нескольких pca совпадать будут мне не известно, но так вот было сделано. Собственно тогда я уже и решил, что эту модельку уже не спасти
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы плохо понимаете, как pca работает, то рекомендую почитать
https://setosa.io/ev/principal-component-analysis/
TLDR
PCA переводит фичи в новое пространство, где компоненты направлены в сторону наибольшей дисперсии, т.е. это все теже фичи, но развернуты таким образом чтобы корреляции в новом пространстве нулю равнялась. И клянусь впервые увидел, чтобы ктото это в прод пытался тащить
Please open Telegram to view this post
VIEW IN TELEGRAM
Explained Visually
Principal Component Analysis explained visually
Forwarded from ODS Events
Всем привет!
Приглашаем всех на Дата Ëлку 2024 и голосование ODS Awards 2024 🎄
📆 Ëлка пройдёт после праздников — в субботу 18 января
В лучших традициях, вас ждут обзорные итоги года по 12 DS/ML областям 🔥
Более того, будут сразу 2 офлайн площадки куда можно прийти живьем:
💙 В Москве — в гостях у ВК, начало программы в 12:00
💚 В Питере — в гостях у ecom.tech, начало программы в 14:00
И конечно же будет онлайн трансляция с докладами итогов с обеих площадок сразу 🙀
Поторопитесь зарегистрироваться, места на площадках ограничены! Внимательно относитесь к заполнению анкет, все регистрации будут проходить модерацию.
🌟 Открыто голосование ODS Awards 2024 🌟
Это ежегодная премия за вклад в Open Data Science — лучшие треки, видео, статьи, менторы и погонщики гусей 🦾
Как и в предыдущие года, новогодние подарки достанутся и победителям, и тем кто голосовал.
Голосование открыто, итоги мы подведём как раз на Дата Ëлке 🎅
Ждём вас на Дата Ёлке, и ждём ваши голоса в ODS Awards 2024!
TL;DR:
🎄Дата Ёлка ждёт всех 18 января
🎁 Пройдут 2 офлайн Ëлки: в Москве в гостях у ВК и в Питере гостях у ecom.tech
🌟Ждём ваши голоса и номинации ODS Awards 2024
Приглашаем всех на Дата Ëлку 2024 и голосование ODS Awards 2024 🎄
📆 Ëлка пройдёт после праздников — в субботу 18 января
В лучших традициях, вас ждут обзорные итоги года по 12 DS/ML областям 🔥
Более того, будут сразу 2 офлайн площадки куда можно прийти живьем:
💙 В Москве — в гостях у ВК, начало программы в 12:00
💚 В Питере — в гостях у ecom.tech, начало программы в 14:00
И конечно же будет онлайн трансляция с докладами итогов с обеих площадок сразу 🙀
Поторопитесь зарегистрироваться, места на площадках ограничены! Внимательно относитесь к заполнению анкет, все регистрации будут проходить модерацию.
🌟 Открыто голосование ODS Awards 2024 🌟
Это ежегодная премия за вклад в Open Data Science — лучшие треки, видео, статьи, менторы и погонщики гусей 🦾
Как и в предыдущие года, новогодние подарки достанутся и победителям, и тем кто голосовал.
Голосование открыто, итоги мы подведём как раз на Дата Ëлке 🎅
Ждём вас на Дата Ёлке, и ждём ваши голоса в ODS Awards 2024!
TL;DR:
🎄Дата Ёлка ждёт всех 18 января
🎁 Пройдут 2 офлайн Ëлки: в Москве в гостях у ВК и в Питере гостях у ecom.tech
🌟Ждём ваши голоса и номинации ODS Awards 2024
Forwarded from AI.Insaf
Удалось побывать DS-ментором на одном из хакатонов в конце прошлого года, где моя команда заняла 3-е место 🎉 . Исходный проект был посвящён кластеризации событий брокера сообщений/логов.
Коллективным разумом были предложены следующие идеи ниже. Ожидаемо хотелось применить трансформеры, но из-за объёма данных и доступных ресурсов был выбран другой подход. Как вы думаете, какой?
1. Baseline: scaNN + любимый эмбеддер
• ScaNN — супербыстрый на CPU алгоритм поиска ближайших соседей (быстрее Faiss)
• Benchmarks алгоритмов кластеризаций
2. Готовый алгоритм ранжирования текстов: Rank-BM25 — улучшенный tf-idf, который может плохо выделять если признаков мало, и очень быстро растет размер словаря при увеличении кол-во n-gramm
3. Алгоритм с кастомным эмбеддингом
• Используем токенизатор (например, BPE). Обучаем его на логах
• Переводим логи в последовательность токенов
• Генерируем tf-idf для 1-, 2-, 3-грамм (размер словаря ~10⁶)
• Создаём эмбеддинги для токенов (например, с помощью предобученной модели)
• Кластеризуем эмбеддинги (например, на 100-800 кластеров)
• Для нового текста создаём вектор, учитывающий частоту кластеров
• Результат — компактные векторы, подходящие для кластеризации и обнаружения аномалий
4. Быстрая работа со строками + dbstream clustering
• RapidFuzz — библиотека с быстрыми реализациями функций string similarity.
• Jaro-Winkler Distance — быстрее Левенштейна на коротких строках.
5. Итеративное выделение кластеров с помощью LLM
• Генерируем ключевые слова и типы ошибок по существующим кластерам
• Покрываем базу кейвордами (~50%)
• Обрабатываем оставшиеся данные, выделяя новые кластеры
• Повторяем процесс, пока покрытие не станет полным
• Удобно выделяем ключевые виды ошибок (например, SQLException, JavaException, Timeout и т.д.)
6. Имплентация от Jetbrains (📕Статья: Aggregation of Stack Trace Similarities for Crash Report Deduplication, ⭐️ код на GitHub)
Внутри решение k-NN с хитрой агрегацией stack trace логов ошибок с временными метками
Коллективным разумом были предложены следующие идеи ниже. Ожидаемо хотелось применить трансформеры, но из-за объёма данных и доступных ресурсов был выбран другой подход. Как вы думаете, какой?
1. Baseline: scaNN + любимый эмбеддер
• ScaNN — супербыстрый на CPU алгоритм поиска ближайших соседей (быстрее Faiss)
• Benchmarks алгоритмов кластеризаций
2. Готовый алгоритм ранжирования текстов: Rank-BM25 — улучшенный tf-idf, который может плохо выделять если признаков мало, и очень быстро растет размер словаря при увеличении кол-во n-gramm
3. Алгоритм с кастомным эмбеддингом
• Используем токенизатор (например, BPE). Обучаем его на логах
• Переводим логи в последовательность токенов
• Генерируем tf-idf для 1-, 2-, 3-грамм (размер словаря ~10⁶)
• Создаём эмбеддинги для токенов (например, с помощью предобученной модели)
• Кластеризуем эмбеддинги (например, на 100-800 кластеров)
• Для нового текста создаём вектор, учитывающий частоту кластеров
• Результат — компактные векторы, подходящие для кластеризации и обнаружения аномалий
4. Быстрая работа со строками + dbstream clustering
• RapidFuzz — библиотека с быстрыми реализациями функций string similarity.
• Jaro-Winkler Distance — быстрее Левенштейна на коротких строках.
5. Итеративное выделение кластеров с помощью LLM
• Генерируем ключевые слова и типы ошибок по существующим кластерам
• Покрываем базу кейвордами (~50%)
• Обрабатываем оставшиеся данные, выделяя новые кластеры
• Повторяем процесс, пока покрытие не станет полным
• Удобно выделяем ключевые виды ошибок (например, SQLException, JavaException, Timeout и т.д.)
6. Имплентация от Jetbrains (📕Статья: Aggregation of Stack Trace Similarities for Crash Report Deduplication, ⭐️ код на GitHub)
Внутри решение k-NN с хитрой агрегацией stack trace логов ошибок с временными метками