在自然语言处理领域,长故事生成任务一直是极具挑战性的难题,尤其是长故事的生成。现有方法在处理长文本生成时暴露出诸多关键问题,具体可归纳为以下三个核心维度:1. 长度控制与上下文连贯性的矛盾: 现有语言模型受限于固定长度的上下文窗口,难以生成可变长度的故事。例如,Longformer 通过滑动窗口结合全局和局部注意力试图解决长序列处理问题,但其最大生成长度仅为 1,024 tokens;GPT-4 等大型语言模型虽扩展了上下文窗口,但实际输出长度仍局限于几千 tokens。为突破这一限制,递归段落生成成为必然选择,但该过程存在严重的信息泄漏风险,导致前后段落连贯性下降。例如,递归生成中模型可能遗忘前文关键信息,出现情节断裂或逻辑矛盾。2. 故事完整性的缺失: 完整性指故事能够以恰当方式收尾的能力,这是现有模型普遍缺乏的关键能力。多数研究仅关注连贯性和重复率等指标,如 Plotmachine 通过动态情节状态跟踪生成故事,但未将完整性纳入评估体系。然而,完整性不仅是故事生成的核心质量指标,还对开放域生成和对话系统任务具有重要意义。现有模型在递归生成时往往陷入无限延续或突然结束,无法根据故事长度动态调整结构以实现自然收尾。3. 重复率与多样性的平衡难题: 递归生成场景下,语言模型倾向于重复相同内容,导致故事多样性不足。例如,Re3 等模型通过递归提示和修订生成较长故事,但未专门设计机制控制重复率,依赖固定训练数据集的模型(如 Plotmachine、EtriCA)在生成超出训练长度的故事时,重复问题尤为突出。传统评估指标(如 ROUGE、BLEU)基于 n-gram 匹配,无法有效衡量故事的创造性和多样性,亟需针对性的评估方法和解决方案。4. 现有方案的局限性: 现有方法主要分为两类:一类基于提示工程(如 GPT-3 的 prompt 调整),但无法优化模型内部结构;另一类采用递归生成(如 Plotmachine),但依赖固定段落数或简单结构标记(如
为了解决以上问题, 来自首尔大学的 Kyeongman Park (et al) 提出了 LongStory 模型, 创新地解决了上述问题. 原文: LongStory: Coherent, Complete and Length Controlled Long story Generation.
LongStory: Coherent, Complete and Length Controlled Long story Generation 研读报告
LongStory 针对现有长故事生成中的核心挑战,提出了连贯、完整且长度可控的长故事生成模型 LongStory,实现了以下目标:
-
突破长度限制, 支持灵活可控的长文本生成
-
提升故事连贯性与完整性
-
降低重复率, 增强故事多样性
-
建立多维度评估体系
LongStory 通过两大核心创新方法: 长短期上下文权重校准器(CWC)和长故事结构位置标记(LSP),结合递归段落生成框架,系统性解决了长故事生成中的连贯性、完整性和长度控制问题.
LongStory 模型架构
LongStory 采用基于 Transformer 的递归段落生成架构, 其核心模块如下:
-
输入层: 接收故事关键词 $K$ 和结构位置标记 $D_t$,拼接为输入序列 $X^t = [k1, SEP, k2, SEP, …, d1^t, d2^t, …]$,其中 SEP 为分隔符,$d_i^t$ 表示第 $t$ 个段落的结构标记。
-
递归生成层: 以段落为单位递归生成故事,每步生成第 $t$ 个段落 $Y^t$ 时,利用前序段落的长期上下文(Memory, $M^t$)和短期上下文(Cheating, $C^t$),结合输入关键词和结构标记,通过语言模型(LM)生成当前段落。
-
上下文管理层: 通过长短期上下文权重校准器 (CWC) 动态校准长短期上下文的权重,确保模型在不同段落生成阶段合理利用历史信息;长故事结构位置标记 (LSP) 通过结构标记向模型传递段落的结构位置信息,指导生成符合预期结构的内容。
关键组件
-
长短期上下文权重校准器 (CWC)
-
模块设计
该组件被设计用于解决递归生成中长短期上下文的平衡问题, 其包含如下两个重要概念.
-
长期上下文 (Memory, $M^t$): 存储从故事开头到当前段落的全局信息,用于维持整体情节连贯性。
-
短期上下文 (Cheating, $C^t$): 捕获最近生成的少数段落(如最后 3 段)的细节信息,用于实现局部语义衔接。
-
-
技术实现
-
权重校准: 使用轻量级 BERT-tiny 作为校准器,输入为当前段落的结构标记 $D^t$ 和前序生成的最后一个段落 $Y^{t-1}$,输出长短期上下文的权重 $\beta$ 和 $\gamma$($\gamma=1-\alpha-\beta$,$\alpha$ 为输入嵌入权重超参数), 具体的权重计算式如下:
\[\beta = (1-\alpha)・\sigma(B_1^t W + b)\]
其中, $B_1^t$ 是 BERT-tiny 的 [CLS] token 输出, $\sigma(\cdot)$ 为 sigmoid 函数.
- 上下文更新: 长期上下文通过门控机制更新, 结合前序长期上下文 $M^{t-1}$ 和前序段落的平均嵌入 $h^{t-1}$, 实现对全局信息的渐进式记忆. 短期上下文 $C^t$ 为前序最后 $c$ 个段落的词嵌入与位置编码之和的 tanh 变换, 聚焦最近细节.
-
-
注意力融合
在注意力块中,将输入嵌入、长期上下文和短期上下文按校准后的权重融合:
\[LM(X^t, M^t, C^t) = \alpha \cdot Attention(Q, K, V) + \beta \cdot Attention(Q, M^t, M^t) + \gamma \cdot Attention(Q, C^t, C^t)\]其中, $Q K V$ 为输入嵌入的 Query, Key, Value向量. 通过动态调整三类注意力的权重, 模型可以在生成不同段落时灵活切换上下文焦点, 例如在开头处更依赖关键词和结构标记, 在中间段落加强长期上下文的重要性以维持连贯, 在结尾加强短期上下文的重要性实现自然收尾.
-
-
长故事结构位置标记 (LSP)
该组件用于解决现有结构标记粒度不足的问题, 通过精细化的段落结构位置信息, 指导模型生成具有清晰层次结构的长故事, 提升完整性和结构的合理性.
-
标记体系: 在传统标记
<body> 基础上, 引入更细致的结构标记: -
三分段标记:
, 分别表示前 1/3 段落, 中间 1/3 段落, 后 1/3 段落, 其用于指示段落在故事中的相对位置. -
结尾提示标记:
, 用于生成倒数第二段时提示模型文章即将收尾, 引导其铺垫结局相关的内容.
结构标记会作为 $X^t$ 的一部分, 与关键词拼接后输入模型, 模型通过预训练学习不同标记对应的生成模式:
-
段落会聚焦于背景设定和角色引入. -
和 段落会推进情节发展, 建立冲突. -
和 段落需要解决冲突, 实现结局的闭环.
-
-
训练策略
LongStory 模型基于三个数据集进行训练:
-
Writing Prompts
-
链接: https://huggingface.co/datasets/euclaise/writingprompts
-
简介: 平均 768 tokens,3.4 个段落,侧重短篇故事生成.
-
-
Reedsy Prompts
-
链接: https://huggingface.co/datasets/Iyan/reedsyPrompts
-
简介: 这是 LongStory 团队在原文中引入的数据集, 从 https://blog.reedsy.com/short-stories/ (这是一个短篇小说网站) 收集, 文中作者采用了 6 万 / 4 千 / 4 千的训练 / 验证 / 测试集划分比例.
-
-
Booksum
-
链接: https://huggingface.co/datasets/kmfoda/booksum
-
简介: 现有的大多数文本摘要数据集包含缺乏长期因果和时间依赖关系的短形式源文档,并且往往存在强烈的布局和风格偏差。尽管这类数据集具有相关性,但它们对未来的文本摘要系统提出的挑战有限。我们通过引入BookSum来解决这些问题,这是一个用于长形式叙事摘要的数据集集合。我们的数据集涵盖文学领域的源文档,如小说、戏剧和故事,并包含由人类撰写的高度抽象的摘要,这些摘要分为三个难度逐渐增加的粒度级别:段落级、章节级和书籍级。我们的数据集的领域和结构为摘要系统带来了一系列独特的挑战,包括:处理超长文档、复杂的因果和时间依赖关系以及丰富的语篇结构。为了促进未来的研究,我们训练并评估了多个抽取式和抽象式摘要模型,作为我们数据集的基线。
-
训练过程中,每步生成第 $t$ 个段落时,将前序所有段落的上下文($M^t$ 和 $C^t$)与当前输入拼接,使用 Teacher Forcing 将真实段落作为后续生成的上下文,确保模型学习到正确的上下文传递机制。
实验验证中, LongStory 在跨数据集场景下评估模型的泛化能力,例如用仅在 Writing Prompts 上训练的模型生成 Booksum 风格的长故事,验证其对未见长度和结构的适应性。实验表明,混合训练的模型(Total)在零样本测试中表现最优,证明了 CWC 和 LSP 的泛化能力。
LongStory 的创新点
LongStory 的创新点主要体现在如下两点:
-
定义了新的评估指标: 首次将 连贯性(Coherence)、完整性(Completeness)、长度可控性(Length Control) 确立为长故事生成的核心目标,构建了覆盖短篇到长篇的统一生成框架。区别于传统模型仅关注连贯性或长度的单一维度优化,LongStory 通过多目标协同优化,实现了长故事生成质量的全面提升。
-
算法创新: 长短期上下文权重校准(CWC)与 长故事结构位置标记(LSP)