知识引导的自然语言处理:方法与应用
立即解锁
发布时间: 2025-09-03 02:02:01 阅读量: 20 订阅数: 44 AIGC 


自然语言处理的表示学习
### 知识引导的自然语言处理:方法与应用
自然语言处理(NLP)模型的性能取决于四个关键因素:输入数据、模型架构、学习目标和假设空间。其总体目标是最小化结构风险,公式如下:
\[
\min_{f \in \mathcal{F}} \frac{1}{N} \sum_{i = 1}^{N} \mathcal{L}(y_i, f(x_i)) + \lambda \mathcal{J}(f)
\]
其中,$x_i$ 是输入数据,$f$ 是模型函数,$\mathcal{L}$ 是学习目标,$\mathcal{F}$ 是假设空间,$\mathcal{J}(f)$ 是正则化项。通过将知识应用于这四个因素,我们可以形成四个方向来进行知识引导的 NLP:
1. **知识增强**:旨在用知识增强输入数据 $x_i$。
2. **知识重构**:旨在用知识重构模型函数 $f$。
3. **知识正则化**:旨在用知识正则化或修改学习目标 $\mathcal{L}$。
4. **知识迁移**:旨在将预训练参数作为先验知识来约束假设空间 $\mathcal{F}$。
下面我们将详细介绍知识增强和知识重构这两个方向。
#### 知识增强
知识增强的目标是使用知识来增强模型的输入特征。在使用知识 $k$ 增强输入后,原始风险函数变为:
\[
\min_{f \in \mathcal{F}} \frac{1}{N} \sum_{i = 1}^{N} \mathcal{L}(y_i, f(x_i, k)) + \lambda \mathcal{J}(f)
\]
为了在输入级别实现这种知识增强,现有工作主要采用两种主流方法:
##### 知识上下文增强
这种方法是将知识直接作为额外的上下文添加到输入中。以检索增强语言建模为例,如 REALM 和 RAG,它们从额外的语料库中检索背景知识,然后使用检索到的知识为语言建模提供更多信息。由于检索到的知识可以显著提高语言理解和生成的性能,这种方法在问答系统和对话系统中得到了广泛应用。
以 RAG 为例,介绍如何使用知识上下文进行知识增强。近年来,预训练模型(PTMs)在各种 NLP 任务中取得了最先进的结果,但这些 PTMs 在精确访问和操作知识方面仍面临挑战,尤其是在处理需要大量知识的文本生成任务时。为了帮助 PTMs 利用更多知识进行文本生成,提出了检索增强生成(RAG)方法,其目标是使用检索到的外部知识作为额外的上下文来生成更高质量的文本。
给定输入序列 $x$ 以生成输出序列 $y$,典型的自回归生成方法的整体过程可以形式化为:
\[
P(y|x) = \prod_{i = 1}^{N} P_{\theta}(y_i|x, y_{1:i - 1})
\]
其中,$\theta$ 是生成器的参数,$N$ 是 $y$ 的长度,$y_i$ 是 $y$ 的第 $i$ 个标记。为了使用更多知识来生成 $y$,RAG 首先根据输入 $x$ 检索外部信息 $z$,然后基于 $x$ 和 $z$ 生成输出序列 $y$。为了确保检索到的内容能够覆盖生成 $y$ 所需的关键知识,检索器检索到的前 $K$ 个内容都用于帮助生成输出序列 $y$,因此整体生成过程为:
\[
P_{RAG - Sequence}(y|x) \approx \sum_{z \in top - K[P_{\eta}(\cdot|x)]} P_{\eta}(z|x) P_{\theta}(y|x, z) = \sum_{z \in top - K[P_{\eta}(\cdot|x)]} P_{\eta}(z|x) \prod_{i = 1}^{N} P_{\theta}(y_i|x, z, y_{1:i - 1})
\]
其中,$\eta$ 是检索器的参数。
除了在序列级别应用知识增强外,还引入了标记级别的 RAG 以提供更细粒度的增强。具体来说,标记级别的 RAG 首先根据输入 $x$ 检索前 $K$ 个外部信息,与 RAG - Sequence 相同。在生成文本时,标记级别的 RAG 会综合考虑所有检索到的信息来生成下一个输出标记的分布,而不是像序列级别的 RAG 那样分别基于检索到的内容生成序列,然后合并生成的序列。形式上,标记级别的 RAG 为:
\[
P_{RAG - Token}(y|x) \approx \prod_{i = 1}^{N} \sum_{z \in top - K[P(\cdot|x)]} P_{\eta}(z|x) P_{\theta}(y_i|x, z, y_{1:i - 1})
\]
综上所述,RAG 将检索到的知识作为额外的上下文添加到输入中,是使用知识上下文进行知识增强的典型示例。
##### 知识嵌入增强
另一种方法是设计特殊的模块来融合原始输入特征和知识嵌入,然后使用包含知识的特征作为输入来解决 NLP 任务。由于这种方法可以帮助充分利用来自多个来源的异构知识,许多工作采用这种方法来集成知识图谱(KGs)中的非结构化文本和结构化符号知识,从而实现知识引导的信息检索和知识引导的 PTMs。
下面以信息检索为例,介绍如何使用知识嵌入进行知识增强。信息检索的重点是获取查询和文档的信息表示,然后设计有效的度量来计算查询和文档之间的相似度。大规模 KGs 的出现推动了面向实体的信息检索的发展,其目标是利用 KGs 来改进检索过程。
**词 - 实体对偶** 是一种典型的面向实体的信息检索方法。具体来说,给定查询 $q$ 和文档 $d$,词 - 实体对偶首先构建词袋 $q^w$ 和 $d^w$。通过对查询 $q$ 和文档 $d$ 中提到的实体进行标注,词 - 实体对偶然后构建实体袋 $q^e$ 和 $d^e$。基于词袋和实体袋,词 - 实体对偶利用词袋和实体袋的对偶表示来匹配查询 $q$ 和文档 $d$。词 - 实体对偶方法包括四种交互方式:查询词到文档词($q^w - d^w$)、查询词到文档实体($q^w - d^e$)、查询实体到文档词($q^e - d^w$)和查询实体到文档实体($q^e - d^e$)。
在词 - 实体对偶方法的基础上,EDRM 进一步使用分布式表示而不是词袋和实体袋来表示查询和文档进行排序。EDRM 首先根据 KGs 中与实体相关的信息(如实体描述和实体类型)学习实体的分布式表示。然后,EDRM 使用基于交互的神经模型来匹配具有词 - 实体对偶分布式表示的查询和文档。具
0
0
复制全文
相关推荐









