论文:Scalable Zero-shot Entity Linking with Dense Entity Retrieval翻译笔记(实体链接)

本文主要是介绍论文:Scalable Zero-shot Entity Linking with Dense Entity Retrieval翻译笔记(实体链接),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 论文标题:通过密集实体检索实现可扩展的零镜头实体链接
  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 定义和任务制定
  • 4 方法
    • 4.1 双编码器
    • 4.2 交叉编码器
    • 4.3 知识蒸馏
  • 5 实验
    • 5.1 数据集
    • 5.2 评估设置和结果
      • 5.2.1 零点实体链接
      • 5.2.2 tackbp-2010
      • 5.2.3 WikilinksNED Unseen-Mentions
    • 5.3 知识蒸馏
  • 6 定性分析
  • 7 结论
  • A 训练细节和超参数优化
    • A.1 使用维基百科数据进行训练
    • A.2 零镜头实体链接数据集
    • A.3 TACKBP-2010 数据集
    • A.4 WikilinksNED 未见提及数据集


在这里插入图片描述

论文标题:通过密集实体检索实现可扩展的零镜头实体链接

论文链接:https://arxiv.org/abs/1911.03814
arXiv:1911.03814v3 [cs.CL] 29 Sep 2020

摘要

本文介绍了一种概念简单、可扩展、高效的基于 BERT 的实体链接模型,并对其准确性-速度权衡进行了广泛评估。我们提出了一种两阶段零镜头链接算法,其中每个实体仅由简短的文字描述定义。第一阶段在双编码器定义的密集空间中进行检索,该编码器独立嵌入了提及上下文和实体描述。然后,使用交叉编码器对每个候选关键词进行重新排序,该编码器将提及和实体文本串联起来。实验表明,尽管这种方法相对简单(例如,没有明确的实体嵌入或人工设计的提及表),但在最近的零点测试基准(绝对收益为 6 分)和更成熟的非零点测试评估(如 TACKBP-2010)中,这种方法是最先进的。我们还证明,使用近邻搜索,双编码器链接速度非常快(例如,在 2 毫秒内链接 590 万个候选词),而且通过知识提炼,可以将较昂贵的交叉编码器获得的大部分准确率提升转移到双编码器上。我们的代码和模型见https://github.com/facebookresearch/BLINK 。

1 引言

规模是实体链接的一个关键挑战;每次提及都有数百万个可能的实体需要考虑。为了对候选实体进行有效过滤或排序,现有方法使用了不同来源的外部信息,包括人工策划的提及表(Ganea 和 Hofmann,2017 年)、传入维基百科链接流行度(Yamada 等人,2016 年)和黄金维基百科实体类别(Gillick 等人,2019 年)。在本文中,我们展示了基于 BERT 的模型在 "零镜头 "设置(没有外部知识,简短的文字描述提供了我们所掌握的每个实体的唯一信息)中使用时,为大规模实体链接设定了新的一流性能水平。我们还对大型预训练模型固有的准确性-速度权衡进行了广泛评估,结果表明,在准确性损失不大的情况下,可以实现非常高效的链接。

更具体地说,我们在微调 BERT 架构(Devlin 等人,2019 年)的基础上,引入了一种两阶段的零镜头链接方法(概览见图 1)。在第一阶段,我们在双编码器定义的密集空间中进行检索,该编码器独立嵌入了提及上下文和实体描述(Humeau 等人,2019;Gillick 等人,2019)。然后,按照 Logeswaran 等人(2019 年)的做法,使用交叉编码器将提及文本和实体文本串联起来,对检索到的每个候选文本进行更仔细的检查。正如我们通过详细实验所展示的,这种整体方法概念简单,但非常有效。
在这里插入图片描述

图 1:零镜头实体链接解决方案的高层描述。从左上方开始,输入在所有实体表征所在的同一密集空间中进行编码。然后执行近邻搜索(蓝色圆圈表示),检索出 k 个实体并将其提供给交叉编码器。

我们的两阶段方法在 TACKBP-2010 上取得了新的一流成果,相对误差减少了 30% 以上。只需阅读所提供的文本描述,我们就能超越以往包含实体名称字典和链接流行度等许多额外线索的方法。我们还改进了现有零镜头基准的技术水平,包括在最近推出的维基亚语料库(Logeswaran 等人,2019 年)上获得了近 6 分的绝对收益,在维基链接 NED UnseenMentions(Onoe 和 Durrett,2019 年)上获得了超过 7 分的绝对收益。

