KoPA: Making Large Language Models Perform Better in Knowledge Graph Completion

本来这个论文用来组会讲的,但是冲突了,没怎么讲,记录一下供以后学习。

创新点

按照我的理解简单概述一下这篇论文的创新点

  • 提出使用大模型补全知识图谱,并且融合知识图谱的结构信息
  • 提出一个新的模型KoPA模型,采用少量的参数进行模型的微调
  • 采用类似于In-context learning的方式实现,structure-aware

常规的知识图谱补全方式

根据目前对一些模型的了解,我其实也没看多少篇基于大模型的知识图谱补全论文,截至到目前,比较系统的接触的是这篇论文。
常规的知识图谱补全方式,通过实体和关系预测确实的实体,如(head, relation, ?)or (?,relation, tail)。通常是采用一些方式结合实体和关系,来和所有的候选实体进行语义相似度进行计算,如ConvE:
在这里插入图片描述
还有一些论文则是,将三元组同时作为输入进行整个三元组进行计算出一个得分,在评估的时候破坏三元组,计算整个三元组的得分, 如ConvKB:
在这里插入图片描述
以上两种方式,算是一种比较传统的方式,进行排序,选择正确的三元组作为结果。通常采用MR, MRR, Hits@K,作为常规的评估指标。

大模型进行知识图谱补全

以我目前对大模型结合知识图谱补全的方式,我理解大模型没法像上述方式进行知识图谱补全(应该是有其他的方式,我没太仔细看)。这篇论文,我理解的是它的本质是把知识图谱补全问题转化为二分类的问题。如下图所示:
在这里插入图片描述
其实是给予一个三元组,判断这个三元组是否是正确的三元组,如果是正确的三元组,通过prompt回答一个Yes,否则是No.的形式,进行知识图谱补全,和常规的方式略有区别。
下面是截取的数据形式:

{"instruction": "Given a triple from a knowledge graph. Each triple consists of a head entity, a relation, and a tail entity. Please determine the correctness of the triple and response True or False.","input": "\nThe input triple: \n( nucleic acid nucleoside or nucleotide, affects, mental or behavioral dysfunction )\n","output": "True","embedding_ids": [31,27,89]},{"instruction": "Given a triple from a knowledge graph. Each triple consists of a head entity, a relation, and a tail entity. Please determine the correctness of the triple and response True or False.","input": "\nThe input triple: \n( nucleic acid nucleoside or nucleotide, affects, fully formed anatomical structure )\n","output": "False","embedding_ids": [31,27,83]},

我粗略的理解,为了实现label平衡的状态,负样例需要针对正样例进行破坏即可,从而实现label实现样例比较均衡的状态。模型的评估指标也就是常规的二分类的评估指标。

模型讲解

常规的LLM没有充分利用知识图谱的结构信息,该论文则是结合文本信息和三元组信息进行微调,模型结构如下:
在这里插入图片描述
以上就是模型的输入,宏观上将输入包含两个部分,结构信息和文本信息。结构信息未为Adapter,进行微调类似于大模型的微调方式P-tuning。

  • 结构信息
    对于结构信息作为prefix或者Adapter,则是采用常规的KGC(知识图谱补全),如RotatE, TransE进行预训练参数,但是由于结构化嵌入的参数与大模型的输入不一致,则需要进行线性变换:其中 K \mathcal K K表示结构信息
    在这里插入图片描述
    P \mathcal P P则是一个线性层,进行维度变换,在训练的过程中, h , r , t \mathcal h, r, t h,r,t 结构化参数进行冻结,只训练线性层参数。
  • 文本信息
    在这里插入图片描述
    文本信息包含三个部分, I , U , X \mathcal I, \mathcal U, \mathcal X I,U,X分别表示Instruction文本信息;可选的文本信息;以及三元组的描述信息,其描述如下,就是实体和关系的描述信息进行简单的拼接的方式。
    在这里插入图片描述
    其中 U \mathcal U U可选信息,在使用的时候也是ICL信息,在这里称作structure-aware。本质上就是利用头实体和尾实体相邻的三元组,作为样例。三元组的形式,我理解应该也是实体描述的形式,然后告诉这个三元组的结果。类似一下形式:
    在这里插入图片描述
  • 可调参数
    对于该可调的参数,主要是两个方面,结构信息的维度变化参数;对于大模型,并没有采用全量参数微调,而是采用一种Lora微调的方式,主要的可学习参数在Lora的两个线性举证方面

实验结果

数据集统计:
在这里插入图片描述
其实就是一个正例子,一个负例子
在这里插入图片描述
对于常规的方式则是设置一个得分的阈值进行二分类。

消融实验

在这里插入图片描述
消融实现则是探究,常规的KGC方式进行预训练的影响, random则是探索采用随机的嵌入方式的影响。

结论

