AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


也看CommunityKG-RAG用于事实核查任务:从建库到检索技术实现思路解读
发布日期:2024-08-25 15:43:44 浏览次数: 1716 来源:老刘说NLP


今天,我们继续来看看关于Graph/KG-RAG,其中有涉及到一个社区的问题,比如微软等方案都有在讲这个,将其于于事实核查任务结合,是个应用的方向,我们来看看一个有趣的工作。

8月份即将结束,供大家一起参考并思考。

一、CommunityKG-RAG用于事实核查任务

先说下这个事实核查是个啥东西

事实核查任务的目标是定位最相关的前n个句子,以便使用大型语言模型将给定的声明分类为被反驳、被支持或信息不足的标签。

例如,对应的prompt可以为:

一般来说,核查的核心在于上下文是否足够,毕竟起牵扯的地方很多。

最近看到的一个工作,很有意思,CommunityKG-RAG:利用社区结构知识图谱中的高级检索增强生成对于事实检查的影响,《CommunityKG-RAG: Leveraging Community Structures in Knowledge Graphs for Advanced Retrieval-Augmented Generation in Fact-Checking》:https://arxiv.org/pdf/2408.08535

从内容上看,该工作一个名为CommunityKG-RAG(Community Knowledge Graph-Retrieval Augmented Generation)的新型框架,旨在通过结合知识图谱(KGs)中的社区结构和检索增强生成(RAG)系统,提高事实核查的准确性和相关性。

其核心目的在于:

  • 结合结构化和非结构化数据,通过知识图谱的优越整合提高事实核查系统的能力。
  • 利用KGs中的社区结构和多跳路径,实现上下文感知的检索和多跳利用。
  • 提供一个零样本的框架,无需额外的训练或微调,确保高度的可扩展性和适应性。

可以看看其中几个有趣的点。

1、几种不同RAG策略的对比

Figure 1提供了一个直观的比较,展示了在事实核查过程中,不进行检索(No Retrieval)、语义检索(Semantic Retrieval)和 CommunityKG-RAG 方法之间的差异。

  1. No Retrieval(不进行检索):

    这种方法没有利用任何外部信息或上下文,直接由大型语言模型(LLM)根据给定的提示生成回答。由于缺乏额外的上下文信息,这种方法可能无法提供足够的信息来准确评估声明的真实性。
  2. Semantic Retrieval(语义检索):与不进行检索相比,语义检索方法尝试通过使用语义相似性来检索与查询相关的信息。它通常基于提示和上下文之间的嵌入向量余弦相似度来检索信息。尽管这种方法考虑了语义相似性,但可能仍然无法提供足够的多跳关系或深入的上下文信息,这在复杂事实核查任务中是必要的。

  3. CommunityKG-RAG(提出的检索增强生成方法):这种方法利用了知识图谱中的多跳信息,通过检索过程中的社区结构来增强信息的准确性和相关性。CommunityKG-RAG 方法通过以下步骤实现这一点:

    CommunityKG-RAG目的在于提供更丰富、更深入的上下文信息,这些信息对于理解声明的真实性至关重要。多跳知识图谱信息的使用意味着模型能够探索和利用声明与知识图谱中实体之间的间接关系,从而提高事实核查的准确性。

  • 构建包含事实核查文章的知识图谱。
  • 使用社区检测算法(如Louvain算法)来识别图中的社区结构。
  • 将社区结构中的节点(实体)和关系映射为嵌入向量。
  • 通过计算声明与社区之间的相关性得分,选择最相关的社区和句子。

二、CommunityKG-RAG框架的工作流程:从建库到查库

Figure2展示了CommunityKG-RAG 框架的工作流程,它详细描述了从构建知识图谱到使用该图谱进行事实核查的各个步骤。

1、首先是建库阶段

  1. Fact-Checking Articles(事实核查文章)

流程的起点是事实核查文章的集合,这些文章提供了用于构建知识图谱的基础数据。

  1. Coreference Resolution(共指消解)

作为预处理步骤,共指消解用于识别并整合文章中提及的同一实体的不同表达,增强了数据的语义一致性。利用基于SpanBERT的深度学习方法,该方法已在大型语料库上预训练,以捕获广泛的句法和语义信息。

  1. Chunk into Sentences(分句)

文章首先被分解成单独的句子,为后续的处理步骤做准备。

  1. Store in Database(存储在数据库)

将社区和相关句子的信息存储在数据库中,以便于检索和使用。

  1. Entity Relationship Extraction(实体关系提取)

从句子中提取实体之间的关系,这些关系将用于构建知识图谱的节点和边。利用关系提取模型 REBEL,来识别语料库内实体间的关系。

  1. Knowledge Graph(知识图谱)

基于提取的实体和关系构建知识图谱,图谱中的节点代表实体,边代表实体间的关系。

  1. Community Detection(社区检测)

使用如Louvain算法等社区检测工具,识别知识图谱中的社区结构,这些社区是图中节点更密集连接的子图。

当然,以上这些信息都需要提前进行存储

2、其次是检索阶段,分成6步

  1. Claim or User Query(声明或用户查询)

用户提交一个需要核查的声明或查询,这将触发检索和核查过程。

  1. Node Embedding(节点特征嵌入)

对于知识图谱中的每个节点,为其分配来自预训练的BERT 模型的词嵌入。

这个嵌入作为节点特征向量,包含了实体的语义信息。

  1. Community Retrieval(社区检索)

