【读论文】Scalable Zero-shot Entity L
系统简称: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)对进行编码到一个稠密向量空间。
其中和分别为mention和实体的表示,和是两个Transformer,表示bert的[CLS]输出。
mention的表示
由mention以及前后上下文表示:
[]表示mention的开头,[]表示Mention结束
entity的表示
由entity 的title和description表示
[]表示将实体的title和description分割开
candidate entity 的打分
很简单,只要度量和的相似度即可,这里采用内积:
训练时的优化目标
用了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
实验
数据集:
- Zero-shot EL dataset
- TACKBP-2010
- WikilinksNED Unseen-Mentions