Юлий Цезарь начал свой знаменитый текст о Галльских войнах фразой Gallia est omnis divisa in partes tres.

Как и в Галлии, понимание запросов в целом делится на три части:

  • Целостное понимание запроса для определения его темы / категории или определения общего намерения искателя.
  • Редукционистское понимание сегментирования запроса на компоненты и определения того, что эти компоненты означают.
  • Разрешение для преобразования результатов целостного и редукционистского понимания в запрос, который выполняется в поисковой системе.

Давайте рассмотрим эту разбивку, начав с «Gallia est omnis divisa in partes tres» Цезаря в качестве примера поискового запроса. Предположим, что приложение для поиска предоставляет доступ к широкому набору учебных материалов (учебники, литература и т. Д.).

Целостное понимание

Целостное понимание - это первый шаг к пониманию запроса. Цель целостного понимания - широко, но не глубоко, классифицировать запрос.

Вот несколько типичных классов целостного понимания запросов:

  • Языковая идентификация. Наш пример запроса написан на латыни (точнее, Классическая латынь). Для поисковых приложений, поддерживающих несколько языков, идентификация языка имеет решающее значение для обеспечения дальнейшей обработки запросов.
  • Категоризация запроса, которая обычно отображает запрос в категорию таксономия. Наш пример запроса может быть сопоставлен с историей или историей Римской империи, в зависимости от степени детализации категоризации.
  • Установление высокоуровневого намерения пользователя, выполняющего поиск, которое предполагает категоризацию таких намерений. Например, если мы знаем, что поисковики часто ищут цитаты, чтобы найти первоисточник, мы могли бы распознать пример запроса как пример этого намерения. Другие намерения могут включать поиск биографии человека, учебника по предмету и т. Д.

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

Для обучения классификатора каждому компоненту целостного понимания запроса (для идентификации языка, категоризации запросов и т. Д.) Требуется набор помеченных обучающих данных, которые сопоставляют запросы с соответствующими классами. Ярлыки могут быть результатом явных человеческих суждений или исторического поведения поиска (например, сопоставление запроса с категорией на основе кликов). Поскольку поисковые запросы представляют собой строки - и часто короткие строки, - рекомендуется использовать встраивание на уровне символов, такое как fastText, для представления каждого запроса как вектора характеристик.

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

Редукционистское понимание

Второй шаг в понимании запросов - это редукционистское понимание, которое разбивает запрос на части и пытается понять эти части.

Редукционистское понимание запросов выполняет две связанные задачи: сегментация запроса и распознавание сущностей. Сегментация запроса разделяет поисковый запрос на последовательность семантических единиц, каждая из которых состоит из одного или нескольких токенов. Признание сущности классифицирует каждый сегмент по типу сущности.

В нашем примере запроса нет интересной сегментации, поэтому давайте воспользуемся этим (при условии, что это та же поисковая программа): поэзия римской империи.

Этот запрос следует разделить на два сегмента: римская империя и поэзия. Тогда первый сегмент можно распознать как предметную область, знакомую по предыдущему примеру, а второй сегмент можно распознать как жанр. Сегментированный распознанный запрос: Тема: «римская империя», Жанр: «поэзия».

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

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

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

Традиционно люди использовали скрытые марковские модели (HMM) и условные случайные поля (CRF) для сегментации и распознавания сущностей. Более современный подход использует глубокое обучение, а именно модель Двунаправленный LSTM-CRF.

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

Разрешение

Вместе целостное и редукционистское понимание запроса должно дать точное понимание намерений искателя. Последний шаг в понимании запроса - разрешение. Решение использует результаты двух предыдущих шагов для составления запроса для внутренней поисковой системы.

Резолюция состоит из двух частей. Первый отображает распознанные сущности в элементы запроса. Второй - собирает эти элементы в запрос.

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

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

На втором этапе объекты, а также любые сегменты, которые не могут быть распознаны как объекты, собираются в запрос, который выполняется в поисковой системе. Этот запрос может быть простым соединением, то есть оператором И всех сущностей и несовпадающих ключевых слов. В нашем примере это будет AND для структурных объектов данных, соответствующих Subject: Roman Empire и Genre: Poetry.

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

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

Rome ne fut pas faite toute en un jour

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

Bonam fortunam!

пс. Большое спасибо моим коллегам Prathyusha и Jon на eBay, чьи обсуждения были ключевыми для этого фрейминга, а также Dr. Дэвид Мерфи , который научил меня всей латыни, которую я знаю.