今天是2024年10月24日,星期四,北京,天气晴。
程序员节,祝各位程序员节日快乐。
本文继续看RAG前沿进展,围绕RAG,介绍2个工作,一个是RAG与知识图谱结合:全局视角的知识图谱构建RAG框架Graphusion,重点看看其使用RAG做推理补全;一个是长文本RAG:LongRAG双视角检索增强生成范式,可以看看其分阶段的思路和prompt的设计。
对哦,关注前沿,可以看老刘说NLP社区进展早报,欢迎加入:
技术回归常温之际,唯有以不变应万变,静待花开,供大家一起参考并思考。
一、RAG与知识图谱结合:全局视角的知识图谱构建RAG框架Graphusion
大模型已被用于知识图谱构建(KGC)。然而,大多数现有方法关注的是局部视角,从单个句子或文档中抽取知识三元组,缺少一个融合过程以全局视角组合知识。
《Graphusion: A RAG Framework for Knowledge Graph Construction with a Global Perspective》。https://arxiv.org/abs/2410.17600,介绍了一种具有全局视角的知识图谱构建RAG框架,包含三个步骤:第一步使用主题建模提取种子实体列表,以指导最终的KG包含最相关的实体;第二步使用LLMs进行候选三元组抽取;第三步融合模块提供了所抽取知识的全局视图,这里才有RAG的影子,包括实体合并、冲突解决和新三元组发现。
注意,这里的融合RAG的部分,其实就是Graphusion通过引入RAG来提升新三元组发现的性能。
现在具体来看看细节:
1、种子实体生成
首先,利用BERTopic进行主题建模,识别每个主题的代表性实体作为种子实体。
这些种子实体确保了实体提取的高相关性和精度。
这块具体实现参考:https://www.semanticscholar.org/paper/BERTopic%3A-Neural-topic-modeling-with-a-class-based-Grootendorst/5493aefc07e331045be76003ea516aef57f76cb9
首先对ACL会议论文集的摘要进行预处理,去除短于25个词的句子,以确保文本质量。
其次,使用BERTopic模型对预处理后的文本进行主题建模,识别出每个主题的核心实体。这些核心实体作为种子实体,用于后续的实体提取和三元组提取。
最后,将BERTopic输出的每个主题的代表性实体被选为种子实体,这些种子实体确保了实体提取的高相关性和精度,为后续的三元组提取提供了良好的起点。
2、候选三元组提取
其次,使用LLMs从自由文本中提取候选三元组。
这个部分设计了一个Chain-of-Thought (CoT) 提示,首先让LLMs提取领域内的实体,然后确定这些实体之间的可能关系,并发现新的三元组。
这个可以对比GraphRAG的抽取方式:
3、知识图谱融合
融合模块,对多个局部子图进行全局合并和解决冲突,形成一个大连接的知识图谱。
融合步骤包括实体合并、冲突解决和新三元组推断。
首先,实体合并。 对于从自由文本中提取的多个局部子图,Graphusion首先合并语义相似的实体。
具体来说,如果两个实体在语义上相似或指向同一实体,则将它们合并为一个实体,保留更有意义或具体的那个。
其次,冲突解决。 在合并过程中,可能会遇到实体关系冲突的情况。Graphusion通过查阅背景文本,帮助解决这些冲突。
这个就是里面的“### Backgrdound”部分的内容。
对于每对实体,选择最佳的关系,确保最终的知识图谱中的关系是准确和一致的。
最后,融合RAG的新三元组推断:
除了合并和解决冲突外,Graphusion还可以从检索到的内容中推断出新的三元组,这些新三元组补充了原始提取的三元组,进一步丰富知识图谱的内容。
这一步也通过prompt实现:
外部知识库也可以进一步分为3种形式:
Doc.提供领域内的相关自由文本;
Con.提供添加训练集中的一跳相邻实体作为与查询实体相关的附加信息。
Wiki.提供合并每个查询实体的维基百科页面的介绍性段落。
二、长文本RAG:LongRAG双视角检索增强生成范式
RAG进展,现有RAG方法在长上下文信息收集不完整和关键事实细节识别困难的问题,可以引入两个关键组件,LLM增强信息提取器和CoT引导过滤器。
《LongRAG: A Dual-Perspective Retrieval-Augmented Generation Paradigm for Long-Context Question Answering》,https://arxiv.org/abs/2410.18050, https://github.com/QingFei1/LongRAG,可以看看具体思路:LLM增强信息提取器通过将短格式块映射回源长上下文段落,使用零样本上下文学习(ICL)从源段落中提取全局信息,从而解决了长上下文信息收集不完整的问题。CoT引导过滤器则利用链式思维(CoT)生成全局线索,指导LLMs逐步关注相关知识点,帮助识别关键事实细节,从而解决了关键事实细节识别困难的问题。
LongRAG系统包括以下几个主要组件:
1、混合检索器(Hybrid Retriever)
负责从长文本语料库中检索与问题最相关的片段。
混合检索器使用双编码器结构,一个用于粗粒度检索,另一个用于细粒度检索,以快速从长文本中检索相关信息片段。
这个过程涉及到对长文本进行分割,并将句子作为最小的分割单位,使用滑动窗口策略来保持语义连贯性。
这种设计的优势在于:粗粒度检索可以快速覆盖大量相关文档,而细粒度检索则可以在粗粒度检索的基础上进一步捕捉文档中的深层语义关系。
2、LLM增强信息提取器(LLM-augmented Information Extractor)
将检索到的片段映射回源长文本段落,并提取全局信息。
这个组件将检索到的片段映射回它们在源长文本段落中的位置,然后提取全局信息。这样做的目的是恢复长文本的上下文,以便更好地理解问题相关的背景和结构信息。
3、CoT引导过滤器(CoT-guided Filter)
使用Chain of Thought(CoT)来指导过滤器,精确识别包含关键事实细节的片段,指导LLMs逐步关注相关知识点。
4、LLM增强生成器(LLM-augmented Generator)
结合全局信息和事实细节生成最终答案。
总结
本文主要围绕RAG,介绍了2个工作,一个是RAG与知识图谱结合:全局视角的知识图谱构建RAG框架Graphusion,重点看看其使用RAG做推理补全;一个是长文本RAG:LongRAG双视角检索增强生成范式,可以看看其分阶段的思路。
这两个工作都是prompt-based的,现在看来看去,都是prompt在驱动,没啥太大新意。
但跟进前沿,也不错哦。
参考文献
1、https://arxiv.org/abs/2410.18050
2、https://arxiv.org/abs/2410.17600
关于我们
老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。
加入会员方式:关注公众号,在后台菜单栏中点击会员社区->会员入群加入