前言
在构建本地 RAG(Retrieval-Augmented Generation)系统的过程中,我们通常会把注意力集中在向量数据库和嵌入模型上。毕竟,在大多数教程中,数据被处理成向量后直接送入数据库进行相似度检索,看起来已经很高效了。
但这种“线性”的知识组织方式存在一个关键问题:它无法体现知识之间的关联性。
举个例子,如果用户问:“番茄炒蛋怎么做?”RAG 通常能通过语义匹配找到答案。但如果用户继续问:“有没有类似的快手菜?”或者“如果我不吃鸡蛋,有什么替代食谱?”这时候,纯向量检索就显得有些力不从心了——它缺乏对“食材”、“做法”、“类别”等实体之间关系的理解。
而这就轮到了**知识图谱(Knowledge Graph)**大展身手的时候。
为什么需要知识图谱?
知识图谱本质上是一种以“实体-关系-属性”为核心的结构化知识表示形式。它将信息组织成一张张“图”,使得机器可以理解不同知识点之间的逻辑关系:
菜名(如“番茄炒蛋”)与食材(如“番茄”、“鸡蛋”)之间是“包含”关系;
食材(如“鸡蛋”)与菜系(如“早餐”)之间是“属于”关系;
做法步骤之间则有“顺序”关系。
通过这种方式,知识图谱不仅能帮助 RAG 更准确地检索相关信息,还能支持推理、推荐、多跳问答等高级功能。
知识图谱 + RAG = 更强的知识理解能力
一、知识图谱入门
要理解知识图谱,我们要首先了解什么是知识?什么是图谱?很