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

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

Когда мы впервые запустили Trending Searches, ежедневный рабочий процесс шел примерно так:

  • Задание Hive встраивает данные поиска за предыдущий день в базу данных.
  • Задание Hadoop идентифицирует «горячие» поисковые запросы за предыдущий день для каждой когорты страны/пола на основе разницы между частотой, с которой их искали в этот день, и их историческим максимальным коэффициентом поиска, нормализованным отклонением в частоте поиска.
  • Скрипт Python отправляет условия поиска кандидата по электронной почте специальному члену команды безопасности Pinterest.
  • Член группы безопасности просматривает результаты поиска и удаляет все конфиденциальные запросы или опечатки из управляемого промежуточного списка.
  • Позже в тот же день задание Cron отправляет промежуточный список в рабочую среду в установленное время.

Рис. 1. Первая версия конвейера запросов с отслеживанием тенденций

Выпуск функции V1 всегда волнителен, но в этом случае мы немного опасались по нескольким причинам. Мы не хотели отнимать время нашего рецензента группы безопасности в течение рабочего дня (и в выходные!) в долгосрочной перспективе. Кроме того, рост за пределами США является для нас главным приоритетом, и наша система не масштабировалась на другие языки. Мы не могли отправить это на международном уровне.

Автоматический краудсорсинг процесса проверки человеком

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

  • После того, как мы создадим списки кандидатов для каждой комбинации страны/пола, мы по-прежнему отправляем электронное письмо команде безопасности с кандидатами.
  • В то же время мы также используем скрипт Python для отправки запросов-кандидатов на краудсорсинговый сайт CrowdFlower.
  • Затем задание Cron извлекает результаты из CrowdFlower и запускает в производство соответствующих популярных кандидатов.

Рисунок 2. Тенденции конвейера запросов с автоматической оценкой человеком.

API CrowdFlower позволяет вам указать формат опроса, а затем динамически встраивать данные, поэтому мы создали форму, чтобы оценщики могли оценивать наших кандидатов в поиске трендов на соответствие. Теперь у нас были инструменты для создания нескольких оценок, по одной для каждой страны и ее доминирующего языка. Автоматическое использование краудсорсинга в нашем ежедневном рабочем процессе позволило нам запустить Trending Search во Франции, Бразилии и Германии.

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

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

Жду с нетерпением

Есть еще что-то, что мы хотели бы сделать с Trending Searches. В дополнение к оптимизации нашего конвейера оценки людей, мы также сделаем поиск в трендах более персонализированным и своевременным:

  • Мы можем использовать исторические данные о поисковой эффективности запроса с человеческим рейтингом, чтобы показать только популярные поисковые запросы с большим количеством пинов, достойных репинов или кликов.
  • Мы можем встроить данные календаря в конвейер, чтобы продвигать термины, связанные с событиями/праздниками, до дня (дней), а затем понижать их. Мы будем использовать данные о трендах за предыдущий год, чтобы обогатить этот календарь. (Мы не хотим пропустить Международный день слона!)
  • Мы также можем использовать исторические результаты оценки CrowdFlower, чтобы прогнозировать поисковые запросы, которые могут быть неуместными, и смотреть на сигналы безопасности на уровне пин-кода в результатах. Оба эти предложения сократят количество новых поисковых запросов, которые мы отправляем в CrowdFlower каждый день.

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

Автоматическая оценка человека также имеет светлое будущее в Pinterest. Команда Discovery Science создала библиотеку, которая подключается к нескольким краудсорсинговым сервисам, включая CrowdFlower и Mturk. Мы можем использовать краудсорсинг для всего: от оценки релевантности поиска до сравнения экспериментальных групп экспериментов. Объедините это с нашей системой управления рабочими процессами, и мы создали искусственный искусственный интеллект.