ACL | 牵一发而动全身—知识图谱增强的大模型知识编辑新策略
大语言模型确实很能打,能写文章、能聊天、能解题,靠的就是它肚子里那些海量知识。但问题也随之而来——知识有时候是错的,或者早就过时了。想象一下,一个医疗AI还在用十年前的治疗方案,或者一个法律顾问引用的是已废止的法条,那后果可不是闹着玩的。所以,怎么精准、高效地更新大模型里的“过时知识”,就成了一个绕不开的难题。
传统做法是微调,但微调有点像“大动干戈”:不仅容易把模型其他参数搞乱,还经常出现灾难性遗忘——新知识没记住,旧知识反而丢了。于是,知识编辑这个方向应运而生,目标很明确:只改那一个知识点,绝不碰其他无关信息。
不过,已有方法大多盯着单个知识——比如把“勒布朗·詹姆斯效力于迈阿密热火”改成“效力于洛杉矶湖人”。但你细想:这一个改动,连带效应可不小。比如“勒布朗·詹姆斯在迈阿密工作”这句话,按理说也该同步更新成“在洛杉矶工作”。可现有编辑方法压根没考虑这种关联变化,导致模型泛化能力大打折扣。更要命的是,大模型本身是个黑盒子,内部知识之间怎么关联的,根本看不清楚,这让检测和修改连带知识变得难上加难。

图1 大模型知识编辑的一条示例:单次编辑可能引发关联知识改变
背景与动机
上面说的就是这篇论文要解决的核心痛点。他们提出了一套叫
GLAME
模型方法
GLAME的整体架构分为两大模块,下面一个个说。

1. 知识图谱增强模块(KGA)
这个模块的任务是为每个编辑样本构建一个子图。具体怎么做?
第一步,目标知识匹配与采样。每个编辑样本包含主语s、关系r、原宾语o和新宾语o*。用o*在外部知识图谱(比如Wikidata)中匹配最相关的实体,然后以该实体为中心,采样它周边的实体和关系,形成一个包含新关联关系的子图。这一步相当于把“牵一发”可能动到的“全身”先框出来。
第二步,知识表征提取。从大模型的浅层中提取子图里实体和关系对应的隐向量,作为节点和边的初始表征。这样一来,知识表征之间的依赖关系就被显式建模了,不再是一团迷雾。
2. 图数据编辑模块(GKE)
这个模块负责把子图里的图结构知识(包括目标知识和关联知识)注入到大模型参数里,完成编辑。它基于经典的ROME框架,但做了关键扩展:
- 首先,使用关系型图神经网络(RGNN)对子图编码,在主语s的输出上增强其表征。增强后的表征不仅包含目标编辑知识,还包含了新的关联知识的信息。
- 然后,提取大模型处理主语实体时的隐向量,作为原始表征。
- 最后,基于ROME框架,在大模型中间层建立原始表征与新增强表征之间的映射关系,更新模型参数。这样一次编辑就把所有连带知识都融进去了。
实验结果
GLAME在三个标准数据集上进行了测试:CounterFact、CounterFactPlus和MQuAKE。
表1 各模型在CounterFact及CounterFactPlus数据集上的性能指标

表2 各模型在MQuAKE数据集上的性能指标

结果很亮眼:在CounterFact和CounterFactPlus上,GLAME的综合指标Edit Score直接登顶。特别是在反映关联知识捕获能力的Portability Score上,相比之前最好的方法分别提升了11.76%和10.98%。在MQuAKE数据集上,不同难度任务的平均指标提升了5.9%,而最复杂的4-hop推理任务更是飙升了12.45%和16.75%。
有意思的是,研究团队还设计了两个对照实验:ROME-KG和MEMIT-KG——就是把知识图谱中的多跳信息直接扔进ROME和MEMIT这两个现有方法里。结果呢?性能不升反降。原因不难理解:ROME-KG需要多次调整参数来编辑高阶关系,容易搞坏原有参数;MEMIT-KG则是把大量信息一股脑塞进去,对目标知识的约束力度被冲淡了。而GLAME因为用了图结构,一次编辑就能把关联知识打包融合,对模型的伤害小得多,对外部知识图谱的利用也更充分。
本文贡献
- 明确指出知识编辑过程中必须考虑单次编辑引发的关联关系变化,通过协同编辑来提升泛化能力。
- 首次将外部知识图谱引入大模型知识编辑任务,利用图结构的显式特性来关联目标知识和连带知识,并提出了GLAME方法,通过KGA和GKE两个模块实现协同编辑。
- 在多个标准数据集上验证了GLAME在编辑效果和泛化能力上的显著提升。