Pull to refresh
11
0
Михаил Атепаев @atepaevm

Любопытствующий

Send message

Автоматическое обучение моделей с помощью Vowpal Wabbit

Reading time12 min
Views4.6K
Всем привет, меня зовут Артем Жаринов, я специалист по анализу данных и машинному обучению команды RnD в Lamoda.

Блуждая по нашему сайту вы, возможно, заметили такие полки рекомендаций «С этим товаром покупают» или «Популярные товары». Для персонализированного ранжирования товаров в этих полках мы используем модель из фреймворка Vowpal Wabbit, написанного на языке C. Другой алгоритм отбирает определенный набор товаров, который может показываться на этой полке, а задача Vowpal Wabbit – предсказать вероятность того, что пользователь кликнет на какой-либо товар.

В этой статье расскажу, как мы:

  • составляем рекомендации, которые отображаются на сайте;
  • обучаем модели, которые эти рекомендации делают;
  • и почему мы пришли к тому, что необходимо автоматизировать весь процесс обучения моделей.

image
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments9

Как сравнивать распределения. От визуализации до статистических тестов

Reading time15 min
Views49K

В подробном лонгриде к старту курса по анализу данных вы найдёте авторские визуализации, пояснения и комментарии об искусстве сравнивать распределения и делать выводы.

Приятного чтения!
Total votes 8: ↑8 and ↓0+8
Comments4

Обучение с подкреплением: практические рекомендации по обучению сетей Deep Q

Reading time5 min
Views5.3K

В предыдущем материале из этой серии мы рассказали о сетях Deep Q (Deep Q Network, DQN) и написали алгоритм их обучения на псевдокоде. Хотя такие сети, в принципе, работоспособны, практическая реализация алгоритмов обучения с подкреплением (Reinforcement Learning, RL), выполняемая без понимания их ограничений, может вести к нестабильности создаваемых систем и к плохим результатам обучения. В этом материале мы обсудим два важных ограничения, две проблемы, способных привести к нестабильности Q-обучения. Мы поговорим и о том, как, на практике, решать эти проблемы. Вспомните о том, что уравнение Беллмана связывает, с помощью рекурсии, Q-функции для текущего и следующего временных шагов.

Читать далее
Total votes 7: ↑6 and ↓1+13
Comments2

Как мы заняли 1-е место в задаче Matching в соревновании Data Fusion Contest 2022, или как нейронка обогнала бустинг

Reading time11 min
Views7.9K

На платформе ODS.ai прошло  соревнование по машинному обучению Data Fusion Contest 2022 от банка ВТБ.

Мы, команда Лаборатории ИИ Сбера и Института искусственного интеллекта AIRI, приняли решение поучаствовать в контесте, когда увидели, что тема соревнования сильно пересекалась с нашими исследованиями. Мы заняли первое место на private leaderboard в основной задаче Matching. Здесь я хотел бы описать решение, которое у нас получилось.

В рамках соревнования предлагались: датасет, содержащий транзакции, совершенные клиентами ВТБ по банковским картам, кликстрим (данные о посещении web-страниц) клиентов Ростелекома и разметка соответствия между клиентами из этих двух организаций. Соответствие устанавливается если два клиента – это один и тот же человек. Все данные были обезличены, а сами датасеты синтезированы на основе реальных данных таким образом, чтобы сохранить информацию о поведении пользователей.

В программу мероприятия входило пять задач разной сложности с разным призовым фондом. Мы решили сосредоточится на главной задаче Matching, как на самой сложной и самой интересной.

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments0

Асинхронный python без головной боли (часть 1)

Reading time14 min
Views313K

Почему так сложно понять asyncio?

Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности.

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку
Total votes 135: ↑135 and ↓0+135
Comments58

Как я готовился к собеседованию на позицию Senior ML Engineer

Reading time11 min
Views14K

Привет, меня зовут Глеб Зарин, я ML-разработчик. Сегодня я расскажу, как я подготовился к собеседованиям на позицию Senior Machine Learning Engineer и получил работу мечты за рубежом.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments6

Причинно-следственный анализ в машинном обучении

Reading time15 min
Views26K

Что появилось первым: курица или яйцо?
Статистики давно уже нашли ответ на этот вопрос.
Причем несколько раз.
И каждый раз ответ был разным.

А если серьезно, то для машинного обучения становятся все более актуальными вопросы причинно-следственного анализа (causal inference) - когда главной целью моделирования является не прогноз и его качество, а то, как мы можем принимать решения на основе нашего алгоритма. И как это повлияет на мир, в котором эта модель будет действовать. Сделает ли модель его лучше, чем он был? Или наоборот.

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

