Knowledge Graph
knowledge graph — связи между сущностями как структурированная база
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):
- Извлечение KG из текста. LLM читает корпус документов, выделяет сущности и связи.
- Кластеризация. Группирует узлы по сообществам.
- Иерархическое summary. Для каждого кластера — краткое описание.
- Запрос. На вопрос пользователя берутся релевантные кластеры + их summary + LLM генерирует ответ.
Качество на сложных аналитических вопросах — на 2–3× лучше vector-only RAG.
Пример на практике
Аналитик в фарм-компании. Задача: для каждого нового препарата найти все клинические исследования его предшественников и побочные эффекты, упомянутые в публикациях соавторов.
Без KG: ручной анализ 1000+ статей, недели работы.
С KG (Neo4j + GraphRAG):
-
Извлекают данные из PubMed: 5000 препаратов, 50 000 исследований, 100 000 авторов.
-
Строят KG:
(Drug)-[:RELATED_TO]->(Drug)(Drug)-[:STUDIED_IN]->(Trial)(Author)-[:WROTE]->(Trial)(Trial)-[:FOUND]->(SideEffect)
-
Запрос:
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.