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

KG-CoT:基于知识图谱的大语言模型问答的思维链提示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

一些符号定义

知识图谱实体数量: n n n
知识图谱中关系类型数量: m m m
三元组矩阵: M ∈ { 0 , 1 } n × n × m \textbf{M} \in \{0, 1\}^{n \times n \times m} M{0,1}n×n×m M i j k = 1 M_{ij}^k = 1 Mijk=1则说明实体 i i i和实体 j j j之间具有关系 k k k
输入问题 q q q:输入的问题
初始实体表示向量 e 0 ∈ { 0 , 1 } n \textbf{e}^0 \in \{0,1\}^n e0{0,1}n,如果输入问题q中存在实体i,则 e i 0 = 1 e^0_i = 1 ei0=1

分步 图推理模型:Step-by-Step Graph Reasoning Model

第一步:关系评分计算(Relation Score Calculation):计算每一步推理的关系得分
在这里插入图片描述
在这里插入图片描述

E n c o d e r Encoder Encoder:文本编码器,例如bert,利用它得到整段文本的表示 q \textbf{q} q和所有字符的表示 h 1 , . . . , h ∣ q ∣ h_1, ..., h_{|q|} h1,...,hq
f t f^{t} ft:推理第 t t t步的编码器(MLP+tanh映射)
q t \textbf{q}^t qt:推理第 t t t步的文本表示
R t \textbf{R}^t Rt:推理第 t t t步的关系评分

第二步:分步推理(Step-by-Step Reasoning):计算每个实体的评分

