模型:
microsoft/BiomedNLP-KRISSBERT-PubMed-UMLS-EL
https://arxiv.org/pdf/2112.07887.pdf
实体链接面临着许多挑战,比如大量的变体和普遍存在的歧义,特别是在存在无数实体的高价值领域中。标准的分类方法受到注释瓶颈的限制,不能有效处理未知的实体。零样本实体链接已经成为一个有前景的方向,可以泛化到新的实体,但在训练过程中仍需要示例的金标准实体提及以及所有实体的规范描述,但这些在维基百科之外很少可用( Logeswaran et al., 2019 ; Wu et al., 2020 )。我们探索了知识丰富的自我监督(KRISS)并训练了一个上下文编码器(KRISSBERT)用于实体链接,利用了现成的未标记文本和领域知识。
具体来说,KRISSBERT模型初始化了 PubMedBERT 个参数,然后使用 UMLS 本体中的生物医学实体名称对其进行持续预训练,以自我监督 PubMed 摘要中的实体链接示例。在七个标准生物医学实体链接数据集上的实验表明,KRISSBERT达到了新的最先进水平,在准确性方面比先前的自我监督方法提高了多达20个绝对点。具体详情请参阅 Zhang et al., 2021 。
请注意,一些先前的系统如 BioSyn , SapBERT 以及他们的后续工作(例如 Lai et al., 2021 )声称进行实体链接,但他们的系统完全忽略了实体提及的上下文,并且只能预测实体字典中的表面形式(请参见 BioSyn 中的图1 ),而不能预测规范实体标识符(如UMLS中的CUI)。因此,它们无法消除含糊不清的提及。例如,对于句子“ER crowding has become a wide-spread problem”中的实体提及“ER”,他们的系统忽略了句子的上下文,仅仅预测最接近的表面形式,即“ER”。多个实体共享这个表面形式作为可能的名称或别名,比如 紧急诊室(C0562508),雌激素受体基因(C1414461)和内质网(C0014239)。没有使用上下文信息,他们的系统无法解决此类歧义并确定正确的实体 紧急诊室(C0562508)。更令人担忧的是,他们的评估会将这样的模棱两可的预测视为正确。因此,他们论文中报告的结果并不反映实体链接的真实性能。
在这里,我们使用 MedMentions 数据来展示如何 1) 生成原型嵌入 2) 运行实体链接。
(由于需要 UMLS 和 PubMed 许可证,我们目前无法发布自我监督的提及示例。)
1. 创建 conda 环境并安装要求conda create -n kriss -y python=3.8 && conda activate kriss pip install -r requirements.txt2. 将根目录切换到 usage
cd usage3. 下载 MedMentions 数据集
git clone https://github.com/chanzuckerberg/MedMentions.git4. 生成原型嵌入
python generate_prototypes.py5. 运行实体链接
python run_entity_linking.py
这将给出大约 58.3% 的 top-1 准确率。
如果您发现 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}, }