最后,我们对双编码器和交叉编码器模型固有的准确率-速度权衡进行了广泛评估。我们表明,通过与 TACKBP-2010 的全部 590 万个维基百科实体建立链接,两阶段方法在全维基百科环境中扩展良好,同时在候选集更小的情况下仍优于现有模型。我们还表明,通过近似近邻搜索,双编码器链接速度非常快(例如,在 2 毫秒内链接超过 590 万个候选实体),而且通过知识提炼,可以将成本较高的交叉编码器获得的大部分准确率提升转移到双编码器上。我们发布了我们的代码和模型,以及一个将实体提及链接到所有维基百科的系统(类似于 TagME(Ferragina 和 Scaiella,2011 年))。

2 相关工作

实体链接任务可分为两个步骤:候选生成和排序。先前的工作使用频率信息、别名表和基于 TF-IDF 的方法生成候选实体。在候选排序方面,He 等人(2013 年)、Sun 等人(2015 年)、Yamada 等人(2016 年)、Ganea 和 Hofmann(2017 年)以及 Kolitsas 等人(2018 年)使用神经网络对上下文词、跨度和实体建模,取得了最先进的结果。最近也有研究表明,细粒度的实体类型信息有助于链接(Raiman 和 Raiman,2018 年;Onoe 和 Durrett,2019 年;Khalife 和 Vazirgiannis,2018 年)。

最近的两项成果与我们的工作关系最为密切。Logeswaran 等人(2019)提出了零镜头实体链接任务。他们使用交叉编码器进行实体排序,但依赖传统的红外技术生成候选实体,而且没有在 TACKBP 等大规模基准上进行评估。Gillick等人(2019)的研究表明,密集嵌入对候选实体的生成效果很好,但他们没有进行预训练,而且在双编码器架构中加入了外部类别标签,从而限制了他们对维基百科中实体的链接。我们的方法可以看作是对这两项工作的概括,并首次证明了预训练的零点架构既具有高准确性,又具有规模计算的高效性。

Humeau 等人(2019)研究了使用深度预训练双向变换器的不同架构,并对对话中句子选择任务的三种不同架构(即双编码器、多编码器和交叉编码器)进行了详细比较。受他们工作的启发,我们在实体链接问题上使用了类似的架构,并证明双编码器可以成为一个强大的检索模型。我们建议从交叉编码器模型中提取知识(Buciluundefined 等人,2006;Hinton 等人,2015)来训练双编码器模型,以进一步提高双编码器的性能,而不是使用多编码器来权衡交叉编码器和双编码器。

3 定义和任务制定

实体链接 给定一个输入文本文档 D = {w1, …, wr} 和一个实体提及列表 MD = {m1, …, mn},实体链接模型的输出是一个提及-实体对列表 {(mi, ei)}i∈[1,n] ,其中每个实体都是知识库(KB)(如维基百科)中的一个条目。 我们假设实体的标题和描述是可用的,这是实体链接的常见设置(Ganea 和 Hofmann, 2017; Logeswaran et al、 2019). 我们还假设每个提及在知识库中都有一个有效的黄金实体,这通常被称为知识库内评估。我们将 KB 外预测(即无预测)留待以后的工作中处理。

零点实体链接 我们还研究了零次实体链接(Logeswaran et al.) 这里的文档设置是一样的,但知识库在训练和测试时是分开的。我们要求 Etrain ∩ Etest = ∅。文本文档集、提及和实体字典在训练和测试中是分开的,因此测试时被链接的实体是未见的。

4 方法

图 1 显示了我们的整体方法。双编码器使用两个独立的 BERT 变换器将模型上下文/提及和实体编码成密集向量,每个候选实体的得分是这些向量的点积。然后,双编码器检索到的候选实体将被传递给交叉编码器进行排序。交叉编码器在一个转换器中对上下文/提及和实体进行编码,并应用额外的线性层来计算每一对的最终得分。

4.1 双编码器

架构 我们使用与 Humeau 等人(2019)的工作类似的双编码器架构对(提及、实体)对进行建模。这种方法可以快速、实时地进行推理,因为候选表征可以缓存。输入上下文和候选实体都被编码成向量:
在这里插入图片描述
其中,τm 和 τe 分别是提及和实体的输入表示,T1 和 T2 是两个变换器。red(.) 是将变换器产生的向量序列还原为一个向量的函数。根据 Humeau 等人(2019)的实验,我们选择 red(.) 作为 [CLS] 标记输出的最后一层。

