论文笔记 - Editing Factual Knowledge in Language Models

1. Information

Title: Editing Factual Knowledge in Language Models
Link: KE Paper
Source: Empirical Methods in Natural Language Processing (EMNLP)
Date: 2021.04.16

2. Summary

本文提出了一种名为 KNOWLEDGEEDITOR 的方法,用于在语言模型 (LMs) 中高效、可靠地编辑事实知识,无需重新训练或微调模型。该方法利用超网络 (hyper-network) 预测模型参数更新,确保修改特定事实时不会影响其他知识。此外,通过训练期间引入等价语句(如改写句)的方式,增强了修改一致性。作者在 BERT 和 BART 模型上进行了实验,展示了 KNOWLEDGEEDITOR 在事实核查和开放域问答任务上的高效性。

3. Background

预训练语言模型(如 BERT 和 GPT)在许多 NLP 任务中表现优异,得益于其内部隐式存储的事实知识。然而,这些模型可能存储错误或过时的信息,难以直接修改。传统的解决方法(如重新训练或基于元学习的微调)代价高昂且不通用。因此,开发一种高效、可靠的方法来编辑这些模型的知识具有重要意义。

4. Research Objective

  1. 开发一种无需对原始模型进行特殊训练的知识编辑方法。
  2. 确保修改特定事实时保持其他知识的完整性。
  3. 保证对等价输入(如改写句)的预测结果一致。

5. Method

5.1 KNOWLEDGEEDITOR 方法概述

KNOWLEDGEEDITOR 方法的核心思想是将编辑模型知识的任务视为一个学习问题。具体来说,该方法使用一个超网络(hyper-network)来预测模型参数的更新,从而实现对特定事实的修改。超网络的训练目标是在修改特定事实的同时,保持其他预测不变。

5.2 优化目标

给定一个输入 \(x\) 和模型 \(f(x;θ)\),目标是找到新的参数 \(θ^′\),使得模型对 \(x\) 的预测从 \(y\) 变为 \(a\),同时对其他输入 \(x^{\prime} \neq x\) 的预测保持不变。这一目标可以通过以下优化问题来形式化: \[ \min _\phi \sum_{\hat{x} \in P_z} L\left(\theta^{\prime} ; \hat{x}, a\right) \quad \text { s.t. } \quad C\left(\theta, \theta^{\prime}, f ; O_x\right) \leq m \] 其中:

  • \(P_x\)\(x\) 的语义等价输入集合(如自动生成的释义)。
  • \(O_x\) 是除 \(x\) 之外的其他输入集合。
  • \(C\) 是约束条件,用于确保修改后的模型对其他输入的预测保持不变。
  • \(m\) 是一个超参数,表示约束的边界。

5.3 约束条件的选择

约束条件 \(C\) 的选择至关重要。本文提出了两种约束:

  1. KL 散度约束:通过计算原始模型和修改后模型的 KL 散度来约束输出分布的差异。

\[ C_{\mathrm{KL}}\left(\theta, \theta^{\prime}, f ; O_x\right)=\sum_{x^{\prime} \in O_x} \sum_{c \in Y} p_{Y \mid X}\left(c \mid x^{\prime}, \theta\right) \log \frac{p_{Y \mid X}\left(c \mid x^{\prime}, \theta\right)}{p_{Y \mid X}\left(c \mid x^{\prime}, \theta^{\prime}\right)} \]

  1. Lp 范数约束:通过限制参数更新的 Lp 范数来约束模型的变化。

5.4 超网络的设计

超网络的目标是预测参数更新 \(\Delta \theta\),使得 \(\theta^{\prime}=\theta+\Delta \theta\) 高效率,超网络利用梯度信息 \(\nabla_\theta L(\theta ; x, a)\) 来指导更新。具体来说,超网络的输出可以表示为: \[ \Delta W=\sigma(\eta) \cdot\left(\alpha \cdot \nabla_W L(W ; x, a)+\beta\right) \] 其中:

  • \(\sigma(\eta)\) 是一个缩放因子,用于控制整体更新的强度。
  • \(\alpha \cdot \nabla_W L(W ; x, a)\) 表示对梯度信息的加权更新方向。
  • \(\beta\) 是一个偏置项,用于对更新提供额外的修正。

