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

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



Мы уже видели такие кейсы на HighLoad++, но там это были отдельные доклады, к тому же приближенные к задачам обеспечения работы при высоких нагрузках. Поэтому теперь мы хотим собрать отдельную конференцию для тех, кто решает практические задачи с помощью методов машинного обучения. И подходим к её планированию очень просто — мы хотим сделать такую конференцию по машинному обучению и анализу данных, которая бы нам самим понравилась.

Согласен, звучит наивно, но разве «как для себя» — не лучшая мотивация? К тому же опыт в организации конференций у нас большой и, кажется, мы неплохо представляем, как должно быть хорошо. У вас, конечно, может быть свое мнение, поэтому под катом расскажу, что и как именно мы планируем обсуждать на UseData Conf 16 сентября.

Мы с Онтико проводим инженерные конференции, где первую скрипку играют практики. Для всех конференций: HighLoad++ (всех трех экземпляров), Moscow Python Conf++, PHP Russia и многих других мы находим людей, которые делают что-то полезное с помощью технологий, связанных с тематикой конференции, и готовы этим поделиться.

Последние несколько лет я помогаю спикерам готовиться к выступлениям, поэтому у меня есть навык задавать правильные вопросы. Такие, чтобы вытащить на поверхность то, что можно узнать только от спикера. Чтобы в докладе был не просто рецепт (взяли видео с камер за последнюю неделю, обучили на них end-to-end сеть и всё работает), а все ключевые точки, которые привели к конечному результату. Если знать, что пробовали, что зашло, что не зашло, благодаря чему получилось решить задачу, то вот тогда и можно делать свои выводы и рассматривать подобное решение или нет.

Конференций по машинному обучению, которые были бы построены по такому принципу сейчас нет. Есть большие и слишком академичные конференции, на которых практики составляют относительно малую долю всех докладов и соседствуют с сугубо научными результатами и обучающими материалами для начинающих. Кроме того, есть целый кластер конференций про искусственный интеллект. Обычно в них слишком много хайпа и слишком мало реально чего-то работающего, мы такие стараемся обходить стороной.

Отличить одно от другого просто: если сделано на Python, то это машинное обучение, а если на PowerPoint — искусственный интеллект. Нас интересует то, что существует не только в PowerPoint.

UseData Conf в секциях


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

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

Компьютерное зрение. Если вы научили робота брать определенные детали с конвейера, сверлить отверстия и класть обратно — это как раз то, о чем стоит рассказать в рамках этой секции. Ведь детали могут быть разные, они могут быть разбросаны на конвейерной ленте, может не быть ни одной готовой детали для обучения, а только CAD-модель, и множество других факторов, которые отличают идеальную академическую задачу со стерильным конвейером от того, что происходит в действительности.

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

Системы принятия решений. Это не только задача диагностики заболеваний, но и любые системы, в которых человек опирается в своих решениях на варианты, предложенные алгоритмом, вплоть до противоракетной обороны. Если и человек не нужен, например, система сама назначает водителя на заказ в такси (если, конечно, генерация решения не ограничивается жадным алгоритмом), то это еще лучше.

Фреймворки и инструменты по машинному обучению. Чтобы раскрыть эту тему, мы хотели бы пригласить непосредственно разработчиков фреймворков. Такого подхода мы придерживаемся на HighLoad++ — узнавать о тонкостях инструментов от разработчиков инструментов — и постараемся реализовать на UseData Conf. Поэтому если вы как раз разрабатываете CatBoost, XGBoost, TensorFlow, PyTorch, LightGBM, Keras — пожалуйста, напишите нам. Если уверены, что знаете про популярный фреймворк то, чего не знают многие data scientist’ы, и это облегчило бы им жизнь, тоже ждем заявку на доклад. 

Конкурсы по машинному обучению делятся на два блока: техника проведения конкурсов по машинному обучению, а также стратегия, как их выигрывать. Хотя конкурсы типа Kaggle — это скорее рекрутинговый инструмент, а не инструмент решения реальных задач, некоторые аспекты пригодятся и практикам. В конце концов, с помощью конкурсов можно удачно сменить работу — тоже польза.

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

Call for Papers


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

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

Кроме того, от частной задачи всегда можно перейти к общему подходу. Например, если мы говорим о фильтрации аномального сетевого трафика (спасибо телезрителю из Москвы Павлу, который задал вопрос на Zoom-встрече с программным комитетом), то подобная задача с разнородной обучающей выборкой и малым процентом аномалий возникает в разных областях, и можно предложить обобщения.

Самым ценным в прикладном докладе, на наш взгляд, является путь к решению, а не само решение. Когда взяли библиотечные методы и все готово — это, конечно, очень здорово, но пользы мало. Интереснее, когда попробовали это, другое, нашли ограничения, напоролись на грабли, изобрели что-то, и об этом и рассказывают.

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

