Возможность Закрепления: Как Работает Самообучающаяся Система Рекомендаций Pinterest

Разработчики социальной сети Pinterest сказал в корпоративном блоге о том, как создавалась система обучения Pinnability, предназначенная для составления новостной ленты пользователя в зависимости от актуальности контента.

В разделе Growth Hacks — перевод заметки.



Возможность закрепления: как работает самообучающаяся система рекомендаций Pinterest

В настоящее время в социальной сети Pinterest опубликовано более 30 миллиардов изображений.

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

Например, для просмотра или поиска изображений.

Основная лента состоит из «пинов» (постов) от друзей, различных подборок (досок), а также индивидуальных рекомендаций.

Например, раздел «Выбрано для вас» — сюда разработчики вкладывают много времени и сил.

Посетители ресурса получают новый контент из основной ленты.

Однако расположение «штифтов» в нем не идеально и вызывает вопросы.

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

Кроме того, не вся информация актуальна для пиннера.

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



Преимущества возможности закрепления

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

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

Такое расположение было простым и понятным, но, несмотря на это, соответствующие «штифты» могли теряться.



Возможность закрепления: как работает самообучающаяся система рекомендаций Pinterest

Основная лента перед применением возможности закрепления.

Цвета отражают актуальность контента.

Использование Pinnability определяет, какие контакты интересны пользователю.

Таким образом, контент в ленте упорядочивается в зависимости от его релевантности «пиннеру».



Возможность закрепления: как работает самообучающаяся система рекомендаций Pinterest

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



Алгоритмы обучения в Pinnability

Для наиболее точного определения сценариев поведения пользователей мы использовали передовые технологии в области моделей обучения, например, логическая регрессия (ЛР), Машина опорных векторов (СВМ), Древо решений (ГБДТ) и сверточная нейронная сеть (Си-эн-эн).

Мы протестировали тысячи различных элементов, которые полезны при определении релевантности.

Перед запуском A/B-тестирования работа алгоритмов в офлайн-режиме была тщательно изучена и протестирована на основе имеющихся данных.

На рисунке ниже показаны все компоненты, необходимые для работы Pinnability: выбор сценария, выбор модели Pinnability и организация основного фида.



Возможность закрепления: как работает самообучающаяся система рекомендаций Pinterest

Как работает модель Pinnability

Выбор сценария

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

Например, после просмотра «пинов» пользователь может поставить лайк некоторым из них, опубликовать их на своей странице, оставить комментарий или сделать что-то еще.

Все возможные действия делятся на «позитивные» и «негативные», а также определяются как соответствующие сценарии.

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

Поэтому это было предусмотрено при разделении на категории.

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

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

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

  • Характеристики пользователя раскрывают информацию, например, о том, насколько активен пиннер или его пол.

  • Особенности взаимодействий рассказывают о последних действиях пользователя.

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

Для решения задачи была использована модель распределенных вычислений.

Уменьшение карты .

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

  • Метаданные (идентификатор публикации, идентификатор пользователя, источник информации и т. д.) для группировки информации, проверки и анализа модели Pinnability.
  • Целевые значения используются для определения того, какие публикации вызвали «положительный» ответ.
  • Информация, которая прогнозирует взаимодействие пользователя с системой.



Выбор модели возможности закрепления

Для тестирования моделей Pinnability мы использовали область под Кривая ROC (AUC), индикатор линейной регрессии R-квадрат И Средняя квадратическая ошибка .

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

корреляция между AUC, A/B-тестированием оффлайн и онлайн.

Тестирование проводилось с использованием различных алгоритмов обучения, включая LR, GBDT, SVM и CNN. Кроме того, мы использовали показатели AUC для десятикратной перекрестной проверки и сплит-тестирования, чтобы оценить производительность выбранной модели.

В результате мы заметили, что в большинстве случаев лучшие результаты по Pinnability показали LR и GBDT. Среди большого количества элементов, отобранных для исследования, мы оставили только те, которые значительно увеличили показатели AUC в качестве кандидатов для онлайн-A/B-тестирования.

Таким образом, в итоговом A/B-тестировании было проведено сравнение «пиннеров», использующих старые и новые функции.

В случае положительных результатов перед добавлением функций в модель Pinnability оценивалось влияние нововведений на наши серверы.

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

На сегодняшний день для улучшения и тестирования Pinnability использовались только пакеты офлайн-данных.

Именно поэтому изменения в модель вносятся не сразу.

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

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



Основная кормовая организация

Основная лента основана на внутренних новостях инфраструктура .

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

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




Отправлять собственные кейсы, в результате которых вам удалось существенно улучшить (или, наоборот, ухудшить) производительность проекта.

Интересные эксперименты обязательно попадут на страницы раздела Growth Hacks.

Вместе с данным постом часто просматривают: