关键词:rag,知识图谱
简介
知识图谱(Knowledge Graphs, KGs)是提高LLM中事实正确性的一种很有效的方法,尤其是在生命科学这些图谱发展比较成熟的领域。通过将药物、疾病和基因等实体以及它们之间的关系组织成一个结构化的网络,知识库为LLM提供了有用的额外背景,以便进行精确和相关的信息检索。本文构建了一个混合问答系统-FactFinder,通过结合KG和LLM来对专业领域的问题进行精准回答。
本文的3个贡献:
1、结合KG和LLM构建FactFinder问答系统
2、发布了一个手工标注的text-to-cypher query dataset,可以作为验证text-to-cypher任务的基线
3、提出了一种text-to-cypher方法,证明了大模型在生命科学领域能够生成高质量cypher
4、分享文中的数据集,源码和prompt模版
数据介绍
Knowledge graph.
PrimeKG integrates 20 high-quality resources to describe 17,080 diseases with 4,050,249 relationships, including over 100,000 nodes and 29 types of edges that densely connect disease nodes with drugs, genes, exposures, and phenotypes.
Text-to-Cypher dataset.
根据PrimeKG人工标注的69个text-to-cypher问题,用来验证大模型text-to-cypher效果,问题设计比较复杂,涉及多跳、聚合等类型的问题
Examples from the dataset include simpler questions like Which drugs have pterygium as a side effect? and more complex ones such as Which medications have more off-label uses than approved indications? and Which diseases have only treatments that have no side effects at all?
系统介绍
整个pipeline如下图所示
Cypher Query Generation
用question和graph schema(包括节点和关系类型及其属性)提示llm生成Cypher查询。对于一些无法转化为cypher的查询,要求LLM返回“SCHEMA_ERROR”,这样就能通过正则捕捉到这类问题。
应用了一个实体提取模型,用于将question中的实体名称与KG中的实体名称对齐,并开发了一套实体类型词汇表。这一步将question中的术语替换为KG中的术语,保证替换的一致性(例如,酒精到乙醇),并生成将每个实体与其类别联系起来的句子(见图1左),从而减少了LLM对特定领域知识的依赖。
Query Pre-Processors
- Formatting:格式化查询以提高可读性和一致性。这包括添加缩进、换行和确保一致的命名约定,从而简化了正则表达式在后续步骤中的应用。
- Lowercasing Property Values.将Cypher查询中的属性值转换为小写,以匹配预先降低的图形属性。
- Synonym Selection.将Cypher查询中的实体映射到图中使用的术语。如果没有可用的映射,我们使用外部工具(例如,针对Wikidata的skos:altLabel查询)来查找同义词并将其与图术语匹配。
- Deprecated Code Handling.纠正了LLM生成的不推荐的代码,例如用当前的COUNT()关键字替换过时的SIZE()关键字。
- Child to Parent Node Mapping.一些节点类型通过父子关系连接。我们用Cypher查询中的父节点替换子节点,以确保完整性。
Graph Question Answering and Verbalization
在图上执行预处理的Cypher查询,返回一组唯一的节点,其中可能包括名称、属性、id和其他元素。接下来,将问题和图形结果合并到prompt模板中并发送给LLM。prompt指示LLM仅依靠图的信息来生成答案,然后输出自然语言作为最终答案。使用Neo4j图形数据库执行cypher语句,并用Langchain组件来构建pipline。
Explainability through Evidence
这里的Evidence其实就是指中间结果的白盒化展示,使得整个链路是透明可见的,保证可解释性。包括生成的Cypher Query、检索到的图结果、子图可视化结果(如下所示)、返回除了节点以外的边的信息
For example, if our original Cypher query is:
MATCH (g:gene_or_protein name:"pink1")[:associated_with]->(d:disease) RETURN d.id AS ID, d.name AS Name
our subgraph Cypher query is:
MATCH (g:gene_or_protein name:"pink1")[a:associated_with]->(d:disease) RETURN g, d, a
User Interface and Example of Usage
系统既可以选择仅用模型回答或KG问答
评估
Graph Retrieval Evaluation
结果表明,KG+gpt4效果较好,最佳模型达到75%以上。GPT-4o效果大于GPT-4-Turbo。 实体增强(Entity Enhancement)提高了GPT-4-Turbo的性能,但略微降低了gpt - 4o的有效性。对此,分析结论是 gpt - 4o的内部知识使其能够在没有EE的情况下更准确地推断关系,而GPT-4-Turbo则受益于EE提供的信息。说明LLM自身的知识有助于Cypher生成
Evaluating Correctness and Completeness
1、比较KG-LLM-based system和LLM-only system
将hybrid KG-based system与LLM-only system进行了比较。经评估,混合系统hybrid KG-based system在94.12%(96.08%)的情况下产生了更正确(完整)的答案,证明了其在提供准确和完整的回答方面的优越性能。
2、LLM言语话表达
从图结果中评估自然语言答案的语言化程度。在本次评估中,89.13%的答案被认为是正确的,80.43%的答案被认为是完整的,表明在言语化方面的准确性很高。
Handling Incorrect Graph Responses
对应该拒答的场景也做了验证,即当cypher检索错误时,结合question,LLM应该拒答,实验结果如下:
在超过90%的情况下,LLM能正确地回答“我不知道”,这表明当传递给他们的知识不相关时,LLM可以推理和理解。这突出了FactFinder通过利用KG和模型自身知识来提高可靠性的能力。
结论
这项工作证明了将结构化的KG集成到用户友好的聊天系统中的价值,为研究人员提供了一个可靠的工具,可以在最大限度地减少幻觉的同时回答科学问题。我们展示了llm可以生成有效的Cypher查询来从KG检索相关数据,并告知准确的答案。建立这样一个强大的系统对于提高研究能力至关重要。未来的工作将侧重于扩展评估数据集,量化系统不确定性,并可能通过基于agent的检索实现对多个kg的访问。