Knowledge Graph
knowledge graph — сущности, факты и связи в одной модели
Knowledge Graph, или граф знаний, хранит сущности и утверждения о связях между ними. В нём можно явно показать, что человек работает над проектом, проект использует технологию, а факт взят из конкретного источника и действует в определённый период. Такой граф помогает искать цепочки связей, объединять данные из разных систем и давать RAG структурированный контекст.
Коротко
Knowledge Graph, или граф знаний, — сеть именованных сущностей и утверждений о том, как они связаны. Узлами могут быть люди, организации, документы, места и понятия. Рёбра описывают отношения: «работает в», «автор», «зависит от», «находится в». У сущностей, связей и самих утверждений могут быть типы, свойства, источники и временные рамки.
Граф удобен, когда вопрос касается не одного документа, а цепочки: кто отвечает за проект, какие системы от него зависят и из какого источника это известно. Он не делает факты истинными автоматически и не заменяет поиск по тексту — он даёт данным явную структуру.
Что хранится в графе знаний
Представим внутренний каталог студии. В нём есть сотрудница Ирина, проект «Архив» и технология распознавания речи. В плоских таблицах эти сведения могут лежать в разных системах. Граф собирает их в связанную картину:
Ирина — РАБОТАЕТ_НАД → Архив
Архив — ИСПОЛЬЗУЕТ → Распознавание речи
Архив — ОПИСАН_В → Техническое задание
Здесь «Ирина», «Архив» и «Распознавание речи» — сущности. Надписи на стрелках — типы отношений. У проекта может быть статус, у связи — дата начала, а у утверждения — ссылка на документ, из которого оно получено.
Термин не имеет одной обязательной реализации. На практике встречаются RDF-графы, labeled property graphs и собственные модели. Их объединяет идея: смысл хранится не только в отдельных записях, но и в явно названных связях.
Две распространённые модели
RDF и триплеты
RDF описывает утверждение как тройку subject — predicate — object. Набор таких троек образует RDF graph. Идентификаторы обычно задаются IRI, а значениями могут быть другие ресурсы, строки, числа и даты.
studio:irina studio:worksOn studio:archive
studio:archive studio:uses studio:speechRecognition
RDF является моделью данных W3C, а не конкретной базой. Один и тот же граф можно сериализовать в Turtle, JSON-LD и других форматах. SPARQL используется для запросов к RDF-данным; property paths позволяют описывать последовательности связей.
Labeled property graph
В property graph узлы получают labels и свойства, а отношения — направление, тип и собственные свойства. Такой вид часто встречается в графовых СУБД и в запросах Cypher:
MATCH (person:Person)-[:WORKS_ON]->(project:Project)
-[:USES]->(technology:Technology)
WHERE person.name = 'Ирина'
RETURN project.name, technology.name
Cypher, Neo4j и другие продукты не являются синонимами knowledge graph. Cypher — язык запросов к графовым данным, Neo4j — конкретная СУБД, а граф знаний — смысловая модель данных, которую можно хранить разными способами.
Зачем нужны идентификаторы и схема
Главная сложность начинается не со стрелок, а с ответа на вопрос: две записи говорят об одной сущности или о разных?
«ООО Ромашка», «Ромашка» и внутренний код org-184 могут обозначать одну компанию. Процесс сопоставления упоминаний с устойчивой сущностью называют entity linking или resolution. Без него граф быстро обрастает дублями и противоречивыми ветками.
Схема или онтология задаёт допустимые типы и смысл отношений. Например:
PersonможетWORKS_ONProject;ProjectможетDEPENDS_ONService;- связь
WORKS_ONимеет даты начала и окончания; - утверждение должно ссылаться на источник.
Онтология и граф знаний связаны, но не равны. Онтология описывает понятия, ограничения и правила вывода. Граф содержит конкретные сущности и утверждения, иногда следуя этой онтологии, а иногда только более лёгкой схеме.
Как граф строится из данных
Источниками бывают таблицы, API, документы, журналы событий и ручная разметка. Типичный pipeline включает несколько разных задач.
- Выделение кандидатов. Из текста извлекаются сущности, отношения и утверждения; из таблиц берутся поля и внешние ключи.
- Нормализация. Имена, даты, единицы и типы приводятся к общей форме.
- Entity linking. Упоминания связываются с существующими идентификаторами или создают новые сущности.
- Запись происхождения. Сохраняется источник, время извлечения, версия и при необходимости confidence.
- Проверка. Ограничения схемы, дубликаты и конфликты проходят автоматическую и ручную валидацию.
- Обновление. Устаревшие связи закрываются временным интервалом или заменяются новыми утверждениями с сохранением истории.
LLM может помочь извлечь кандидатов из свободного текста, но её ответ остаётся гипотезой. Без привязки к источнику и проверки модель способна уверенно добавить в граф несуществующую связь.
Что даёт запрос по пути
Векторный поиск отвечает на вопрос «какие фрагменты похожи по смыслу». Графовый запрос отвечает на вопрос «какие сущности соединены указанным рисунком отношений».
Например, запрос может найти сервисы, которые зависят от проекта Ирины через один или несколько промежуточных компонентов. Результат появляется потому, что эти рёбра уже записаны в графе. Сам traversal не доказывает причинность и не открывает неизвестный факт: он сопоставляет хранимую структуру с шаблоном запроса.
Цепочки из нескольких связей часто называют multi-hop. Они полезны для каталогов зависимостей, расследования происхождения данных, контроля доступа, рекомендаций и вопросов по связанным сущностям. Однако длинный путь может породить слишком много совпадений, а ошибочное ребро распространяет ошибку на все запросы, которые через него проходят.
Knowledge Graph и RAG
Граф и векторный индекс решают разные части retrieval.
- Векторный поиск хорошо подбирает нестрого сформулированные и тематически близкие фрагменты.
- Граф хорошо фильтрует по типам, проходит по явным отношениям и показывает путь к результату.
- Текстовый источник хранит детали и формулировки, которые не вошли в структуру графа.
Hybrid pipeline может сначала найти сущности в вопросе, затем получить соседние узлы и исходные документы, после чего передать проверяемый контекст языковой модели. Иногда порядок обратный: semantic search находит фрагмент, а граф расширяет его связанными сущностями.
GraphRAG — общее название для RAG-подходов, использующих графовую структуру. Это не один стандартный алгоритм. Например, исследовательский проект Microsoft GraphRAG извлекает сущности, отношения и claims, строит сообщества и отчёты по ним, а затем предлагает несколько режимов поиска. Такой индекс может быть полезен для вопросов о структуре всего корпуса, но его построение требует дополнительных моделей, времени и проверки качества.
Источник факта важнее красивого ребра
Связь Компания — ВЛАДЕЕТ → Сервис без контекста может быть неполной. Владение меняется со временем, относится к определённой юрисдикции и подтверждается конкретным документом. Зрелая модель хранит хотя бы часть этого контекста:
- откуда взято утверждение;
- когда оно было актуально;
- кто или какой pipeline его добавил;
- какой уровень доверия присвоен;
- есть ли конкурирующее утверждение.
В RDF происхождение можно отделять named graphs или моделировать отдельными утверждениями. В property graph метаданные часто помещают в свойства relationship либо выносят факт в самостоятельный узел. Универсального способа нет: структура выбирается под запросы и правила предметной области.
С чем часто путают
- Knowledge Graph и graph database. База даёт хранение и запросы; граф знаний добавляет предметный смысл, идентичность сущностей и правила интерпретации.
- Knowledge Graph и ontology. Онтология описывает понятия и ограничения, граф — конкретные факты и сущности.
- Knowledge Graph и semantic search. Граф сопоставляет явные связи, semantic search — близость представлений текста или других объектов.
- RDF и файл. RDF — абстрактная модель данных; Turtle и JSON-LD — способы её записать.
- SPARQL и Cypher. Оба запрашивают графы, но относятся к разным моделям и экосистемам.
- GraphRAG и любой KG. Граф может существовать без LLM и RAG; GraphRAG использует граф для подготовки контекста генерации.
Частые заблуждения
«Граф сам делает логические выводы»
Обычный запрос находит сохранённые узлы, рёбра и пути. Дополнительный entailment появляется только при заданной семантике, правилах или reasoner. Даже формально выведенный факт остаётся настолько надёжным, насколько надёжны исходные утверждения.
«Для multi-hop граф всегда лучше vector RAG»
Преимущество зависит от вопроса, полноты графа и качества entity linking. Если нужного ребра нет или схема не отражает отношение, traversal ничего не найдёт. В документе при этом может быть прямой и легко извлекаемый ответ.
«LLM быстро построит готовый KG из папки документов»
Извлечение создаёт черновые сущности и связи. Дубли, местоимения, отрицания, временные оговорки и конфликтующие источники требуют отдельной обработки. Чем важнее решения на основе графа, тем заметнее цена валидации.
«Любая сеть узлов является графом знаний»
Технический graph может описывать клики или соединения без предметной семантики. Knowledge graph обычно связывает сущности и утверждения так, чтобы их смысл был доступен людям и программам.
Частые вопросы
Какой формат выбрать: RDF или property graph?
RDF удобен для совместимости, глобальных идентификаторов, linked data и W3C-экосистемы. Property graph часто проще для прикладной разработки, свойств на отношениях и pattern matching. Выбор определяется обменом данными, запросами, правилами и доступным runtime, а не размером логотипа СУБД.
Граф знаний обязан храниться в графовой базе?
Нет. Небольшой граф может жить в файлах, реляционных таблицах или объектном хранилище. Специализированная СУБД становится полезнее, когда нужны частые path queries, индексы, конкурентные обновления и управление большим набором связей.
Как измеряют качество KG?
Отдельно проверяют точность и полноту сущностей, entity linking, отношения, источники, временные границы и ответы на контрольные запросы. Одна общая «accuracy графа» скрывает, где именно возникает ошибка.
Можно ли объединить несколько графов?
Можно, если согласованы идентификаторы, типы и правила доверия к источникам. Простое слияние файлов часто создаёт дубли и конфликтующие утверждения. RDF облегчает объединение за счёт глобальных IRI, но не решает автоматически вопрос идентичности.
Чем Wikidata сложнее набора триплетов?
Утверждения Wikidata могут иметь qualifiers, references и rank. Это позволяет указать период действия, источник и предпочтительность значения. Такой контекст показывает, почему реальный граф знаний богаче схемы «два узла и стрелка».
Главное
Knowledge Graph хранит сущности как связанную систему утверждений. Его сила не в картинке из кружков, а в устойчивых идентификаторах, типизированных отношениях, путях запроса и происхождении фактов.
RDF/SPARQL и labeled property graph/Cypher предлагают разные способы выразить эту идею. Графовая СУБД отвечает за исполнение, онтология — за смысл и ограничения, а сам граф — за конкретные данные. В RAG он особенно полезен рядом с текстом и векторным поиском: структура находит явные связи, документы дают подробности, а модель формирует ответ из переданного контекста.