自动故事生成是 NLP 技术的一个重要前沿,为创建个性化内容、探索创意和增强互动体验提供了新的可能性。然而,现有的故事生成方法难以保持叙述连贯性和逻辑一致性。这种脱节影响了整体的讲故事体验,强调了实质性改进的必要性。受人类认知过程的启发,研究团队引入了 Storyteller ,这是一种新颖的方法,可以系统地提高自动生成的故事的连贯性和一致性。 Storyteller 引入了一个基于语言学基础的主谓宾(SVO)三元组的情节节点结构,它捕捉了基本的故事事件,并确保了一致的逻辑流程。与以前的方法不同,Storyteller 集成了两个动态模块,故事线和叙事实体知识图(NEKG),它们与故事生成过程不断交互。这种整合产生了结构合理,有凝聚力和身临其境的叙述。大量的实验表明,Storyteller 显着优于现有的方法,实现了84.33%的平均胜率。

问题背景

  • 现有业界方法

    • 基于规则的早期方法:依赖预定义规则和结构化框架生成故事,如 Tale-spin[1]、 Minstrel[2] 等。

    • 分层生成方法:如 Dramatron[3]、DOCv2[4] 等,先生成高层大纲再扩展为章节,但章节/事件独立生成,缺乏全局协调。

    • 知识增强方法:如 StoRM[5],引入常识知识或读者模型,但仍难以解决情节碎片化和角色动机突变等问题。

  • 现有方法的局限性

    • 叙事碎片化:分层生成方法中,章节或事件常被独立生成,缺乏上下文关联,导致情节不一致(如角色行为与前文动机冲突。

    • 逻辑连贯性不足:LLM 虽能生成流畅文本,但长叙事中易出现逻辑断层(如时间线混乱、实体关系矛盾)。

    • 难以平衡创造性与连贯性:部分方法为追求创造性牺牲逻辑,或为逻辑严谨性限制创意表达。

    • 缺乏动态的调整机制:现有方法对生成过程的实时修正能力弱,难以应对情节发展中的突发矛盾。

STORYTELLER 方法

Paper: https://doi.org/10.48550/arXiv.2506.02347

  • 创新点

    STORYTELLER 的创新源于对人类写作认知过程(检索 - 评估 - 生成循环)的模拟,具体如下:

    • 基于 SVO 三元组的情节节点结构:通过 “主语 - 动词 - 宾语”(SVO)三元组捕捉核心事件(如<Alex, decide, undergo surgery>),确保每个情节节点的逻辑明确性,为长叙事连贯性奠定基础。

    • 动态交互模块 STORYLINE 与 NEKG

      • STORYLINE:存储所有情节节点并标记时间戳,维持事件的时间顺序和因果关系。

      • NEKG (叙事实体知识图谱):以图结构记录角色、地点等实体关系 (如 Alex - 接受 - 手术),以支持实体交互的逻辑推理。

    • 三阶段渐进性生成:从高层大纲到中层情节节点,再到详细文本,逐步细化故事,确保每一步都受上下文约束。

  • 技术突破

    • 逻辑连贯性:通过 SVO 节点和 STORYLINE,解决了事件顺序混乱的问题。

    • 叙事一致性:NEKG 实时校验实体关系,避免角色行为和设定冲突 (例如, 医生不会突然执行编程动作)。

    • 长叙事结构完整性:三阶段框架确保了章节间衔接自然,避免独立生成导致的碎片化叙事。

    • 平衡创造性与逻辑性:伪 CPN (候选情节节点) 的生成与审查机制,在保留创意的同时修正逻辑偏差。

  • 技术原理

    1. 核心组件

      • NODE (情节节点):定义为 SVO 三元组 (主语, 谓语, 宾语),若为 SV 结构则转换为 SVS 三元组 (主语, 谓语, 主语),统一表示事件核心要素。

      • STORYLINE:以列表形式存储所有 NODE (CBN 是章节起始节点, CEN 是章节结束节点, CPN 是章节中间节点),每个节点附带时间戳,确保事件在时间上的有序性,例如:[<Alex, begin, recovery, t0>, <Alex, struggle, recovery, t1>, ...]

      • NEKG:基于 Neo4j 构建实体关系图,节点为实体(角色 / 地点 / 物体),边为关系(动作 / 属性)。支持查询实体关联(如 “查询与 Alex 相关的所有医疗事件”),辅助情节合理性判断。

    2. 三阶段渐进式生成

      1. 高层故事主线生成:输入用户提示(如 “世界上最安全的监狱没有围墙……”),生成故事前提(时代、背景)和大纲,划分章节并生成标题与摘要。

      2. 中层情节生成:生成章节起始节点(CBN)和结束节点(CEN),确保章节首尾逻辑衔接;生成伪 CPN(候选中间节点),并通过 STORYLINE 和 NEKG 审查:例如,从 NEKG 检索与伪 CPN 相关的实体关系(如伪 CPN 为<Alex, 拒绝, 治疗>,检索 “Alex - 健康状态” 关系),若伪 CPN 与历史节点冲突(如时间线矛盾),则修正为合理 CPN(如<Alex, 延迟, 治疗>)。

      3. 详细故事写作:基于通过审查的 CPN 序列,生成具体文本块,确保语言风格统一,并复用前文描述维持连贯性。

    3. 一致性和连贯性的关键:伪 CPN 生成与审查

      1. 伪 CPN 生成:基于章节摘要和已有节点,生成候选情节节点(如 “Alex 梦见手术失败”)。

      2. CPN 审查:检查与 STORYLINE 中历史节点的时间顺序(如 “术后康复” 不能早于 “手术”);检查 NEKG 中实体关系合理性(如 “Alex” 若未被诊断疾病,“梦见手术失败” 则需修正)。

      3. 修正策略:若审查不通过,LLM 基于冲突原因生成修正 CPN(如改为 “Alex 担心手术风险”)。

  • 实验验证

    • 实验设置

      • 数据集:WRITINGPROMPTS[6](含 27 万训练故事,平均长度 734 词);

      • 基线模型:GPT-4o、Qwen2-72B、Llama3.1-70B、DOC v2 等;

      • 评估指标:人类偏好率、连贯性、创造性、参与度、相关性,以及多样性指标(DistinctL-n、动词多样性);

    • 实验结果

      • 人类偏好率:STORYTELLER 以 84.33% 的平均胜率远超 GPT-4o(50%)和 DOC v2(50.9%);

      • 多维得分:连贯性(72.8)、创造性(74.7)、相关性(77.6);

      • 消融实验:移除 NEKG 后相关性下降 10.3 分,移除伪 CPN 审查后整体得分下降 10.3 分,证明核心组件的必要性;

方法的局限性和后续研究展望

  • 局限性

    • 与人类写作的差距:生成内容虽长(平均 7594 词),但深度和复杂度仍不及人类创作的完整小说。

    • 评估指标缺陷:缺乏专门针对故事生成的评估体系,现有指标(如人类偏好)存在主观性。

  • 后续研究展望

    • 复杂叙事结构支持:拓展对多线叙事、倒叙等结构的处理能力。

    • 跨类型适配:优化对科幻、悬疑等不同 genre 的生成逻辑(如悬疑故事需强化线索连贯性)。

    • 评估体系完善:设计专门的故事质量指标(如 “情节转折合理性”“角色弧光完整性”)。