语境和提及建模 上下文和提及 τm 的表示由围绕提及的上下文词片和提及本身组成。具体来说,我们将每个提及示例的输入构建为:
[CLS] ctxtl [Ms] mention [Me] ctxtr [SEP]
其中 mention、ctxtl、ctxtr分别为提及的词块标记、提及前后的语境,[Ms]、[Me] 为标记提及的特殊标记。输入表示的最大长度是我们模型中的一个超参数,我们发现 32 这样的小值在实践中效果很好(见附录 A)。

实体建模 实体表征 τe 也是由实体标题和描述(对于维基百科实体,我们使用前十句作为描述)的单词片段组成。实体模型的输入是:
[CLS] 标题 [ENT] 描述 [SEP]
其中,title、description 是实体标题和描述的词块标记,[ENT] 是一个特殊标记,用于区分实体标题和描述。

评分 候选实体 ei 的得分由点积给出:
在这里插入图片描述
优化 训练网络的目的是最大化正确实体相对于同批实体(随机抽样)的得分(Lerer 等人,2019;Humeau 等人,2019)。具体来说,对于一批 B 对中的每个训练对(mi, ei),损失的计算公式为:
在这里插入图片描述
Lerer 等人(2019)详细分析了在大规模系统中使用批量随机底片的速度和内存效率。除了批内否定词,我们还效仿 Gillick 等人(2019)的做法,在训练中使用硬否定词。硬否定是通过查找每个训练示例的前 10 个预测实体获得的。我们将这些额外的硬否定词添加到随机批内否定词中。

推理 在推理时,可以预先计算和缓存所有候选实体的实体表示。这样,推理任务就简化为寻找提及表示和候选实体表示之间的最大点积。在第 5.2.3 节中,我们将介绍在大规模环境中使用 FAISS(Johnson 等,2019 年)进行精确和近似近邻搜索的效率/准确性权衡。

4.2 交叉编码器

我们的交叉编码器与 Logeswaran 等人(2019)和 Humeau 等人(2019)描述的编码器类似。输入是输入上下文和提及表征与第 4.1 节所述实体表征的连接(我们从实体表征中去掉了 [CLS] 标记)。这样,模型就可以对上下文和实体描述进行深度交叉关注。形式上,我们使用 ym,e 来表示我们的上下文候选嵌入:
在这里插入图片描述

其中,τm,e 是提及和实体的输入表示,Tcross 是转换器,red(.) 与第 4.1 节中定义的函数相同。

评分 为给候选实体评分,对嵌入 ym,e 应用线性层 W:
在这里插入图片描述

优化 与第 4.1 节中的方法类似,在给定一组候选实体的情况下,使用 softmax loss 对网络进行训练,以最大化正确实体的 scross(mi,ei)(与公式 4 相同)。

由于交叉编码器占用较大的内存和计算空间,我们在重新排序阶段使用交叉编码器,对使用双编码器检索到的一小部分(≤ 100)候选实体进行排序。交叉编码器不适合检索或需要快速推理的任务。

4.3 知识蒸馏

为了更好地优化准确性与速度之间的权衡,我们还报告了使用交叉编码器作为双编码器模型的教师的知识蒸馏实验。我们效仿 Hinton 等人(2015)的做法,使用带温度的 softmax,其中目标分布基于交叉编码器对数。

具体来说,假设 z 是实体候选集的对数向量,T 是温度,σ(z, T) 是实体的(经过调节的)分布,其中
在这里插入图片描述

那么,包含蒸馏损失和学生损失的总体损失函数计算公式为
在这里插入图片描述

其中,e 是黄金实体概率为 1 的地面真实标签分布,H 是交叉熵损失函数,α 是混合蒸馏和学生损失 Lst 的系数。学生 logits zs 是双编码器评分函数 s(m,ei)的输出,教师 logits 是交叉编码器评分函数 scross(m,e)的输出。

5 实验

在本节中,我们将在三个具有挑战性的数据集上对我们的模型进行实证研究。

5.1 数据集

