基于KG生成语料增强解决RAG问答幻觉问题的简单框架-WalkRetrieve
Walk&Retrieve基于知识图谱,利用基于图遍历和知识表述来进行零样本RAG的语料库生成。解决RAG系统的幻觉问题。该框架思路比较简单,核心点在于零样本RAG的语料库生成,下面来看看,供参考。
语料生成
在框架中,语料生成该方法的核心步骤。该阶段从知识图谱中提取相关信息,并将其转化为适合LLM处理的文本格式。语料生成包括以下几个步骤:基于图的遍历、知识表示和索引。
1.基于图的遍历
-
随机游走:随机游走是一种随机过程,从一个节点开始,每次以均匀的概率选择当前节点的邻居节点进行移动。
其中, ∣ N ( v i ) ∣ \left|N\left(v_{i}\right)\right| ∣N(vi)∣ 表示节点 v i v_i vi 的邻居数量。
对于每个节点 v ∈ V v \in V v∈V,生成 n w n_w nw 条长度为 l l l 的随机游走路径 W l \mathcal{W}_{l} Wl。最终的语料库 C R W C_{RW} CRW 是所有节点的随机游走路径的集合。- 优点:简单易行,适用于大规模图谱。
- 缺点:可能会产生重复路径和噪声。
-
广度优先搜索-BFS游走:BFS是一种图遍历算法,从根节点开始,逐层访问其邻居节点。对于每个根节点 v r ∈ V v_r \in V vr∈V,构建一个层次结构,每一层的节点表示与根节点的最短路径距离。然后,按照层次顺序进行遍历,确保每个节点只被访问一次。
其中, L 0 = { v r } L_0 = \{v_r\} L0={vr}, d d d 是最大深度。
- 优点:避免了重复路径,生成的游走路径更加多样化。
- 缺点:计算复杂度较高,尤其是在深层遍历时。
2.知识表示
LLM需要文本输入,需要将提取的图遍历路径转换为自然语言描述。使用预定义的提示模板,将每个节点的游走路径转化为自然语言句子。例如,对于一个随机游走的路径 ( v 1 , r 1 , v 2 , r 2 , v 3 ) (v_1, r_1, v_2, r_2, v_3) (v1,r1,v2,r2,v3),可以生成类似“ v 1 v_1 v1 通过关系 r 1 r_1 r1 连接到 v 2 v_2 v2,而 v 2 v_2 v2 通过关系 r 2 r_2 r2 连接到 v 3 v_3 v3”的句子。
3.索引
将每个游走路径 w i v w_i^v wiv 转换为向量表示,并计算每个节点的全局表示,作为其所有游走路径向量的拼接。将节点及其对应的游走路径向量存储起来,便于在推理阶段进行快速检索。
检索问答
该阶段不是重点,与传统的RAG相同,包括将query编码、相似性检索(k近邻搜索)、上下文整合、答案生成。
实验性能
MetaQA上的性能:Walk&Retrieve-BFS在答案准确性和减少虚假答案方面表现最佳,相对提高了38.64%。其他基于KG的RAG系统虽然准确性高,但虚假答案更多。Walk&Retrieve-BFS在1跳、2跳和3跳问题上的真实性和减少无响应方面表现优异。
CRAG上的性能:Walk&Retrieve变体在答案准确性上优于仅使用LLM和基于文本的RAG,同时在虚假答案和无响应率上与之相当。由于CRAG的复杂性较高,Walk&Retrieve的性能略有下降,但仍表现出良好的鲁棒性。
参考文献:Walk&Retrieve: Simple Yet Effective Zero-shot Retrieval-Augmented Generation via Knowledge Graph Walks,https://arxiv.org/pdf/2505.16849v2