当前位置: 首页 > article >正文

一文速学-知识图谱从零开始构建实战:知识图谱的基本概念

前言

目前设计到很多企业专业领域的知识库构建基本都没有很好的思路对现有的领域知识作一个很好的思路拆分理解,想要落地私域多模态大模型的应用我想还是绕不过想现有的知识库转换为知识图谱,知识图谱不论是对业务还说还是对各个员工来说都是对业务清晰认识了解的有力工具。

但是构建知识图谱这个构成是绕不开现有业务的深入理解,构建的过程比较像构建一个数据仓库,也是对业务的实际拆解重构过程,但是现在通过和LangChain的集成大大提高了知识图谱的应用空间,能够适用于数据并非全面充裕的小型业务场景。

在这里插入图片描述
本人构建过时空交通以及招投标领域的知识图谱,均起到了十分不错的业务效果,此专栏将全面详细讲述从零开始构建知识图谱搭建到应用以及集成企业知识库,落地不同业务场景的实际运用和探索,对此项目专栏感兴趣的不妨支持一下!

一、知识图谱的基础概念

知识图谱的基础设计理念就是万物互联,可以想象结合业务去不断分裂不同业务的思维导图,用图来描述每一条业务线关系到的人或物。以电影数据库为例:

电影名导演演员类型年份
盗梦空间克里斯托弗·诺兰莱昂纳多·迪卡普里奥科幻、动作2010
泰坦尼克号詹姆斯·卡梅隆凯特·温丝莱特爱情、剧情1997
敢死队西尔维斯特·史泰龙杰森·斯坦森动作2010

根据数据集,我们可以识别出他们直接的特征名称:

实体

  • 电影(如《盗梦空间》)
  • 导演(如“克里斯托弗·诺兰”)
  • 演员(如“莱昂纳多·迪卡普里奥”)

关系

  • 导演-执导-电影
  • 演员-出演-电影
  • 电影-属于-类型

属性

  • 年份:《盗梦空间》->2010。
  • 类型:“科幻”、“爱情”。

我们将上述的特征可以映射为知识图谱的实体,也称之为一个节点,知识图谱的最小构成单位。

1.1实体(Nodes)

实体是知识图谱的基本单元,通常代表具体的对象或概念。在我们的电影知识图谱中,实体可以分为以下几类:

  • 电影:每部电影都是一个实体。例如,《盗梦空间》、《泰坦尼克号》和《敢死队》都作为电影实体存在。
  • 导演:电影的导演也是一个重要的实体,如“克里斯托弗·诺兰”和“詹姆斯·卡梅隆”。
  • 演员:参与电影表演的演员是另一个重要的实体,比如“莱昂纳多·迪卡普里奥”和“凯特·温丝莱特”。

其中关系我们可以映射为描述每一个节点关联的边。

1.2关系(Edges)

关系描述了实体之间的联系。我们在电影知识图谱中可以定义以下几种主要关系:

  • 导演-执导-电影:这表示某位导演执导了一部电影。例如,克里斯托弗·诺兰执导了《盗梦空间》。
  • 演员-出演-电影:这表示某位演员在一部电影中出演了角色。例如,莱昂纳多·迪卡普里奥在《盗梦空间》中出演。
  • 电影-属于-类型:这表示某部电影属于某种类型,比如《泰坦尼克号》属于爱情和剧情类型。

1.3属性(Attributes)

属性是对实体特征的描述,帮助进一步丰富知识。例如,在我们的电影知识图谱中,电影的属性包括:

  • 年份:电影的上映年份,如《盗梦空间》的年份是2010。
  • 类型:电影的类型,如“科幻”、“爱情”等。

知识图谱的关键组成部分包括实体、关系和属性。Google就是通过一个巨大的知识图谱,提高了用户的搜索体验。

以电影《盗梦空间》为例:

  • 实体
    • 电影:盗梦空间
    • 导演:克里斯托弗·诺兰
    • 演员:莱昂纳多·迪卡普里奥
  • 关系
    • 克里斯托弗·诺兰执导《盗梦空间》
    • 莱昂纳多·迪卡普里奥出演《盗梦空间》
  • 属性
    • 年份:2010
    • 类型:科幻、动作