Читать далее
Total votes 23: ↑22 and ↓1+24
Comments1

Machine Learning много не бывает: отчёт с ML-митапа

Reading time1 min
Views3.1K

Выкладываем запись с прошедшего Ozon Tech ML Meetup: были рады поделиться опытом с коллегами из Яндекс Маркета, AliExpress Россия, Циан и увидеть гостей оффлайн, как в старые-добрые времена. 

Под катом найдете запись докладов:

Spark Streaming: в погоне за оптимальной утилизацией и прозрачностью на Hadoop,

Го обсудим: продакшен ML на Golang,

Платформенные решения. Решаем проблемы жизненного цикла ML-сервиса,

Как мы перестали бояться иероглифов и полюбили китайскую инфраструктуру.

После докладов на круглом столе обсудили процессы и роли в ML-командах крупных IT-компаний.

Запись под катом
Total votes 15: ↑15 and ↓0+15
Comments0

Пост-отчет: доклады с ML-митапа команды AliTech

Reading time1 min
Views2K

На первом митапе команды AliTech мы обсудили то, как решают задачу поиска совпадений среди миллиардов сущностей команды AliExpress Россия, Ozon, Яндекс.Маркета. Успехи, неудачи, прикладные задачи ML-команд, пайплайны и способы оценки качества — в записи. 

Читать далее
Total votes 2: ↑1 and ↓10
Comments4

OCR за час? — Не думаю

Reading time4 min
Views18K

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

Читать далее
Total votes 27: ↑26 and ↓1+29
Comments7

Вариационные автоэнкодеры для системы рекомендаций

Reading time5 min
Views4.2K

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

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

Узнать больше
Total votes 4: ↑3 and ↓1+3
Comments1

Прогнозирование временных рядов с помощью рекуррентных нейронных сетей

Reading time16 min
Views95K
Удалённый режим работы на фоне всеобщей самоизоляции может привести к весьма дурным последствиям. И эмоциональное выгорание – это ещё куда ни шло: там ведь и до крыши недалеко. В этой связи, как и многие, попробовал «успокоить» себя выделением времени на другие занятия – и начал переводить наиболее интересные статьи с английского языка на русский: «Даёшь машинлёрнинг в массы!».) Нужно воздать должное: здорово отвлекает. Если у вас есть предложения как по смысловому наполнению, так и по переводу данного текста для русскоязычного читателя, присоединяйтесь к обсуждению.

image
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments6

Tfidfvectorizer, BERT, LASER: векторизация данных и кластерный анализ для улучшения рекомендательной системы

Reading time9 min
Views12K

Мир онлайн-покупок становится всё привычнее, а значит, и обезличенных данных про каждого пользователя всё больше. Билайн ТВ использует для онлайн-кинотеатра рекомендательную систему на основе данных: она советует пользователю новый триллер, если он уже посмотрел пять похожих фильмов. 

Чтобы реализовать такую систему, компания CleverData (группа ЛАНИТ) сформировала эмбеддинги для пользователей Билайн ТВ. Ассоциация больших данных помогла сделать этот кейс возможным. 

В этой статье расскажем подробности этой задачи:

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments0

Автоэнкодеры в Keras, Часть 1: Введение

Reading time11 min
Views95K

Содержание



Во время погружения в Deep Learning зацепила меня тема автоэнкодеров, особенно с точки зрения генерации новых объектов. Стремясь улучшить качество генерации, читал различные блоги и литературу на тему генеративных подходов. В результате набравшийся опыт решил облечь в небольшую серию статей, в которой постарался кратко и с примерами описать все те проблемные места с которыми сталкивался сам, заодно вводя в синтаксис Keras.

Автоэнкодеры


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



Кому интересно, добро пожаловать под кат
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments11

Интерпретация моделей и диагностика сдвига данных: LIME, SHAP и Shapley Flow

Reading time38 min
Views33K

В этом обзоре мы рассмотрим, как методы LIME и SHAP позволяют объяснять предсказания моделей машинного обучения, выявлять проблемы сдвига и утечки данных, осуществлять мониторинг работы модели в production и искать группы примеров, предсказания на которых объясняются схожим образом.

Также поговорим о проблемах метода SHAP и его дальнейшем развитии в виде метода Shapley Flow, объединяющего интерпретацию модели и многообразия данных.

Читать далее
Total votes 31: ↑30 and ↓1+34
Comments1

CatBoost, XGBoost и выразительная способность решающих деревьев

Reading time42 min
Views56K

Сейчас существенная часть машинного обучения основана на решающих деревьях и их ансамблях, таких как CatBoost и XGBoost, но при этом не все имеют представление о том, как устроены эти алгоритмы "изнутри".

