Close Menu
    Telegram
    SEO HARDCORE
    • Разборы патентов
      • Патенты Google
      • Патенты Яндекс
    • Скоро
      SEO инструменты
    • Скоро
      SEO аналитика
    SEO HARDCORE
    Разборы патентов • Патенты Google

    Как Google создает компактные языковые модели для исправления опечаток в структурированных запросах (например, адресах), используя популярность сущностей и шаблоны запросов

    TRAINING A PROBABILISTIC SPELLING CHECKER FROM STRUCTURED DATA (Обучение вероятностного модуля проверки орфографии на основе структурированных данных)
    • US9558179B1
    • Google LLC
    • 2017-01-31
    • 2011-01-04
    2011 Knowledge Graph Индексация Патенты Google Семантика и интент

    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 (Независимый пункт): Описывает основной метод генерации языковой модели.

    1. Система получает доступ к базе данных сущностей и Query Log.
    2. Генерируется Template Distribution из Query Log. Этот процесс включает: (a) идентификацию шаблона (порядка типов сущностей) для каждого запроса в логе на основе имен сущностей и их порядка; (b) подсчет количества запросов, соответствующих каждому уникальному шаблону.
    3. Генерируется Language Model на основе Template Distribution. Модель содержит комбинации названий сущностей и их оценки (Scores).
    4. Language Model сохраняется.

    Claim 5 (Зависимый от 1): Детализирует критически важный механизм обеспечения компактности Language Model (как выбираются комбинации названий).

    1. Для сущности E определяется ее тип T.
    2. Определяется набор связанных типов R — это типы, которые следуют за типом T в каком-либо из шаблонов (из Template Distribution).
    3. Определяется набор соседних сущностей N — это сущности, связанные с E в Entity Graph И имеющие тип из набора R.
    4. Генерируются пары названий: (Название 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). Шаблоны запросов могут сильно различаться в зависимости от страны и языка (например, порядок адреса в США и России). Могут генерироваться отдельные модели для разных локалей.

    Когда применяется

    • Условия работы алгоритма: Алгоритм генерации модели работает офлайн и периодически обновляется. Алгоритм проверки орфографии работает онлайн.
    • Триггеры активации: Активируется на самом раннем этапе обработки запроса, когда система пытается распознать, разобрать и исправить орфографию запроса, который предположительно ссылается на сущности из структурированного домена.

    Пошаговый алгоритм

    Процесс А: Офлайн-обучение Языковой Модели

    1. Генерация Распределения Шаблонов (Template Distribution):
      • Анализ Query Log. Для каждого запроса определяется последовательность типов сущностей (шаблон).
      • Подсчет и нормализация частот шаблонов для получения вероятностей P(T(Q)).
    2. Генерация Распределения Локаций (Location Distribution):
      • Анализ Query Log и Базы данных. Для каждой сущности подсчитывается, сколько запросов на нее ссылаются (с учетом неоднозначности имен).
      • Нормализация счетчиков для получения вероятностей P(L(Q)) (популярности сущностей).
    3. Генерация Языковой Модели (Language Model Generation):
      • Для каждой сущности E:
        1. Определяется тип E и его ранг R(Q).
        2. Определяются связанные типы R (те, что следуют за типом E в шаблонах).
        3. Определяются соседние сущности N в Entity Graph, имеющие тип из R.
        4. Генерируются пары названий: (Название E, Название N).
        5. Для каждой комбинации (Q) вычисляется оценка (Score). Формула из описания патента: Score = P(T(Q)) * P(L(Q)) * R(Q).
      • Сохранение комбинаций и оценок в Language Model.
    4. Вычисление Условных Вероятностей:
      • Language Model интерпретируется как текстовый корпус (где Score определяет частоту встречаемости).
      • Вычисляются вероятности N-грамм и на их основе выводятся условные вероятности слов (например, P(W2|W1) = P(W1 W2) / P(W1)).

    Процесс Б: Онлайн Проверка Орфографии (Query Spell Check)

    1. Получение запроса: Система получает запрос Q от пользователя.
    2. Генерация вариантов: Генерируются альтернативные варианты запроса (Q’) с помощью правил редактирования (исправление опечаток), которые могут быть специфичны для Locale.
    3. Оценка вероятности: Вероятность P(Q) и P(Q’) вычисляется как произведение условных вероятностей слов, составляющих запрос (P(w1) * P(w2|w1) * …).
    4. Выбор альтернативы: Если 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).

    Выводы

    1. Специализированные модели для структурированных доменов: Google разрабатывает отдельные, компактные языковые модели для доменов, где данные хорошо структурированы (например, Локальный поиск). Это позволяет эффективно обрабатывать запросы, сложные для стандартных NLP-моделей.
    2. Компактность за счет ограничений: Система достигает масштабируемости, не перечисляя все возможные комбинации. Она ограничивает модель только теми комбинациями, которые соответствуют популярным шаблонам (Template Distribution) И связям в Entity Graph.
    3. Популярность сущности влияет на интерпретацию запроса: Вероятность локации P(L(Q)) является множителем в оценке языковой модели. Более популярные сущности имеют больше шансов быть распознанными и предложенными в качестве исправления при опечатке или неоднозначности.
    4. Структура запроса и Локализация: Система учитывает, как пользователи в разных локалях (Locale) структурируют запросы (P(T(Q))). Соответствие региональным стандартам (например, порядку адреса) повышает вероятность корректной интерпретации.
    5. Специфичность как фактор веса: Ранг R(Q) используется как множитель. Система придает больший вес комбинациям, включающим более специфичные сущности (например, улица по сравнению с городом).
    6. Зависимость от качества данных: Эффективность системы напрямую зависит от качества 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».

    1. Генерация вариантов: Спеллчекер генерирует корректные варианты: «Starbucks», «El Camino Real», «Mountain View».
    2. Оценка вероятности (на основе Language Model): Система оценивает вероятность комбинации «Starbucks, El Camino Real, Mountain View».
    3. Факторы, обеспечивающие высокую оценку (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 находится на этой улице, улица находится в этом городе).
    4. Результат: Комбинация получает очень высокую оценку. Условные вероятности слов также высоки. Система с высокой уверенностью исправляет исходный запрос пользователя на корректный вариант, обеспечивая релевантную выдачу.

    Вопросы и ответы

    Что такое «Распределение локаций» (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.

    Навигация
    • Описание
    • Детальный разбор
    • Выводы
    • Практика
    • Вопросы и ответы
    • Наверх
    Telegram
    © 2025 SEO HARDCORE

    Type above and press Enter to search. Press Esc to cancel.