【读论文】Scalable Zero-shot Entity L

2021-04-23  本文已影响0人  Jarkata

系统简称:BLINK
发表会议:EMNLP 2020
研究领域:实体链接(实体候选生成与消歧,不包括mention识别)
作者团队:Facebook AI Research

论文链接:https://www.aclweb.org/anthology/2020.emnlp-main.519/

该工作提出了一种two-stage方法来完成zero-shot entity linking任务,主要基于fine-tuned BERT。

在第一个阶段,通过一个bi-encoder来检索所有与mention相关的实体;在第二个阶段,使用一个cross-encoder来对候选实体进行度量。注意,该工作核心为实体消歧,实体mention识别假定已经给出。(实际实现中使用Flair给出候选)

该工作在一个zero-shot entity linking benchmark上提升了近6个点;并且在TACKBP-2010数据集上取得了SOTA。

任务定义

Entity Linking

简单地说,就是给定一段文本,从文本中识别出entity mention并链接到特定的知识库上

Zero-shot Entity Linking

在测试集中出现过的实体在训练集中从未出现过

主要方法

本文的bi-encoder和cross-encoder主要是基于Bert模型。

bi-encoder

bi-encoder主要负责将(mention,entity)对进行编码到一个稠密向量空间。


其中\tau_m\tau_e分别为mention和实体的表示,T_1T_2是两个Transformer,red(.)表示bert的[CLS]输出。

mention的表示

\tau_m由mention以及前后上下文表示:


[M_s]表示mention的开头,[M_e]表示Mention结束

entity的表示

\tau_e由entity 的title和description表示


[ENT]表示将实体的title和description分割开

candidate entity 的打分

很简单,只要度量y_my_{e_i}的相似度即可,这里采用内积:

训练时的优化目标

用了softmax loss,让正例的相似度尽可能大,负例的相似度尽可能小。
这里采用了batched random negatives,即正负样例都以当前batch为准


Inference

entity mention和candidate可以预先识别并缓存好,只需找到最大相似度的candidate即可。
作者这里使用了brute-force search,
当然还有更好的方式,如快速近邻搜索库FAISS等

Cross-encoder

输入:context和mention的表示,以及实体的表示(去掉了实体的[CLS])。这样模型可以获得一个context和entity的深层cross attention。
最终的context-candidate embedding:


context-candidate打分

用一个线性层进行打分。


优化目标

和bi-encoder一样,同样是softmax loss

实验

数据集:

结果

上一篇下一篇

猜你喜欢

热点阅读