以上就是构建知识图谱的大致过程。

二、知识图谱技术发展现状

知识图谱的概念源于20世纪90年代的本体论和语义网研究。这个时期的主要成就包括:

  • 本体论:本体论提供了一种形式化的知识表示方法,定义了概念及其相互关系,帮助计算机理解人类语言中的意义。著名的本体论如WordNet,通过词汇的关系构建语义网络,奠定了知识图谱的基础。
  • 语义网的提出:1999年,蒂姆·伯纳斯-李提出了“语义网”的概念,旨在通过结构化的数据使机器能够理解网页上的信息,为后来的知识图谱发展奠定了理论基础。

2012年是知识图谱发展的重要转折点:

谷歌知识图谱:谷歌在其搜索引擎中推出了知识图谱,这一举措标志着知识图谱进入主流视野。知识图谱使搜索结果不仅限于关键词匹配,而是通过理解用户查询的意图,提供更为精准和相关的信息。这里展示了一张谷歌用来描述其知识图谱的插图。这是一张有向图,上面有命名实体(达芬奇、蒙娜丽莎和卢浮宫)以及显示实体之间关系的命名关系。
在这里插入图片描述
图谱的构建与应用:谷歌通过整合多个数据源(如Wikipedia、CIA World Factbook等)构建了其知识图谱,并通过图谱提高了用户体验。这一成功案例激励了更多企业和机构开始探索知识图谱的构建与应用。

  • 2015年:Facebook推出了“图形搜索”功能,该功能利用知识图谱来增强用户搜索体验,使用户能够根据关系和属性更方便地找到信息。
  • 2016年:微软在其“Azure”平台上提供知识图谱服务,允许企业快速构建和部署自己的知识图谱,进一步推动了知识图谱在企业应用中的普及。
  • 2018年:随着人工智能和深度学习的发展,许多研究者开始将知识图谱与机器学习结合,推动了智能问答、推荐系统等应用的进步。例如,OpenAI的GPT系列模型开始尝试将知识图谱信息融入其生成模型中,提升了生成文本的准确性。

知识图谱正在快速发展,具有以下特点:

  • 动态知识更新:现代知识图谱不再是静态的,而是具备动态更新的能力。企业通过自动化知识抽取技术,能够实时更新知识图谱,使其反映最新的信息。
  • 多模态融合:知识图谱开始与图像、视频等多种数据形式结合。例如,Google和Microsoft等公司正在开发结合文本和图像的多模态知识图谱,以提高搜索和推荐的准确性。
  • 大模型与知识图谱的结合:目前,像GPT-4等大型预训练语言模型开始与知识图谱结合。这种结合使得模型不仅可以生成文本,还能基于知识图谱提供更准确的答案,提升了在复杂任务中的表现。
  • 行业应用广泛:从医疗、金融到电商,知识图谱的应用领域正在不断扩展。以医疗行业为例,知识图谱能够整合患者数据、医学文献和治疗方案,帮助医生进行更精确的诊断和治疗。

三、知识图谱和知识库的区别

3.1定义

知识库:是一个用于存储和管理信息的系统,可以是结构化(如数据库)或半结构化(如文档库)的形式。它集中存储特定领域的事实、规则和信息,方便查询和管理。

知识图谱:是一种以图形化方式表现知识的结构,通过节点(实体)和边(关系)来展示信息,强调实体之间的关联性和上下文。

3.2表现形式

知识库

  • 采用表格、文档或文件的形式,数据通常是静态的。
  • 信息存储为键值对、记录或对象。

知识图谱

  • 以图形结构呈现,节点和边的组合形成网络。
  • 数据动态且可通过关系进行扩展,提供更复杂的信息视图。

3.3功能

知识库

  • 主要用于数据存储、管理和检索,强调数据的准确性和一致性。
  • 支持简单的查询和报告生成。

知识图谱

  • 侧重于数据之间的关联性和推理能力,支持复杂查询和智能分析。
  • 可以揭示隐藏的关系和模式,增强信息的可理解性。

