知识图谱KG+大模型LLM

  • LLM-based KG
    • KnowLM
    • OpenSPG
  • KG-based RAG
    • 基本原理
      • 从query出发的语义解析
        • pre-LLM方法
          • 思想:直接将问题解析为对应的逻辑表达式,然后到知识图谱中查询。
          • 方法:通常包含逻辑表达式、语义解析算法、语义解析模型训练三部分。一般步骤是将问句解析成中间表示,再将中间表示向知识库映射,获得最终的逻辑表示。
            • 逻辑表达式:lambda-calculus(支持实体,数词,函数等常量,支持多种逻辑连接词,支持\exists,\forall等存在量词,argmax,argmin等额外量词),lambda-DCS(组合语法更简单,支持最基本的实体、关系、Join/intersection操作,支持Bridging操作,可以把两个独立的语义片段组合起来,将离散语义组合为更完整的语义), 组合范畴语法CCG(由解析规则、解析算法、解析模型训练组成,解析规则由词汇、句法类型、语义类型构成,CCG支持应用、组合、类型转化、并列等操作)。
            • 语义解析的基本步骤:短语检测(识别短语的实体和关系,包括分词、词性标注POS、命名实体识别NER,依赖关系分析构造短语依存图等步骤),资源映射(grouding,包括实体链接、概念匹配、关系分类/关系抽取,目标是将问句与知识图谱上的本体匹配,可以从短语依存图出发实现),语义组合(包括句法分析,组合模型训练,语义组合等步骤),逻辑表达生成。
            • 语义解析器的训练:目标是通过大规模知识库上的问题/答案对集合训练Parser,用在语义组合阶段。以词法、语法、对齐、桥接、实体链接、关系识别为特征,以候选逻辑表达式为目标

          • 难点:1. 语义解析的Bridging操作,通常谓词不是明确表示的,导致问句中的谓词无法与知识图谱中的关系直接映射,将实体周边的谓词与问句中真正的谓词对应,即Bridging。2. 知识图谱是高度不完备的,因此需要进行问句的短语重写来匹配知识(Prapharasing),因此需要搜集高质量的语料来训练短语重写模型。

          • 缺点:最大缺点是对知识图谱中资源的利用程度不够,知识图谱中的海量知识是可以极大的增强问句的理解过程的,更好的方法应该充分深挖问句和知识图谱两方面资源所包含的信息。
        • LLM-based方法
          • 增加一路与向量库平行的KG上下文增强策略,基于模型的NL2X能力或单独的NL2X模块,将query解析为图查询语言,直接执行图查询,然后后查询的结果转换为文本片段。
      • 从图谱出发的检索排序
        • pre-LLM方法
          • 主要思路:根据query抽取实体,然后把实体作为种子节点对图进行采样(必要时,可把KG中节点和query中实体先向量化,通过向量相似度设置种子节点),然后把获取的子图转换成文本片段,针对query进行排序。
          • 关键模块:排序模型
            • 基于特征的检索排序模型:针对每个答案构造特征,常用的问题特征包括:疑问词特征、问题实体特征、问题类型特征、问题动词特征、问题上下文特征。常用的答案特征包括:谓词特征、类型特征、上下文特征。
            • 基于子图匹配的检索排序模型:从输入问题中定位问题实体,随后答案候选检索模块以该问题实体为起点按照特定规则从知识图谱中选择答案候选,接下来,答案子图生成模块为每个答案候选实体从知识图谱中抽取出一个子图,作为该答案实体的一种表示。最后答案检索排序模块计算输入问题和每个答案子图之间的相似度用来对子图对应的答案候选进行打分,从而排序得到最终答案,Wen-tau Yih, Ming-Wei Chang, Xiaodong He, Jianfeng Gao. Semantic Parsing via StagedQuery Graph Generation: Question Answering with Knowledge Base, ACL, 2015。
            • 基于向量表示的检索排序:为输入问题Q 和答案候选 A 分别学习两个稠密的向量表示f(Q)和g(A):并在向量空间中计算问题向量和答案向量之间的相似度,用于对不同的答案候选进行打分。
            • 基于记忆网络的检索排序:除问答模块之外,引入记忆网络模块,记忆网络模块负责将有限的记忆单元表示为向量,问答模块从记忆网络模块中寻找与问题有关的答案,如Key-value Memory Network将外部数据输入表示为记忆单元,通过问句与记忆单元之间的计算来寻找答案。
          • 主要难点:实体链接
            • 难点1:实体链接,在文本中对知识图谱中的命名实体进行识别和消歧的任务。标准方法使用实体对齐工具(如TagMe)来检测输入文本中提到的知识图谱实体并将它们链接到正确的知识图谱条目。但也可以将实体链接问题的两部分——识别和消歧——作为一个联合任务,使用端到端的神经网络进行优化
            • 难点2:多语言实体链接,在实际应用中,我们经常需要把多语言的文本中的实体链接到一个或多个不同语种的知识图谱上这类型的设定被称为是跨语言实体链接当语种数目足够多时,会出现低资源语种或实体对应的训练数据极少的情况,因此,需要格外关注零样本和少样本的情形。《Entity Linking in 100 Languages》
        • LLM-based方法
          • 基本方法:基于LLM进行中心实体抽取,然后从中心实体出发,获取知识图谱中有关的实体的子图,转换为自然语言作为候选答案,然后对候选答案进行向量化,根据与query的语义相似度进行排序,选出得分最高的候选答案作为上下文,输入LLM进行编排得到最终回答。
          • 实体链接实现(KG-RAG):实体识别使用LLM实现,预先将KG中的节点使用特定的embedding模型进行向量化,查询时计算抽取实体与KG节点的相似度,选择topk相似节点作为候选实体。问题:1,理论层面,没有消歧,不能解决实体异名、同名异意的问题;2. 实现层面,需要预先向量化,指定向量集合和KG数据库。
    • KAPING:直接以KG中抽取的三元组作为提示
      • 从知识图谱中抽取相关的事实三元组,并将其作为提示信息输入到大模型。因此在这一方法中,如何抽取最相关的三元组是需要解决的主要问题。所提方法分为三个模块:知识获取-知识表达-知识注入。知识获取的目标从给定问题中抽取相关的实体。本模块采用的方法为传统的实体链接方法。然而,该实体相关三元组可能规模较大,且并非所有都与问题相关。基于这一考虑,本文首先采用已有的句子表示模型,分别将三元组和问题映射到统一表示空间,选择前K个与问题语义最相似的三元组。知识表达的目标是将三元组转化为文本形式的表示。知识注入的目标是根据三元组和给定问题构建大模型提示词。构建方法为首先列出N个相关三元组,然后增加说明信息“Below are facts in the form of the triple meaningful to answer the question”。
    • Think on Graph:从KG中搜索下一步推理路径
      • 从给定问题出发,每一步推理都要经过扩展-推理的过程,每步推理都是基于问题通过大模型在知识图谱数据中搜索下一步推理的相关路径。主要步骤为首先识别输入问题中的主题实体,然后利用大模型对外部知识图谱进行探索和推理,检索相关的路径。如此循环直到达到最大步数或得到推理答案。
    • 开源项目
      • https://github.com/BaranziniLab/KG_RAG
      • https://github.com/stanford-oval/WikiChat
        • 1. 基于LLM生成从wiki百科检索的查询,发送到信息检索系统,从语料库中获取相关段落,并根据时间信息对结果进行重新排序,以获取近义词段落。再看有趣的大模型RAG问答优化策略:Wikichat七步走及KG-RAG实现范式 (qq.com)
          • 文本索引:使用WikiExtractor工具(https://github.com/attardi/wikiextractor) 从2023年4月28日获得的英文维基百科转储中提取纯文本,与ColBERT一样,将每篇文章(忽略表格和信息框)划分为不同的文本块作为段落,并在段落前加上文章标题,将段落和标题的总长度限制在120字以内。
          • 检索召回:在维基百科上使用ColBERTv2(https://github.com/stanford-futuredata/ColBERT/) 和PLAID(https://arxiv.org/abs/2205.09707) 作为检索工具。ColBERT是一种快速准确的检索模型,可在数十毫秒内对大型文本集合进行基于BERT的可扩展搜索,ColBERT的后期交互,可有效地对查询和段落之间的细粒度相似性进行评分。ColBERT是表示-交互检索模型的代表,由一个线上encoder一个线下encoder组成,encoder具体采用的是bert,而且是共享权重的。此外,encoder的输出会进入一个没有激活函数的线性层,用于缩小每个token的维度,起到加速的作用。 而且还会将document的encoder输出结果中的标点符号去掉,也是起到加速作用。

        • 2. 汇总和过滤检索到的段落,基于LLM从检索到的段落中提取相关部分,并将其归纳为要点
        • 3. 生成初始回复,提示LLM生成对对话历史的回复,这种回复通常包含有趣和有用的知识,但本质上并不可靠
        • 4. 从回复中提取声明,LLM回复被分解为多个声明(claim)。这一阶段解决共同参照问题,以减少歧义,并解决了"当前"和"去年"等相对时间信息
        • 5. 使用检索到的证据对回复中的声明进行事实检查,使用思维链提示,只有得到证据支持的声明才会被保留
        • 6. 起草最终回复,根据给定的要点清单和对话历史记录生成回复草稿
        • 7. 完善最终回复,根据相关性、自然性、非重复性和时间正确性生成反馈并完善回复
  • KG-enhanced LLM
    • 知识注入训练的LLM
      • ERNIE
      • KnowBert
      • LUKE
      • KBERT
    • 基于知识图谱微调的LLM
      • KoPA(介绍)
        • KoPA是一个两阶段的基于LLM的KGC框架。首先对给定的KG中的实体和关系进行结构嵌入预训练(上面的支路),然后然后通过结构前缀适配器将这些信息注入输入序列,用于采用指令调优来微调LLM。结构嵌入预训练:KoPA从KG中提取实体和关系的结构信息,并将其适应到LLM的文本表示空间中。使用负采样的自监督预训练目标定义得分函数 ( F(h,r,t) ) 来衡量三元组的合理性。通过最小化这种预训练损失,实体和关系的结构嵌入被优化以适应所有相关的三元组。知识前缀适配器:在完成结构嵌入预训练后,通过知识前缀适配器将结构嵌入转换为虚拟知识Token。这些Token作为输入序列的前缀,由于解码器仅在LLM中的单向注意力,所有后续的文本Token都可以看到这些前缀。这样,文本Token可以对输入三元组的结构嵌入进行单向注意,从而在微调和推理期间实现结构感知提示。

  • KG-enhanced LMM
    • Structure-CLIP:通过场景图知识增强多模态结构化表示增强CLIP
      • 出发点:CLIP模型产生的通用表征能力无法区分那些包含相同单词但在结构化知识方面存在差异的文本段落。换言之,CLIP模型表现出类似于词袋模型的特点,未能有效理解和捕捉句子中的细粒度语义。思路:通过场景图知识增强多模态结构化表示。与NegCLIP的随机交换方法不同,Structure-CLIP采用了基于场景图的引导策略来进行单词交换,以更精确地捕捉底层语义意图。此外,还提出了一种知识增强编码器,它利用场景图来提取关键的结构信息,并通过在输入层面上融合结构化知识,从而增强结构化表示的能力。
  • KG-enhanced Prompt Engineering
    • CoK:诱导LLM生成结构三元组来提高CoT推理中的依据可信度
      • 出发点:旨在解决CoT中中间生成理由错误的问题,方法是诱导LLM生成结构三元组的显式知识证据,基于此还引入F2-Verification方法,从事实性和忠实性两个方面来评估推理链的可靠性。对于不可靠的回答,可以指出错误的证据,促使LLM重新思考。主要创新点:提示格式,因为纯文本推理链不足以让LLM生成可靠而具体的推理过程。受知识库中三重结构的启发,需要用结构化特征来增强提示。事后验证。LLM通常无法检查他们所回答的答案,这就要求利用外部知识进行验证。方法:CoK由两个主要部分组成,即证据三元组(CoK-ET)和解释提示(CoK-EH)。CoK-ET代表一个由多个三元组组成的列表,每个三元组都代表从大模型那里获得的知识证据,以支持逐步思考的过程。在事实性验证上,事实性可视为每个生成的三元组证据与知识库中的基本真实知识之间的匹配度。具体来说,定义一个函数fv来表示每个证据的真实性。设计两种不同的fv策略:精确验证和隐式验证。在忠实性验证上,给定一个测试查询、一个证据三元组列表和最终答案,直接将它们连接成一个新的序列,利用预置的句子编码器SimCSE来计算新序列与先前序列之间的相似度,最后,对于每个查询,可以得到一个分数Ci(0<Ci<1),表示该理由对答案是否可靠。当LLM生成的推理链未能通过验证且可靠性得分低于阈值θ时,会在反思阶段为它们提供额外的再次生成机会。
    • BSChecker:将大模型输出分解为三元组分步进行幻觉检测
      • BSChecker其思想在于,与传统的段落或句子级别的分析方法不同,将大模型的输出文本分解成知识三元组,该工作将幻觉检测的最小单元称为一个声明(claim)。在计算方式上,不同于传统幻觉检测方法将整个输出文本分类为是否存在幻觉这两种类别标签,BSChecker对输出文本中的每一个声明都进行幻觉检测并分类。输出文本和其相应的参考文本之间的关系可以分成蕴涵(Entailment,图中绿勾✅)和矛盾(Contradiction,图中红叉❌)以及中立(图中的问号)。BSChecker具有模块化的工作流程,分为声明抽取器E,幻觉检测器C,以及聚合规则τ,将输入文本分解成一组知识三元组。每个三元组都要经过验证,验证。随后,根据预定义的规则,汇总各个结果,以确定给定文本的整体幻觉标签。本质上是以文本抽取的多个三元组为评估基准,来评估整个输出的幻觉可能。
      • Extractor使用GPT-4和Claude 2,Checker使用大量现有的ZERO-SHOT校验器,而无需额外的训练,主要考虑两种类型:基于LLM的检查器和基于NLI的检查器,在汇总阶段,得到整个输入文本的整体幻觉标签。
    • graph-guided reasoning: 通过图表示/验证步骤引导CoT
      • 包括如下几个步骤:1. 图表示,利用LLMs构建一个“问题/理由图”,该图是一个有向无环图,其中每个节点是一个问题或一个理由,每条边是一个关系。图表示的目的是将问题和理由的语义结构显式地表示出来,以便于后续的推理。2. 图验证,利用LLMs对当前的理由节点进行诊断,通过将其与现有的问题/理由图进行比较,来过滤掉无关的理由,并生成后续的问题,以获取更多的相关信息。图验证的目的是检查和纠正当前的推理路径,以避免错误或不完整的推理。3. 图补充,利用LLMs生成不包含图中提取信息的CoT路径,以表示图抽取中遗漏的上下文信息。图补充的目的是补充和完善当前的推理路径,以提高推理的全面性和鲁棒性。
      • 具体实现:问题图构建是指利用大型语言模型从问题中提取知识三元组,并将其表示为一个图结构。中间问题生成是指根据问题图中的三元组,生成一个与初始问题相关的子问题,以获取回答问题所需的信息。中间答案生成是指利用大型语言模型回答中间问题,并生成一个作为推理步骤的中间答案。在开放领域的设置中,还可以利用检索增强的方法,根据中间问题作为查询,从外部知识库中检索相关的段落,以辅助中间答案的生成。理由验证是指将生成的中间答案转换为三元组的形式,并与问题图进行匹配,以验证其是否有效和有用。如果中间答案被拒绝,就返回到中间问题生成的步骤。这个过程重复进行,直到生成的理由图与问题图匹配,或者达到重复的限制。然后,大型语言模型根据所有的中间答案,生成最终的答案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/335784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机Keil+Proteus8.9+ADC0804】ADC实验 模拟转数字实验

一、实验名称 ADC实验 模拟转数字实验 二、设计思路 电路设计 1.选用AT89C51单片机作为电路核心单元&#xff0c;外接8位单通道AD转换器ADC0804芯片和LM016L显示器以及滑动变阻器等其它常用元器件构成电路。 2.将ADC0804芯片的控制引脚RD,WR,INTR接到AT89C51芯片对应引脚&…

管理信息系统知识点复习

目录 一、名词解释题1.企业资源规划(ERP)2.面向对象方法&#xff1a;3.电子健康&#xff1a;4.供应链5.数据挖掘6.“自上而下”的开发策略&#xff1a;7.业务流程重组8.面向对象&#xff1a;9.决策支持系统10.聚类11.集成开发环境&#xff1a;12.供应商协同13.数据仓库14.深度学…

pytorch集智-6手写数字加法机-迁移学习

1 概述 迁移学习概念&#xff1a;将已经训练好的识别某些信息的网络拿去经过训练识别另外不同类别的信息 优越性&#xff1a;提高了训练模型利用率&#xff0c;解决了数据缺失的问题&#xff08;对于新的预测场景&#xff0c;不需要大量的数据&#xff0c;只需要少量数据即可…

STM32407用汇顶的GT911触摸芯片调试实盘

这个配置很关键 代码 #include "stm32f4xx.h" #include "GT9147.h" #include "Touch.h" #include "C_Touch_I2C.h" #include "usart.h" #include "delay.h" #include "LCD.h" #incl…

Java String基础学习

目录 1、String的构造方法 2、String内存模型 3、字符串的比较 4、字符串的练习 1、用户登录系统 2、遍历字符串 3、统计字符次数 4、拼接字符串 5、字符串的反转 6、金额转换 7、手机号屏蔽 * 8、身份证信息查看 9、敏感词替换 5、StringBuilder 1、概念及练习…

新手也能看懂的【前端自动化测试入门】!

前言 最近在网上搜索前端自动化测试相关的文档&#xff0c;但是发现网上的文章都是偏使用&#xff0c;没有把一些基础概念说清楚&#xff0c;导致后续一口气遇到一些karma、Jasmine、jest、Mocha、Chai、BDD等词汇的时候很容易一头雾水&#xff0c;这次一方面整理一下收获的知…

YOLOv8改进 | 进阶实战篇 | 利用YOLOv8进行视频划定区域目标统计计数

一、本文介绍 Hello,各位读者,最近会给大家发一些进阶实战的讲解,如何利用YOLOv8现有的一些功能进行一些实战, 让我们不仅会改进YOLOv8,也能够利用YOLOv8去做一些简单的小工作,后面我也会将这些功能利用PyQt或者是pyside2做一些小的界面给大家使用。 在开始之前给大家推…

解决Spring Boot跨域问题(配置JAVA类)

什么是跨域问题 跨域问题指的是不同端口之间&#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制&#xff0c;它是为了保证用户的安全&#xff0c;防止恶意网站窃取数据。 比如前端用的端口号为8081&#xff0c;后端用的端口号为8080&#xff0c;后…

Linux下安装docker

1、查看系统版本 Docker支持64位版本的CentOS 7和CentOS 8及更高版本&#xff0c;它要求Linux内核版本不低于3.10。查看Linux版本的命令这里推荐两种&#xff1a;lsb_release -a或cat /etc/redhat-release。 显然&#xff0c;当前Linux系统为CentOS7。再查一下内核版本是否不低…

SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换

场景 SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源&#xff1a; SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源-CSDN博客 上面实现通过注解和配置文件的方式去进行多数据源操作。 如果业务需求&#xff0c;比…

Ubuntu安装最新版Docker和Docker-Compose

ubuntu环境搭建专栏&#x1f517;点击跳转 Ubuntu系统环境搭建&#xff08;十&#xff09;——Ubuntu安装最新版Docker和Docker Compose 文章目录 Ubuntu系统环境搭建&#xff08;十&#xff09;——Ubuntu安装最新版Docker和Docker Compose1.添加Docker库1.1 安装必要的证书并…

PostgreSQL命令大全

文章目录 连接与退出数据库操作表操作外键约束视图操作存储过程与函数权限管理事务管理查询优化与分析数据类型转换分区表操作复制与备份恢复 PostgreSQL是一个功能强大的开源关系型数据库管理系统&#xff0c;以下是一些基本且常用的命令按功能分类&#xff1a; 连接与退出 连…

【前端设计】流光按钮

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 css body{height: 100vh;display: flex;justify-content: center;align-items: center;background…

HarmonyOS鸿蒙学习基础篇 - 项目目录和文件介绍

├── hvigor //存储购置信息的文件&#xff0c;主要用于发布打包 ├── idea //开发工具相关配置可忽略 ├── AppScope //工程目录 全局公共资源存放路径 │ └── resources │ │ └── base │ │ │ └── element //常亮存放 │ │ │ …

Windows安装WSL2精简版教程

文章目录 一、安装WSL二、更改WSL的存放路径/备份WSL三、安装WSL Terminall四、WSL界面&#xff1a;xlaunch五、WSL1升级WSL2六、WSL2与VMware兼容问题七、更改手动导入的wsl的默认登录用户参考 一、安装WSL 步骤1 - 启用适用于 Linux 的 Windows 子系统&#xff1a; 需要先启…

格局打开!前端未死,只是要求变高了

本文笔者会从以下几个方面分享&#xff0c;希望能够帮助正在迷茫的前端小伙伴提供一点思路&#xff01; 逛技术博客 不局限框架 全栈工程师兴起 关注前沿 写技术文章 录制前端视频 总结 2024年了&#xff0c;没工作的找到工作了吗&#xff1f;有工作的加薪了吗&#xff1f;加薪…

UI设计中的插画运用优势(上)

1. 插画是设计的原创性和艺术性的基础 无论是印刷品、品牌设计还是UI界面&#xff0c;更加风格化的插画能够将不同的风格和创意加入其中&#xff0c;在激烈的竞争中更容易因此脱颖而出。留下用户才有转化。 2. 插画是视觉触发器&#xff0c;瞬间传达大量信息 我们常说「一图胜千…

Unity3D学习之Unity基础

文章目录 1. 第一部分&#xff1a;MONO中的重要内容2. 延时函数2.1 什么是延时函数2.2 延时函数的使用2.2.1 延时重复函数2.2.2 取消延迟函数2.2.3 判断是否有延迟函数开启2.2.4 延迟函数和依附对象的关系 3 协同程序3.1 Unity中的多线程3.2 协同程序3.3 协程的使用3.3.1 关闭协…

Jetson Orin Nano安装OpenCV带cuda加速版本的全过程

安装过程 使用jetpack安装的jetson&#xff0c;自带了opencv&#xff0c;但是没有cuda加速的&#xff0c;输入opencv_version 使用jtop查看&#xff0c;可以确认自带的opencv是没用cuda的 卸载opencv&#xff0c;先查看有哪些包 pip3 list | grep opencv opencv-python 然后卸…

从规则到神经网络:机器翻译技术的演化之路

文章目录 从规则到神经网络&#xff1a;机器翻译技术的演化之路一、概述1. 机器翻译的历史与发展2. 神经机器翻译的兴起3. 技术对现代社会的影响 二、机器翻译的核心技术1. 规则基础的机器翻译&#xff08;Rule-Based Machine Translation, RBMT&#xff09;2. 统计机器翻译&am…