Вступление

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

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

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

Урок 1. Трудно измерить качество. Оперативная оценка результатов экспериментов имеет решающее значение для успеха вашей команды.

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

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

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

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

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

Урок 2: модели качества пути чтения могут быть более точными и надежными, если подумать о применении на уровне ранжирования.

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

В прошлом году мы начали работу над «модель пути чтения». Эта «модель пути чтения» представляет собой классификатор на уровне показов в реальном времени для обнаружения нежелательного контента (фото, видео), объединяющий как сигналы времени загрузки, так и сигналы взаимодействия в реальном времени на уровне СМИ и автора. Таким образом, эта конкретная модель будет запускаться каждый раз, когда пользователь делает запрос на просмотр страницы в Explore, оценивая каждого кандидата в реальном времени на уровне запроса.

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

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

Урок 3. Хотя модели путей чтения важны, у вас также должны быть фильтры на уровне источников.

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

Но что означают ранжирование и уровень источника? В Instagram у нас есть два шага для предоставления контента нашему сообществу на страницах Explore и hashtag:

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

Когда дело дошло до поиска подходящего контента на уровне поиска, мы узнали следующее:

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

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

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

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

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

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

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

Урок 5. Не используйте грубые пороговые значения! Подумайте о ежедневной калибровке модели или фильтрации с использованием процентилей.

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

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

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

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

Выводы

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

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

Хотите узнать больше?

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