🚀 KRISSBERT
KRISSBERT是一个用于生物医学实体链接的上下文编码器模型。它通过利用现成的未标记文本和领域知识,解决了实体链接中存在的变体繁多、歧义普遍等挑战,在多个标准生物医学实体链接数据集上取得了新的最优结果。
🚀 快速开始
实体链接使用方法
这里,我们使用 MedMentions 数据向你展示如何 1) 生成原型嵌入,以及 2) 运行实体链接。
(目前我们无法发布自监督提及示例,因为它们需要 UMLS 和 PubMed 许可证。)
1. 创建conda环境并安装依赖项
conda create -n kriss -y python=3.8 && conda activate kriss
pip install -r requirements.txt
2. 将根目录切换到 usage
cd usage
3. 下载MedMentions数据集
git clone https://github.com/chanzuckerberg/MedMentions.git
4. 生成原型嵌入
python generate_prototypes.py
5. 运行实体链接
python run_entity_linking.py
这将为你提供约 58.3%
的top-1准确率。
✨ 主要特性
实体链接面临着显著的挑战,如大量的变体和普遍的歧义,特别是在拥有大量实体的高价值领域。标准分类方法受限于注释瓶颈,无法有效处理未见过的实体。零样本实体链接已成为推广到新实体的一个有前途的方向,但它仍然需要在训练期间提供示例黄金实体提及,以及所有实体的规范描述,而这些在维基百科之外很少能获得。
KRISSBERT模型通过利用现成的未标记文本和领域知识,探索了知识丰富的自监督(KRISS)方法,并训练了一个用于实体链接的上下文编码器。具体来说,该模型使用 PubMedBERT 参数进行初始化,然后使用来自 UMLS 本体的生物医学实体名称,对来自 PubMed 摘要的实体链接示例进行自监督预训练。在七个标准生物医学实体链接数据集上的实验表明,KRISSBERT达到了新的最优水平,在准确率上比之前的自监督方法高出多达20个绝对百分点。
需要注意的是,一些先前的系统,如 BioSyn、SapBERT 及其后续工作(如 Lai et al., 2021)声称可以进行实体链接,但它们的系统完全忽略了实体提及的上下文,只能预测实体字典中的表面形式,而不是规范的实体ID(例如,UMLS中的CUI)。因此,它们无法消除歧义提及。例如,在句子 “ER crowding has become a wide-spread problem” 中,给定实体提及 “ER”,这些系统会忽略句子上下文,简单地预测最接近的表面形式,即 “ER”。多个实体共享这个表面形式作为潜在名称或别名,如 Emergency Room (C0562508)、Estrogen Receptor Gene (C1414461) 和 Endoplasmic Reticulum(C0014239)。由于不使用上下文信息,这些系统无法解决这种歧义并确定正确的实体 Emergency Room (C0562508)。更有问题的是,它们的评估会将这种模糊的预测视为正确。因此,这些论文中报告的结果并不能反映实体链接的真实性能。
📚 详细文档
更多详细信息请参考论文 Knowledge-Rich Self-Supervision for Biomedical Entity Linking。
📄 许可证
本项目采用MIT许可证。
📖 引用
如果你在研究中发现KRISSBERT很有用,请引用以下论文:
@article{krissbert,
author = {Sheng Zhang, Hao Cheng, Shikhar Vashishth, Cliff Wong, Jinfeng Xiao, Xiaodong Liu, Tristan Naumann, Jianfeng Gao, Hoifung Poon},
title = {Knowledge-Rich Self-Supervision for Biomedical Entity Linking},
year = {2021},
url = {https://arxiv.org/abs/2112.07887},
eprinttype = {arXiv},
eprint = {2112.07887},
}