为了计算这些参数 \((\eta, \alpha, \beta)\),超网络需要对输入进行编码,并生成与目标权重矩阵 \(W\) 维度相匹配的参数。

计算过程

  1. 输入的编码

超网络的输入由以下部分组成:

  • 输入数据 \(x\),即需要修改预测的输入样本。
  • 当前模型对输入的预测 \(y\)
  • 目标预测值 \(a\),即希望模型对 \(x\) 的更新预测。

超网络首先将 \((x, y, a)\) 连接成一个输入序列,并通过一个 BiLSTM 网络进行编码。具体步骤为:

  • 将输入序列表示为嵌入向量(可能使用词向量或特征向量)。

  • 通过双向 LSTM(BiLSTM)处理,得到最后一个隐藏状态(hidden state)。

  • 将隐藏状态输入到一个前馈神经网络 (FFNN),得到一个条件向量 \(h\)

  1. 参数生成

基于编码向量 \(h\),超网络使用一系列前馈神经网络 (FFNN) 来生成更新参数:

  • 生成 \(\alpha\): 使用一个 FFNN,输入为 \(h\),输出一个向量 \(\alpha \in \mathbb{R}^m\),表示对梯度的加权系数。
  • 生成 \(\beta\): 使用另一个 FFNN,输入为 \(h\),输出一个向量 \(\beta \in \mathbb{R}^m\),表示更新的偏置项。
  • 生成 \(\eta\): 使用一个单独的 FFNN,输入为 \(h\),输出一个标量 \(\eta\),控制整体更新的幅度。这里 \(\eta\) 的范围通过 Sigmoid 激活函数限制在 [0,1]。

此外,为了进一步降低参数维度,作者对更新矩阵的生成进行了分解:

  1. \(\alpha\)\(\beta\) 的输出通过 Softmax 函数归一化,得到 \(\alpha^\prime\)\(\beta^\prime\)
  2. 最终更新矩阵 \(\Delta W\) 是上述参数的组合,具体公式为:

\[ \Delta W=\sigma(\eta) \cdot\left(\operatorname{Softmax}(\alpha) \cdot \nabla_W+\operatorname{Softmax}(\beta)\right) \]

5.5 边界退火策略

为了动态调整约束边界 m,本文采用了边界退火策略。在训练过程中,如果模型在验证集上的表现超过一定阈值(如 90%),则将边界 m 乘以一个衰减因子(如 0.8),直到达到一个较小的值。这种策略可以在保证模型收敛的同时,逐步收紧约束。

6. Evaluation

作者在以下任务上验证了 KNOWLEDGEEDITOR 的性能:

  1. 事实核查 (Fact-Checking): 使用 BERT 模型在 FEVER 数据集上评估二分类任务。
  2. 开放域问答 (Question Answering): 使用 BART 模型在 zsRE 数据集上评估生成任务。

评估指标:

  • 成功率 (Success Rate): 修改目标事实的准确率。
  • 保持准确率 (Retain Accuracy): 未修改输入的预测结果保持不变的准确率。
  • 等价输入一致性 (Equivalence Accuracy): 对等价输入的预测一致性。
  • 性能退化 (Performance Deterioration): 更新后模型在原任务上的整体性能下降程度。

实验结果:

  • KNOWLEDGEEDITOR 在所有指标上均表现优异,尤其是在保持准确率和等价输入一致性上,相较于传统微调方法有显著提升。

7. Conclusion

KNOWLEDGEEDITOR 提供了一种高效、通用的方法来编辑语言模型的隐式知识,同时最大限度地减少了对其他知识的影响。这项研究为 NLP 模型的动态知识更新提供了新思路。


论文笔记 - Editing Factual Knowledge in Language Models
http://hellochuanyang.github.io/2025/01/25/论文笔记-Editing-Factual-Knowledge-in-Language-Models/
作者
阿阳
发布于
2025年1月25日
许可协议