🚀 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},
}