【知识图谱与大模型 】利用大型语言模型自动构建知识图谱

导读

大模型刚火起来的时候, 很多人认为知识图谱没前途了,会被大模型代替,因为知识已经被学到大模型肚子里了。跑了半天后,发现不是那么回事,发现大模型和知识图谱就是两个层面的东西, 从我的角度:

前排提示,文末有大模型AGI-优快云独家资料包哦!

  • 知识图谱更偏加工出来的产品, 这个产品既可以用到其他场景, 也可以反过来提升大模型的准确性

  • 大模型即可以作为工具加工生产知识图谱, 也可以使用知识图谱提升自己的准确性。

阅读本系列将了解如何使用大模型自动构建知识图谱

如何使用大模型构构建知识图谱也可参见:

介绍

知识图谱(Knowledge Graph)是以Graph 形式表示数据的网络。

知识图谱的美妙之处在于它们将概念、事件和实体表示为节点,它们之间的关系表示为边。这些关系决定了节点的上下文,因此可以更好地理解单词的语义,并区分其多种可能的含义。

例如,谷歌的知识图谱支持谷歌搜索,可以区分品牌“苹果”和水果“苹果”。

知识图谱适用于各种领域和应用,包括零售产品推荐、搜索引擎优化、反洗钱倡议和医疗保健,金融场景

然而,知识图谱的使用,也存在非常多的挑战、昂贵和耗时的构建过程,而且很多时候还伴随这大量的人工参与。

经常在数据前,需要人工根据业务,去定义各种本体,属性;边和节点产生后,需要人工进行校验数据的准确性,而且这个过程是需要一直迭代进行。成本非常高。

这一挑战催生了一波新的研究:探索如何自动知识图谱构建。

特别是人们对将大型语言模型(LLMs)如GPT-4整合到构建过程中的兴趣日益增长,因为它们具有出色的语言处理能力。

在本文中,我们将首先简要探讨与知识图谱构建相关的困难。然后,我们将比较知识图谱和LLMs作为知识库。

最后,我们将回顾利用LLMs进行自动知识图谱构建的现有方法。

构建知识图谱的困难点

以往的知识图谱构建方法基于众包或文本挖掘。

像WordNet和ConceptNet这样的知识图谱是通过大量人力构建的,但受限于预定义的关系集。

与此同时,基于文本挖掘的方法从文档中提取知识,但仅限于文本中明确陈述的关系。

这种方法还涉及诸多步骤,如共指消解,命名实体识别等。

这些困难还受到了不同领域或应用构建不同知识图谱的事实的影响。

例如考虑到每个领域中使用的各种概念和术语,所以没有通用的方法来创建知识图谱。

特定领域也提出了自己的挑战。例如,在服务计算社区中,知识图谱在资源管理、个性化推荐和客户理解方面非常有用。

然而,在这种情境下的知识图谱需要来自不同领域的知识和概念,并且构建知识图谱所需的数据既分散又大部分未注释。

这些因素显著增加了制作知识图谱所需的时间、精力和成本。

知识图谱与大型语言模型的比较

知识图谱和LLM都可以被查询以检索知识。

在下图中,知识图谱通过查找相关联的节点来定位答案,而LLM被提示填写[MASK]标记以完成句子。

像GPT-4和BERT这样的LLM最近因其出色的语言理解能力而受到了很多关注。

众所周知,LLM模型数量, 以及使用量, 应用数量每年都在不断增长,并且在大量数据的训练下,使它们拥有了巨大的知识。

许多人可能会转向ChatGPT来提问,而不是在谷歌上搜索。

自然而然地,研究界的下一个问题是探索LLM(如GPT)是否可以取代知识图谱(如谷歌知识图谱)成为主要的知识来源。

进一步的研究表明,尽管拥有更多的基础世界知识,LLM仍然难以回忆关系事实和推断行为和事件之间的关系。

