Knowledge Graph

knowledge graph — связи между сущностями как структурированная база

Раздел
Языковые модели
Обновлено
18.05.26

Knowledge Graph — структурированная база знаний в виде узлов (сущности) и рёбер (связи между ними). «Москва — столица — России», «Толстой — автор — Войны и мира». Вместо плоских документов хранится сеть фактов с типами связей. В RAG используется наряду с векторным поиском для запросов с множественной reasoning'ом: «кто работал с Толстым над переводом?». Стандарты — Neo4j, ArangoDB, RDF/SPARQL.

Коротко

Коротко. Knowledge Graph — это база знаний в виде графа: узлы — сущности (люди, места, продукты), рёбра — типизированные связи между ними. «Москва (city) — столица (capital_of) — Россия (country)». Используется в Google Knowledge Panel, Wikidata, корпоративных KG. В RAG помогает на сложных запросах с цепочкой reasoning'а: где векторный поиск даёт «похожие документы», KG даёт «факты, связанные через 2-3 звена».

Что это такое

Пользователь спрашивает поисковую систему: «кто из современников Толстого писал про Кавказскую войну?».

Векторный поиск: найдёт документы про Толстого, документы про Кавказскую войну, может найти статью с упоминанием современников. Но не свяжет «современник Толстого» с конкретными именами и их работами.

Knowledge Graph поиск: делает структурированный запрос:

MATCH (t:Person {name: "Толстой"})-[:CONTEMPORARY_OF]-(p:Person)
       -[:WROTE]->(work:Book)-[:ABOUT]->(:Topic {name: "Кавказская война"})
RETURN p.name, work.title

Возвращает: «Лермонтов — Герой нашего времени», «Бестужев-Марлинский — Аммалат-Бек», «Пушкин — Кавказский пленник». Точные факты, выведенные из связей.

К 2026-му это GraphRAG — новая техника от Microsoft (2024), которая комбинирует knowledge graph + LLM. На сложных запросах работает в 2–3× лучше обычного RAG.

Где встречается:

  • Google Knowledge Panel — сбоку результатов поиска.
  • Wikidata — открытая база, 100+ миллионов узлов.
  • Microsoft GraphRAG — для корпоративных RAG.
  • DBpedia, YAGO — академические KG.
  • Корпоративные KG — Salesforce, LinkedIn, Spotify Wrapped.

Как это работает

Структура графа:

  • Узлы (nodes) — сущности с типом и атрибутами.
    • Person { id: 42, name: "Толстой", born: 1828 }
    • Book { id: 100, title: "Война и мир" }
  • Рёбра (edges) — типизированные связи между узлами.
    • (Person:42) -[:WROTE]-> (Book:100)
    • (Book:100) -[:ABOUT]-> (Topic:война)

Запросы делаются на специальных языках:

  • Cypher (Neo4j) — самый популярный, чем-то напоминает SQL.
  • SPARQL (RDF) — академический стандарт W3C.
  • Gremlin (TinkerPop) — для multi-database.

Главное отличие от обычной БД — traversal queries. SQL: «найди все книги автора X». Cypher: «найди все книги людей, которые знали автора X через 2 рукопожатия».

GraphRAG (Microsoft 2024):

  1. Извлечение KG из текста. LLM читает корпус документов, выделяет сущности и связи.
  2. Кластеризация. Группирует узлы по сообществам.
  3. Иерархическое summary. Для каждого кластера — краткое описание.
  4. Запрос. На вопрос пользователя берутся релевантные кластеры + их summary + LLM генерирует ответ.

Качество на сложных аналитических вопросах — на 2–3× лучше vector-only RAG.

Пример на практике

Аналитик в фарм-компании. Задача: для каждого нового препарата найти все клинические исследования его предшественников и побочные эффекты, упомянутые в публикациях соавторов.

Без KG: ручной анализ 1000+ статей, недели работы.

С KG (Neo4j + GraphRAG):

  1. Извлекают данные из PubMed: 5000 препаратов, 50 000 исследований, 100 000 авторов.

  2. Строят KG:

    • (Drug)-[:RELATED_TO]->(Drug)
    • (Drug)-[:STUDIED_IN]->(Trial)
    • (Author)-[:WROTE]->(Trial)
    • (Trial)-[:FOUND]->(SideEffect)
  3. Запрос:

