https://arxiv.org/pdf/2407.10805
目前很多的 RAG 实现主要依靠语义向量的检索,虽然语义相似度能够衡量两个 text 之间的相似度,但是基于文本的 RAG 难以捕获文档和文字之间的结构关系。比如可能会忽视关注知识级别的联系,比如刘备和关羽是一本书里的人物,因此无法关注到这里的联系,导致只能回答非常表面的问题,这个限制导致了基于文本的 rag 无法回答多跳的联系,忽视重要的结构信息。
因此我们需要结 KGRAG。尽管 KGs 能有效地构建高层次的概念和关系,但它们本身也存在内在不完整性和缺乏本体以外信息的问题。KGs 不能提供详细的内在信息。目前有些方法尝试吧 text RAG 和 KG RAG 结合在一起,但是这些方法在复杂问题上效果很差。
考虑到上述挑战,我们提出了 ToG2,一个混合的 RAG 查询范式能够很好的吧 text-rag 和 kg-rag 结合在一起。首先,ToG2 从问题中初始化一个 topic 节点,每一轮检索开始时,ToG-2 会通过对 KG 进行关系检索来探索更多候选实体,并从相关文本中检索出相关文本,之后再裁剪,更新 topic 实体并且以该实体作为下一个查询的起始点。如果信息不足,那么在进行一轮检索,直到检索完成。这样的范式类似人类思考的过程:检查当前线索,并根据现有知识框架联想潜在实体,不断挖掘主题,直至找到答案
方法
ToG2 主要的改进在于:基于三元组的逻辑链扩展与相关实体的非结构化上下文知识相结合,通过迭代执行知识引导的上下文检索和上下文增强图检索,从而更有效地整合和利用异构外部知识。相较于 ToG1,主要的改进在于多了一步使用 text 查询的步骤。
在每一步中检索出 N 个 Topic 节点,然后根据这些节点从文档中检索出 K 个相关语块,
检索完毕之后,分为 context-enhanced graph search 和 knowledge-guide context retrieval,