本论文实现了,大模型和知识图谱结构信息结合的论文,只训练很少的参数。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaCV音视频开发宝典:UDP局域网组播推流,多播推流,局域网多网段推流,使用UDP方式推送TS组播流,实现UDP一对多组播

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 在之前文章中我们已经实现rtp点到点传输JavaCV音视频开发宝典:rtp点到点音视频传输(一对一音视频直播)和rtp广播JavaCV音视频开发宝典:rtp广播方式发送TS流音视频传输(一对多音视…

Linux宝塔面板本地部署Discuz论坛发布到公网访问【无需公网IP】

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上&a…

算法训练营Day23(二叉树)

669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣(LeetCode) 这里本身不难,更多的是递归的技巧,在脑子里模拟一遍递归逻辑,记忆好模板就好了。 class Solution {public TreeNode trimBST(TreeNode root, int low, int…

uni-app学习记录

uni-app官网学习记录 uni-app注意点记录 页面跳转注意事项 navigateTo, redirectTo 只能打开非 tabBar 页面。switchTab 只能打开 tabBar 页面。reLaunch 可以打开任意页面。不能在首页 onReady 之前进行页面跳转。 页面通讯 // 发起页面uni.$emit(update,{msg:页面更新})//…

软件设计模式:六大设计原则

文章目录 前言一、开闭原则二、里氏替换原则三、依赖倒转原则四、接口隔离五、迪米特法则六、合成复用原则总结 前言 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序&am…

爬虫scrapy中间件的使用

爬虫scrapy中间件的使用 学习目标: 应用 scrapy中使用间件使用随机UA的方法应用 scrapy中使用代理ip的的方法应用 scrapy与selenium配合使用 1. scrapy中间件的分类和作用 1.1 scrapy中间件的分类 根据scrapy运行流程中所在位置不同分为: 下载中间件…

idea好用的十个插件分享,用后敲代码的速度提升好几倍,亲测有效

简介: 在日常的开发工作中,我发现了一些非常实用的 IntelliJ IDEA 插件,它们能够显著提升开发效率,让编码变得更加轻松愉快。今天,我想分享给大家我的个人推荐,希望对你的开发工作有所帮助! L…

Postman调用HTTPS需要配置

1、配置—Settings 2、General—SSL cert…:改成OFF 3、添加请求IP 欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感谢。觉得本文章有帮助到的,点个赞呗

P4316 绿豆蛙的归宿

题意:给出一个有向无环图,对于每个点,一共有k条出边,则选择每条边的概率相等,都为1/k,问从点1走到点n的期望路径长度 思路:有向无环图,考虑拓扑,本题不同于P6154 游走&a…

项目进度管理:掌握进度管理技巧,保障项目不延期

项目进度问题通常在小型团队中并不显著,因为这类团队通常人数较少,成员间的沟通成本相对较低。这使得他们在执行项目时更加团结和协作。 然而,当团队规模扩大到上百人时,这使得沟通变得更为复杂,在这个庞大的团队中&…

10 分钟了解 nextTick,并实现简易版的 nextTick

一、什么是 nextTick nextTick 是一个用于在 DOM 更新完成后执行回调函数的方法。在 Vue.js 或其他类似框架中,当我们修改了数据后,DOM 并不会立即更新,而是会进入一个队列中,然后在下一个 tick 执行更新。nextTick 提供了一种方式…

JAVA线上事故:递归导致的OOM

最近因为人员离职,接手一个项目,是xxljob的客户端,部署在k8s上,在排查线上工单时,发现了一个问题: 在管理界面上,我惊讶的发现,三个月的时间,2个Pod,每个都重…

MacOS 终端显示 Git 分支的名称

前提:MacOS 默认终端是不显示 Git 分支的名称的,个人感觉难受,样式也不好看!就找到了 oh-my-zsh 终端输入以下指令就OK了 sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)&qu…

(js)循环数组构建对象

(js)循环数组构建对象 数组 dataArr["企业","工序"]方法 //构建表头 dataArr.forEach((item) > {let obj {};obj {label: item,value: item,};this.headList.push(obj); });对象 this.headList [{label: "企业",value: "企业&quo…

debian10安装配置vim+gtags

sudo apt install global gtags --version gtags //生成gtag gtags-cscope //查看gtags gtags与leaderf配合使用 参考: 【VIM】【LeaderF】【Gtags】打造全定制化的IDE开发环境! - 知乎

以ACM32F403为主控的车载电动尾门案例分析

方案概述 随着汽车行业智能化、电气化、网联化大潮的发展,电动后尾门逐渐普及化。此方案兼容多种人机交互接口,包括传统的按键开关,也包括智能脚踢传感器,远程手机控制等智能控制技术,支持防夹算法,支持全锁…

Apache+PHP环境配置 手动配置

准备工作,在G盘新建一个WAMP目录 1.获取Apache 打开下载地址Apache VS17 binaries and modules download,下载 httpd-2.4.58-win64-VS17.zip 将下载好的httpd-2.4.58-win64-VS17.zip拷贝到G:\WAMP目录下并解压到当前目录,得到Apache24目录 …

u盘加密软件合辑丨u盘怎么上锁某个文件夹

毫无疑问,U盘是我们生活中最常使用的移动储存设备,常见的U盘普遍没有使用限制,任何人都可以浏览其中的数据,这就可能导致数据泄密和隐私泄露,那么普通U盘怎么变成加密U盘呢? 一、上锁某个U盘文件夹 可以将…

Vue3+Echarts:堆积柱状图的绘制

一、需求 在Vue3项目中&#xff0c;想用Echarts来绘制堆积柱状图&#xff0c;去展示最近一周APP在不同渠道的登录人数效果如下&#xff1a; 二、实现 (关于Echarts的下载安装以及图表的样式设计&#xff0c;此处不展开&#xff01;) 1、Templates部分 <template>&l…

向本地maven中加载依赖

1、现在maven官网仓库找到相应依赖 Maven Repository: Search/Browse/Explore (mvnrepository.com) 2、下载相应jar包 3、使用maven命令在jar所在文件加内cmd运行 注意修改参数 -DgroupId&#xff1a;表示jar对应的groupId <groupId>io.confluent</groupId>…