Как узнать, является ли новая модель машинного обучения улучшением по сравнению с предыдущими моделями? Один из способов - сравнить его с базовой моделью, разработанной для той же задачи. Но возникает вопрос: как узнать, хороша ли сама базовая линия? В новом препринте О сложности оценки исходных условий: исследование рекомендательных систем Рендла, Чжана и Корена говорится, что измерить, насколько хорошо базовая модель работает для конкретной проблемы, не так просто, как может показаться на первый взгляд. Фактически, авторы смогли превзойти текущее состояние техники в отношении рекомендаций по тесту Movielens 10M , просто настроив базовые параметры и комбинируя их с простыми, хорошо известными методами .

Как мы оцениваем модели машинного обучения?

Давайте сначала сделаем шаг назад. Как мы в настоящее время оцениваем модели?

Если вы когда-либо участвовали в соревнованиях Kaggle, вы, вероятно, уже знаете, как они работают: вам предоставляются данные для обучения для построения модели, которая оптимизируется для определенной метрики. Затем ваша модель, как и все остальные, оценивается по другому набору данных и ранжируется на основе целевого показателя. После окончания приема заявок каждая модель оценивается по третьему, невидимому набору данных, и выигрывает та, какая модель работает лучше всего! (Конечно, при условии, что они соблюдают правила конкретного конкурса.)

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

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

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

В исследованиях нет «выигрышной» модели, но статьи, которые предлагают новый подход, а затем показывают, что это улучшение по сравнению с ранее установленными методами, как правило, публикуются. (Для исследователей прием на работу и продвижение по службе основаны на количестве и качестве опубликованных статей, поэтому публикация ваших статей - это хорошо!)

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

Почему исходные показатели изначально были не очень хорошими?

[R] unning эксперименты сложны и требуют большого экспериментирования для достижения надежных результатов. (Рендл и др., Стр. 9)

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

1) При настройке гиперпараметров очень легко упустить сладкие точки. Границы области поиска могут быть слишком близко друг к другу или слишком сильно смещены в одном направлении. Возможно, вы используете неправильную поисковую сетку. Результаты, которые вы получили на меньшей модели, могут не увеличиваться. Короче говоря: хорошо настроить модели сложно, и легко испортить.

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

Даже если вы делаете все, что должны, и имеете довольно твердую основу, вполне возможно, что базовые алгоритмы могут работать еще лучше с дополнительной настройкой, особенно тем, кто хорошо знаком с этим методом и знает все советы и рекомендации. Чтобы узнать, что лучше всего подходит для конкретного режима, требуется много проб и ошибок l; что является частью того, что затрудняет настройку базовых показателей. Даже если бы авторы статьи действительно приложили все усилия для настройки базовых показателей, кто-то с большим опытом или немного другим подходом мог бы получить еще лучшие результаты. (Что-то вроде конкурса Kaggle; кто-то, кто хорошо знаком с настройкой моделей XGBoost, вероятно, получит с ними лучший результат, чем тот, кто использовал их всего пару раз.)

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

Итак, что мы можем с этим поделать?

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

Не изобретайте велосипед

«Изобретать колесо заново» означает переделывать уже проделанную работу. Если есть хорошо зарекомендовавший себя эталонный тест для конкретной задачи, который уже был хорошо настроен, вам следует сравнить его с эталоном! (В качестве бонуса, если вы работаете над установленной задачей и можете использовать полученные результаты, а не запускать их повторно, вы экономите время и вычислительные ресурсы. 🤑)

Стимулируйте бег (и настройку!) Базовых показателей

Это немного сложнее: чрезвычайно сложно изменить структуру стимулов или систему ценностей в устоявшемся сообществе. Авторы отмечают, что соревнования по машинному обучению, будь то на платформе типа Kaggle или организованные в рамках исследовательского сообщества, являются одним из способов сделать это. Я бы также добавил, что если вы просматриваете статьи по машинному обучению, при написании своих обзоров учитывайте как новизну (новый ли этот метод?), Так и полезность (приносит ли эта статья пользу сообществу в целом?).

TL;DR

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

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