论文名: Graph of records: boosting retrieval augmented generation for long-context summarization with graphs
论文地址: http://arxiv.org/abs/2410.11001
代码地址: https://github.com/ulab-uiuc/GoR
Abs
这篇论文提出了一种名为“记录图(Graph of Records, GoR)”的新方法,用于提升基于检索增强生成(Retrieval-augmented generation, RAG)的长文本全局摘要性能。RAG通过引入非参数的事实知识,提升了大语言模型(LLM)的表现,但现有方法大多忽视了LLM生成的历史响应,导致结果次优。为了解决这一问题,GoR方法利用LLM生成的历史响应,将检索到的文本片段与生成的响应构建成一个图结构,并通过图神经网络(GNN)和基于BERTScore的自监督训练目标,进一步挖掘文本片段和响应之间复杂的相关性。实验表明,GoR在四个长文本摘要数据集上相较于12个基线方法表现最佳,尤其在WCEP数据集上,Rouge-L、Rouge-1和Rouge-2分别提高了15%、8%和19%。
1. Introduction
1.1 Background
现象:大语言模型(LLMs)最近在许多语言任务中取得了显著进展,尤其是在处理长文本内容时表现突出。然而,LLMs 在处理超长上下文的摘要任务时面临巨大的挑战,现有方法大多依赖扩展模型的上下文窗口,导致效率低下。相比之下,检索增强生成(RAG)为这些模型注入了非参数的事实知识,通过检索相关文本片段,并生成更加简洁且有效的响应。
原因:RAG 的优势在于其采用“检索-生成”的范式,可以通过多次与 LLMs 交互来检索相关信息,提供高度相关的短文本片段,从而在保持摘要质量的同时减少生成的计算开销。因此,RAG 成为了一种轻量级且成本更低的长文本摘要工具。
1.2 Challenges of long-context summarization
现象:虽然 RAG 在长文本摘要中表现出色,但现有方法忽视了 LLMs 生成的历史响应,这些响应中往往包含丰富的上下文相关信息。由于未能充分利用这些信息,导致现有方法的表现存在不足,摘要结果未能达到最优。
原因:
- LLMs在与用户的多次交互中生成大量历史响应,这些响应不仅具有潜在的任务相关信息,还能够提供额外的见解。
- 然而,大多数方法将这些历史响应丢弃,没有有效利用它们与原始文本片段之间的复杂关系。这导致了RAG模型在长文本全局摘要中无法充分利用所有可用信息,产生次优的结果。
- 此外,由于长文本通常包含复杂的逻辑和语义关系,揭示这些隐含的关联需要更加复杂的建模方法,而现有方法多依赖于简单的语义相似性度量,这在长文本情况下效果不佳。
1.3 Overview of the proposed method
现象:为了克服上述挑战,本文提出了一种新的方法——记录图(Graph of Records, GoR),其目的是利用 LLMs 生成的历史响应来增强 RAG 在长文本全局摘要任务中的表现。GoR 的核心是通过建立检索到的文本片段与生成的 LLM 响应之间的关联,构建一个图结构。这种图能够更好地揭示文本片段与历史响应之间的复杂语义和逻辑关系。
原因:
- GoR 通过图神经网络(GNN)学习这些关联,并设计了一个基于 BERTScore 的自监督目标,使得在无监督信号的情况下,模型能够自动调整和优化节点嵌入。
- 具体来说,GoR 在 RAG 系统中,首先利用 LLMs 模拟用户查询,基于查询和检索到的文本片段生成历史响应,然后构建一个由文本片段和响应组成的记录图。
- 通过 GNN 对这些节点进行编码,模型可以捕捉节点之间的复杂相关性,并通过自监督的方式进行训练,最终使得模型能够更加准确地反映全局语义。
优点:
- 充分利用历史响应:通过构建图结构,GoR能够有效捕捉LLMs生成的历史响应与文本片段之间的关联,这些历史响应在全局摘要任务中具有重要的上下文价值。
- 自监督训练目标:基于 BERTScore 的自监督目标能够在没有人工标注数据的情况下,通过对历史响应和查询进行自动比较,提供强有力的监督信号,帮助优化模型的表现。
- 性能提升显著:在多个长文本摘要数据集上的实验结果表明,GoR 相较于12个基线方法在 Rouge-L、Rouge-1 和 Rouge-2 等指标上有显著提升,尤其是在 WCEP 数据集上分别提高了15%、8%和19%。
缺点:
- 生成查询的数量有限:由于预算的限制,论文中的用户查询模拟过程仅生成了有限数量的查询,这可能会限制模型的优化空间,进一步的优化可能需要生成更多多样化的查询。
- 查询分布不够真实:模拟的查询可能不能完全代表真实世界中的用户查询,尤其是在实际应用中用户可能会提出一些无意义的或重复的查询。因此,未来工作可能需要引入过滤步骤,以确保查询的质量和相关性。
2. Method
2.1 Preliminaries
2.1.1. Retrieval-augmented Generation(RAG)
RAG主要分为两部分:检索(Retrieval) 和 生成(Generation)。
- 检索(Retrieval)
给定一个包含若干文本片段的长文档 C = {c_i}_{i=1}^{|C|},RAG 首先使用检索器(如 Contriever)基于语义相似度从文档中检索出 K 个与查询 q 相关的文本片段。检索器对查询 q 和文本片段 c 分别进行编码,使用查询编码器 E_q(\cdot) 和上下文编码器 E_c(\cdot),然后通过点积操作计算它们之间的语义相似度:
其中,E_q(q) 和 E_c(c) 分别表示查询和文本片段的向量表示。通过该操作,RAG能够选取与查询最相关的文本片段。
- 生成(Generation)
检索到的文本片段随后与查询 q 一起被输入到LLMs(大语言模型)中,生成最终的响应 r。该过程可以表示为:
这表明,LLMs在生成过程中结合了检索到的文本片段和查询,输出一个响应 r。这一过程展示了如何通过检索与生成的组合,来高效地处理长文档中的摘要任务。
2.1.2. Graph Neural Networks (GNNs)
现象:图神经网络(GNNs)以其强大的表示学习能力而闻名,它通过从邻居节点聚合信息来更新节点的嵌入表示。GNN的主要作用是在图结构数据上学习节点之间的关系。
GNN 的第 l 层更新节点嵌入的过程可以形式化为:
其中,h_v^{(l)} \in \mathbb{R}^{d_l} 表示节点 v 在第 l 层的嵌入向量,d_l 是该层的嵌入维度。\text{MSG}^{(l)}(\cdot) 是消息计算函数,参数为 \theta_m^{l},\text{AGG}^{(l)}(\cdot) 是消息聚合函数,参数为 \theta_a^{l}。
解释:
- h_v^{(l)} 是节点 v 在第 l 层的表示,来自于它在第 l-1 层的表示 h_v^{(l-1)},以及来自邻居节点 u \in N(v) 的消息 h_u^{(l-1)}。
- \text{MSG}^{(l)} 计算从邻居节点传递到节点 v 的消息,而 \text{AGG}^{(l)} 则对这些消息进行聚合,用以更新节点 v 的嵌入表示。
通过这一迭代过程,GNN能够逐层捕捉节点之间的复杂关系,使得每个节点的表示能够充分反映其图结构中的上下文信息。
2.2 Graph Construction
提出了如何通过模拟用户查询,将LLMs生成的历史响应组织成一个记录图(Graph of Records, GoR)。
2.2.1. Query Simulation(查询模拟)
现象:用户查询在 GoR 设计中起到至关重要的作用,因为LLMs生成的历史响应中存在大量重复、无意义或无关的查询,这些对摘要无益。
原因:为了生成更有意义、洞察力强且多样化的问题,作者提出使用 LLMs 来进行查询模拟,而非使用贪婪解码策略。具体做法是将长文档分割成若干文本片段 C = {c_i}_{i=1}^{|C|},通过LLMs生成基于文本片段 c^s 的查询 q^s,直到生成足够数量的非重复查询对 {(q_i^s, c_i^s)}_{i=1}^{|T|},形成一个语料库 T,用于进一步的模型训练。
2.2.2. Organize LLM Historical Responses into A Graph(将LLM历史响应组织成图)
现象:通过对长文档进行RAG处理,作者利用LLM生成的响应(不仅总结了检索到的文本片段,还揭示了它们之间复杂的语义关系),构建了一个图结构。
原因:LLMs生成的历史响应包含了长文档中检索到的文本片段的总结和回答,这些响应潜在地揭示了文本片段之间复杂的联系。为了充分利用这些信息,作者构建了一个记录图,其中节点表示检索到的文本片段和生成的响应,边则表示它们之间的语义关联。通过这种方式,GoR可以帮助捕捉长文本中的全局性语义。
作者借鉴了RAG中的“检索-生成”过程,描述了如何将检索到的文本片段与LLMs生成的响应构建成一个图。具体来说,给定第 i 轮的RAG过程,查询 q_i^s 和前 i-1 轮生成的响应 {r_1, \cdots, r_{i-1}},模型将建立检索到的文本片段 c_j \in {c_1, \cdots, c_K} 与生成的LLM响应 r_i 之间的 K 条边。这一过程可以形式化为:
通过这种方式,LLM生成的响应充当了连接这些原本散乱的文本片段的桥梁,使得它们之间的复杂关系得以被模型充分捕捉和利用。
2.3 BERTScore-based objective for self-supervised training
现象:我们已经构建了一个利用LLM生成的历史响应的图。接下来,作者的重点在于设计合理且有效的目标函数来进行模型优化。由于某些随机游走算法(如Grover & Leskovec (2016))不可微分,作者选择使用图神经网络(GNNs)来学习节点嵌入,并可以通过反向传播进行优化。
原因:最终的优化目标是使得学习到的节点嵌入能够自适应地反映与查询嵌入 E_q(q) 的相似性,并且能够考虑节点间的复杂关联。在全局摘要任务中,基本没有可以用作标签的文本片段索引来指示哪些节点与查询最相关,因此需要一种有效的方法来解决这个监督信号的反向传播问题。
2.3.1. Contrastive Loss Driven by BERTScore
现象:为了解决监督信号的传递问题,作者引入了BERTScore,该方法衡量生成文本与参考文本之间的语义相似性。具体来说,作者使用BERTScore来为每个查询 q_i^s 对文本片段 c_i^s 生成排名列表 M_i。
公式推导:
首先,对于每个查询 q_i^s,模型基于GNN的第 L 层计算出节点嵌入 h^{(L)},并根据与查询 q_i^s 的相似度进行排名,形成节点嵌入的排名列表 M_i:
其中,h_+^{(L)} 代表与查询相似度最高的节点嵌入。然后,通过对比学习(Contrastive Learning)方法,作者定义了对比损失函数 L_{CL}:
其中,\tau 是温度系数,用于控制对比学习的难度。该损失函数通过最大化正样本与查询的相似度,最小化负样本与查询的相似度来优化模型。
2.3.2. Auxiliary Pair-wise Ranking Loss
现象:在上述的对比损失中,作者虽然对正负样本进行了约束,但未充分利用负样本的排名信息。因此,作者引入了辅助的排序损失 L_{RANK},进一步优化负样本的排序。
公式推导:
辅助的排序损失通过对每对正负样本的排名进行约束,定义如下:
其中,\mathbb{I}(\cdot) 是指示函数,表示如果负样本 h_j^{(L)} 的排名低于正样本 h_+^{(L)},则会对其施加额外的约束。通过该损失,模型能够对负样本进行更严格的排序优化。
2.3.3. Overall Training Objective
作者最终将对比损失和排序损失组合,形成了完整的训练目标函数:
其中,\alpha 是一个超参数,用于控制两个损失之间的平衡。
3. Experiment
3.1 Experimental setup
3.1.1. 数据集
作者在四个长上下文摘要数据集上评估了所提出的方法:
- AcademicEval:从arXiv收集的科学论文,用于根据长文档主体生成摘要。
- QMSum:一个基于查询的摘要数据集,本文只使用了“通用查询”来评估全局摘要。
- WCEP:一个关于新闻事件的多文档摘要数据集。
- BookSum:专注于长篇叙事摘要的数据集。
使用的评估指标包括Rouge-1(R-1)、Rouge-2(R-2)和Rouge-L(R-L),用于衡量参考摘要与生成摘要之间的文本对齐程度。
3.1.2. 实现细节
在实现过程中,作者遵循RAG的标准步骤:
- 文本分块(TokenTextSplitter):使用LangChain的TokenTextSplitter将长文档分成大小为256的文本片段,重叠32个字节。
- 查询生成:每个长文档生成30个查询,使用Mixtral8x7B-Instruct-v0.1模型,查询模拟阶段的温度系数设置为0.5。
- 检索器:使用Contriever进行查询和文档的嵌入,并默认检索6个文本片段,输入LLaMA-2-7b-chat模型生成摘要。
- 训练阶段:图神经网络(GNN)初始化为两层图注意力网络(GAT),隐藏维度为768,使用Adam优化器训练,学习率从1e-3逐步衰减到0,批量大小为32,最大训练轮次为150。实验使用单张RTX 3080 GPU进行。
基线模型
为了进行全面评估,作者将GoR与多个基线模型进行比较:
- Random Walk based Node Embedding, 随机游走嵌入:如Node2Vec。
- Sparse Retriever, 稀疏检索器:如BM25和TF-IDF。
- Dense Retriever, 稠密检索器:如Contriever、DPR、Dragon和Sentence-BERT(SBERT)。
- Hybrid Retriever, 混合检索器:BM25+DPR通过互相关融合。
- Long-context LLMs, 长上下文LLMs:如Gemma-8K和Mistral-8K。
- Full Context, 全上下文输入:将所有输入提供给LLMs生成摘要。
- Thought Retriever(Thought-R):用于长文本摘要的最新模型。
3.2 Main experimental results
- 整体表现:GoR模型在QMSum、AcademicEval、WCEP和BookSum四个长文本摘要数据集上进行了全面实验,结果表明GoR在每个方面都优于稀疏检索器、稠密检索器和混合检索器。由于GoR模型通过构建图将长文档的文本片段和LLM生成的历史响应整合在一起,节点嵌入能够更好地反映与查询的复杂关联,因此显著提高了检索性能,并且历史响应中的信息内容也增强了摘要任务的效果。
-
与长上下文LLMs的对比:GoR模型相较于长上下文LLMs(如Gemma-8K和Mistral-8K)表现更优。长上下文LLMs可能因为处理较长输入时遇到次要信息而表现不佳,而GoR通过学习的节点嵌入有效区分出长文本中的关键内容和主题相关信息,即使使用较短的输入也能取得更好效果。
-
其他发现:
- Node2Vec的结果不理想,原因是其基于不可微分的算法,节点嵌入无法有效优化。
- Thought Retriever虽然表现出一定竞争力,但由于未能探索检索到的文本片段和LLM生成的响应之间的关联,效果仍不及GoR。
- "Full Context"由于超过了LLMs的上下文窗口长度,截断了部分重要的长文本信息,导致其在全局摘要任务中的表现不如GoR。
3.3 Ablation study
- 节点嵌入的有效性:消融实验结果表明,直接使用检索器生成的文本嵌入而不进行训练(即“w/o train”)会导致性能下降,强调了通过训练获得的节点嵌入在提升性能中的关键作用。
- 对比损失和排序损失的贡献:对比损失 LCLL_{CL}LCL 和排序损失 LRANKL_{RANK}LRANK 都显著提升了模型的性能。排序损失对节点嵌入施加了更严格的排序约束,有效利用了自监督参考摘要中的间接监督信号,从而增强了模型的表现。
- 批内负样本的重要性:批内负样本对对比学习至关重要。去除批内负样本(即“w/o in-b neg”)会导致性能大幅下降,尤其是在WCEP和BookSum数据集上,表明批内负样本在优化过程中起到了关键作用。
- 自监督训练优于监督训练:与使用全局参考摘要作为标签的监督训练相比(即“w/ sup”),自监督训练的表现显著更好。这进一步验证了自监督信号在本任务中的有效性。
结论:总体来看,GoR的合理模块设计使其在多个实验条件下表现优异,每个组件(如节点嵌入、对比损失、批内负样本等)都对模型性能有重要贡献。
4. Conclusion
4.1 Summary and contributions
本文提出了一种名为“记录图(GoR)”的方法,旨在通过利用LLM生成的历史响应来提升检索增强生成(RAG)在长上下文全局摘要任务中的表现。GoR通过将从长文档中检索到的文本片段与LLM生成的历史响应建立连接,构建了一个记录图。为了揭示这些连接之间的复杂关联,使用了图神经网络,并设计了基于BERTScore的自监督训练目标,使得自监督参考摘要与节点嵌入之间能够进行无缝的反向传播。
4.2 Limitations and future work
- 查询数量有限:由于预算限制,作者只能生成和模拟较少数量的用户查询,这可能会限制模型的进一步优化。
- 查询模拟的现实性不足:模拟的查询可能无法准确反映真实世界的查询分布,因为它们未考虑到用户可能提出的无意义问题。未来工作中可能需要引入过滤过程来改善这一问题。
评论区