Данный обзор охватывает сразу несколько тем. Мы начнем с устройства решающего дерева и градиентного бустинга, затем подробно поговорим об XGBoost и CatBoost. Среди основных особенностей алгоритма CatBoost:

• Упорядоченное target-кодирование категориальных признаков
• Использование решающих таблиц
• Разделение ветвей по комбинациям признаков
• Упорядоченный бустинг
• Возможность работы с текстовыми признаками
• Возможность обучения на GPU

В конце обзора поговорим о методах интерпретации решающих деревьев (MDI, SHAP) и о выразительной способности решающих деревьев. Удивительно, но ансамбли деревьев ограниченной глубины, в том числе CatBoost, не являются универсальными аппроксиматорами: в данном обзоре приведено собственное исследование этого вопроса с доказательством (и экспериментальным подтверждением) того, что ансамбль деревьев глубины N не способен сколь угодно точно аппроксимировать функцию y = x_1 x_2 \dots x_{N+1}. Поговорим также о выводах, которые можно из этого сделать.

Читать далее
Total votes 48: ↑48 and ↓0+48
Comments9

[Часть 1] Математика в АБ-тестах. Что такое z-score и p-value?

Reading time14 min
Views36K

Приветствую тебя, дорогой друг! Эта публикация была создана для тебя, если ты хотел бы разобраться с этими непонятными словами из заголовка раз и на всегда. Как с идейной, так и с математической стороны. Признаюсь сразу, в свое время в универе частенько прогуливал семинары по высшей математике где-нибудь в приятном заведение со вкусной едой и хорошей музыкой или вообще дома, занимаясь чем-то "уникальным" и "сверхполезным". Но жизнь оказалась более ироничной, чем я думал. Сейчас я работаю продуктовым аналитиком в @IDFinance и познаю мат. статистику заново. И теперь уже с горящими глазами. Дается местами она не просто, а особенную трудность испытываю, когда хочу найти в интернете простые и понятные материалы по необходимой теме. Собственно, это меня и побудило написать данную статью, включающую в себя всю математику, почему она так работает и как это вообще запрограммировать.

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments8

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

Reading time6 min
Views90K

Сегодня SQL используют уже буквально все на свете: и аналитики, и программисты, и тестировщики, и т.д. Отчасти это связано с тем, что базовые возможности этого языка легко освоить. 

Однако работая с большим количеством junior-ов, мы раз от раза находим в их решениях одни и те же ошибки. Реально — иногда просто создается ощущение, что они копируют друг у друга код. 

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее
Total votes 37: ↑31 and ↓6+32
Comments92

People meet recommender systems. Factorization

Reading time11 min
Views21K

Машинное обучение довольно сильно проникло в нашу обыденную жизнь. Некоторые уже не удивляются, когда им рассказывают про нейронные сети в их смартфонах. Одной из больших областей в этой науке являются рекомендательные системы. Они есть везде: когда вы слушаете музыку, читаете книги, смотрите сериалы или видео. Развитие этой науки происходит в компаниях гигантах, таких как YouTube, Spotify и Netfilx. Конечно же, все научные достижения в этой области публикуются как на известных конференциях NeurIPS или ICML, так и на чуть менее известной RecSys, заточенной на эту тематику. И в этой статье мы поговорим, как развивалась эта наука, какие методы применяются в рекомендациях тогда и сейчас и какая математика за всем этим стоит.


Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Сравнение матричной факторизации с трансформерами на наборе данных MovieLens с применением библиотеки pytorch-acceleratd

Reading time45 min
Views7.2K

Современный человек много чем занимается в интернете: ходит по магазинам, слушает музыку, читает новости. Все эти задачи подразумевают поиск и выбор того, что ему нужно. При этом важную роль тут играют рекомендательные системы. Они помогают людям не утонуть в многообразии вариантов и увидеть именно то, что им подойдёт, то, что иначе им сложно было бы найти. Предоставление пользователям качественных рекомендаций — это важнейшая часть обеспечения первоклассного уровня удовлетворения клиента. Это — один из самых эффективных способов взращивания лояльности клиентов и повышения ценности продукта или услуги в их глазах. Всё это так важно, что целые бизнес-модели некоторых компаний построены вокруг предоставления их клиентам наилучших рекомендаций, что делает рекомендательные системы важнейшими факторами, влияющими на прибыль подобных компаний! В результате неудивительно то, что клиенты проекта Microsoft CSE часто обращаются к нам с просьбами, касающимися реализации эталонных рекомендательных техник. Один из таких проектов был моим первым опытом в данной сфере.

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity

Specialization

Data Scientist
Senior