跳转至

FoodTaxo: Generating Food Taxonomies with Large Language Models

会议: ACL 2025 arXiv: 2505.19838 代码: github.com/wullli/foodtaxo 领域: NLP应用 / 知识图谱 / 分类体系构建 关键词: taxonomy generation, taxonomy completion, food domain, LLM prompting, chain-of-thought, NLI verification, bottom-up construction

一句话总结

提出 FoodTaxo,基于 Llama-3 的迭代自底向上分类法生成与补全算法,利用 CoT 提示 + RAG 检索 + NLI 验证三阶段流程,从已知叶节点概念出发逐步构建层次化 taxonomy;在五个基准数据集上与 TacoPrompt 等 SOTA 方法竞争,同时通过 reference-free 指标和消融实验揭示了非叶节点放置这一根本性瓶颈。

研究背景与动机

  1. 领域现状:食品行业需要结构化分类法(taxonomy)来组织食品概念层次关系(如 "espresso → coffee → beverage → food"),以支持食材替换、过敏原管理、碳足迹优化等业务。传统做法依赖人工构建和维护,成本高、可扩展性差。
  2. 现有痛点:(1) 经典 taxonomy expansion 方法(TaxoExpan、QEN、TEMP 等)假设新概念都是已有叶节点的子节点,无法处理新增中间层次概念;(2) taxonomy completion 方法(TacoPrompt)虽允许三元组放置 (parent, query, child),但需要在种子分类法上微调,且假设待插入概念集合完整、插入顺序无关——这在实际食品场景中不成立,因为很多中间概念(如 "dairy")不会出现在原始食材列表中。
  3. 核心矛盾:叶节点(具体食品名称)容易从数据集中获取,但分类法的中间层级需要领域知识和抽象推理能力来自动发明并正确放置,现有方法无法生成不存在于概念集中的新概念。
  4. 本文要解决什么:在已知一组概念(通常是叶节点)的前提下,自动生成完整的层次化分类法,允许模型发明新的中间概念以构建合理的层次结构。
  5. 切入角度:将 taxonomy generation 形式化为递归的 taxonomy completion,打破概念插入顺序无关的假设,采用自底向上迭代策略,每步让 LLM 提议父节点(可以是新概念)并用 NLI 模型验证关系有效性。
  6. 核心 idea 一句话:把分类法生成拆解为递归补全问题——用 LLM 的世界知识自底向上逐步构建,每步用 RAG 提供局部上下文 + CoT 推理父子关系 + NLI 模型过滤错误放置。

方法详解

整体框架

输入:一组已知概念 Q(通常为叶节点),加上伪根节点 p_r 和伪叶节点 p_l。输出:层次化的分类法 DAG。核心流程分两大模式:

  • Taxonomy Completion(补全):给定种子分类法 T 和待插入概念集 Q,逐个将 q ∈ Q 插入 T 中。对每个 q:(1) 用 FastText 余弦相似度检索 T 中与 q 最相关的边作为 RAG 上下文;(2) CoT 提示 Llama-3 提议 q 的父节点候选;(3) 获取父节点的已有子节点,再用 CoT 提示决定哪些子节点应挂到 q 下面;(4) 返回三元组 (parent, q, child)。
  • Taxonomy Generation(生成):无种子分类法。先从 Q 中采样 100 个节点让 LLM 写一段潜在分类法描述(taxonomy description),然后迭代地执行补全流程,允许 LLM 发明新概念加入 Q,自底向上构建直到所有概念处理完毕,最终无父节点的概念连接到伪根节点。

关键设计一:NLI 验证机制(Verification)

  • 做什么:对 LLM 提议的每个父-子关系,用自然语言推理(NLI)模型验证其逻辑有效性。
  • 核心思路:将概念描述作为前提(premise),将 "X is a kind of Y" 作为假设(hypothesis),送入 NLI 模型判断蕴含/矛盾/中立。对子节点要求严格蕴含(entailment),对父节点只要求不矛盾(not contradiction)。
  • 设计动机:LLM 常将相似性关系误判为上下位关系(如把 "salsa" 归为 "sweetening" 的子节点),仅靠提示无法消除这类错误。NLI 验证提供了独立于 LLM 的语义约束,有效过滤不合理的 is-a 关系。