知识库和知识图谱在数据存储、管理和应用方面各有优势。知识库更适合传统的数据管理任务,而知识图谱则提供了更丰富的语义理解和数据关联能力,适用于复杂的信息处理和智能应用。在构建知识管理系统时,可以根据具体需求选择或结合这两种技术。

四、GraphRAG知识图谱和大模型的结合

尽管大语言模型这两年各方面表现非常出色,但是由于缺乏特定领域知识、实时更新信息,导致模型存在一定局限性。这些不足容易引发幻觉现象,即模型生成不准确甚至是虚构的信息。在我之前RAG详细描述的文章里面也有提到过:

虽然 RAG 成果斐然,并在各个领域得到广泛应用,但在实际场景中仍面临一些局限:

  • 忽视关系:实际上,文本内容并非孤立存在,而是相互关联的。传统的 RAG 无法捕获仅靠语义相似性无法呈现的重要结构化关系知识。比如,在通过引用关系连接论文的引用网络中,传统的 RAG 方法侧重于依据查询找到相关论文,却忽略了论文之间重要的引用关系。
  • 冗余信息:RAG 在连接成提示时,常以文本片段的形式重复内容,致使上下文过长,陷入“Lost in the Middle”的困境。
  • 缺乏全局信息:RAG 只能检索文档的子集,无法全面掌握全局信息,因而在诸如查询聚焦摘要(Query-Focused Summarization,QFS)等任务中表现不佳。

数据库中实体关系的复杂性对 RAG 构成了挑战。GraphRAG 技术应运而生,它利用实体间的结构信息,实现更精准的检索,增强关系知识的捕捉,并生成更符合上下文的响应。

在这里插入图片描述
GraphRAG(Graph-based Retrieval-Augmented Generation)是一种结合了知识图谱和图机器学习技术的新型检索增强生成模型。该技术由微软于2024年7月2日开源,本系列文章的目的也是包含将已构建的知识图谱运用到大模型里面去融合,再者完成对企业知识库文档进一步知识图谱自动构建,知识抽取和生成,增强对业务的理解能力。而该开源项目正好取长补短。
在这里插入图片描述
在这里插入图片描述
那么基础概念就先到此,重要的是实现过程以及是否能够在真实的业务场景下面发挥其效果,实现期望目标,因此下一章我们就开始着手部署完成知识图谱构建的。


http://www.kler.cn/news/322831.html

相关文章:

  • PyQt5实现QLabel中的字体多种颜色闪烁效果
  • H. Sakurako‘s Test
  • 趋势外推法
  • Linux学习之路 -- 线程 -- 互斥
  • 20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
  • [SwiftUI 开发] @dynamicCallable 与 callAsFunction:将类型实例作为函数调用
  • 虚假唤醒(Spurious Wakeup)详解:从概念到实践
  • laravel延迟队列 取消未支付超时订单订单
  • 堆排序,TopK问题|向上调整建堆|向下调整建堆(C)
  • Kafka系列之:安装使用kafka_exporter详细步骤
  • Agent智能体
  • 常见错误1:访问指针类型
  • 【Java异常】(简简单单拿捏)
  • Python(六)-拆包,交换变量名,lambda
  • vue3中使用echarts折线图初始化只显示一条数据,其余折线根据用户点击进行显示
  • 【java】前端RSA加密后端解密
  • 外贸电商系统卷轴模式开发:技术深度解析与实践
  • 联宇集团:如何利用CRM实现客户管理精细化与业务流程高效协同
  • 解决element树形结构切换节点,form表单缓存问题
  • 如何解决跨域请求中的 CORS 错误
  • 前端大模型入门:使用Transformers.js实现纯网页版RAG(一)
  • mobaxterm、vscode通过跳板机连接服务器
  • cocosCreator 2.x 原生平台不息屏
  • 3D 模型GLTF、GLB格式文件介绍使用;FBX格式
  • 【单调栈】单调栈基础及经典案例
  • 【计算机网络 - 基础问题】每日 3 题(十九)
  • echarts地图下钻的 两种方法
  • Text-to-SQL方法研究
  • 更换硬盘后,电脑装完系统进不去?或PE能识别硬盘但开机/启动/BIOS识别不了硬盘解决办法
  • 每日一题学习笔记