论文笔记 - 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
- 开发一种无需对原始模型进行特殊训练的知识编辑方法。
- 确保修改特定事实时保持其他知识的完整性。
- 保证对等价输入(如改写句)的预测结果一致。
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\) 的选择至关重要。本文提出了两种约束:
- 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)} \]
- 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\) 维度相匹配的参数。
计算过程
- 输入的编码
超网络的输入由以下部分组成:
- 输入数据 \(x\),即需要修改预测的输入样本。
- 当前模型对输入的预测 \(y\)。
- 目标预测值 \(a\),即希望模型对 \(x\) 的更新预测。
超网络首先将 \((x, y, a)\) 连接成一个输入序列,并通过一个 BiLSTM 网络进行编码。具体步骤为:
将输入序列表示为嵌入向量(可能使用词向量或特征向量)。
通过双向 LSTM(BiLSTM)处理,得到最后一个隐藏状态(hidden state)。
将隐藏状态输入到一个前馈神经网络 (FFNN),得到一个条件向量 \(h\)。
- 参数生成
基于编码向量 \(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]。
此外,为了进一步降低参数维度,作者对更新矩阵的生成进行了分解:
- \(\alpha\) 和 \(\beta\) 的输出通过 Softmax 函数归一化,得到 \(\alpha^\prime\) 和 \(\beta^\prime\)。
- 最终更新矩阵 \(\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 的性能:
- 事实核查 (Fact-Checking): 使用 BERT 模型在 FEVER 数据集上评估二分类任务。
- 开放域问答 (Question Answering): 使用 BART 模型在 zsRE 数据集上评估生成任务。
评估指标:
- 成功率 (Success Rate): 修改目标事实的准确率。
- 保持准确率 (Retain Accuracy): 未修改输入的预测结果保持不变的准确率。
- 等价输入一致性 (Equivalence Accuracy): 对等价输入的预测一致性。
- 性能退化 (Performance Deterioration): 更新后模型在原任务上的整体性能下降程度。
实验结果:
- KNOWLEDGEEDITOR 在所有指标上均表现优异,尤其是在保持准确率和等价输入一致性上,相较于传统微调方法有显著提升。
7. Conclusion
KNOWLEDGEEDITOR 提供了一种高效、通用的方法来编辑语言模型的隐式知识,同时最大限度地减少了对其他知识的影响。这项研究为 NLP 模型的动态知识更新提供了新思路。