每个社区m被视为一个子图Gm=(Em, Rm),包含一组实体节点Em及其关系Rm。每个社区的嵌入表示φ(m)是通过平均Em 内节点的BERT嵌入生成。

这种方法聚合了社区的集体语义属性,封装了一个全面的语义表示。为了将声明转换为嵌入以进行相似性比较,使用了基于 BERT-base 的 Sentence Transformer 模型,Sentence-BERT。Sentence-BERT 特别优化于生成高质量的句子嵌入,非常适合比较声明和社区描述之间的语义相似性。

声明c和社区m之间的相关性得分r(c, m)被计算为它们嵌入的点积。

  1. Top Community Selection(顶级社区选择)

基于社区的模块度或其他相关性度量,选择最相关的社区,这些社区可能包含与核查声明最相关的信息。

为了有效地优先考虑社区进行更深入的分析,根据它们与声明的相关性得分r(c, m) 排名,选择前δ百分比的社区,

这个选择标准确保了分析集中在最有可能包含与声明 c 相关的实质信息的社区上,从而促进了高效和专注的事实核查。

  1. Community-to-Sentence Selection(社区到句子的选择)

在选定的社区内,进一步选择与核查声明最相关的句子,这些句子将作为语言模型生成回答的上下文。

具体地,为了识别最相关的语句,计算每个句子p在顶级社区 Mc中的相关性得分r(Mc, p)。然后根据相关性对句子进行排名,并选择前λ百分比的句子,得到最相关句子的子集 P*c。

  1. Integration(整合)

将检索到的句子作为上下文输入到语言模型中,与声明一起进行评估。

  1. Language Model(语言模型)

使用大模型(如LLaMa2)来生成对声明的评估,模型将利用检索到的上下文信息来提高回答的准确性。

  1. Fact-Checking(事实核查)

最后,大模型基于提供的句子上下文生成对声明的评估结果,输出“True”、“False”或“NEI”(Not Enough Information)。

三、效果对比总结与分析

1、具体的效果

Table 1 展示了不同检索方法在声明核查准确性方面的比较结果,强调了在提高事实核查任务中的准确性方面的潜力,特别是通过精心选择的社区和相关句子来提供丰富的上下文信息,结论就是CommunityKG-RAG效果还不错,这些方法包括:

  1. No Retrieval(不进行检索):这是一个基础的对照组,其中语言模型没有使用任何外部上下文或检索到的信息,直接根据提示生成回答。

  2. Semantic Retrieval(语义检索):这种方法使用基于语义相似性的检索技术来提供上下文信息。具体来说,它使用BERT模型生成的嵌入向量,并通过余弦相似度来检索与提示最相关的信息。

  3. KAPING:这是基于句子相似性的零样本检索增强生成框架,它将输入文本与三元组(subject entity, relationship, object entity)进行比较,并将三元组作为上下文包含在输出提示中。

  4. CommunityKG-RAG25 100:这是本文提出的方法,它选择了最相关的前25%的社区,并使用这些社区映射到的100%的句子作为上下文信息。这里的"25 100"指的是在社区选择和句子选择中应用的百分位阈值。

表中列出了每种方法的准确率,结果如下:

  • No Retrieval:准确率为39.79%。
  • Semantic Retrieval:准确率为43.84%,比不进行检索的方法有所提高,表明使用语义上下文可以增强语言模型的声明核查能力。
  • KAPING:准确率为39.41%,与不进行检索的方法相比略有下降,这表明直接将三元组作为上下文可能不利于语言模型有效利用信息。
  • CommunityKG-RAG25 100:准确率达到了56.24%,显著高于其他方法,这证明了该方法在整合社区派生知识到检索过程中的有效性,以及在提高传统检索方法性能方面的显著优势。

2、一些有趣的消融分析

1)不同的基础语言模型对 CommunityKG-RAG 框架性能的影响

比较了LLaMa2 7B 和 LLaMa3 8B 两种模型在应用 CommunityKG-RAG 框架时的表现。结果显示,两种模型在使用 CommunityKG-RAG 框架后,相比于不使用检索的基线(No Retrieval),都有显著的性能提升。

这表明 CommunityKG-RAG 框架能够适应不同的语言模型架构,并提升其在事实核查任务上的表现。

2) 在固定社区选择阈值(top 25%)的情况下,社区到句子选择的不同阈值(25%, 50%, 75%, 100%)对 CommunityKG-RAG 框架性能的影响

研究发现,当句子选择阈值从25%增加到50%时,性能有所下降,这可能是因为包括更多的句子引入了噪声或不相关信息。然而,当句子选择阈值继续增加到75%和100%时,性能又有所提升,表明在某些情况下,更多的上下文信息有助于提高事实核查的准确性。

3)顶级社区选择和社区到句子选择阈值的组合对模型性能的影响

调整δ(顶级社区选择)和 λ(社区到句子选择)的阈值,分别为 25%, 50%, 75%, 和 100%,以观察在不同上下文考虑程度下对事实核查能力的影响。结果表明,增加社区和句子的选择阈值可能会引入噪声或不相关信息,从而影响模型的有效性。然而,当两个阈值都设置为100%时,模型性能有显著提升,表明全面考虑可用数据可以提高模型的准确性。

总结

本文主要介绍了Graph/KG-RAG,在事实核查任务上,CommunityKG-RAG框架中精确和上下文感知的检索策略的重要性。

通过这些研究,可以发现,还是那样,要精细化的去做一些事儿,虽然过多的信息可能会降低模型性能,但适量的、精心选择的上下文信息对于提高语言模型在复杂事实核查任务中的准确性至关重要。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询