零镜头 EL 数据集 任务是在一组领域中,将文本中的实体提及链接到提供实体描述的实体字典。训练集、验证集和测试集中分别有 49K、10K 和 10K 个示例。验证集和测试集中的实体与训练集来自不同的领域,因此可以对完全未见过的实体进行性能评估。实体词典涵盖不同领域,实体数量从 10K 到 100K 不等。

TACKBP-2010 根据之前的工作,我们测量了 KB 内的准确率 (P@1)。在训练和评估数据集上,分别有 1,074 和 1,020 个注释的提及/实体对,它们来自 1,453 和 2,231 个原始新闻和网络文档。所有实体均来自 TAC 参考知识库,该知识库包含 818,741 个实体以及标题、描述和其他元信息。
在这里插入图片描述

表 1: BM25 方法和基于密集空间双编码器的检索方法在零镜头 EL 数据集上的 Recall@64 (%)。报告了训练/验证/测试集的结果。

WikilinksNED Unseen-Mentions 是由 Onoe 和 Durrett(2019 年)根据原始 WikilinksNED 数据集(Eshel 等人,2017 年)创建的,该数据集包含跨多个领域的各种模糊实体。在 "未见提及 "版本中,验证集和测试集中的任何提及都不会出现在训练集中。训练集、验证集和测试集分别包含 220 万、1 万和 1 万个示例。在这种情况下,"未见提及 "的定义与 "零镜头实体链接 "的定义不同:测试集中的实体可以在训练集中看到。但是,在这两种定义中,测试集中的(提及、实体)对都不会在训练集中出现。在未见提及测试集中,约有 25% 的实体出现在训练集中。

5.2 评估设置和结果

我们使用 BERT-base 和 BERT-large(Devlin 等人,2019 年)对我们的双编码器和交叉编码器进行了实验。有关训练基础设施和超参数的详细信息,请参见附录 A。所有模型都在 PyTorch 中实现,并使用 Adam(Kingma 和 Ba,2014 年)进行优化。我们使用(base)和(large)来表示模型的版本,其中底层预训练变换器模型分别为 BERT-base 和 BERT-large。

5.2.1 零点实体链接

首先,我们在训练集上训练双编码器,用预先训练好的 BERT 基对每个编码器进行初始化。超参数的选择基于验证数据集上的 Recall@64。具体细节见附录 A.2。如图 2 所示,我们的双编码器的召回率远远高于 BM25。按照 Lo-geswaran 等人(2019)的做法,我们使用检索到的前 64 个候选词作为排名器,并在表 1 中报告了训练、验证和测试的 Recall@64。
在这里插入图片描述

图 2:在零拍 EL 数据集验证数据集上的 Top-k 实体检索召回率

在训练双编码器生成候选结果后,我们在训练集上每个样本的双编码器检索到的前 64 个候选结果上训练交叉编码器(用预训练的 BERT 初始化),并在测试数据集上评估交叉编码器。如表 2 所示,总体而言,我们能够获得更好的端到端准确率,这主要归功于检索阶段的改进。

在这里插入图片描述

表 2:Zero-shot EL 数据集测试域的性能。U.Acc. 表示非规范化准确率。† 表示在源域和目标域上经过域自适应预训练的模型。通过宏观平均计算出一组世界的平均性能。

我们还在表 3 中报告了交叉编码器在 Lo-geswaran 等人(2019 年)使用的相同检索方法(BM25)上的性能,其中的性能是在测试实例子集上评估的,对于这些子集,黄金实体是 BM25 检索出的前 64 个候选实体之一。我们注意到,我们的交叉编码器比 Logeswaran 等人(2019)报告的结果略好,这可能是由于实现和超参数细节造成的。
在这里插入图片描述

表 3:在验证集和测试集上的归一化准确率(Zero-shot EL),其中对性能的评估是在测试实例子集上进行的,对于这些子集,候选实体是在候选实体生成过程中检索到的前 k 个候选实体之一。† 表示 Logeswaran 等人(2019 年)重新实现的方法。

5.2.2 tackbp-2010

根据之前的工作(Sun 等人,2015;Cao 等人,2018;Gillick 等人,2019;Onoe 和 Durrett,2019),我们在维基百科数据上对模型进行了预训练。数据和模型训练详情见附录 A.1。

