Трейдофы в разработке машинного обучения

Андрей Якушев выступил на лектории «ВКонтакте на практике» с докладом на тему «Трейдофы в разработке машинного обучения». Андрей, руководитель команды Core ML, рассказал, какие плюсы и минусы есть у трейдофов и к чему они могут привести.

Трейдофы в разработке машинного обучения, image #1

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

Команда Core ML работает над алгоритмами подбора постов для умной ленты и раздела рекомендаций.

В чём состоит задача?

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

Как реализовано?

В обоих случаях применяется алгоритм машинного обучения. От его результата будут зависеть впечатления пользователя о качестве сервиса.

Трейдофы в разработке машинного обучения, image #2

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

Трейдофы в разработке машинного обучения, image #3

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

Трейдофы в разработке машинного обучения, image #4

Датасет, используемый командой Core ML использует данные пользователя и записей, с которыми он каким-либо образом взаимодействовал. Это поможет подбирать наиболее релевантные посты.

Трейдофы в разработке машинного обучения, image #5

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

Трейдофы

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

Также появляется ещё одна проблема при сборе данных. Реакция пользователя на пост сильно зависит от:

  1. позиции поста в ленте — чем он выше, тем выше фидбек и количество лайков;
  2. дизайна поста;
  3. содержание поста;
  4. кликбейт;
  5. шок-контент;
  6. активность пользователя.

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

Чтобы избавиться от смещения, для некоторых пользователей нужно формировать случайную ленту, а не ранжированную. Качество ленты будет хуже. Трейдоф заключается в том, что пользователю специально как бы портят ленту, чтобы обучить следующее ML более качественно.

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

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

Один из самых сложных трейдофов — это Exploration-Exploitation tradeoff. Пользователю нужно показывать либо контент, к которому он привык, либо что-то новое. Сложность заключается в нескольких вещах: чтобы понять, к какому контенту привык пользователь, должно пройти немалое количество времени. Можно эту проблему избежать простым добавлением случайного контента, но тогда можно словить негатив от пользователя.

В начале статьи говорилось, что каждая следующая модель обучается на основе предыдущей. У такой системы есть название — Feedback loop. Но не стоит рассчитывать на то, что новая модель будет однозначно работать лучше, чем старая, так как есть много нюансов при сборе данных, например, таких как смещение. При таком раскладе можно придти к тому, что новый алгоритм работает хуже, чем тот, что работал год назад. Чтобы этого избежать, нужно выводить пользователя из его Exploration-Exploitation tradeoff.

Полная версия выступления в записи трансляции (начало на 03 ч 33 мин):

Трейдофы в разработке машинного обучения, image #6

The Brown Room — независимое интернет-издание про социальные сети и современные технологии.

Автор: Владислав Сатонин
Корректор: Арсений Метелёв

277 views·6 shares
277 views