欢迎光临散文网 会员登陆 & 注册

REALM:将检索集成到语言表示模型中

2021-09-13 22:42 作者:雨夜的博客  | 我要投稿

自然语言处理的最新进展在很大程度上建立在无监督预训练的能力之上,该预训练使用大量文本训练通用语言表示模型,无需人工注释或标签。这些预先训练好的模型,例如BERT和RoBERTa,已被证明能够记住惊人数量的世界知识,例如“ Francesco Bartolomeo Conti的出生地”、“ JDK的开发者”和“ Border TV的所有者””。虽然对知识进行编码的能力对于某些自然语言处理任务(例如问答、信息检索和文本生成)尤其重要,但这些模型会隐式地记忆知识——即,世界知识在模型权重中以抽象方式被捕获——这使得它变得困难以确定存储了哪些知识以及将其保存在模型中的位置。此外,存储空间以及模型的准确性受到网络大小的限制。为了获取更多的世界知识,标准做法是训练更大的网络,这可能会非常缓慢或昂贵。

相反,如果有一种可以显式访问知识的预训练方法,例如,通过引用额外的大型外部文本语料库,以便在不增加模型大小或复杂性的情况下获得准确结果,该怎么办?例如,在外部文档集合中发现的句子“Francesco Bartolomeo Conti 出生于佛罗伦萨”,可以被模型引用来确定音乐家的出生地,而不是依赖模型访问存储在其中的知识的不透明能力它自己的参数。检索包含此类显性知识的文本的能力将提高预训练的效率,同时使模型能够在不使用数十亿参数的情况下在知识密集型任务上表现良好。

在2020 年机器学习国际会议接受的“ REALM: Retrieval-Augmented Language Model Pre-Training ”中,我们分享了一种新的语言模型预训练范式,它用知识检索器增强了语言表示模型,允许 REALM 模型从原始文本文档中明确检索文本世界知识,而不是记住模型参数中的所有知识。我们还开源了REALM 代码库,以演示如何联合训练检索器和语言表示。

背景:预训练语言表示模型

要了解标准语言表示模型如何记忆世界知识,首先应该回顾这些模型是如何预训练的。自BERT发明以来,填空任务,称为掩码语言建模,已被广泛用于预训练语言表示模型。给定任何包含某些单词的文本,任务是填补缺失的单词。此任务的示例如下所示:

I am so thirsty. I need to __ water.

在预训练期间,模型将遍历大量示例并调整参数以预测丢失的单词(在上例中为 )。有趣的是,填空任务使模型记住关于世界的某些事实。例如,需要爱因斯坦出生地的知识来填补以下例子中的缺失词:

answer: drinkEinstein was a __-born scientist. (answer: German)

但是,由于模型捕获的世界知识存储在模型权重中,因此是抽象的,因此很难理解存储了哪些信息。

我们的建议:检索增强语言表示模型预训练

与标准语言表示模型相比,REALM 使用知识检索器增强语言表示模型,该知识检索器首先从外部文档集合中检索另一段文本作为支持知识——在我们的实验中,我们使用维基百科文本语料库——然后将这些支持文本以及原始文本输入到语言表示模型中。

REALM 的关键直觉是检索系统应该提高模型填充缺失词的能力。因此,应该奖励为填充缺失词提供更多上下文的检索。如果检索到的信息不能帮助模型做出预测,则不应鼓励它,为更好的检索留出空间。

鉴于在预训练期间只有未标记的文本可用,如何训练知识检索器?事实证明,可以使用填充单词的任务来间接训练知识检索器,无需任何人工注释。假设查询的输入是:

We paid twenty __ at the Buckingham Palace gift shop.

在不检索的情况下 填充这句话中的缺失词 ( ) 可能会很棘手,因为该模型需要隐式存储白金汉宫所在国家和相关货币的知识,并在两者之间建立联系。如果模型提供了一个明确连接一些从外部语料库检索到的必要知识的段落,则模型会更容易填充缺失的单词。

answer:pounds

在这个例子中,检索者将因检索以下句子而获得奖励。

Buckingham Palace is the London residence of the British monarchy.

由于检索步骤需要添加更多的上下文,因此可能有多个检索目标可以帮助填补缺失的单词,例如,“ The official currency of the United Kingdom is the Pound.”整个过程如下图所示:

REALM 的计算挑战

扩展 REALM 预训练以便模型可以从数百万个文档中检索知识具有挑战性。在 REALM 中,最佳文档的选择被表述为最大内积搜索(MIPS)。为了执行检索,MIPS 模型需要首先对集合中的所有文档进行编码,使得每个文档都有一个对应的文档向量。当输入到达时,它被编码为查询向量。在MIPS中,给定一个查询,检索集合中其文档向量和查询向量之间具有最大内积值的文档,如下图所示:

在 REALM 中,我们使用ScaNN包有效地进行 MIPS,这使得寻找最大内积值的成本相对较低,因为文档向量是预先计算的。但是,如果模型参数在训练期间更新,通常需要为整个文档集合重新编码文档向量。为了解决计算挑战,我们构建了检索器,以便可以缓存和异步更新为每个文档执行的计算。我们还发现,每 500 个训练步骤而不是每一步更新文档向量能够取得良好的性能并使训练易于处理。

将 REALM 应用于开放域问答

我们通过将 REALM 应用于开放域问答(Open-QA)(自然语言处理中知识密集程度最高的任务之一)来评估 REALM 的有效性。任务的目标是回答问题,例如“等边三角形的角度是多少?”

在标准问答任务(例如 SQuAD或Natural Questions)中,支持文档作为输入的一部分提供,因此模型只需要在给定文档中查找答案。在 Open-QA 中,没有给定的文档,因此 Open-QA 模型需要自己查找知识——这使得 Open-QA 成为检查 REALM 有效性的一项极好的任务。

下图显示了在Natural Question的 OpenQA 版本上的结果。我们主要将我们的结果与T5进行比较,T5是另一种在没有带注释的支持文档的情况下训练模型的方法。从图中可以清楚地看到,REALM 预训练生成了非常强大的 Open-QA 模型,甚至比更大的 T5(11B)模型强了近 4 个百分点,仅使用了一小部分参数(300M)。

结论

REALM 的发布有助于推动开发端到端检索增强模型的兴趣,包括最近的检索增强生成模型。我们期待以多种方式扩展这一工作线的可能性,包括 1) 将类似 REALM 的方法应用于需要知识密集型推理和可解释来源的新应用程序(超越 Open-QA),以及 2) 探索检索其他形式的知识,例如图像、知识图结构,甚至其他语言的文本。我们也很高兴看到研究社区对开源REALM 代码库做了什么!


更新说明:优先更新微信公众号“雨夜的博客”,后更新博客,之后才会陆续分发到各个平台,如果先提前了解更多,请关注微信公众号“雨夜的博客”。

REALM:将检索集成到语言表示模型中的评论 (共 条)

分享到微博请遵守国家法律