Информационный поиск

Query Understanding

Google обрабатывает 8.5 миллиарда запросов в день. 15% с опечатками, 25% с неявным смыслом ('mercury' - какой из 4?), многие требуют expansion ('heart attack' = 'инфаркт миокарда'). Без query understanding поиск работал бы как CTRL+F: точное совпадение букв. Query understanding - разница между поисковиком 1995 года и Google 2024: понимание того что имел в виду пользователь, а не только что написал.

  • **Google BERT (2019)** - language model для query understanding; улучшил 10% запросов особенно длинных conversational; 'do no harm' vs 'harm no one' - разный смысл, BERT понимает
  • **Amazon Product Search** - spell correction + synonym expansion + intent (buy vs browse) + entity linking к product catalog; 'blue denim jacket winter men medium' -> разбивает на атрибуты, ищет по каждому
  • **Spotify Voice Search** - speech-to-text + spell correction + entity linking к каталогу (2 млрд треков); 'play something like Post Malone but more chill' -> intent (recommendation) + entity (Post Malone Q24217) + attribute (chill/mellow mood)

Spell Correction

Google обрабатывает 8.5 миллиарда запросов в день. 15% содержат опечатки. Без spell correction 'phython programming' не найдёт урок по Python. Первая строчка query understanding pipeline - исправление ошибок.

Подходы: **Edit distance** (Levenshtein): минимум операций (insert/delete/replace/transpose) для преобразования слова. **Noisy channel model**: P(correction | misspelling) ∝ P(misspelling | correction) * P(correction). **Neural**: seq2seq модели (T5 fine-tuned). **Context-aware**: 'paris hilton' vs 'paris france' - контекст определяет правильное исправление.

Почему контекстно-зависимая коррекция (context-aware) превосходит изолированную (per-word) для поисковых запросов?

Query Expansion

Пользователь ищет 'сердечный приступ'. В документах написано 'инфаркт миокарда', 'острый коронарный синдром'. Точное совпадение не найдёт ничего. **Query expansion** добавляет синонимы, связанные термины, переформулировки - расширяет recall не теряя precision.

Методы: **Thesaurus-based** (WordNet, медицинские онтологии UMLS). **PRF** (Pseudo-Relevance Feedback): взять top-K результатов, извлечь термины из них, добавить к запросу. **Neural expansion**: T5/GPT генерирует альтернативные формулировки запроса. **HyDE** (Hypothetical Document Embedding): LLM генерирует гипотетический документ-ответ, его embedding используется для поиска.

В чём идея HyDE (Hypothetical Document Embedding) для RAG поиска?

Intent Detection

Запрос 'python' может означать: язык программирования (информационный интент), курс Python (транзакционный), Wikipedia страницу о змее (навигационный). Google распознаёт интент через BERT-based классификатор и показывает разные результаты для разных интентов.

**Intent taxonomy** (Broder 2002): **Informational** (узнать что-то), **Navigational** (найти сайт), **Transactional** (купить/скачать/действие). Современные системы: десятки intent-классов (how-to, definition, comparison, local, news...). **Intent detection**: fine-tuned BERT + multi-label классификация. Влияет на: ranking, featured snippets, результаты типа (Knowledge Graph vs organic vs map).

Почему intent detection важен для ранжирования результатов поиска?

Entity Linking

Google Knowledge Graph хранит 500 миллиардов фактов о 5 миллиарда сущностей. Запрос 'mercury' - это планета Меркурий, химический элемент, Queen или автомобиль Ford? **Entity linking** распознаёт упомянутые сущности в тексте и связывает их с узлами knowledge graph.

Entity linking pipeline: (1) **NER** (Named Entity Recognition): найти spans сущностей ('Apple', 'Tim Cook'); (2) **Candidate generation**: найти кандидатов из knowledge base (Apple Inc, Apple Records, Apple the fruit); (3) **Disambiguation**: выбрать правильного кандидата по контексту. Используется в: Knowledge Panels, Rich Snippets, question answering.

Query understanding - это только spell correction и синонимная замена

Modern query understanding - многоуровневый pipeline: spell correction -> tokenization -> entity recognition -> intent classification -> query expansion -> rewriting. Google использует 200+ signals только для query understanding. BERT в Google Search (2019) улучшил понимание 10% запросов - особенно длинных и разговорных.

Простая синонимная замена работала в 2005. Сегодня: 'что посмотреть если понравился Интерстеллар' - нет синонимов, нужно понять intent (рекомендации sci-fi с похожей тематикой), entity linking (Интерстеллар -> Q656290), expansion (time dilation, Christopher Nolan, space opera). Вся цепочка работает в <100ms.

Зачем Google строит Knowledge Graph из 500 миллиардов фактов для поиска?

Ключевые идеи

  • **Spell correction**: Levenshtein + noisy channel P(word) * P(error|word); context-aware (seq2seq T5) для слов корректных изолированно но неверных в контексте
  • **Query expansion**: WordNet синонимы, PRF (термины из top-K), neural (T5/doc2query), HyDE (гипотетический документ-ответ для embedding поиска)
  • **Intent detection**: informational / navigational / transactional / local / how-to; BERT fine-tuned; определяет тип результатов и ранжирование
  • **Entity linking**: NER -> candidate generation -> disambiguation через контекст; Google Knowledge Graph 500B фактов -> Knowledge Panels, direct answers

Связанные темы

Query understanding - первый шаг pipeline поиска:

  • Vector Databases — Expanded query embedding ищется в vector DB; HyDE требует vector search по hypothetical document
  • Ранжирование и relevance — Intent detection влияет на feature engineering для learning-to-rank

Вопросы для размышления

  • Google обрабатывает 8.5 миллиарда запросов/день, из них 15% с опечатками. Spell correction должен работать за <10ms. Как приоритизировать быстрый Levenshtein vs медленный neural seq2seq - где граница и как её определить?
  • HyDE для RAG: LLM генерирует гипотетический ответ который потом ищется в базе. Какие классы запросов выиграют от HyDE vs обычного query embedding, а для каких HyDE даст хуже результаты?
  • Amazon: запрос 'iPhone case' - navigational (к Apple) или transactional (купить чехол)? Как intent detection влияет на то какие продавцы появятся первыми и как Amazon балансирует коммерческий интент с органической релевантностью?

Связанные уроки

  • ml-01-intro
Query Understanding

0

1

Войти