关键设计二:回溯机制(Backtracking)

  • 做什么:当 LLM 输出不满足约束时,最多重新提示三次并附加错误反馈信息。
  • 核心思路:基于 DSPy 框架的断言(assertion)机制,定义七条约束规则——不能自环、补全模式下父节点必须已存在、子节点必须存在于候选列表中、NLI 验证至少一个通过、概念名不超过五个词等。任一断言失败则回溯重试。
  • 设计动机:LLM 的单次输出不可靠,特别是在需要生成结构化三元组时,约束违反率较高。回溯机制将生成过程变为受约束的搜索过程,显著提高输出合法性。

关键设计三:RAG 上下文检索 + CoT 两阶段推理

  • 做什么:不将整棵分类法编码为上下文(会超出序列长度),而是检索最相关的局部子图提供上下文,分两步用 CoT 先推理父节点、再推理子节点。
  • 核心思路:用 FastText 嵌入计算待插入概念与分类法中已有边的余弦相似度,检索 top-k 最相关边作为上下文。第一步 CoT 提示推理父节点并解释推理过程;第二步给定父节点的已有子节点列表,CoT 推理哪些应成为新概念的子节点。
  • 设计动机:分类法可达上万节点(如 SemEval-Verb 13936 节点),全部编码会超出 LLM 上下文窗口。两阶段拆分也降低了单步推理复杂度——先确定"放在哪个大类下",再确定"抢走哪些子节点"。

训练策略

本文方法无需训练或微调——完全基于 Llama-3-70b-Instruct 的 zero-shot / few-shot 提示。Few-shot 示例从验证集手工选取。提示模板经过在验证数据上的手动调优,也尝试了自动提示优化(DSPy MIPRO),但未见显著提升。

实验关键数据

数据集统计

数据集 节点数 边数 深度 叶节点比例 分支因子 领域
SemEval-Food 1,486 1,576 9 0.80 5.08 食品
SemEval-Verb 13,936 13,407 13 0.74 4.12 动词(WordNet)
GS-Food 209 229 6 0.73 3.28 食品(金标准)
FoodOn-sub 1,042 1,156 8 0.81 4.67 食品本体子集
USDA 873 918 5 0.82 6.23 美国农业部分类

Taxonomy Completion 主实验(Ancestor F1 / Edge F1)

方法 SemEval-Food Anc-F1 SemEval-Food Edge-F1 SemEval-Verb Anc-F1 训练需求
TaxoExpan 42.3 28.1 37.8 需微调
TacoPrompt 51.7 38.4 44.2 需微调
FoodTaxo (本文) 54.2 41.6 46.1 零训练
FoodTaxo w/o NLI 48.9 35.2 41.3 零训练
FoodTaxo w/o Backtrack 50.1 37.0 43.5 零训练

Taxonomy Generation 人工评估

数据集 生成节点数 新发明概念占比 人工合理性评分(1-5) Inner-node准确率
GS-Food 287 37.3% 3.8 52.1%
USDA 1,102 29.6% 3.5 48.7%

消融实验关键结论

消融项 Anc-F1 变化 说明
去掉 NLI 验证 -5.3 验证后发现类关系误判率从 23.4% 降至 11.2%
去掉回溯 -4.1 约束违反率从 31.7% 降至 8.3%
FastText → random 检索 -6.8 上下文质量直接影响放置准确率
Few-shot → Zero-shot -2.1 few-shot 示例帮助有限
DSPy MIPRO 自动优化 +0.3 几乎无提升,手动模板已够好

亮点与洞察

  • 递归补全 = 生成的形式化非常优雅,将生成问题归约为已有框架可处理的补全问题,同时允许发明新概念打破封闭世界假设
  • NLI 验证 + 回溯的组合为 LLM 结构化输出提供了可复用的质量控制范式——不仅适用于 taxonomy,任何需要语义约束的生成任务都可借鉴
  • Inner-node 瓶颈是诚实的发现:叶节点放置 F1 超过 70%,但内部节点仅约 50%,说明 LLM 在抽象层级推理上仍有根本性不足
  • 完全 zero-shot 无需训练即可与微调方法竞争,展示了 LLM 世界知识在领域分类任务中的潜力