MATCH (d:Drug {name: "NewDrug-X"})
       -[:RELATED_TO*1..2]-> (related:Drug)
       -[:STUDIED_IN]-> (t:Trial)
       <-[:WROTE]- (a:Author)
       -[:WROTE]-> (other:Trial)
       -[:FOUND]-> (se:SideEffect)
RETURN se.name, count(*) as occurrences
ORDER BY occurrences DESC LIMIT 10

За 2 секунды — список из 10 наиболее частых побочных эффектов с разбивкой по статьям. Работа на недели — за минуты.

В ComfyUI с RAG-нодами KG используется редко (большинство нод vector-only), но Microsoft GraphRAG доступен как Python-пакет, можно интегрировать через custom-ноду.

С чем часто путают

  • Knowledge Graph и Database — Database хранит таблицы с записями. KG хранит граф с типизированными связями.
  • KG и Ontology — Ontology — это схема (типы сущностей, типы связей). KG — данные по этой схеме.
  • KG и Semantic Search — Semantic Search ищет похожие тексты. KG ищет факты по структурным запросам.
  • KG и Wikidata — Wikidata это один конкретный KG, открытый и большой. KG — общая концепция.
  • GraphRAG и Knowledge Graph — KG это структура. GraphRAG — техника RAG, использующая KG.

Частые ошибки и заблуждения

  • «KG нужен для всего». Нет. Для простых вопросов RAG-vector справится. KG нужен на multi-hop reasoning и структурированных доменах.
  • «Построить KG = легко». Сложно. Извлечение сущностей и связей из неструктурированного текста — отдельная задача (entity linking, relation extraction).
  • «KG автоматически точный». Нет. Качество извлечения зависит от LLM-extractor'а. Ошибки в извлечении дают ошибки в графе.
  • «SPARQL устарел». Не устарел, но Cypher популярнее в индустрии. SPARQL чаще в академии и open data.
  • «Knowledge Graph заменяет LLM». Не заменяет. Часто работают вместе: KG даёт точные факты, LLM формирует ответ.

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

  • GraphRAG — техника RAG поверх knowledge graph.
  • RAG — общий метод, в котором KG может быть retriever'ом.
  • Embedding — альтернативный способ retrieval.
  • Neo4j / ArangoDB — главные графовые БД.
  • Cypher / SPARQL — языки запросов.
  • Wikidata / DBpedia — публичные KG.
  • Entity Extraction — этап построения KG из текста.

Частые вопросы

Какую графовую БД выбрать? Neo4j — самая популярная, удобный Cypher. ArangoDB — multi-model (документы + графы). Memgraph — быстрая альтернатива Neo4j. Для open-source — JanusGraph.

Сколько узлов выдержит Neo4j? Сотни миллионов на одной машине. Миллиарды — через шардинг и кластер. Хватает практически для любого корпоративного KG.

Как извлечь KG из текста? LLM-based extractors: GPT-4 / Claude по prompt«найди все сущности типа A, B, C и связи между ними». Раньше — специализированные NER + relation extraction модели.

Что такое RDF и SPARQL? RDF (Resource Description Framework) — стандарт W3C для триплетов. SPARQL — язык запросов к RDF. Используется в Wikidata, DBpedia, академических проектах.

KG работает с многомиллиардными графами? Через распределённые системы: Neptune (AWS), JanusGraph + Cassandra. Google Knowledge Graph — десятки миллиардов сущностей.

GraphRAG — это open-source? Да, Microsoft GraphRAG — open-source на GitHub. Платная версия — Azure GraphRAG со scaling и UI.

Главное

Knowledge Graph — структурированная база знаний в виде графа: узлы (сущности) и рёбра (типизированные связи). «X — работал с — Y», «Z — автор — W». Используется в Google, Wikidata, корпоративных системах. Главное преимущество перед RAG-vector: multi-hop reasoning — найти факты через цепочку связей. К 2026-му главный тренд — GraphRAG (Microsoft 2024): LLM извлекает KG из текстов, потом тот же LLM использует KG для ответов. Качество на сложных аналитических вопросах в 2–3× выше vector-only. Не заменяет, дополняет векторный поиск. Главные инструменты: Neo4j (Cypher), ArangoDB, RDF/SPARQL для open data.