Графы знаний

KG at Scale: Google, Meta

16 мая 2012 года, блог-пост Amit Singhal в Google называется 'Introducing the Knowledge Graph: things, not strings'. На примере запроса 'Marie Curie' Singhal показывает: справа от классической веб-выдачи появляется панель с фотографией, датами жизни, областью исследований, мужем, дочерью, Нобелевскими премиями. Это первый раз, когда веб-поиск ответил не 'вот десять ссылок', а 'вот сам факт'. За кулисами - 18 миллиардов фактов о 570 миллионах сущностей. К 2024 году Knowledge Graph удесятерился: ~5 миллиардов entities, ~500 миллиардов фактов. Это не один большой Wikidata - это автоматическое извлечение из миллиардов веб-страниц, скрещенное с editorial процессом для топ-10000 сущностей. Между Freebase 2010 года (12M entities) и Google KG 2024 (5B) - пропасть в 400 раз, преодолённая инженерными решениями, которые сейчас являются стандартом промышленных KG.

  • **Google Knowledge Graph** - ~5B entities в 2024, отвечает за knowledge panels в Search, ответы Google Assistant, контекст для Gemini; неотъемлемая часть Google продуктов.
  • **Meta (Facebook) Knowledge Graph** - оптимизирован под social discovery: люди, страницы, события, интересы; используется в News Feed ranking и Marketplace.
  • **Wikidata** - открытый KG с 100M+ entities, fundamental для Wikipedia на 350+ языках; используется как seed для коммерческих KG и в академических базах.

Freebase: коллаборативный KG до Google

Май 2010, Google покупает Metaweb за $40-50 миллионов - и получает Freebase, коллаборативный knowledge graph с 12 миллионами entities и 125 миллионами тройных утверждений. Freebase запустился в 2007 как 'Wikipedia для структурированных данных': пользователи редактировали факты вручную через MQL (Metaweb Query Language). Под капотом - graph database на собственном движке, типизация через 'compound value types' (CVT) для отношений с метаданными (например, актёр сыграл роль в фильме - три сущности связаны одним CVT). Google использовал Freebase как фундамент Knowledge Graph, запущенного в мае 2012 с обещанием 'things, not strings'. В 2014-2016 Google закрыл Freebase, мигрировав данные в Wikidata и собственный закрытый KG. История Freebase - урок: даже самый качественный краудсорсинг упирается в ограничения покрытия (~12M entities), а Google нужно было миллиарды.

MID (Machine ID) - уникальный идентификатор entity во Freebase, формат /m/0abc123 (base32). Сохранился в Wikidata как 'External ID' до 2024 года, используется для cross-reference между датасетами. Каждая страница Wikipedia, имеющая Freebase entity, носит этот MID как метку.

Главная причина, по которой Google закрыл Freebase и перешёл к internal KG?

Wikidata: открытый структурированный мир

Wikidata, запущенный Wikimedia Foundation в октябре 2012, поставил цель - быть структурированным backend Wikipedia на всех языках. Каждая статья Wikipedia на любом языке (английском, русском, китайском) ссылается на единое Wikidata-entity с уникальным Q-номером (Berlin = Q64, Albert Einstein = Q937). Свойства - P-номера (date of birth = P569, height = P2048). К 2024 году: 100+ миллионов entities, 1.5 миллиарда триплетов, ~25000 активных редакторов в месяц. Доступ через SPARQL endpoint (query.wikidata.org), регулярные RDF-дампы по 200 GB. Wikidata - 'public good' современного веба: используется в Google Knowledge Graph, Apple Siri, Amazon Alexa, OpenStreetMap, академических базах данных. Уникальная черта - language-neutral: entity 'Москва' - один Q-узел с label на 350+ языках, что критично для multilingual систем.

Provenance в Wikidata: каждое утверждение может иметь несколько источников (references), временные ограничения (qualifiers 'start time', 'end time') и rank (preferred / normal / deprecated). Это поддерживает противоречивые утверждения и временную динамику - например, население Берлина в 1990 vs 2024.

Какое архитектурное решение Wikidata делает её удобной для multilingual систем?

Knowledge Vault: автоматическое извлечение knowledge

В 2014 году Google опубликовал статью 'Knowledge Vault: A Web-Scale Approach to Probabilistic Knowledge Fusion' (Dong et al., KDD 2014) - подход к автоматическому извлечению миллиардов фактов из открытого веба. Идея: вместо краудсорсинга, веб-страницы сами содержат структурированные сигналы (HTML tables, microdata, infoboxes), плюс свободный текст можно парсить через NLP. Knowledge Vault объединяет 4 источника: TXT (extracted relations из свободного текста), DOM (structured HTML), TBL (HTML tables), MDA (Microdata schema.org). Каждый факт получает confidence score, и фьюжн оставляет высокоуверенные. Результат на 2014: 1.6 миллиарда фактов о ~50М entities - в 30 раз больше Freebase. Современный Google Knowledge Graph - наследник этого подхода: автоматическое извлечение, плюс ручная верификация editorial team для топ-сущностей, плюс seed из Wikidata.

