今天是2024年11月2日,星期六,北京,天气晴,2024年11月份的第二天。
本文主要介绍3个工作,一个文档智能进展,关于文档解析技术、数据的总结,一个是RULERAG之引入规则知识进行RAG,后者我理解是大模型与知识图谱结合用于RAG的另一个思路。
后者是知识图谱与RAG的另一个结合思路,供大家一起参考并思考。
一、关于文档解析技术、数据的总结
关于文档智能相关的进展,大家可以看看最近的一个综述,《Document Parsing Unveiled: Techniques, Challenges,and Prospects for Structured Information Extraction》(https://arxiv.org/abs/2410.21169)。
其中,对文档处理的整体缓解跟各个模块都做了总结,有些图表还是具有索引意义,大家看看:
例如,表格检测和识别
又如,文档处理的流程
又如,一些文档版式分析数据集
又如,一些表格相关数据集
又如,一些开源的PDF处理工具
二、关于RAG进展:RULERAG之引入规则知识进行RAG
关于RAG进展,RULERAG: RULE-GUIDED RETRIEVAL-AUGMENTED GENERATION WITH LANGUAGE MODELS FOR QUES- TION ANSWERING,引入规则知识进行RAG(https://arxiv.org/pdf/2410.22353,https://github.com/chenzhongwu20/RuleRAG_ICL_FT.),核心三个东西:
规则库R:包含了用于指导检索和生成的规则,这些规则以自然语言形式表达,如“[实体1, r1, 实体2] 导致 [实体1, r2, 实体2]”;
检索器(RG-retriever):根据查询和规则检索相关文档的组件;
生成器(RG-generator):根据检索到的文档和规则生成答案的组件;
语言模型(LLM):用于理解和生成自然语言的预训练模型;
核心思路在于,通过引入符号规则作为上下文学习(In-Context Learning, ICL)示例,指导检索器检索与查询逻辑相关的文档,并统一指导生成器根据同一套规则生成答案,如这个例子。
1、与朴素RAG的对比
Figure1(b)表述有规则辅助的RuleRAG,在这个部分,图示说明了RuleRAG方法如何利用与查询相关的规则来指导检索过程,首先检索与查询逻辑相关的支持性文档,然后根据这些文档确定正确的答案。
其中,规则引导的检索中,RuleRAG通过引入与查询相关的规则(例如,如果某人出生在某个国家,那么他的国籍很可能是这个国家)来指导检索器检索与查询逻辑相关的文档。
2、知识规则库长啥样
最关键的还是怎么获取规则。
静态场景中,两个实体之间可以同时建立几种不同的关系。在时间场景中,两个实体可以在不同的时间戳下多次交互。因此,如果关系r1(规则主体)在逻辑上可以解释实体之间关系r2(规则头部)的出现,将其相关性表示为自然语言形式的规则:**[实体1, r1, 实体2] 导致 [实体1, r2, 实体2]。**
例如:
这个工作利用经典的规则挖掘算法AMIE3来处理静态KG,以及TLogic来处理临时KG。频繁共现的关系形成了高置信度的规则,并将它们转换为上述文本字符串形式。所有这些单独的规则构成了规则库R,它将在RuleRAG的训练和推理过程中被一致地利用。
2、怎么检索和使用规则
Figure 2描述了RuleRAG框架的总体结构,包括RuleRAG-ICL(In-Context Learning)和RuleRAG-FT(Fine-Tuning)。这个框架展示了如何通过规则引导来改进检索和生成过程,以提高问答系统的性能。
一个是RuleRAG的统一推理。
给定一个查询q∈Q,从R中选择一些相关规则Rq。
首先识别查询q中的关系,然后检索以该关系作为规则头部的规则,形成指导规则Rq用于q。将q与Rq中的一个规则r∈Rq一次接一次地结合,以避免冲突,并进行规则引导的检索以在语料库D中获得top-k个相关文档Drq,其中q提供检索内容,r提供检索方向。
最后,从所有规则的Rq中收集的Drq被组合产生最终的检索结果Dq,RuleRAG-ICL基于查询q、规则Rq和文档Dq来推理答案a。
由于每个规则r∈Rq代表一个独特的检索逻辑,单独检索所有查询-规则对(q,r)以避免不同规则之间的冲突。检索器计算(q,r)对和每个文档di∈D之间的相关性得分s(di,q◦r):s(di, q◦r)=Ed(di)·Eq(q◦r),其中◦表示序列连接,·是点积,Ed是文档编码器,Eq是查询编码器。
为了保持在LLMs的上下文窗口大小限制内,选择top-k个得分最高的文档,记为Drq(r∈Rq),作为每个(q,r)对的最终检索结果,并将所有Drq组合作为查询q的最终检索结果Dq。
另外是两个微调,一个是规则引导的检索器微调(RGFT-retriever),微调过程中,检索器学习区分正例(与查询和规则相关的文档)和负例(不相关的文档)。常通过对比学习来实现,其中检索器的损失函数鼓励模型更倾向于正例;
另一个是规则引导的生成器微调(RGFT-generator),使用检索到的文档、规则和正确答案来训练生成器;
对应的prompt:
当然,总结的来看,RuleRAG方法通过引入规则来指导检索和生成过程,提高了问答系统在处理知识密集型任务时的性能。然而,它也面临着规则挖掘的挑战、规则局限性和系统复杂性等问题。
例如,规则可能不适用于所有类型的查询,特别是那些需要非常复杂或非常具体知识的问题;构建一个全面且准确的规则库可能需要大量的领域知识和复杂的数据挖掘技术;现实世界中存在许多规则的例外,这些例外可能不会被规则库完全覆盖,导致某些情况下答案生成的失败;并且,如果规则库中的规则质量不高或不准确,可能会影响整个问答系统的性能。对于涉及复杂逻辑关系的问题,即使检索到正确的文档,生成器也可能难以正确地根据规则归因和生成答案。引入规则可能会增加系统的复杂性,需要额外的逻辑来处理规则的应用和推理。
总结
本文主要介绍了2个工作,一个文档智能进展,关于文档解析的综述,一个是RULERAG之引入规则知识进行RAG,后者我理解是大模型与知识图谱结合用于RAG的另一个思路。
都是很好的参考工作,大家可以多看看,多思考。
参考文献
1、https://arxiv.org/abs/2410.21169
2、https://arxiv.org/pdf/2410.22353
关于我们
老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。
加入会员方式:关注公众号,在后台菜单栏中点击会员社区->会员入群加入