在维基百科上训练完模型后,我们在 TACKBP-2010 训练数据集上对模型进行微调。我们使用双编码器检索到的前 100 个候选词作为交叉编码器的训练示例,并根据交叉验证选择超参数。我们在表 4 中报告了准确率结果。对于消融研究,我们还报告了以下版本的模型:

  1. 仅使用双编码器:我们使用双编码器代替交叉编码器进行候选者排序。
  2. 全维基百科:我们使用 590 万篇维基百科文章作为实体知识库,而不是 TACKBP 参考知识库。
  3. 未进行微调的全维基百科:同上,未在 TACKBP-2010 训练集上进行微调。
    在这里插入图片描述

表 4:我们提出的模型和之前在 TACKBP-2010 上研究的模型的准确度得分。† 表示对文档中所有提及进行全局解析的方法。我们的工作侧重于局部解析,即对每个提及进行独立建模。

不出所料,交叉编码器在排名方面的表现优于双编码器。不过,这两个模型的性能都超过了最先进的水平,这表明整体方法非常有效。我们注意到,当我们将底层知识库更改为完整维基百科时,甚至在不对数据集进行微调的情况下,我们的模型也表现出色。表 5 显示,当底层知识库为完整维基百科时,我们的双编码器模型在检索相关实体方面非常有效。
在这里插入图片描述

表 5:TACKBP-2010 的检索评估比较。† 表示由(Gillick 等人,2019 年)实现的别名表和 BM25 基线。AT-Prior:按先验概率排序的别名表;AT-Ext:使用启发式方法扩展的别名表。

不过,在未来的工作中,我们还可以添加许多其他线索。例如,Khalife 和 Vazirgiannis(2018 年)在 TACKBP-2010 数据集上报告了 94.57% 的精确度。不过,他们的方法基于一个强有力的假设,即每次提及都有一个黄金细粒度实体类型(他们并没有尝试进行实体类型预测)。事实上,如果细粒度实体类型信息是在测试时由甲骨文给出的,那么 Raiman 和 Raiman(2018)在 TACKBP-2010 上的准确率为 98.6%,这表明改进细粒度实体类型预测很可能会改善实体链接。我们的结果是在没有黄金细粒度实体类型信息的情况下取得的。相反,我们的模型仅根据文本学习上下文、提及和实体的表征。

5.2.3 WikilinksNED Unseen-Mentions

与第 5.2.2 节中描述的方法类似,我们首先在维基百科示例上训练我们的双编码器和交叉编码器模型,然后在该数据集的训练数据上进行微调。我们还介绍了在维基百科示例上训练后直接应用于测试集的模型,以及不在维基百科示例上训练而直接在该数据集上训练的模型。我们在表 6 中报告了我们的模型在测试集上的准确率表现,以及 Onoe 和 Durrett(2019 年)提出的基准模型。我们发现,我们的模型优于所有基线模型。
在这里插入图片描述

表 6:在 WikilinksNED Unseen-
Mentions测试集的准确率。基线模型的数量来自(Onoe 和 Durrett,2019 年)。Training 一栏表示训练中使用的数据来源: Wiki 指维基百科示例;域内指训练集中的示例。

推理时间效率 为了说明双编码器模型的效率,我们在一台配备英特尔至强 CPU E5-2698 v4 @ 2.20GHz 和 512GB 内存的服务器上测试了检索速度。推理时,我们首先计算 590 万个实体池的所有实体嵌入。这一步需要大量资源,但可以并行处理。在 8 个 Nvidia Volta v100 GPU 上,计算所有实体嵌入大约需要 2.8 个小时。给定提及嵌入的查询,我们使用 FAISS(Johnson 等人,2019 年)IndexFlatIP 索引类型(精确搜索)获得前 100 个候选实体。在包含 10K 次查询的 WikilinksNED Unseen-Mentions 测试数据集上,在批处理模式下,每次查询返回前 100 个候选实体平均需要 9.2 毫秒。

我们还使用 FAISS 探索了近似搜索选项。根据 Karpukhin 等人(2020 年)的研究,我们选择了 IndexHNSWFlat 索引类型。它需要额外的索引构建时间,同时减少了每次查询的平均用时。在表 7 中,我们可以看到 HNSW17 将平均查询时间减少到了 2.6 毫秒,而准确率和召回率却下降了不到 1.2%;HNSW28 进一步将查询时间减少到了 1.4 毫秒,而准确率和召回率却下降了不到 2.1%。
在这里插入图片描述

表 7:使用 FAISS 进行精确和近似候选检索。最后一列:每次查询的平均时间(毫秒)。

