预训练语言模型虽然在各种NLP任务上展现了不俗的能力,但一个很现实的问题是:它们从大规模语料中习得的知识终究是有限的,而且常常受困于训练数据的长尾分布,实际场景中的稳定性和鲁棒性并不理想。如何系统性地把外部知识注入到这些模型中,已经成了一个相当热门的研究方向。这里我们围绕三篇代表性的工作展开,分别对应知识向量、知识检索和知识监督这三种不同的注入策略。
文章概览
KLMo:建模细粒度关系的知识图增强预训练语言模型
这篇文章的核心思路,是在语言模型学习的过程中同时引入知识图谱里的实体和它们之间的关系。通过一个专门的知识聚合器,让文本中的实体片段与图谱中的实体、关系向量充分交互,从而把结构化信息融入到文本表示里。为了做到这一点,还设计了关系预测和实体链接两个预训练任务,作为整合知识的桥梁。
基于知识图谱合成语料库生成的知识增强语言模型预训练
检索型语言模型通常依赖外部文本语料库来获取知识。这篇工作的关键创新在于,不满足于仅使用自然文本,而是尝试把知识图谱直接转换成自然语言文本,以此来扩充检索语料库。这样一来,结构化的知识就能无缝地嵌入到现有的语言预训练流程中。
ERICA:通过对比学习增强预训练语言模型对实体和关系的理解
这项研究聚焦于对文本中的关系事实进行建模。它通过实体判别和关系判别两个预训练任务,用一种知识监督的方式,迫使模型加深对实体和关系语义的理解。整个框架建立在对比学习之上,目标清晰且有效。
论文细节
1. KLMo:给语言模型装上知识图谱的“关系雷达”
论文动机
在KLMo之前,类似ERNIE-THU这样的知识增强模型虽然已经取得了不错的进展,但它们的视角大多局限在实体本身,而忽略了实体之间那些细粒度的关系。这其实是一个不小的遗憾——关系信息对于语言理解的意义不言而喻。举个例子,在知识图谱里,“幸福三重奏”这个实体的类别预测,很大程度上就依赖于它与其他实体之间的连接关系。
要把图谱里的实体和关系同时整合进语言模型,最大的拦路虎是文本与知识之间的对齐问题。为此,KLMo提出了一个专门的知识聚合器,通过它来建模文本中的实体提及与知识图谱中实体和关系向量之间的交互,让文本中的每个token都能关注到与自己最相关的图谱知识。
模型架构
整体上KLMo延续了ERNIE-THU的骨架。文本序列首先经过一个文本编码器,然后被送入知识聚合器。在这里,实体和关系的知识向量被动态地融入到文本序列中。最后,通过关系预测和实体链接两个预训练目标的联合优化,模型的文本表示中便包含了高度相关的知识图谱信息。
(图片:KLMo整体模型结构图)
知识聚合器
这个模块包含两个并行的注意力机制:一个是常规的token级自注意力,另一个是专门用于知识图谱的图注意力。聚合器的核心在于实体级别的交叉知识图谱注意力——它把文本中的实体片段表示作为查询,去知识图谱的实体和关系表示中检索最相关的信息,从而输出知识增强的实体表示。最后,通过一个门控融合操作,把这些增强后的实体表示注入回文本序列,再送进下一层。
预训练目标
除了标准的掩码语言模型损失,KLMo还引入了关系预测和实体链接两项损失。关系预测任务要求模型正确预测给定头尾实体之间的关系类型;实体链接任务则负责将文本中的实体提及与知识图谱中的具体实体对应起来。三者联合训练,保证了知识信息被充分注入。
实验效果
模型在百度百科数据及其配套的百科知识图谱上完成了预训练,并在实体分类和关系分类两个中文数据集上进行了评估。结果表明,细粒度的关系信息确实帮助KLMo在实体和关系类别的预测上做得更准。
(图片:实体分类与关系分类实验结果对比)
(图片:消融实验结果)
2. 把知识图谱变成语言模型能读懂的自然语言
论文动机
检索型的预训练语言模型虽然厉害,但它们通常只能从纯文本语料中检索知识。这就带来了两个问题:一是纯文本能覆盖的世界知识有限,尤其是那些结构化的关系信息;二是文本质量的波动会影响模型的表现,而知识图谱的表述不仅精确而且明确。让结构化知识与语言模型无缝结合,是这篇文章试图解决的核心问题。
解决方案很直接——把英文维基百科知识图谱里的三元组,转化成自然语言文本,以此扩充REALM的检索知识语料库。
(图片:知识图谱文本化示意图)
模型:TEKGEN与KELM语料库
首先,研究人员构建了一个端到端的知识图谱文本化生成器TEKGEN。流程上,先用远程监督方法对齐维基百科文本和知识图谱三元组,然后用T5模型在这个对齐数据上微调,目的是提升实体和关系的覆盖率。接着,在WebNLG标准语料库上做少量步骤的训练,以修正可能出现的错误。最后,通过微调一个BERT过滤器,对生成文本的语义质量进行打分,确保生成的文本准确表达了原始三元组的信息。
有了TEKGEN,就可以批量构建合成知识检索数据集KELM了。具体做法是,基于Wikidata到维基百科的对齐关系,为每个实体构建子图,然后将子图中的三元组送入TEKGEN,生成对应的自然语言文本。
知识增强的语言模型
最终的预训练采用REALM的框架。训练过程中,除了预测掩码词,模型还会从检索语料库中抽取一个相关知识文本,帮助自己联合预测被掩盖的单词。而KELM语料库就用来替换或扩充原本的纯文本检索库,从而让模型直接接触到结构化的知识。
(图片:REALM + KELM预训练流程)
实验验证
在知识探测和开放域问答两项任务上,作者对比了三种检索语料设定:纯维基百科文本(ORIGINAL)、仅使用KELM(REPLACED)以及两者混合(AUGMENTED)。结果显示,无论是替换还是扩充,KELM都能带来稳定的性能提升。更进一步的实验表明,直接使用原始的三元组远不如使用文本化后的KELM效果好——这直接证实了结构化知识文本化的价值。
(图片:LAMA知识探测实验对比)
(图片:开放域QA实验对比)
3. ERICA:用对比学习让模型真正理解关系和实体
论文动机
这篇工作的出发点同样是对文本中的关系事实进行建模,但它的野心更大——不仅要建模句子内部的关系,还要捕捉跨句子的关系链条。它提出了一个基于对比学习的框架ERICA,通过两个预训练任务来全面学习实体与关系之间的交互:一个是实体判别,即给定头实体和关系,判断哪个尾实体是正确的;另一个是关系判别,即判断两个关系是否语义相似。
模型设计
ERICA利用无监督数据和外部知识图谱构建远程监督信号。给定一个段落,模型枚举出所有实体以及它们之间可能存在的关系,构建对比学习所需的正样本集。
在表示层面,模型先通过预训练语言模型对文本进行编码,然后对提及相同实体的连续token做均值池化,得到实体表示。如果同一实体在文本中间出现多次,则取各次表示的平均值。关系表示则由首尾实体的表示组合而成。
实体判别任务
从正样本集中选取一个三元组(头实体、关系、尾实体),通过对比学习,让正确的尾实体表示与头实体表示的距离,要显著近于文本中其他实体与头实体的距离。
关系判别任务
这个任务的目标是衡量两个关系是否语义相似。关键是,它既考虑句子内也考虑跨句子的关系,从而使模型能隐式地捕捉到更复杂的关系链条。具体做法是通过对比学习,确保语义相同的关系(由实体对计算得到)在表示空间中更靠近。
实验效果
ERICA在BERT和RoBERTa上都进行了增强训练。远程监督数据来自英文维基百科和Wikidata。在关系抽取、实体分类和问题回答三个任务上的评估显示,ERICA都能带来稳定且显著的提升。
(图片:关系抽取实验结果)
(图片:实体分类实验结果)
(图片:问答任务实验结果)
总结
三篇工作分别从三个不同的角度切入知识增强这个命题:第一篇通过知识聚合器显式地将知识图谱的实体和关系向量融入模型;第二篇将结构化知识转化为自然文本,从而无缝接入检索型框架;第三篇则通过对比学习,以知识监督的方式让模型在预训练阶段就学会建模关系事实。它们各自有各自的看家本领,但共同指向一个方向:让语言模型不再只是“模模糊糊”地猜答案,而是能够真正、有依据地调用知识。
