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

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

Я говорю об обратном: когда несколько запросов сопоставляются с одним и тем же намерением. Например, по таким запросам, как «мужская обувь» и «мужская обувь».

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

Распознавание эквивалентности запросов

Как мы узнаем, что два запроса представляют одно и то же поисковое намерение? Мы можем использовать два подхода:

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

Мы можем комбинировать эти два подхода, например, следующим образом:

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

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

Требуется ли схожесть запросов Surface?

Опора на поверхностное сходство запросов имеет свои плюсы и минусы.

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

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

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

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

Использование эквивалентности запросов для улучшения поиска

Когда мы сможем распознавать эквивалентные запросы, что мы можем сделать с этими знаниями? Оказывается, очень много!

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

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