检索候选者数量的影响 在两阶段实体链接系统中,检索候选者数量的选择会影响整个模型的性能。之前的工作通常使用固定的 k 个候选数,其中 k 的范围在 5 到 100 之间(例如,Yamada 等人(2016 年)和 Ganea 和 Hofmann(2017 年)选择 k = 30,(Lo-geswaran 等人,2019 年)选择 k = 64)。当 k 越大时,召回准确率越高,但排序阶段的准确率可能会降低。此外,增加 k 通常会增加排序阶段的运行时间。我们探索了模型中不同的 k 选择,并在图 3 中展示了召回率@K 曲线、排序阶段准确率和总体准确率。根据总体准确率,我们发现 k = 10 是最佳选择。
在这里插入图片描述

图 3:在 Unseen-Mentions 数据集上,基于不同 k 选择(从双编码器检索到的实体数量)的整体模型准确率。

5.3 知识蒸馏

在本节中,我们使用交叉编码器作为教师模型,使用双编码器作为学生模型,展示了知识蒸馏的结果。

我们在 TACKBP-2010 和 WikilinksNED Unseen-Mentions 数据集上进行了知识蒸馏实验。我们使用在维基百科上预先训练好的双编码器作为学生模型,并在每个数据集上利用教师模型的知识蒸馏对其进行微调,教师模型是在维基百科上预先训练好的性能最好的交叉编码器模型,并在数据集上进行了微调。

在每个数据集的实验中,我们还微调了学生模型,将其作为基线模型,但不包含知识提炼部分。从表 9 中我们可以看到,使用交叉编码器知识提炼技术训练的双编码器模型优于不使用知识提炼技术的双编码器模型,这为这些架构提供了准确率-速度权衡曲线上的另一个点。
在这里插入图片描述

表 9:知识提炼结果。教师模型是交叉编码器,bi-encoder-KD 是经过知识蒸馏训练的双编码器模型。

6 定性分析

表 8 列出了双编码器模型和交叉编码器模型预测的一些例子,以直观地说明这两个模型是如何考虑实体链接的上下文和提法的。
在这里插入图片描述

表 8:双编码器模型和交叉编码器模型预测的顶级实体示例。示例中的提及用正体表示,正确的实体预测用粗体表示。

在第一个例子中,我们看到双编码器错误地将 "罗纳尔多 "与巴西足球运动员联系在一起,而交叉编码器则能够利用上下文中的单词 "尤文图斯 "来消除歧义。在第二个例子中,交叉编码器能够根据上下文识别出句子描述的是艺术而不是小说,而双编码器则未能识别出。在第三个例子中,双编码器能够找到正确的实体 “古希腊”;而交叉编码器则错误地将其与实体 "古希腊哲学 "联系起来,这可能是因为上下文中有 "哲学家 "一词。我们发现,交叉编码器在利用上下文信息方面往往比双向编码器更好,但有时也会因为误导性的上下文线索而出错。

7 结论

我们提出了一种概念简单、可扩展且高效的两阶段实体链接方法。我们证明了基于 BERT 的模型在实体检索方面优于 IR 方法,并在最近引入的零镜头实体链接数据集 WikilinksNED Unseen-Mentions 数据集和更成熟的 TACKBP-2010 基准上取得了新的一流结果,而无需任何特定任务的启发式方法或外部实体知识。我们对大型预训练模型固有的准确性与速度之间的权衡进行了评估,结果表明,在准确性损失不大的情况下实现高效链接是有可能的。最后,我们展示了知识提炼可以进一步提高双编码器模型的性能。未来的工作包括:

  • 通过添加实体类型和实体图信息来丰富实体表征;
  • 通过联合解决文档中的提及来建立连贯性模型;
  • 将我们的工作扩展到其他语言和其他领域;
  • 为提及检测和实体链接建立联合模型。

A 训练细节和超参数优化

  • 计算基础设施:我们使用 8 个 Nvidia Volta v100 GPU 进行模型训练。
  • 每个超参数的边界:见表 10。此外,对于双编码器,我们在上下文/提及编码器和候选编码器中分别使用了 [32, 64, 128] 和 128 的最大标记数。在知识提炼实验中,我们设置 α = 0.5,T 为 [2, 5]。我们使用网格搜索超参数,总共进行了 24 次试验。
  • 模型参数数:见表 11。
  • 在所有实验中,我们都使用验证集的准确率作为选择超参数的标准。
    在这里插入图片描述

