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

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

Запросы как пакеты документов

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

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

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

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

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

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

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

Документы как набор запросов

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

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

Что означает сопоставление документа с запросами, для которых он актуален? По сути, мы представляем документ как набор намерений запроса, которым он может удовлетворить. Например, пара мужских джинсов Levi’s релевантна запросам, включающим «джинсы», «мужские джинсы», «levis» и т. д.

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

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

Двойственность

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

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

Как я уже предупреждал вас, я не эксперт в философии. Но я надеюсь, вам понравилось это исследование. Мы определенно живем в интересные времена для поиска!