company_banner

Как помочь найти организацию и не потратить на это неделю



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

    Меня зовут Александр, и я представляю команду Геопоиска и Яндекс.Справочника, данными которого пользуются более 46 млн человек в месяц. Сегодня я коротко расскажу о том, как нам удалось сократить время обновления данных в поиске Яндекса с нескольких дней до нескольких часов, порой — до минут. А ещё вы узнаете, кто такой Рикардо Милос и какие проблемы он нам доставил.



    Справочник — это база данных об организациях. Любая компания или человек может добавить туда сведения: указать адрес, часы работы, телефон и всё остальное — а Яндекс донесёт это до пользователей. Данные Справочника применяются в Поиске, Алисе, Картах, Такси, Навигаторе и даже в нашем определителе номеров, о котором мы уже рассказывали на Хабре.

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

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



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

    Мы используем автоматический классификатор правок — Автомодератор. Это машина, в основе которой лежит наша технология CatBoost. Она обучена на примерах хороших и плохих правок. К счастью, таких данных у нас с запасом хватает.

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

    Один пример. В 2018 году в картографических сервисах и справочниках началась волна «переименований» школ, памятников и прочих организаций: на картах им присваивали имя Рикардо Милоса (на TJ есть статья об этом флешмобе). Так против своей воли мы познакомились с популярным в то время мемом о бразильском стриптизёре (не то чтобы мы этого хотели, но кто нас спрашивал). И именно комбинация Автомодератора и других механизмов проверки помогла нам отстоять истинные наименования.

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

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

    Теперь это сервис, в который в реалтайме поступает правка и информация об её отправителе. Затем Автомодератор вычисляет факторы и выносит вердикт. Раньше вердикты на заявки мы могли ждать часы. Теперь — минуты.

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

    Изменение попадает в базу Справочника, но для «прорастания» в сервис нужно время. Например, Поиск должен обновить поисковый индекс, чтобы учесть изменения из Справочника. Чтобы обойти это, разработали контур хранения состояний объектов. Проще говоря, теперь заменить номер телефона в объектном ответе Поиска можно и без перестроения поискового индекса. Теперь Поиск при построении выдачи знает, какие объекты устарели, и может подтянуть более свежую информацию. Конечно, ещё остаются ситуации, когда изменение данных влияет на ранжирование организации, но тут без перестроения индекса уже никак.



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

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

    Комментарии 5

      +3
      Хочется иметь каталог организаций (а не поиск) и уже с ним делать выборки. Есть ощущение, что неправильный поиск может не выдать все организации. При поиске (яндекс) специфичного изделия часто нельзя найти производителя, а только перекупщиков. Нужная плита лежала на заводе, а продавали ее через организации по всей России с наценкой в 20-25%.
      Я бы хотел видеть список организаций, допустим, по классификации ОКВЭД/ОКПД2, а еще лучше — сразу по нескольким, хоть по PACS.
      Пример:
      Сталелитейные заводы — Нашлось 5 млн результатов

      Ну кто в здравом уме будет смотреть все эти 5 млн. Первым делом найдется какой-нибудь список этих заводов, в котором часть контактов будут не актуальны. Другое дело когда есть конечный список заводов, которые льют определенную марку сплава. На практике приходится обзванивать, делать официальные запросы.
        +1
        Считаю, что владельцам организаций нужно доверять хотя бы при внесении оперативных корректив их рабочего графика, изменять их моментально, а не заставлять ждать сутками.
          0
          К сожалению, в выдачу попадают только те организации, которые заплатили за это (мне так кажется на основании результатов поиска в яндексе, попробуйте переубедить). Особенно это актуально про яндекс-маркет. Его правильнее называть «яндекс-рекламаркет».
          Еще — большой провал в данных по провинции, многие-многие компании просто отсутствуют в сети.
            0
            Добрый вечер. Честно говоря, не понимаю, о чём вы. В посте идёт речь про данные Яндекс.Справочника, благодаря которым формируются объектные ответы в Поиске, находятся организации на Картах, строятся маршруты в Такси и так далее. За это деньги никто ни с кого не берёт. Наоборот — любая компания может внести свои данные в Справочник, а любой пользователь — помочь с актуализацией данных.
              –3
              Вот мне честно говоря не понять, как раз о чём вы пишите. Зачем мне регистрироваться в помойных справочниках если уже дано существуют нормальный, к примеру (спарк). Все что вы перечислили это нужно не мне, а яндексу. Бесплатный сыр только в мышеловке, я еще негде не видел чтоб такси бесплатным было.

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

          Самое читаемое