论文基本信息
- 题目: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 API
m_prime = parse_response(response)
M_prime.append(m_prime)
return M_prime
def generate_prompt(conceptA, conceptB, O1, O2):
examples = load_examples() # Pre-defined mapping examples
descA = 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, relationships
return 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,但未明确时间表。