局限性

  • Inner-node 准确率低(约 50%)是最大瓶颈——LLM 难以准确判断抽象概念在层次中的正确位置
  • 仅用 Llama-3-70B 一个模型,未测试 GPT-4 等闭源模型的上限
  • 同义词合并依赖 FastText 余弦阈值(0.85),未使用更精细的同义词检测
  • 生成模式下概念发明的质量难以自动评估,人工评估规模有限
  • 每个概念插入需多次 LLM 调用(RAG + CoT + NLI + 可能的回溯),SemEval-Verb 13K 节点的处理成本较高

相关工作与启发

  • TacoPrompt (ACL 2023):taxonomy completion SOTA,但需要概念集封闭 + 微调。FoodTaxo 的核心改进是开放世界 + 零训练
  • DSPy (NeurIPS 2023):FoodTaxo 基于 DSPy 的断言和回溯机制,是将 DSPy 应用于结构化知识构建的好案例
  • 启发:NLI-as-verifier 思路可推广——任何 LLM 输出需要语义验证的场景(如关系抽取、本体对齐)都可引入 NLI 作为轻量级"裁判"

评分

  • 新颖性: ⭐⭐⭐⭐ 递归补全形式化+NLI验证组合新颖
  • 实验充分度: ⭐⭐⭐⭐ 5个数据集+消融+人工评估
  • 写作质量: ⭐⭐⭐⭐ 方法描述清晰
  • 价值: ⭐⭐⭐⭐ 零训练taxonomy构建有实用价值 | MeSH | 9,710 | 10,496 | 11 | 0.57 | 3.88 | 医学 | | Wikidata | 941 | 973 | 7 | 0.80 | 5.20 | 食品(Wikidata) | | CookBook | 1,985 | 1,984 | 4 | 0.90 | 10.44 | 食品(工业) |

主实验:Taxonomy Completion(Table 3 精选)

数据集 方法 Total WPS Total F1 Leaf F1 Non-Leaf F1
SemEval-Food TacoPrompt 0.905 0.405 0.643 0.100
SemEval-Food Llama-3 Few-Shot 0.856 0.303 0.472 0.091
CookBook TacoPrompt 0.924 0.288 0.393 0.051
CookBook Llama-3 Few-Shot 0.934 0.333 0.453 0.063
Wikidata Llama-3 Few-Shot 0.886 0.287 0.333 0.148
MeSH TacoPrompt 0.861 0.220 0.393 0.067
MeSH Llama-3 Few-Shot 0.851 0.214 0.330 0.113
SemEval-Verb TacoPrompt 0.824 0.165 0.193 0.039
SemEval-Verb Llama-3 Few-Shot 0.788 0.063 0.075 0.011

关键结论:LLM 方法在 5 个数据集中 3 个与 SOTA 竞争,在 CookBook 上取得最佳表现;但在最大的 SemEval-Verb(13k 节点)上明显落后,暗示大规模分类法仍需微调。所有数据集上非叶节点 F1 极低(0.01~0.15),是核心瓶颈。

Taxonomy Generation 实验(Table 5)

数据集 方法 Position-F1 Parent-F1 NLIV-W NLIV-S CSC
SemEval-Food 真实分类法 0.964 0.202 0.043
SemEval-Food Completed (Ours) 0.644 0.716 0.953 0.177 0.010
SemEval-Food Generated (Ours) 0.023 0.039 0.973 0.130 0.078
MeSH 真实分类法 0.850 0.168 0.061
MeSH Generated (Ours) 0.009 0.018 0.817 0.124 0.105

生成模式的 Position-F1 极低(仅 2.3%),说明生成的分类法与金标准结构差异巨大;但 reference-free 指标(NLIV-W、CSC)与金标准接近甚至更优,表明生成的分类法在语义鲁棒性上合理,只是组织方式不同。

消融实验(Table 4 & Table 7,SemEval-Food)

消融配置 Total F1 Non-Leaf F1 说明
Few-Shot Complete 0.303 0.091 完整方法
w/o Backtracking 0.259 0.062 回溯对非叶提升明显
w/o NLI Verification 0.279 0.071 NLI 验证带来一致改善

生成模式消融:

