近年来,大语言模型(LLM)技术的飞速发展深刻地改变了我们处理信息的方式。与此同时,知识图谱(KG)作为一种存储复杂且互联信息的强大工具,自数字革命以来就扮演着重要的角色。随着数据量和复杂性的激增,知识图谱在组织和表示互联互通的思想网络方面的价值日益凸显。但数据增长和丰富的同时,提取、连接和验证输入到知识图谱中的信息也面临巨大的挑战。幸运的是,大语言模型擅长辅助完成这些任务,通过正确的自动化/半自动化流程,替代大量的人工劳动。本文将深入探讨在大语言模型时代如何构建知识图谱,并剖析其中的关键步骤、面临的挑战以及应对策略。
1. 大规模非结构化信息提取:大语言模型的崛起
从非结构化信息中提取数据是一项艰巨的任务,它需要对文本进行语义理解,并从中提取关系。在大语言模型出现之前,从自由文本中提取结构化数据以构建知识图谱依赖于传统NLP技术和手工规则的拼凑。该过程通常涉及命名实体识别(NER)和关系提取——每一项都由基于规则或ML/DL模型提供支持。在生物医学领域,用于NER的著名工具包括:BioBERT和Bio_ClinicalBERT,以及关系提取工具,如OpenNRE和DeepKE。虽然这些工具提供了可控、易于复制和易于微调的功能,但它们都需要针对不同文本来源进行定制、特定微调以及不同的效率。
然而,大语言模型提供了一种快速、灵活、最先进的解决方案,即使是非特定领域的工具也能实现非常好的结果。大语言模型“理解”文本并在更高层次上理解所需关系的想法,使其能够实现更接近人类的性能。作为这种转变的证据,如今,拥有4K Github star 的OpenNRE和DeepKE库几乎不再活跃。
然而,大语言模型也带来了两个主要问题:
- 微调的挑战: 大语言模型通常没有针对特定的数据提取进行微调,但是,由于它们是在庞大的语料库上训练的,因此在许多主题上表现良好。改进此性能的一个好方法是提供提取示例,从而使其成为一个few-shot问题,从而显着提高性能。
- 多任务处理的局限性: 大语言模型很难使用相同的调用来执行多个任务。为了提高性能,任何调用之间的分工都会产生明显的改进。这可能会花费更多,但是巧妙地组织提示以利用缓存最多可以节省75%的成本。
例如,DoorDash在其公司博客中解释了他们如何使用大语言模型来构建公司的知识图谱,这是一个成功的行业应用案例。
2. 本体对齐与模式匹配:构建统一的知识图谱
许多知识图谱将来自多个结构化数据源的信息集成到一个统一的、互连的图中。当实体使用未对齐的本体进行编码,或者当它们从非结构化文本中提取时,就会出现一个重大的挑战:在这两种情况下,都必须将这些实体准确地映射到知识图谱中的标准化本体,以确保一致性和互操作性。在生物医学领域,这项任务尤其复杂。例如,人类疾病可以使用各种系统进行分类,例如ICD-9/10、SNOMED CT、MeSH、DOID和UMLS。虽然其中一些本体具有部分交叉链接,但许多本体缺乏直接映射。为了维护一个连贯且连接的知识图谱,我们需要强大的方法来自动对齐这些不同本体系统中的实体。
核心难点之一是每个本体包含数千个实体,这使得简单的字符串匹配无效。相反,需要语义搜索方法。虽然旧的文本嵌入方法有其优点,但大语言模型——由于其更大的规模和它们所训练的大量生物医学数据——提供了显着提高的准确性。这些较新的嵌入捕获了微妙的医学细微差别,并支持更精确的语义对齐。此外,虽然向量相似度(例如,余弦相似度)是识别候选匹配项的有用第一步,但它并不总是能保证最佳的语义匹配。 大语言模型提供了有价值的第二步:改进最终候选选择以选择上下文最合适的匹配项,从而显着提高性能。类似的系统可用于发现实体合并的候选对象——当可以将相同类型的两个或多个实体合并为一个节点时。
3. 数据验证与清洗:确保知识图谱的可靠性
这是构建知识图谱最棘手的部分之一。您努力工作,从结构化和非结构化资源中获取数据,努力进行实体对齐,最后您有了一个可用的图。但是图中的信息是否良好?好吧,首先最好从好的来源开始,否则就会出现垃圾进垃圾出的情况。但是,即使有了出色的来源,尤其是通过非结构化数据提取,也很容易在图中注入严重的错误。但是,由于进入图的信息量很大,因此人们不可能验证整个图。
大语言模型是帮助我们完成此任务的绝佳工具,可以使用以下两种方法之一:
- 发现胡说八道: 这是一个很棒的工具,可以捕获从图中跳出来的重大错误。我们发现,一个批评系统,其中图中的所有三元组都由几个大语言模型评估,寻找“明显的客观错误”,在捕获此类错误方面具有很高的特异性,几乎没有任何误报,并且是对我们的验证评分系统的绝佳补充。
- 优先考虑人工评估: 像关键本体协调和精细合并这样的敏感任务不是您想完全留给大语言模型来解决的事情。但是,人工评估能力有限,我们需要明智地使用它。大语言模型提供了一种很好的方法,可以通过将结果标记为“可疑”与“可能为真”来优先考虑评估。
4. 缺失信息填充:完善知识图谱
我们是否可以完成知识图谱中缺失的数据?这个问题可以分解为两个不同的用例。第一个涉及引入全新的信息类型——例如,当图中先前未包含基因时,向疾病实体添加遗传易感性。在这种情况下,仅为一个节点(例如,乳腺癌)添加信息是不够的;为了使数据有用,我们需要检索和集成整个图中的相似信息。这种大规模的丰富通常超出了大语言模型本身的范围,并且最好通过尽可能利用结构化、精心策划和标准化的数据源来支持。
第二个用例是大语言模型真正擅长的:当大多数相关信息已经存在于图中,但某些区域或节点代表性不足时。在这里,图的结构有助于指导有针对性的丰富。任务变成提出一个有针对性的问题——例如,“此节点缺少哪些特定类型的连接?”——并执行结构化数据提取以填补这些空白。
随着OpenAI API中搜索功能的引入,现在可以在单个系统中运行整个过程,从而无需复杂的多步骤管道(例如,搜索→抓取→提取)。其他工具(例如Brave浏览器API(搜索和摘要)、Perplexity.ai和Tavily)提供了类似简化的工作流程。
总结一下推荐的步骤:
- 从结构化数据的坚实基础开始:定义您的三元组格式和节点本体。
- 建立一个系统的流程,用于识别和丰富数据缺失或稀疏的区域。
- 纳入人工参与或自动验证步骤,以确保持续的数据质量。
结论:大语言模型赋能下的知识图谱未来
在大语言模型时代,构建高质量、特定领域的知识图谱变得更加容易——即使对于小型团队也是如此。曾经需要大量人工努力的任务,例如信息提取、本体对齐、数据验证和丰富,现在可以在大语言模型的帮助下加速、标准化和扩展。这些模型带来了一种语义理解水平,可以在复杂的数据挑战中实现接近人类的性能。
然而,像任何机器学习系统一样,大语言模型可能会引入错误,尤其是在细微或特定领域的上下文中。这就是为什么设计包含质量保证步骤和策略性地放置“人工参与”干预的强大工作流程至关重要。通过将大语言模型驱动的自动化与周到的监督相结合,我们可以构建可靠、可扩展和有用的知识图谱。