Call For Papers открыт до 16 июля, 16 августа мы постараемся целиком сформировать программу, а 16 сентября в Инфопространстве пройдет сама конференция UseData Conf.

Подать доклад просто — нужна примерная тема и тезисы на 2–3 абзаца, заявку можно дополнить обращением к программному комитету, в котором раскрыть детали не для публикации. Лучше подать несколько докладов, чем ни одного, тогда у нас будет больше пищи для вопросов.

Уже в программе


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

В первой секции про коммерческое использование ML уже принято два доклада. Александр Алексейцев расскажет о применении машинного обучения для предсказания продаж интернет-магазина OZON.RU. Представит подход к оптимизации цен с помощью моделей предсказания спроса, покажет, как применить теорию вероятностей в процессах пополнения склада, и опишет цикл разработки ML решений для продакшена. Первая версия была представлена на HighLoad++ и вызвала живой интерес. 

Александра Ломакина из Joom расскажет, как удалось успешно решить задачу оптимизации тв-рекламы. Задача очень интересна тем, что это дорогое удовольствие, которое почти не дает обратной связи — CTR не посчитаешь. Но кое-что измерить все-таки можно, а чем и как это потом использовать узнаем в сентябре.

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

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

А еще договорились с Эдуардом Тянтовым о докладе про менеджмент проектов с машинным обучением. Специально для него мы завели секцию «Прочее», потому что эта тема нам кажется очень нужной. Если кто-то и может рассказать, какая специфика у проектов с большим количеством машинного обучения, как развивать продукт и вести в продакшен, как продавать людям и разработчикам, то вероятно это Эдуард с бэкграндом запуска Artisto и руководства антиспамом и группами по машинному обучению в Mail.ru.

Call for Ideas


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

Комментарии (8)


  1. nerazzgadannaya
    28.06.2019 10:21

    А какой пул вопросов планируется про обработку текста, NLP? планируются ли доклады про развитие чат-ботов?


    1. p0b0rchy Автор
      28.06.2019 12:02

      С чатботами всё непросто (вы, вероятно, это знаете). Практические задачи обычно фокусируются на узкой предметной области: техподдержка, вопросы про симптомы (на Highload был доклад про Doc+ на эту тему), такое. Не сказать, что есть общие принципы развития. Основной вопрос, который я вижу у людей на практике: где взять размеченный корпус текстов для данной предметной области (возможно, я упрощаю, поправьте, если так).

      У нас пока есть планы на три кейса про обработку языков. Они могут ещё не все реализоваться (ведём переговоры), поэтому без имён и конкретики пока, но примерно так:
      1) Если нет размеченного корпуса в какой-то области, как его намайнить или нагенерить
      2) Как писать обработчик для языка, которого ты не знаешь
      3) Как выделять в большом тексте определённые смысловые элементы (например, шутки)


  1. worldmind
    28.06.2019 10:54

    Начал смотреть тему ML, есть конкретный вопрос, который поднимает общую тему проверки условий применимости моделей, есть ощущение (по статьям в сети и ответам на SO), что большая часть «исследователей» не хочет и не знает.
    Ещё момент, касательно уровня абстракции фреймворков, судя по обзорам многие фреймфорки называют низкоуровневыми, а среди высокоуровневых вроде как один PyTorch, по идее уровень должен расти, но возможно отрасль просто ещё не дозрела и это может быть темой для доклада.


    1. p0b0rchy Автор
      28.06.2019 12:22

      Прочёл ветку комментариев, на которую вы ссылаетесь. Мне кажется, проблемы нет.

      Регрессия везде есть «из коробки», работает быстро, не требует дорогого оборудования. В условиях отсутствия вычислительных мощностей лет 40 назад, вероятно, надо было задумываться, чтобы лишнее ручками не считать. Сейчас проще одну кнопку нажать и посмотреть, насколько разумные результаты получились. Если неразумные, то тогда уже можно разбираться. Такой порядок часто дешевле.


      1. worldmind
        28.06.2019 14:20

        Может и так, во всяком случае не ненаучных исследований такого подхода может быть достаточно.


    1. p0b0rchy Автор
      28.06.2019 12:23

      А расскажите ещё, какой смысл вы вкладываете в понятие высокоуровневости фреймворка?


      1. worldmind
        28.06.2019 14:22

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


      1. worldmind
        01.07.2019 16:47

        Глянул немного, всё-таки PyTorch заставляет писать шаблонный код, на первый взгляд skorch это правильное решение позволяющее переиспользовать плюшки из sklearn, например GridSearchCV.