研究背景
随着大语言模型(LLMs)在处理金融服务中的应用越来越广泛,其在分析金融文件(如财报、财务报告、新闻等)中的能力显得尤为重要。然而,现有的基于向量检索增强生成(VectorRAG)技术,在处理具有特定领域语言和复杂格式的金融文档时面临许多困难。因此,提出了**结合知识图(KG)和向量RAG技术的混合方法(HybridRAG)**来改进信息提取和问题解答系统。
研究目标
本文旨在通过结合知识图和向量检索增强生成技术,提出一种名为HybridRAG的混合方法,解决从金融文档中提取复杂信息的问题。目标是通过实验证明该方法在提高检索准确性和生成答案的上下文相关性方面优于单独使用的VectorRAG或GraphRAG方法。
相关工作
论文讨论了现有的RAG技术,包括VectorRAG和GraphRAG。VectorRAG利用向量数据库进行上下文检索,适合从文档中检索相关的文本信息。GraphRAG则基于知识图,通过构建实体和关系的图结构,提供结构化的信息检索。现有的技术虽然在一些场景中有效,但在面对金融文档的复杂性时,往往无法处理文档的多样性和层次性。
方法论
数据处理
在HybridRAG方法中,数据处理主要包括文档的预处理和知识图的构建。首先,利用文档加载工具将PDF文档分割成可管理的块,并通过语言模型链提取并精炼文档中的关键信息。接下来,通过实体识别、关系提取等NLP技术从文本中构建知识图。该过程还包括使用上下文语义相似度计算方法,确保每个文本块与查询相关。
解决方案
HybridRAG结合了VectorRAG和GraphRAG的优势。首先,通过VectorRAG从外部文档中检索相关文本信息,然后通过GraphRAG提取基于知识图的结构化上下文信息。最后,将两者的检索结果结合,提供给大语言模型生成更为准确和全面的答案。该方法确保在处理抽象和复杂问题时能够结合丰富的结构化和非结构化信息。
实验
实验设计
实验设计包括使用一组金融公司财报电话会议的文本数据集进行测试。文档包括来自Nifty 50公司的财报文本,实验主要考察不同RAG技术(VectorRAG、GraphRAG和HybridRAG)的检索准确性和生成答案的上下文相关性。实验采用的度量标准包括答案的忠实度、相关性、上下文精度和上下文召回率。
数据详情
数据集包括这些公司财报电话会议的转录文本。每个文档包含公司代表与金融分析师之间的问答,因此自然地形成了一组问题-答案对。具体数据统计如下:
这些文本文件包含财务分析师向公司管理层提出的问题及其对应的答案。作者从这些文本中随机选择了400个问题,并提取了对应的回答作为实验数据。
指标详情
忠实度(Faithfulness)
忠实度衡量生成的答案在多大程度上可以从提供的上下文中推断出来。换句话说,生成的答案是否准确地反映了上下文中的信息,而没有引入错误或虚构的内容。
忠实度的计算包括两个步骤:
- 陈述提取(Statement Extraction): 使用大语言模型(LLM)将生成的答案分解为一组简明的陈述。这一步骤将复杂的答案拆分成更易于验证的单元。
示例prompt:"Given a question and answer, create one or more statements from each sentence in the given answer. question: [question] answer: [answer]"
- 陈述验证(Statement Verification): 对于每一个提取出的陈述,使用LLM判断该陈述是否可以从给定的上下文中推断出来,并提供简要解释。
示例prompt:"Consider the given context and following statements, then determine whether they are supported by the information present in the context. Provide a brief explanation for each statement before arriving at the verdict (Yes/No). Provide a final verdict for each statement in order at the end in the given format. Do not deviate from the specified format. statement: [statement 1] ... statement: [statement n]"
最终,忠实度得分(F)通过支持的陈述数(|V|)除以总陈述数(|S|)计算得到:
F = ∣ V ∣ ∣ S ∣ F = \frac{|V|}{|S|} F=∣S∣∣V∣
意义:忠实度是确保生成答案准确性的重要指标,能够防止模型产生与上下文不符或虚假的信息,从而提高答案的可靠性。
相关性(Answer Relevance)
相关性评估生成的答案在多大程度上回应了原始问题,无论其事实准确性如何。该指标帮助识别答案是否全面覆盖了问题的各个方面,或是否包含了无关的信息。
相关性的计算包括以下步骤:
- 问题生成(Question Generation): 使用LLM基于生成的答案生成多个潜在问题。
示例prompt:"Generate a question for the given answer. answer: [answer]"
- 嵌入向量计算: 使用OpenAI的text-embedding-ada-002模型对所有生成的问题及原始问题进行嵌入向量计算。
- 相似度计算: 计算每个生成的问题嵌入向量与原始问题嵌入向量之间的余弦相似度。
- 得分计算: 将所有生成问题与原始问题的相似度取平均值,得到答案相关性得分(AR)。
A R = 1 n ∑ i = 1 n sim ( q , q i ) AR = \frac{1}{n} \sum_{i=1}^{n} \text{sim}(q, q_i) AR=n1i=1∑nsim(q,qi)
其中, s i m ( q , q i ) {sim}(q, q_i) sim(q,qi)表示原始问题q与生成问题 q i q_i qi的余弦相似度。
意义:相关性指标帮助评估生成的答案是否紧扣问题核心,确保答案内容与用户提问高度匹配,从而提高用户满意度。
上下文精度(Context Precision)
上下文精度评估检索到的上下文片段在多大程度上与给定问题的真实答案相关。它衡量在检索结果的前K个排名中,有多少相关的上下文片段被正确检索出来。
上下文精度的计算公式如下:
Precision@K = ∑ k = 1 K ( Precision@k × v k ) Total Relevant Items \text{Precision@K} = \frac{\sum_{k=1}^{K} (\text{Precision@k} \times v_k)}{\text{Total Relevant Items}} Precision@K=Total Relevant Items∑k=1K(Precision@k×vk)
其中:
- Precision@k \text{Precision@k} Precision@k 表示在第k个位置的精度,即前k个结果中正确的比例。
- v k v_k vk是二进制相关性指示器,表示第k个检索结果是否相关。
- Total Relevant Items \text{Total Relevant Items} Total Relevant Items是在前K个结果中所有相关项的总数。
意义:上下文精度指标用于衡量检索系统在前K个结果中的有效性,确保高精度的上下文片段被优先检索,从而提高生成答案的质量。
上下文召回率(Context Recall)
上下文召回率评估检索到的上下文与真实答案的匹配程度,具体来说,衡量检索到的上下文中包含了真实答案中多少句子。
上下文召回率的计算方法如下:
Recall = Number of Ground Truth Sentences Retrieved Total Number of Ground Truth Sentences \text{Recall} = \frac{\text{Number of Ground Truth Sentences Retrieved}}{\text{Total Number of Ground Truth Sentences}} Recall=Total Number of Ground Truth SentencesNumber of Ground Truth Sentences Retrieved
其中, N u m b e r o f G r o u n d T r u t h S e n t e n c e s R e t r i e v e d Number of Ground Truth Sentences Retrieved NumberofGroundTruthSentencesRetrieved 表示能够从检索到的上下文中追溯到的真实答案句子的数量, T o t a l N u m b e r o f G r o u n d T r u t h S e n t e n c e s Total Number of Ground Truth Sentences TotalNumberofGroundTruthSentences 表示真实答案中的句子总数。
上下文召回率指标确保检索系统能够全面覆盖真实答案所需的所有信息,避免遗漏关键内容,从而提升生成答案的完整性和准确性。
小结
这些评价指标共同作用,全面评估RAG系统在信息检索和答案生成两个阶段的表现:
- 忠实度 确保生成的答案与上下文一致,防止虚假信息。
- 相关性 确保答案紧扣问题核心,提高用户满意度。
- 上下文精度 确保检索结果的高质量,提高生成答案的准确性。
- 上下文召回率 确保检索系统能够覆盖所有必要的信息,提升答案的完整性。
通过这些指标,论文能够客观地比较VectorRAG、GraphRAG和HybridRAG三种RAG方法的优劣。Ps:这些指标很多引用自ragas。
实验结论
实验结果表明,HybridRAG在各项指标上均表现优越,尤其在忠实度和答案相关性方面,HybridRAG的得分为0.96,而VectorRAG和GraphRAG分别为0.94和0.89。在上下文精度方面,GraphRAG表现最好,达到0.96,而HybridRAG的上下文召回率达到了1.0,这表明该方法能够有效结合结构化和非结构化数据,提供高质量的答案。
优势: HybridRAG 结合了 VectorRAG 和 GraphRAG 的长处,能够应对两者单独使用时的不足。例如,当 VectorRAG 在抽取类问题中效果不佳时,HybridRAG 可以依赖 GraphRAG 来补充结构化的上下文;同样,当 GraphRAG 处理抽象问题遇到困难时,HybridRAG 则可以利用 VectorRAG 提供的丰富上下文。
劣势:由于 HybridRAG 结合了多种上下文,有时可能会在生成答案时引入额外的、不必要的上下文信息,这会影响答案的精确度。
另外,混合的上下文会增加生成系统的复杂性,可能导致处理时间延长或计算资源的需求增加。