Confidence calibration: классификаторы извлечения дают сырые scores, которые надо калибровать. Knowledge Vault использует Platt scaling - логистическая регрессия поверх raw scores. Без калибровки threshold 0.9 может означать совсем разное precision у разных экстракторов; после - 0.9 везде означает ~90% precision.

Почему Knowledge Vault использует Bayesian fusion (комбинацию нескольких источников), а не просто берёт самый уверенный extractor?

Масштабирование к миллиардам entities

Современный Google Knowledge Graph - ~5 миллиардов entities, 500 миллиардов фактов. Facebook (Meta) построил аналогичный граф для социальных и interest сущностей. На таких масштабах простые техники, работающие в Wikidata (single SPARQL endpoint, монолитный triplestore), катастрофически не масштабируются. Решения промышленных KG: 1) шардирование по entity domain (people/places/companies) или по hash(entity_id); 2) специализированные query layers - graph traversal через Pregel/Giraph для multi-hop, low-latency lookup через KV-store для single-hop, full-text через Lucene для search by description; 3) eventual consistency между шардами - факт может появиться в одном шарде раньше других; 4) hot/cold tiering - 1% самых запрашиваемых entities в RAM, остальное на SSD.

Triple-store query plan: даже простой SPARQL-запрос с 3 JOIN-ами на 500B triples требует ~5 миллионов промежуточных строк. Современные движки (Virtuoso, Stardog) используют join reordering поверх statistics, parallel scan over partitions, и материализованные views для топ-100 query patterns. Без этого latency растёт от секунд до минут.

Google Knowledge Graph - это публичная Wikidata с красивым UI

Google KG - закрытый граф на ~5B entities, использующий Wikidata как один из seed sources, но в основном построенный через автоматическое извлечение из веба (Knowledge Vault), внутренние signals и editorial team

Wikidata содержит ~100M entities; Google KG примерно в 50 раз больше. Wikipedia infobox + Wikidata покрывают celebrities и notable места, но не локальные бизнесы, продукты, видеоигры с longtail. Google инвестировал в автоматическое извлечение именно для этого longtail.

Почему промышленные KG используют несколько query engines (KV, Pregel, Lucene, SPARQL) вместо одного унифицированного?

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

  • **Freebase** - первый коллаборативный KG (2007-2016), 12M entities, MQL, куплен Google в 2010; закрыт после миграции в Wikidata.
  • **Wikidata** - открытый language-neutral KG, 100M+ entities, SPARQL endpoint, основа multilingual систем; provenance через references и qualifiers.
  • **Knowledge Vault** - автоматическое извлечение фактов из веба (TXT + DOM + TBL + MDA) с Bayesian fusion confidence-scores; основа промышленных KG масштаба миллиардов.
  • **Масштабирование** - sharding по domain, специализированные query engines (KV, Pregel, Lucene, SPARQL), hot/cold tiering; универсальный движок проигрывает специализированным в 10-100 раз.

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

Промышленный KG объединяет все ранее изученные концепции в production-инфраструктуру:

  • KG + LLM: RAG и Grounding — Google KG - источник grounding для Gemini; масштаб 5B entities делает graphRAG жизнеспособным для всех областей знаний, а не только узких доменов
  • Entity Linking и Resolution — Knowledge Vault поверх HTML и текста требует надёжного entity linking; на ошибочных alignments агрегированная confidence теряет смысл

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

  • Возврат к мотивации: между Freebase (12M entities) и современным Google KG (5B) - 400x рост. Какая часть этого роста пришлась на автоматическое извлечение, а какая на покупки/импорты других данных?
  • Knowledge Vault использует Bayesian fusion с предположением независимости источников. Когда это предположение нарушается (например, две страницы цитируют одну Wikipedia)?
  • Если бы вы проектировали KG для startup с бюджетом $1M и 100M фактов, какие решения из Google-масштаба остаются разумными, а какие являются overkill?

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

  • kg-12 — KG+LLM - технология Google Knowledge Graph 2.0
  • kg-04 — Entity extraction - основа наполнения KG at scale
  • kg-06 — KG Completion автоматизирует пополнение Freebase/Wikidata
  • kg-08 — GNN применяются для обработки Google-масштабных графов
  • ir-12 — Масштабирование KG аналогично масштабированию search index
  • ds-01-intro — Google KG распределён по кластерам - те же проблемы consistency
  • dist-14-sharding
KG at Scale: Google, Meta

0

1

Войти