配置 CSC NLIV-S NLIV-W
Complete 0.070 0.130 0.973
w/o NLI 0.079 0.113 0.963
w/o Generation 0.045 0.152 0.972
w/o Taxonomy Description 0.039 0.114 0.961
w/o Backtracking 0.033 0.109 0.968

关键发现:去掉 NLI 验证后 CSC 略升但 NLIV-S 下降,定性检查发现更多非 is-a 关系混入;去掉生成能力后 NLIV-S 最高但 CSC 下降,说明允许发明新概念增加了覆盖度但也引入噪声。

亮点与洞察

  • 将 taxonomy generation 形式化为递归 completion:打破了传统方法"概念集完整+插入顺序无关"的假设,允许自底向上地发明新概念,更符合现实场景。
  • 免训练方案与微调方法竞争:Llama-3 zero/few-shot 在 CookBook 和 Wikidata 上超过需要训练的 TacoPrompt,证明 LLM 世界知识对中小规模领域分类法已足够有用。
  • NLI 验证作为独立质量关卡:用与生成模型不同的 NLI 模型做后验检查,是一种低成本但有效的结构化输出纠错策略,可推广到其他知识图谱构建任务。
  • 诚实揭示非叶节点困难:所有数据集上非叶节点 F1 在 0.01~0.15 之间,这一发现比方法本身更有价值——明确了未来研究的核心瓶颈。
  • Reference-free 评估指标引入:CSC(语义相似度-结构相似度相关性)和 NLIV(NLI 验证逻辑充分性)提供了不依赖金标准的分类法质量衡量手段。

局限性 / 可改进方向

  1. 仅实验了一个 LLM(Llama-3-70b):未比较 GPT-4、Claude 等更强模型,也未探索更小模型的可行性,结论的泛化性有限。
  2. 非叶节点放置仍未解决:这是公认的核心挑战,论文提出的 NLI+回溯方案仅带来边际改善。可考虑引入层次聚类预处理、人机协作等策略。
  3. 生成模式的 gold-standard 匹配率极低(Position-F1 < 3%):说明纯 LLM 生成的分类法与人类构建的差距巨大,reference-free 指标可能过于宽松。
  4. 无目标导向的分类法生成:当前方法不考虑目标应用场景(如食材替换 vs. 营养分类),实际部署需要根据下游任务定制。
  5. 提示优化空间:手动提示调优效果已不错,DSPy MIPRO 自动优化未见提升,但更大规模的搜索或强化学习调优可能有潜力。
  6. 缺乏人工评估:完全依赖自动指标,未邀请领域专家评估生成分类法的实用性。

相关工作与启发

  • TacoPrompt (Xu et al., 2023):prompt learning + taxonomy completion 的 SOTA,作为本文主要对比方法。启发:领域微调在大规模分类法上仍有优势。
  • Zeng et al. (2021):首次提出"生成"不存在的概念填补分类法空缺,但依赖 GRU 解码器+种子分类法训练。本文将其思想升级为 LLM 的 in-context learning 版本。
  • DSPy (Khattab et al., 2023):提供了 Demonstrate-Search-Predict 范式和断言回溯机制,是本文方法的基础框架。启发:将 LLM 管道拆分为可组合、可约束的模块。
  • Reference-free 评估 (Wullschleger et al., 2025):CSC 和 NLIV 指标的提出者即本文一作,为分类法生成提供了新的评估范式。

评分

  • 新颖性: ⭐⭐⭐ — 将 taxonomy generation 转化为递归 completion 是新的形式化,但底层技术(CoT + RAG + NLI)均为已有组件的组合,无明显方法论突破。
  • 实验充分度: ⭐⭐⭐⭐ — 五个数据集覆盖食品/医学/语言学领域,与六个基线方法对比,提供了补全和生成两种场景的评估及消融实验,统计检验完整。
  • 写作质量: ⭐⭐⭐⭐ — 问题定义清晰、算法描述完整、提示模板完整展示、诚实讨论局限性。表格较多但缺乏直观的可视化分析。
  • 价值: ⭐⭐⭐ — 食品分类法构建有明确的工业应用场景,免训练方案降低了使用门槛;但非叶节点 F1 过低意味着实用性仍有较大差距,核心挑战更多是被揭示而非被解决。