論文基本信息
- 題目:MapperGPT: Large Language Models for Linking and Mapping Entities
- 作者:Nicolas Matentzoglu, J. Harry Caufield, Harshad B. Hegde, Justin T. Reese, Sierra Moxon, Hyeongsik Kim, Nomi L. Harris, Melissa A Haendel, Christopher J. Mungall
- 機構:Semanticly Ltd., Lawrence Berkeley National Laboratory, Robert Bosch LLC, Anschutz Medical Campus, University of Colorado
- 發表地點與年份:未明確說明會議或期刊,年份為2023年(根據文中提及的ChatGPT版本時間推斷)
- 關鍵詞術語:
- Entity Mapping(實體映射):確定不同術語資源(如本體、受控詞匯表)中實體對應關系的過程。
- Lexical Matching(詞匯匹配):基于標簽和同義詞等詞匯信息計算映射的啟發式方法。
- Large Language Models (LLMs)(大語言模型):如ChatGPT所使用的指令調優模型,用于理解和生成自然語言。
- SSSOM (Simple Standard for Sharing Ontological Mappings):共享和比較實體映射的簡單標準格式。
摘要(詳細復述)
- 背景:在醫療、化學和生物醫學研究等領域,對齊術語資源(如本體、受控詞匯表)是數據整合的關鍵部分。實體映射是確定這些資源間實體對應關系的過程。現有工具主要基于結構特征和詞匯信息(如標簽和同義詞)計算映射,其中詞匯方法通常召回率高但精確度低, due to lexical ambiguity,導致需要人工手動細化映射。
- 方案概述:MapperGPT 使用 LLMs(如 ChatGPT)作為后處理步驟,與現有高召回方法(如 LOOM)協同工作,審查和細化映射關系。
- 主要結果/提升:在解剖學、發育生物學和腎臟疾病等多個領域的對齊任務上評估,MapperGPT 結合高召回方法后,準確率顯著提升,擊敗了當前最先進方法(如 LogMap)。具體地,使用 GPT-4 的 MapperGPT 整體 F1 分數為 0.672,比 LogMap(0.527)提升約 24%。
- 結論與意義:LLMs 在語義映射問題上表現出潛力,盡管當前準確率(67%)仍低于專業人工 curator,但隨著上下文利用能力的增強,有望快速縮小差距。
研究背景與動機
- 學術/應用場景與痛點:生物和生物醫學研究(如罕見疾病診斷)需要整合大量異構數據源,但不同數據提供者使用不同的受控詞匯和本體,導致語義空間分散,實體映射成為關鍵挑戰。手動映射數千個概念耗時且易出錯。
- 主流路線與局限:
方法類別 | 代表工作 | 優點 | 不足 |
---|---|---|---|
Lexical Methods(詞匯方法) | LOOM(BioPortal) | 高召回率(recall) | 低精確度(precision),因詞匯歧義易產生假陽性 |
Logical Axiom-Based Methods(基于邏輯公理的方法) | LogMap | 利用子類或互斥等邏輯公理提高精確度 | 未明確說明具體局限 |
Deep Learning/Language Models(深度學習/語言模型) | OntoEmma, DeepAlignment, VeeAlign, Truveta Mapper | 利用嵌入距離或結構預訓練 | 未直接解決 LLMs 的幻覺和窗口大小限制問題 |
- 代表工作與局限:現有 LLMs 直接用于映射生成面臨挑戰:訓練數據截止時間舊、易產生幻覺(如生成錯誤標識符)、窗口大小限制(無法處理大規模本體),以及枚舉所有實體對的高計算成本。
問題定義(形式化)
- 輸入:兩個本體 O1O_1O1? 和 O2O_2O2?,以及一組候選映射 MMM(由高召回方法如 LOOM 生成)。
- 輸出:細化的映射集合 M′M'M′,其中每個映射包含類別(如 exactMatch)、置信度、相似性和差異。
- 符號與變量:
- mmm:候選映射,包含概念 aaa(來自 O1O_1O1?)和概念 bbb(來自 O2O_2O2?)。
- GeneratePrompt\text{GeneratePrompt}GeneratePrompt:函數,生成包含概念描述的提示。
- CompletePrompt\text{CompletePrompt}CompletePrompt:函數,使用 LLM 完成提示。
- Parse\text{Parse}Parse:函數,解析 LLM 響應為結構化數據。
- 約束與目標函數:目標是最大化映射的準確率(F1 分數),同時減少假陽性。
- 評測目標:使用精確度(P)、召回率(R)和 F1 分數評估映射質量,以人工 curated 映射為金標準。
創新點(逐條可驗證)
-
LLM 作為后處理細化器:
- 如何做:不直接生成映射,而是利用 LLM 審查現有高召回方法產生的候選映射,通過提示工程提供概念描述和示例,讓 LLM 輸出映射類別和理由。
- 為什么有效:避免 LLM 的幻覺和窗口限制問題,同時利用其語義理解能力區分真假陽性,提高精確度。
-
基于 SSSOM 的標準化工具體系:
- 如何做:使用 SSSOM 格式輸入和輸出映射,確保可共享和可比較;集成 OAK 庫處理本體訪問和詞匯匹配。
- 為什么有效:提供可重現的流水線(Makefile 實現),促進社區復用和基準測試。
-
挑戰性測試集構建:
- 如何做:從生物醫學領域(如解剖學、疾病)創建新測試集,基于 Uberon、CL 和 Mondo 的 curated 映射生成金標準。
- 為什么有效:針對詞匯方法易出錯的場景(如跨物種術語沖突),更公平評估 LLM 的語義理解能力。
方法與核心思路
整體框架
MapperGPT 是一個后處理框架,接收高召回方法產生的候選映射,使用 LLM 對每個候選映射進行分類和細化。系統依賴 OAK 庫訪問本體數據,使用 OntoGPT 實現主要邏輯,輸出為 SSSOM 格式。
步驟分解
- 輸入準備:獲取兩個本體和候選映射集(通常來自詞匯匹配工具)。
- 提示生成:對每個候選映射,使用
GeneratePrompt
函數生成提示,包括概念描述(名稱、同義詞、定義、父類等)和示例。 - LLM 調用:將提示發送至 LLM(如 GPT-4),獲取自然語言響應。
- 響應解析:從響應中提取結構化字段(類別、置信度、相似性、差異)。
- 輸出生成:將解析結果轉換為 SSSOM 格式并輸出。
模塊與交互
- OAK 庫:處理本體訪問、詞匯匹配和子集提取,提供概念描述所需數據。
- OntoGPT:核心實現模塊,包含
categorize-mappings
方法,處理提示生成、LLM 調用和解析。 - SSSOM 工具包:用于映射格式轉換和比較。
- LLM API:外部服務(如 OpenAI API),完成提示生成。
公式與符號
無顯式數學公式,但關鍵函數偽代碼如下:
算法主循環:
Input:?O1,O2,MOutput:?M′M′←?for?each?m∈M:prompt←GeneratePrompt(m.a,m.b,O1,O2)response←CompletePrompt(prompt,model)m′←Parse(response)add?m′?to?M′return?M′ \begin{aligned} &\text{Input: } O_1, O_2, M \\ &\text{Output: } M' \\ &M' \gets \emptyset \\ &\text{for each } m \in M: \\ &\quad \text{prompt} \gets \text{GeneratePrompt}(m.a, m.b, O_1, O_2) \\ &\quad \text{response} \gets \text{CompletePrompt}(\text{prompt}, \text{model}) \\ &\quad m' \gets \text{Parse}(\text{response}) \\ &\quad \text{add } m' \text{ to } M' \\ &\text{return } M' \end{aligned} ?Input:?O1?,O2?,MOutput:?M′M′←?for?each?m∈M:prompt←GeneratePrompt(m.a,m.b,O1?,O2?)response←CompletePrompt(prompt,model)m′←Parse(response)add?m′?to?M′return?M′?
提示模板(文本結構):
What is the relationship between the two specified concepts?
Give your answer in the form:
category:
confidence:
similarities:
differences:Make use of all provided information, including the concept names, definitions, and relationships.Examples:
{{ examples }}Here are the two concepts:
{{ Describe(conceptA) }}
{{ Describe(conceptB) }}
描述函數:
- Describe(concept)\text{Describe}(\text{concept})Describe(concept) 輸出概念的名稱、同義詞、定義、父類和其他關系。
偽代碼
def MapperGPT(O1, O2, M, model):M_prime = []for m in M:prompt = generate_prompt(m.a, m.b, O1, O2)response = complete_prompt(prompt, model) # Calls LLM APIm_prime = parse_response(response)M_prime.append(m_prime)return M_primedef generate_prompt(conceptA, conceptB, O1, O2):examples = load_examples() # Pre-defined mapping examplesdescA = describe_concept(conceptA, O1)descB = describe_concept(conceptB, O2)return f"""
What is the relationship between the two specified concepts?
... # As per template
Examples:
{examples}
Here are the two concepts:
{descA}
{descB}
"""def describe_concept(concept, ontology):props = ontology.get_properties(concept) # name, synonyms, definition, parents, relationshipsreturn format_as_text(props)def parse_response(response):# Extract lines starting with category:, confidence:, etc.return { "category": ..., "confidence": ..., ... }
偽代碼描述:MapperGPT 遍歷候選映射,為每個映射生成包含概念描述和示例的提示,調用 LLM 獲取響應,解析響應并收集結果。
復雜度分析
- 時間復雜度:主要開銷在 LLM 調用,每候選映射一次 API 請求。設候選映射數為 ∣M∣|M|∣M∣,LLM 生成延遲為 ttt,則總時間為 O(∣M∣?t)O(|M| \cdot t)O(∣M∣?t)。GPT-4 生成速度約 5 token/秒,提示和響應平均長度未說明,但預計處理大規模映射集較慢。
- 空間復雜度:主要存儲本體和映射數據,空間為 O(∣O1∣+∣O2∣+∣M∣)O(|O_1| + |O_2| + |M|)O(∣O1?∣+∣O2?∣+∣M∣),本體大小通常為百萬級字符,但通過 OAK 流式處理,內存開銷可控。
- 資源開銷:GPT-4 API 調用成本高,且非確定性運行可能導致可變財務開銷。
關鍵設計選擇
- 后處理而非直接生成:避免 LLM 幻覺和窗口限制,利用現有高召回方法保證覆蓋率。
- 提示工程:提供結構化示例和概念描述,引導 LLM 輸出標準化響應,減少歧義。
- SSSOM 集成:確保輸出與現有工具鏈兼容,促進可重復性。
實驗設置
- 數據集:
測試集 | 大小(exactMatch 數) | 來源 |
---|---|---|
MONDO-NCIT renal subset | 25 | Mondo(curated mappings) |
HSAPV-MMUSDV(人類 vs. 小鼠發育階段) | 22 | Uberon(curated mappings) |
FBbt-WBbt(果蠅 vs. 蠕蟲解剖) | 41 | Uberon(curated mappings) |
FBbt-ZFA(果蠅 vs. 斑馬魚解剖) | 72 | Uberon(curated mappings) |
-
對比基線:
- OAK Lexmatch:高召回詞匯基線,無領域知識定制。
- LogMap:OAEI 頂級方法,基于邏輯公理,提供映射分數。
-
評價指標:精確度(P)、召回率(R)、F1 分數(F1=2?P?RP+RF1 = 2 \cdot \frac{P \cdot R}{P + R}F1=2?P+RP?R?),僅考慮 exactMatch。
-
實現細節:
- 框架:OntoGPT(Python),集成 OAK 和 SSSOM 工具包。
- LLM:OpenAI API(gpt-3.5-turbo 和 gpt-4),未說明硬件、batch、學習率(不涉及訓練)。
- 隨機性:LLM 非確定性,多次運行確認排名穩定性,但未正式方差分析。
-
隨機性與種子:未說明種子設置。
實驗結果與分析
主結果表
表3:所有映射任務結果(綜合)
method | F1 | P | R |
---|---|---|---|
lexmatch | 0.340 | 0.210 | 0.881 |
logmap | 0.527 | 0.458 | 0.619 |
gpt3 | 0.490 | 0.500 | 0.481 |
gpt4 | 0.672 | 0.601 | 0.762 |
- GPT-4 的 MapperGPT 在 F1 上最佳(0.672),比 LogMap 提升 24%。
- Lexmatch 召回率高(0.881)但精確度低(0.210),符合預期。
表4:果蠅 vs. 斑馬魚解剖任務
method | F1 | P | R |
---|---|---|---|
lexmatch | 0.349 | 0.219 | 0.847 |
logmap | 0.486 | 0.404 | 0.611 |
gpt3 | 0.511 | 0.557 | 0.472 |
gpt4 | 0.644 | 0.543 | 0.792 |
- GPT-4 召回率接近 Lexmatch(0.792 vs. 0.847),但精確度更高(0.543 vs. 0.219)。
表5:果蠅 vs. 蠕蟲解剖任務
method | F1 | P | R |
---|---|---|---|
lexmatch | 0.257 | 0.152 | 0.854 |
logmap | 0.520 | 0.441 | 0.634 |
gpt3 | 0.427 | 0.471 | 0.390 |
gpt4 | 0.660 | 0.585 | 0.756 |
- GPT-4 在精確度(0.585)和召回率(0.756)上均優于其他方法。
表6:人類 vs. 小鼠發育階段任務
method | F1 | P | R |
---|---|---|---|
lexmatch | 0.606 | 0.455 | 0.909 |
logmap | 0.531 | 0.405 | 0.773 |
gpt3 | 0.556 | 0.714 | 0.455 |
gpt4 | 0.647 | 0.917 | 0.500 |
- GPT-4 精確度最高(0.917),但召回率較低(0.500)。
表7:腎臟疾病任務
method | F1 | P | R |
---|---|---|---|
lexmatch | 0.352 | 0.214 | 1.000 |
logmap | 0.721 | 0.611 | 0.880 |
gpt3 | 0.486 | 0.378 | 0.680 |
gpt4 | 0.793 | 0.697 | 0.920 |
- GPT-4 F1 最高(0.793),召回率接近 Lexmatch(0.920 vs. 1.000)。
消融實驗
未進行組件消融實驗,但比較了不同 LLM(GPT-3.5 vs. GPT-4),顯示 GPT-4 性能更好。
泛化/魯棒性
測試集涵蓋解剖學、發育階段和疾病領域,顯示跨領域有效性,但任務規模較小,需更大測試集驗證。
復現性清單
- 代碼/數據:代碼位于 OntoGPT 框架(https://github.com/ontogpt/ontogpt),測試集和流水線在線可用(未提供具體鏈接)。
- 模型權重:使用外部 API(OpenAI),無本地權重。
- 環境與依賴:基于 OAK 和 SSSOM 工具包,具體版本未說明。
- 運行命令:
ontogpt categorize-mappings --model gpt-4 -i foo.sssom.tsv -o bar.sssom.tsv
- 配置文件:未說明。
- 評測腳本:使用 Makefile 實現全可重現流水線。
- 許可證與限制:未說明許可證,但依賴免費軟件;GPT-4 運行成本高,且非確定性。
結論與未來工作
- 可推廣性:方法適用于任何領域的概念映射,尤其適合詞匯歧義高的場景。
- 后續方向:
- 使用檢索增強生成(RAG)讓 LLM 直接提議候選映射,而非僅后處理。
- 集成到 BoomerGPT 流水線,結合符號推理和概率方法。
- 探索開源模型以降低成本和增強可控性。
- 開源計劃:已集成到 OntoGPT,但未明確時間表。