Storyline Trees: Hierarchical Representations for Long-Form Narratives
- arXiv/venue: 2606.20900(2026-06)
- 作者: Litu Ou, Mirella Lapata(University of Edinburgh, School of Informatics)
- 类型: 叙事结构表示 + 长文档检索/问答(表示侧骨架)
- 一句话: 把一部长篇小说自动构造成一棵多层"故事线树"(从全局主题/主线到具体场景事件),并据此做自适应检索——先看高层结构、再按需下钻取证,在长上下文叙事 QA 上超过强基线。
1. 要解决的问题
长篇叙事(小说、书籍)动辄十几万到二十万 token,远超模型常规上下文窗口。直接塞进长上下文模型、或用"分块 + agent"式检索,都难以保留叙事的层级结构与情节脉络:模型看不到"这一幕在整本书里处于什么位置、属于哪条主线"。作者要解决的是:如何用一种保留叙事骨架的表示,让模型在超长文本上既能把握全局又能精确取证。
2. 方法 / 核心思路
核心是把叙事组织成一棵 storyline tree(故事线树),叶子是场景、内部节点是逐层抽象的故事线摘要、根是全书概览。
(1)场景切分(构树的基本单元) - 用 LLM 逐章提取"场景(scene)"作为基本单元;每个场景以时间、地点、人物配置、动作的一致性变化为边界(这些要素发生切换即划新场景)。 - 每个场景带三件套:标题(title)、梗概(synopsis)、意义陈述(significance)。
(2)两种互补的构树方式 - Top-down(自顶向下、情节优先):先从全部场景集合里归纳出抽象的顶层故事线,再递归细化成更具体的子故事线。产出的树更紧凑、顶层更宽(顶层节点均值约 8–12 个)。 - Bottom-up(自底向上、场景优先):从场景出发,递归聚类 + 摘要成更高层节点,直到无法再有意义聚类为止。技术上用 UMAP 降维 + 高斯混合模型(GMM) 聚类;产出的树节点总数约为前者的 2–4 倍,集中在底层。 - 树深固定为 4 层(top-down 在所有数据集上统一 4 层)。
(3)自适应检索(adaptive retrieval) - 回答问题时,模型可先审视高层叙事结构,再按需下钻到场景级证据,迭代地"看结构→取证据",而不是一次性检索固定块。嵌入用 Qwen3-Embedding-8B。
叙事结构在这里被表示为层级 DAG/树:叶=原始场景文本,中层=聚类后的故事线摘要,根=全书概览;层间关系承载情节推进与主题线索。
3. 数据与实验
- 三个长上下文叙事 QA 基准:
- DetectiveQA:62 本书、596 个 QA、平均 87,588 token
- NovelQA:85 本书、2,177 个 QA、平均 186,669 token
- LiteraryQA:105 本书、2,872 个 QA、平均 115,083 token
- 生成模型:Qwen3-30B-A3B-Instruct-2507 与 Qwen3-235B-A22B-Instruct-2507(FP8 量化)
- 评测裁判:Gemini-3.1-pro-preview
- 基线:Zero-shot 长上下文、MemAgent、Tree of Agents (TOA)、QwenLong-L1.5,以及自身的 bottom-up 变体。
4. 主要结果(带数值)
Qwen3-30B 主干下(分数越高越好,三列为三个基准):
| 方法 | DetectiveQA | NovelQA | LiteraryQA |
|---|---|---|---|
| Top-down 自适应检索 | 35.91 | 51.45 | 59.51 |
| Bottom-up | 34.06 | 50.99 | 58.64 |
| Zero-shot | 30.87 | 48.78 | 56.48 |
| Tree of Agents | 32.72 | 45.71 | 58.25 |
| QwenLong-L1.5 | 32.21 | 45.34 | 57.76 |
| MemAgent | 27.35 | 40.06 | 52.65 |
- Top-down 全面胜过 bottom-up 与所有基线:对 zero-shot 分别 +5.0 / +2.7 / +3.0。
- 换更大模型(235B)后,Top-down 进一步升到 40.27 / 60.27 / 69.19。
- 结论:情节优先、先抽象后细化的树结构,比"场景优先聚类"更利于下游取证。
5. 局限
- 完全基于提示(prompt-based),并未在叙事结构上训练,构树质量依赖 LLM 的场景抽取能力。
- 仅验证小说;对剧本、诗体叙事等泛化性未知。
- 评估以下游 QA 为主,缺少对"树本身是否忠实/合理"的内在评估。
- 场景抽取 + 构树 + 迭代检索带来显著计算开销。
6. 对做产品 / 工程的启发
- "故事线树"是一个可直接落地的长篇记忆/大纲数据结构:写作产品可把它当作"活的目录 + 情节地图",供作者跳转、供模型检索。
- 场景四要素边界(时间/地点/人物/动作) 是很实用的自动分幕规则,可复用于章节切分、时间线视图、"这一幕属于哪条线"的标注。
- 自适应检索思路(先看结构、再按需下钻)优于固定分块 RAG,适合"长篇一致性问答""人物弧查询"等功能。
- Top-down > bottom-up 的经验提示:做大纲/记忆时,先让模型归纳主线再细化,比自底向上聚类更稳。
关联
- [[04_codified_foreshadowing_payoff]]:04 在生成侧编码"伏笔—回收"结构;本篇在表示/检索侧给出层级骨架,二者可组合成"结构化写 + 结构化读"。
- [[01_lost_in_stories]]:长篇一致性 bug 的诊断,与本篇"用故事线树支撑长程取证"互补。
- [[02_from_personas_to_plot_magnet]]:多智能体长篇生成,可用故事线树做共享大纲/记忆。
- 本批次:[[16_skeleton_coherence]](骨架/连贯度量)、[[17_spoiler_alert]](张力度量)、[[18_suspenseful_iterative_planning]](悬念规划)。