EMNLP2020 BLINK | 使用密集实体检索的可扩展零样本实体链接
论文:Wu L, Petroni F, Josifoski M, et al. Scalable Zero-shot Entity Linking with Dense Entity Retrieval[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020: 6397-6407.
链接:https://aclanthology.org/2020.emnlp-main.519/
代码:https://github.com/facebookresearch/BLINK

0、摘要
- 基于BERT的实体链接模型:概念简单、可扩展、高效
- 提出一种两阶段的零样本链接算法
- 每个实体由简单的文本描述定义
- 阶段1:双向编码器独立编码提及文本和实体描述,向量检索;阶段2:交叉编码器拼接提及和实体,重新排序
- 双向编码器在最近邻搜索中非常快(2ms链接590万候选实体)
- 交叉编码器获得的精度增益可以通过知识蒸馏转移到双向编码器
1、介绍
- 实体链接的关键挑战:规模性,每个提及有数百万的可能实体
- 本文基于BERT的模型 在零样本实体链接任务上达到SOTA
- 在适度精度损失的情况下,可以实现非常有效的链接
- 实体链接任务:候选生成、排序(实体提及提前已知)
- 提出用知识蒸馏训练双向编码器
2、方法
-
定义:输入一个文本,一组提及,输出一组<提及-实体>对
- 假设实体的标题和描述可直接使用;每个提及都有实体对应
-
零样本实体链接:训练和测试时的知识库没有交集,文本、实体、提及都分开
-
模型

-
Bi-ENCODER:两个独立的BERT,分别编码文本/提及和实体,之间的点积作为候选实体得分
-
CROSS-ENCODER:一个BERT,同时编码文本/提及和实体,加一个线性层,计算最终得分
Bi-ENCODER
-
文本/提及 建模:取mention前后各32个词

-
实体 建模:实体标题 + 描述的前10个句子

注:
是两个BERT,
是一个向量降维函数,跟在[CLS]输出的后面
-
损失函数:负采样选择top10预测结果

-
推理:找最大点积
- 使用FAISS,通过精确和近似最近邻搜索 权衡 效率和精度
CROSS-ENCODER
- 输入:文本/提及和实体拼接,去掉实体表示的第一个[CLS],再加一个线性层计算得分
- 优化:同上,softmax loss
- 双向编码器负责粗排,作召回
- 交叉编码器负责精排,不适合检索和快速推理
Knowledge Distillation

3、结果

号外号外:想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习。
- 点赞
- 收藏
- 关注作者
评论(0)