根据关系评分为实体之间的权重赋值
W i j t = { R k t M i j k = 1 0 Otherwise, W_{ij}^t = \begin{cases} R_k^t & M_{ij}^k = 1 \\ 0 & \text{Otherwise,} \end{cases} Wijt={Rkt0Mijk=1Otherwise,

根据每一步的实体间权重,从初始实体 e 0 \textbf{e}^0 e0开始,得到每一步推理的实体权重,最后通过注意力机制汇总所有的推理步,得到所有实体的评分 e ˉ \bar{\mathbf{e}} eˉ

e t = e t − 1 W t β = Softmax ( MLP ( q ) ) , e ˉ = ∑ t = 1 T β t e t , \mathbf{e}^t = \mathbf{e}^{t-1} \mathbf{W}^t \\ \beta = \text{Softmax}(\text{MLP}(\mathbf{q})), \\ \bar{\mathbf{e}} = \sum_{t=1}^T \beta_t \mathbf{e}^t, et=et1Wtβ=Softmax(MLP(q)),eˉ=t=1Tβtet,

第三步:训练
L = ∥ e ˉ − a ∥ 2 . \mathcal{L} = \|\bar{\textbf{e}} - \textbf{a}\|^2. L=eˉa2.
其中 a \textbf{a} a为候选答案实体。

推理路径生成算法:Reasoning Path Generation Method

步骤1:从知识图谱实体集合中抽取评分( e ˉ \bar{\mathbf{e}} eˉ)前TopK大(之后有不同K取值的对比实验)的实体集合 E k \textbf{E}^k Ek
步骤2:从问题q中的实体开始,向外拓展抽取一跳/两跳路径,需要满足 W i j 1 , W i j 1 W_{ij}^1,W_{ij}^1 Wij1,Wij1均大于0,并且推理结束实体在 E k \textbf{E}^k Ek集合中。
p i j 1 = ⟨ E i , R e l i j , E j , [ W i j 1 ] ⟩ p i k 2 = ⟨ E i , R e l i j , E j , R e l j k , E k , [ W i j 1 , W i j 2 ] ⟩ p_{ij}^1 = \langle E_i, Rel_{ij}, E_j , [W_{ij}^1] \rangle \\ p_{ik}^2 = \langle E_i, Rel_{ij}, E_j, Rel_{jk}, E_k , [W_{ij}^1,W_{ij}^2] \rangle pij1=Ei,Relij,Ej,[Wij1]⟩pik2=Ei,Relij,Ej,Reljk,Ek,[Wij1,Wij2]⟩
步骤3:计算路径的平均W分数作为路径分数,对每个结束实体,挑选路径分数前N大(之后有不同N取值的对比实验)的路径作为大模型的提示模版。

联合推理:Joint Reasoning

将推理路径生成算法得到的推理路径转为文本模版,加入大模型提示中,回答问题。
在这里插入图片描述
在这里插入图片描述

实验

数据集

WebQSP:WebQSP是一个知识密集型的多跳问题回答基准测试。它包含4037个问题,都是基于FreeBase的1跳或2跳问题。基于之前的工作,在问题实体的2跳邻域内检索知识三联体,并生成一个包含1886684个实体、1144个关系和5780246个知识三联体的知识子图。

CompWebQ:CompWebQ是一个多跳的问题回答基准。它包含34,672个问题,有许多跳跃和约束,这使得llm的处理具有挑战性。他们利用[Shi et al.,2021]中检索到的知识子图,并利用原始数据分割进行评估。

Simple Questions:Simple Questions是一个单跳的问题回答基准。问题是基于来自FreeBase的信息而产生的,最终,在本研究中产生了108,442个严重依赖于事实知识的问题。他们随机选择1000个问题,检索问题实体的1跳邻域进行评估。

WebQuestions:WebQuestions是一个具有挑战性的自主领域的问题回答基准。它包含5,810个问题,以自由库作为知识库。对于每个问题,我们检索问题实体的2跳邻域,并利用原始数据分割进行评估。

实验结果

在这里插入图片描述

研究不同基座模型对实验效果的影响

在这里插入图片描述

对比不同检索器

在这里插入图片描述

研究超参数K和超参数N对实验结果的影响

在这里插入图片描述

示例

在这里插入图片描述

优势:计算更快,节省大模型资源

在这里插入图片描述

创新点

提出了一套可训练子图抽取算法,能够结合根据问题得到需要查询关系类型,进而生成许多推理路径。

可能的改进点

在这里插入图片描述

  1. 得到问题 第t步 表示的时候,我认为也需要考虑前t-1步推理路径加入到运算中。

  2. 该方法适用场景受限,由于第一阶段只是对关系类型进行打分,然后将关系分数分配给实体。如果图谱中关系类型很少,三元组数目很多,那么在第二阶段挑选TopK实体的时候,可能会面临很多实体同分的状况,无法挑选合适的实体。除此以外,从问题中可能抽取多个不同的实体,如果分配相同的下一跳关系权重的话,也是不合适的。


http://www.kler.cn/a/501288.html

相关文章:

  • C#调用OpenCvSharp实现图像的开运算和闭运算
  • linux-28 文本管理(一)文本查看,cat,tac,more,less,head,tail
  • C语言---函数和数组实践:扫雷游戏
  • 解决计算机管理无法连接远程电脑
  • js代理模式
  • 网工_网络体系结构
  • 青龙面板脚本开发指南:高效自动化任务的实现
  • 一学就废|Python基础碎片,文件读写
  • MySQL存储引擎、索引、索引失效
  • Django项目集成审计日志与界面美化
  • 基于Springboot + vue实现的购物推荐网站
  • 完整化安装kubesphere,ks-jenkins的状态一直为init
  • 深度解析统计学四大分布:Z、卡方、t 与 F 的关联与应用
  • vulhub earth靶场
  • 【Excel笔记_2】单元格跳转求累加
  • ros2笔记-5.3 C++中地图坐标系变换
  • 分享几个高清无水印国外视频素材网站
  • 【ASP.NET学习】ASP.NET MVC基本编程
  • 电脑提示directx错误导致玩不了游戏怎么办?dx出错的解决方法
  • Python差分
  • .NET | SCM权限维持在红队实战中的应用
  • 若依框架--数据字典设计使用和前后端代码分析
  • 关于电商商品详情 API 接口 JSON 格式返回数据解析的示例
  • 正则表达式完全指南
  • 统计模型的Flops和Params
  • 2、数据验证组件框架:FluentValidation for .NET - 开源项目研究文章