表 10:模型中超参数的界限

在这里插入图片描述

表 11:模型中的参数数

A.1 使用维基百科数据进行训练

我们首先使用维基百科数据来训练模型,然后在特定数据集上对其进行微调。我们在 TACKBP-2010 和 WikilinksNED Unseen-Mentions 数据集上的实验采用了这种方法。

我们使用包含 590 万个实体的 2019 年 5 月英文维基百科转储,并使用文章中的超链接作为示例(锚文本即提及)。我们使用所有维基百科链接提及的子集作为双编码器模型的训练数据(共计 900 万个示例)。我们使用 10K 个示例的保留集进行验证。我们根据双编码器模型在维基百科数据中检索到的前 100 个结果来训练交叉编码器模型。为了训练交叉编码器模型,我们对训练数据进行了进一步的缩减采样,以获得一个包含 100 万个示例的训练集。

双编码器(大)模型 最佳模型的超参数配置:学习率=1e-5,批量大小=128,最大上下文标记=32。每个历元的平均运行时间:17.5 小时/历元,在 4 个历元上进行训练。

交叉编码器(大型)模型 最佳模型的超参数配置:学习率=2e-5,批量大小=1,最大上下文标记=32。每个历元的平均运行时间:37.2 小时/历元,在 1 个历元上训练。

A.2 零镜头实体链接数据集

数据集可在 https://github.com/
lajanugen/zeshel。训练集、验证集和测试集中分别有 49K、10K 和 10K 个示例。训练详情:

双编码器(基础)模型 最佳模型的超参数配置:学习率=2e-5,批量大小=128,最大上下文标记=128。平均运行时间:28.2 分钟/历元,在 5 个历元上进行训练。

双编码器(大型)模型 最佳模型的超参数配置:学习率=1e-5,批量大小=128,最大上下文标记=128。平均运行时间 平均运行时间:38.2 分钟/次,以 5 个历元为单位进行训练。

交叉编码器(基础)模型 最佳模型的超参数配置:学习率=1e-5,批量大小=1,最大上下文标记=128。平均运行时间:2.6 小时/时序,在 2 个时序上训练。

交叉编码器(大型)模型 最佳模型的超参数配置:学习率=1e-5,批量大小=1,最大上下文标记=128。平均运行时间:8.5 小时/epoch,在 2 个历元上训练。

A.3 TACKBP-2010 数据集

数据集可在 https://catalog.ldc.
upenn.edu/LDC2018T16。训练集和测试集中分别有 1,074 和 1,020 个注释示例。我们对训练集进行了 10 倍交叉验证。训练详情:

双编码器(大型)模型 最佳模型的超参数配置:学习率=2e-6,批量大小=128,最大上下文标记=32。平均运行时间:9.0 分钟/历元,在 10 个历元上进行训练。

具有知识蒸馏功能的双编码器(大型)模型 最佳模型的超参数配置:学习率=2e-5,批量大小=128,最大上下文标记=32,T=2,α=0.5。平均运行时间:11.2 分钟/历元,在 10 个历元上进行训练。

交叉编码器(大型)模型 最佳模型的超参数配置:学习率=1e-5,批量大小=1,最大上下文标记=128。平均运行时间:20.4 分钟/epoch,在 10 个 epoch 上训练。

A.4 WikilinksNED 未见提及数据集

训练集、验证集和测试集分别包含 220 万、1 万和 1 万个示例。我们使用 10 万个示例的子集在该数据集上对模型进行微调,因为我们发现更多的示例并没有帮助。训练细节

双编码器(大型)模型 最佳模型的超参数配置:学习率=2e-6,批量大小=128,最大上下文标记=32。每个历元的平均运行时间:3.2 小时/历元,在 1 个历元上进行训练。

具有知识蒸馏功能的双编码器(大型)模型 最佳模型的超参数配置:学习率=5e-6,批量大小=128,最大上下文标记=32,T=2,α=0.5。平均运行时间:6.5 小时/epoch,在 1 个 epochs 上进行训练。

交叉编码器(大型)模型 最佳模型的超参数配置:学习率=2e-6,批量大小=5,最大上下文标记=128。平均运行时间 4.2 小时/回波,以 1 个历元为单位进行训练。

这篇关于论文:Scalable Zero-shot Entity Linking with Dense Entity Retrieval翻译笔记(实体链接)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843428

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个