Google использует структурированные данные (например, географические базы) и логи запросов для создания вероятностных языковых моделей в областях с огромным количеством комбинаций (например, адреса). Система вычисляет вероятность различных структур запроса (Template Distribution) и популярность конкретных сущностей (Location Distribution). Это позволяет эффективно исправлять опечатки и интерпретировать запросы в Картах и Локальном поиске.
Описание
Какую задачу решает
Патент решает проблему создания масштабируемых систем проверки орфографии для доменов со структурированными данными и чрезвычайно большим словарем (например, географические названия, имена людей, медицинские термины). В таких доменах количество допустимых комбинаций слов слишком велико, чтобы хранить и обрабатывать их все. Традиционные языковые модели не справляются с этим масштабом. Изобретение позволяет создать компактную вероятностную модель для точной интерпретации и исправления запросов в таких сложных доменах.
Что запатентовано
Запатентован метод обучения вероятностного спеллчекера (Probabilistic Spelling Checker) путем генерации компактной языковой модели (Language Model) на основе структурированных данных и логов запросов (Query Logs). Вместо хранения всех возможных фраз, система вычисляет два ключевых распределения: Template Distribution (вероятность структурных шаблонов, например, <УЛИЦА, ГОРОД>) и Location Distribution (популярность конкретных сущностей). Их комбинация формирует эффективную и управляемую по размеру языковую модель.
Как это работает
Система работает в несколько этапов офлайн-обучения:
- Анализ структуры (Template Distribution): Анализируются логи запросов для определения вероятности различных порядков типов сущностей (например, вероятность шаблона <STREET, CITY, STATE>).
- Анализ популярности (Location Distribution): Определяется вероятность того, что запрос ссылается на конкретную сущность (например, популярность «New York»).
- Генерация Языковой Модели: Система комбинирует эти распределения, генерируя только вероятные комбинации названий сущностей. Используется Граф Сущностей (Entity Graph), чтобы гарантировать, что комбинируются только связанные сущности (например, улица и город, в котором она находится). Каждой комбинации присваивается оценка (Score).
- Применение (Спеллчекинг): На основе Language Model вычисляются условные вероятности слов (Conditional Probabilities), которые затем используются в реальном времени для оценки запроса пользователя и предложения более вероятных альтернатив при наличии опечаток.
Актуальность для SEO
Высокая. Точное понимание структурированных запросов, особенно в Локальном поиске (Local Search), Google Maps и поиске по сущностям (Entity Search), остается фундаментальной задачей. Опора на структурированные данные (Entity Graph) и вероятностные модели, обученные на поведении пользователей, для интерпретации запросов является центральным элементом современных поисковых систем.
Важность для SEO
Патент имеет высокое значение (8/10), особенно для Local SEO и продвижения в специализированных нишах. Он не описывает алгоритмы ранжирования, но критически важен для этапа Понимания Запросов (Query Understanding). Патент раскрывает, что интерпретация запроса зависит как от популярности сущности (Location Distribution), так и от типичности структуры запроса (Template Distribution). Это подчеркивает важность консистентности данных (NAP) и построения популярности сущности для обеспечения ее корректного распознавания.
Детальный разбор
Термины и определения
- Conditional Probability (Условная вероятность)
- Вероятность появления слова при условии появления предыдущих слов (например, P(«York»|»New»)). Вычисляется из Language Model и используется для оценки вероятности всего запроса в реальном времени.
- Entity (Сущность)
- Объект в базе структурированных данных (например, конкретный город или улица). Имеет тип, одно или несколько названий и связи.
- Entity Graph (Граф сущностей)
- Структура данных, где узлы — это сущности, а ребра — их отношения (например, вложенность, пересечение). Используется для поиска связанных (соседних) сущностей при генерации модели.
- Language Model (Языковая модель)
- Основной результат работы системы. Хранилище вероятных комбинаций названий сущностей и связанных с ними оценок (Scores). Служит основой для спеллчекера.
- Locale (Локаль)
- Сочетание страны и языка (например, US English). Используется для учета региональных различий в структуре запросов (шаблонах) и языке.
- Location Distribution (Распределение локаций/сущностей)
- Набор вероятностей, отражающий популярность конкретных сущностей в логах запросов. Вероятность того, что произвольный запрос ссылается на данную сущность P(L(Q)).
- Query Log (Лог запросов)
- Хранилище исторических запросов пользователей, используемое для обучения.
- Rank (R(Q)) (Ранг/Специфичность)
- Числовое значение, присваиваемое типам сущностей на основе их специфичности (например, УЛИЦА=5 более специфична, чем СТРАНА=2). Используется при расчете Score.
- Template (Шаблон)
- Упорядоченный набор типов сущностей, представляющий структуру запроса (например, <STREET, CITY, STATE>).
- Template Distribution (Распределение шаблонов)
- Набор вероятностей того, что произвольный запрос будет соответствовать определенному шаблону P(T(Q)). Отражает типичные порядки сущностей в запросах пользователей, часто зависит от локали.
Ключевые утверждения (Анализ Claims)
Claim 1 (Независимый пункт): Описывает основной метод генерации языковой модели.
- Система получает доступ к базе данных сущностей и Query Log.
- Генерируется Template Distribution из Query Log. Этот процесс включает: (a) идентификацию шаблона (порядка типов сущностей) для каждого запроса в логе на основе имен сущностей и их порядка; (b) подсчет количества запросов, соответствующих каждому уникальному шаблону.
- Генерируется Language Model на основе Template Distribution. Модель содержит комбинации названий сущностей и их оценки (Scores).
- Language Model сохраняется.
Claim 5 (Зависимый от 1): Детализирует критически важный механизм обеспечения компактности Language Model (как выбираются комбинации названий).
- Для сущности E определяется ее тип T.
- Определяется набор связанных типов R — это типы, которые следуют за типом T в каком-либо из шаблонов (из Template Distribution).
- Определяется набор соседних сущностей N — это сущности, связанные с E в Entity Graph И имеющие тип из набора R.
- Генерируются пары названий: (Название E, Название N).
Система генерирует комбинации только для связанных сущностей (соседей), которые соответствуют известным шаблонам запросов, избегая комбинаторного взрыва.
Claim 4, 6, 7, 8 (Зависимые): Уточняют, как рассчитывается оценка (Score) для сгенерированных пар. Оценка вычисляется (Claim 6) и основывается на вероятности соответствующего шаблона из Template Distribution (Claim 4, 7), а также на ранге (Rank) типа сущности (Claim 8).
Где и как применяется
Изобретение применяется в основном на этапе понимания запросов, используя данные, подготовленные на этапе индексирования.
INDEXING – Индексирование и извлечение признаков
На этом этапе формируется база структурированных данных (например, Geographic database). Определяются сущности, их типы, названия и строится Entity Graph, определяющий их взаимосвязи.
QUNDERSTANDING – Понимание Запросов (Офлайн-обучение)
Основная работа, описанная в патенте, происходит здесь в офлайн-режиме. Система анализирует Query Log и структурированную базу данных для генерации:
- Template Distribution (вероятности структур).
- Location Distribution (популярность сущностей).
- Language Model (вероятные комбинации названий и их оценки).
- Conditional Probabilities (условные вероятности слов).
QUNDERSTANDING – Понимание Запросов (Реальное время)
Во время обработки запроса пользователя модуль проверки орфографии (Query spell check module) использует предварительно сгенерированную модель для анализа введенного текста, исправления ошибок и предложения альтернативных запросов до начала этапов поиска и ранжирования.
Входные данные (Офлайн):
- Структурированная база данных (Entity Graph).
- Query Log.
Выходные данные (Офлайн):
- Language Model и Условные вероятности.
Входные данные (Онлайн):
- Запрос пользователя.
Выходные данные (Онлайн):
- Альтернативные (исправленные) варианты запроса.
На что влияет
- Конкретные ниши или тематики: Критически важно для Локального поиска (Local SEO) и Google Maps. Также применимо к другим структурированным доменам: имена людей, медицина, фармацевтика (потенциально YMYL), если для них построены соответствующие базы сущностей.
- Специфические запросы: Влияет на структурированные запросы, такие как адреса, запросы типа «название компании + локация», имена или термины.
- Языковые и географические ограничения: Система явно учитывает локали (Locale). Шаблоны запросов могут сильно различаться в зависимости от страны и языка (например, порядок адреса в США и России). Могут генерироваться отдельные модели для разных локалей.
Когда применяется
- Условия работы алгоритма: Алгоритм генерации модели работает офлайн и периодически обновляется. Алгоритм проверки орфографии работает онлайн.
- Триггеры активации: Активируется на самом раннем этапе обработки запроса, когда система пытается распознать, разобрать и исправить орфографию запроса, который предположительно ссылается на сущности из структурированного домена.
Пошаговый алгоритм
Процесс А: Офлайн-обучение Языковой Модели
- Генерация Распределения Шаблонов (Template Distribution):
- Анализ Query Log. Для каждого запроса определяется последовательность типов сущностей (шаблон).
- Подсчет и нормализация частот шаблонов для получения вероятностей P(T(Q)).
- Генерация Распределения Локаций (Location Distribution):
- Анализ Query Log и Базы данных. Для каждой сущности подсчитывается, сколько запросов на нее ссылаются (с учетом неоднозначности имен).
- Нормализация счетчиков для получения вероятностей P(L(Q)) (популярности сущностей).
- Генерация Языковой Модели (Language Model Generation):
- Для каждой сущности E:
- Определяется тип E и его ранг R(Q).
- Определяются связанные типы R (те, что следуют за типом E в шаблонах).
- Определяются соседние сущности N в Entity Graph, имеющие тип из R.
- Генерируются пары названий: (Название E, Название N).
- Для каждой комбинации (Q) вычисляется оценка (Score). Формула из описания патента: Score = P(T(Q)) * P(L(Q)) * R(Q).
- Сохранение комбинаций и оценок в Language Model.
- Для каждой сущности E:
- Вычисление Условных Вероятностей:
- Language Model интерпретируется как текстовый корпус (где Score определяет частоту встречаемости).
- Вычисляются вероятности N-грамм и на их основе выводятся условные вероятности слов (например, P(W2|W1) = P(W1 W2) / P(W1)).
Процесс Б: Онлайн Проверка Орфографии (Query Spell Check)
- Получение запроса: Система получает запрос Q от пользователя.
- Генерация вариантов: Генерируются альтернативные варианты запроса (Q’) с помощью правил редактирования (исправление опечаток), которые могут быть специфичны для Locale.
- Оценка вероятности: Вероятность P(Q) и P(Q’) вычисляется как произведение условных вероятностей слов, составляющих запрос (P(w1) * P(w2|w1) * …).
- Выбор альтернативы: Если P(Q’) > P(Q), альтернативный запрос предлагается пользователю или используется для поиска.
Какие данные и как использует
Данные на входе
Система использует два основных источника данных: структурированную базу данных и логи запросов.
- Структурные факторы (База данных сущностей):
- Сущности (Entities) и их Имена (включая варианты, аббревиатуры, языковые варианты).
- Типы сущностей (Entity Types) (STREET, CITY).
- Граф сущностей (Entity Graph): Взаимосвязи (вложенность, пересечение). Определяет «соседей».
- Ранги типов (Ranks R(Q)): Уровень специфичности каждого типа (например, STREET=5, CITY=4).
- Поведенческие факторы (Query Logs):
- Структура запросов: Как пользователи упорядочивают сущности (используется для Template Distribution).
- Популярность сущностей: Как часто пользователи ищут конкретные сущности (используется для Location Distribution).
- Географические/Пользовательские факторы:
- Локаль (Locale): Язык и страна пользователя. Используется для учета различных языковых конвенций и создания специфичных для региона моделей и шаблонов.
Какие метрики используются и как они считаются
- P(T(Q)) – Вероятность Шаблона: Нормализованная частота встречаемости шаблона T в Query Log.
- P(L(Q)) – Вероятность Локации (Популярность Сущности): Нормализованная частота упоминания сущности L в Query Log.
- R(Q) – Ранг (Специфичность): Предопределенное значение для типа сущности.
- Score (Оценка в Языковой Модели): Оценка для комбинации названий. Формула: Score = P(T(Q)) * P(L(Q)) * R(Q).
- Условная вероятность слова P(w2|w1): Вычисляется на основе частот n-грамм из Language Model. Формула: P(w2|w1) = P(w1 w2) / P(w1).
- Вероятность Запроса P(Q): Произведение условных вероятностей слов, составляющих запрос: P(w1) * P(w2|w1) * … * P(wN|w1…wN-1).
Выводы
- Специализированные модели для структурированных доменов: Google разрабатывает отдельные, компактные языковые модели для доменов, где данные хорошо структурированы (например, Локальный поиск). Это позволяет эффективно обрабатывать запросы, сложные для стандартных NLP-моделей.
- Компактность за счет ограничений: Система достигает масштабируемости, не перечисляя все возможные комбинации. Она ограничивает модель только теми комбинациями, которые соответствуют популярным шаблонам (Template Distribution) И связям в Entity Graph.
- Популярность сущности влияет на интерпретацию запроса: Вероятность локации P(L(Q)) является множителем в оценке языковой модели. Более популярные сущности имеют больше шансов быть распознанными и предложенными в качестве исправления при опечатке или неоднозначности.
- Структура запроса и Локализация: Система учитывает, как пользователи в разных локалях (Locale) структурируют запросы (P(T(Q))). Соответствие региональным стандартам (например, порядку адреса) повышает вероятность корректной интерпретации.
- Специфичность как фактор веса: Ранг R(Q) используется как множитель. Система придает больший вес комбинациям, включающим более специфичные сущности (например, улица по сравнению с городом).
- Зависимость от качества данных: Эффективность системы напрямую зависит от качества Entity Graph (структурированные данные) и репрезентативности Query Log (поведение пользователей).
Практика
Best practices (это мы делаем)
Рекомендации особенно важны для Local SEO и Entity-based SEO.
- Построение популярности сущности (Location Distribution): P(L(Q)) напрямую зависит от того, как часто сущность ищут пользователи. Необходимо работать над повышением узнаваемости бренда, стимулированием брендовых и локационных запросов (через отзывы, цитирования, маркетинг). Более популярные сущности получат преимущество при разрешении неоднозначностей и исправлении опечаток.
- Обеспечение консистентности NAP (NAP Consistency): Критически важно поддерживать полное единообразие Name, Address, Phone во всех источниках. Это необходимо для корректного формирования Entity Graph и консолидации сигналов популярности (P(L(Q))) вокруг единой сущности.
- Использование стандартных форматов адресов (Template Distribution): Используйте общепринятые форматы адресов для вашей локали (Locale). Система лучше распознает структуры, которые имеют высокую вероятность P(T(Q)). Нестандартное форматирование может привести к ошибкам интерпретации.
- Улучшение распознавания сущностей (Entity Recognition): Используйте микроразметку (Schema.org) для четкого определения типов сущностей и их взаимосвязей. Это помогает Google строить точный Entity Graph, который является основой для этой языковой модели.
Worst practices (это делать не надо)
- Несогласованные или противоречивые данные: Различия в написании адресов или названий в разных источниках затрудняют построение корректных связей в Entity Graph и размывают сигналы популярности (Location Distribution).
- Использование нестандартных или запутанных форматов: Избегайте креативного форматирования адресов, которое не соответствует популярным шаблонам (Templates) в вашей локали.
- Игнорирование специфичности: Фокус только на широких сущностях (например, город) без уточнения более специфичных (адрес, название организации) снижает общий вес в языковой модели из-за низкого ранга R(Q).
Стратегическое значение
Патент подтверждает фундаментальную важность Entity-Based SEO и данных из реального мира, особенно в локальном поиске. Он демонстрирует, что интерпретация запроса — это вероятностный процесс, основанный на знании структуры сущностей (Entity Graph) и реальном поведении пользователей (Query Log). Долгосрочная стратегия должна фокусироваться на построении сильной, популярной и однозначно идентифицируемой сущности. Популярность сущности становится фактором, влияющим на то, как Google интерпретирует связанные с ней запросы.
Практические примеры
Сценарий: Разрешение неоднозначности и исправление опечаток в Local SEO
Ситуация: Пользователь ищет кафе «Starbucks» на улице «El Camino Real» в городе «Mountain View», но вводит запрос с опечатками: «Starbuks, El Camino, Mountin Viev».
- Генерация вариантов: Спеллчекер генерирует корректные варианты: «Starbucks», «El Camino Real», «Mountain View».
- Оценка вероятности (на основе Language Model): Система оценивает вероятность комбинации «Starbucks, El Camino Real, Mountain View».
- Факторы, обеспечивающие высокую оценку (Score):
- P(T(Q)) — Шаблон: <BUSINESS, STREET, CITY> является распространенным (высокая вероятность в Template Distribution).
- P(L(Q)) — Популярность: «Starbucks», «El Camino Real» и «Mountain View» являются очень популярными сущностями (высокая вероятность в Location Distribution).
- R(Q) — Ранг: BUSINESS и STREET имеют высокий ранг специфичности.
- Entity Graph: Система знает, что эти три сущности связаны (Starbucks находится на этой улице, улица находится в этом городе).
- Результат: Комбинация получает очень высокую оценку. Условные вероятности слов также высоки. Система с высокой уверенностью исправляет исходный запрос пользователя на корректный вариант, обеспечивая релевантную выдачу.
Вопросы и ответы
Что такое «Распределение локаций» (Location Distribution) и как на него повлиять?
Location Distribution P(L(Q)) — это показатель популярности конкретной сущности, основанный на частоте ее упоминания в логах запросов. Чем чаще пользователи ищут вашу локацию или компанию, тем выше будет ее P(L(Q)). Повлиять на это можно путем повышения узнаваемости бренда, стимулирования отзывов, построения цитирований (citations) и увеличения объема брендового и локационного трафика.
Почему популярность сущности важна для спеллчекера?
Популярность P(L(Q)) используется как множитель при расчете оценки (Score) в Language Model. Если пользователь вводит неоднозначный запрос или запрос с опечаткой, система с большей вероятностью интерпретирует его в пользу более популярной сущности. Например, опечатка в названии малоизвестного кафе будет исправлена с меньшей уверенностью, чем опечатка в названии известного ресторана.
Что такое «Распределение шаблонов» (Template Distribution) и почему оно важно?
Template Distribution P(T(Q)) — это вероятность того, что пользователи используют определенную структуру запроса (например, <УЛИЦА, ГОРОД> или <ГОРОД, УЛИЦА>). Система отдает предпочтение тем интерпретациям запроса, которые соответствуют наиболее распространенным шаблонам в данной локали (Locale). SEO-специалистам важно использовать стандартные форматы адресов на сайте, чтобы соответствовать этим популярным шаблонам.
Как система определяет, какие комбинации названий сущностей допустимы?
Система использует два ограничения для сокращения числа комбинаций. Во-первых, сущности должны быть связаны в Entity Graph (быть «соседями», например, улица в городе). Во-вторых, их типы должны образовывать допустимый шаблон (например, тип CITY следует за типом STREET в Template Distribution). Это подчеркивает важность корректных связей вашей организации в Knowledge Graph.
Как рассчитывается оценка (Score) для комбинации в Language Model?
В описании патента приводится формула: P(T(Q)) * P(L(Q)) * R(Q). Это произведение вероятности шаблона (насколько типична структура), вероятности локации (насколько популярна сущность) и ранга (насколько специфична сущность, например, улица специфичнее города). Чтобы максимизировать оценку, нужно иметь популярную сущность, представленную в стандартном формате.
Что означает «Ранг» (Rank R(Q)) в формуле расчета оценки?
Ранг R(Q) отражает уровень специфичности типа сущности. Например, STREET (улица) более специфична, чем CITY (город), и имеет более высокий ранг. Ранг используется как весовой коэффициент. Это означает, что комбинации, включающие более специфичные данные (точный адрес), получают более высокую оценку в языковой модели.
Применяется ли этот подход только к географическим данным?
Нет. Хотя географические данные используются в патенте как основной пример (Google Maps, Local Search), в тексте явно указано, что метод применим к любым доменам со структурированными данными. Примеры включают имена людей, а также специализированные области, такие как медицина, биология, химия и фармацевтика.
Как система учитывает разные языки и страны (локали)?
Система учитывает локаль пользователя (Locale). Структура адресов и предпочтительные названия различаются в разных странах и языках. Для разных локалей могут генерироваться отдельные Template Distributions и использоваться специфичные правила исправления опечаток, основанные на логах запросов из этих регионов.
Что этот патент говорит о важности консистентности NAP (Name, Address, Phone)?
Он подчеркивает критическую важность консистентности NAP. Чтобы система могла точно рассчитать популярность сущности (Location Distribution) и понять ее связи в графе сущностей (Entity Graph), она должна быть способна однозначно идентифицировать эту сущность по ее имени и адресу. Противоречивые данные NAP мешают этому процессу.
Может ли использование микроразметки (Schema.org) помочь в контексте этого патента?
Да, безусловно. Микроразметка помогает поисковой системе точнее извлекать структурированные данные, определять типы сущностей и устанавливать связи между ними. Это улучшает качество данных, на основе которых строится Entity Graph, что является необходимым условием для работы описанного механизма генерации Language Model.