虽然LLM具有许多优势,但LLM也面临挑战,例如:

  1. 幻觉:LLM偶尔会产生令人信服但不正确的信息。相反,知识图谱提供了基于事实数据的结构化和明确的知识。

  2. 有限的推理能力:LLM难以理解和使用支持证据来得出结论,特别是在数值计算或符号推理方面。知识图谱中捕获的关系允许更好的推理能力。

  3. 缺乏领域知识:虽然LLM在大量的通用数据上进行了训练,但它们缺乏来自特定领域数据的知识,如具有特定技术术语的医学或科学报告。与此同时,知识图谱可以针对特定领域进行构建。

  4. 知识过时:LLM的训练成本高昂,并且不经常更新,导致它们的知识随着时间的推移而过时。另一方面,知识图谱具有更简单的更新过程,无需重新训练。

  5. 偏见、隐私和毒性:LLM可能会给出有偏见或冒犯性的回应,而知识图谱通常是由可靠的数据源构建而成,不受这些偏见的影响。

知识图谱不会遇到这些问题,并且表现出更好的一致性、推理能力和可解释性,尽管它们也有自己的一系列局限性。除了之前讨论过的问题外,知识图谱还缺乏LLM从无监督训练过程中获得的灵活性。

合并Knowledge和LLM

因此,已经有许多研究工作旨在合并LLM和知识图谱。

虽然知识图谱具有指导LLM更准确的能力,但LLM可以在构建过程中辅助知识图谱提取知识并提高知识图谱的质量。

有几种方法可以合并这两个概念:

  • 利用LLM辅助自动知识图谱构建:LLM可以从数据中提取知识以填充知识图谱。下面将讨论这种方法的更多细节。

  • 教会LLM从知识图谱中搜索知识:如下图所示,知识图谱可以增强LLM的推理过程,使LLM能

### 关于大模型知识图谱问答系统的构建方法 在构建基于大模型知识图谱问答系统时,主要目标是利用预训练的语言模型来增强对特定领域内专业知识的理解应用。通过提示工程的方法向大语言模型注入来自外部知识库的专业术语和概念,可以显著提升模型的回答质量[^1]。 对于具体的实施过程而言: - **数据准备**:收集并整理所需领域的高质量结构化或半结构化的文本资料作为知识源; - **知识抽取**:采用自然语言处理技术和机器学习算法自动识别实体及其之间的关联,形成三元组形式的事实陈述; - **图谱构建**:依据上述提取的结果建立节点(代表对象)以及边(表达关系),进而构成完整的知识网络; - **模型集成**:将预先训练好的大型语言理解框架接入到已有的KG平台之上,并设计合理的接口协议以便二者之间能够顺畅交互; ```python import torch from transformers import BertTokenizer, BertForQuestionAnswering tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = BertForQuestionAnswering.from_pretrained('bert-base-chinese') def get_answer(question, context): inputs = tokenizer.encode_plus(question, context, return_tensors='pt', max_length=512, truncation=True) start_scores, end_scores = model(**inputs) all_tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"].tolist()[0]) answer = ' '.join(all_tokens[torch.argmax(start_scores) : torch.argmax(end_scores)+1]) return answer.replace(" ##", "") ``` 这段Python代码展示了如何使用BERT这样的预训练模型来进行简单的QA任务。实际项目中还需要考虑更多细节优化性能。 ### 工作原理概述 当用户提交一个问题给此类系统时,内部机制会经历如下几个阶段的操作流程: - 对输入语句执行分词操作得到词语序列; - 利用编码器映射这些词汇至高维空间内的向量表示; - 结合上下文信息计算注意力权重分布矩阵; - 寻找最有可能包含正确答案片段的位置区间; - 输出最终预测结果供前端展示给提问者查看; 值得注意的是,在这个过程中融入了事先存储于KG里的背景材料,从而让整个推断链条更加贴近真实世界逻辑,提高了响应准确性的同时也拓宽了解决问题的能力范围。 ### 实际应用场景举例说明 目前市场上已经存在不少成功的商业产品和服务实例证明了这项技术的价值所在。比如某知名搜索引擎公司推出的智能助理服务就采用了类似的架构设计方案——借助海量互联网公开资源建立起庞大的通用型KG,并在此基础上叠加多轮对话管理和个性化推荐等功能模块,实现了高效精准的信息检索体验。另外还有医疗健康咨询类APP也是很好的例子之一,它们往往围绕着疾病诊疗指南、药品说明书等内容搭建起垂直细分行业的专属KG,帮助医生护士快速获取权威可靠的参考资料辅助临床决策制定[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值