Dynamic User Simulator · state-conditioned planning · no personalized reranking

Novel Feedback v3 实验:动态 user simulator + 直接 state-conditioned generation

这不是只写方案页:已经跑了 CPU smoke 实验。扩展后的 72 条 trajectories / 360 events 用来训练动态 user simulator;再把 simulator 接入 closed-loop evaluation,对比 no-update、static-profile、memory-only、state-conditioned planning 和 oracle-update。生成端不做 personalized reranking,而是让 agent state 直接改变 trajectory-level plan 与章节文本。

Qidian DTA adapter

Qidian 仓库已下载,但 reader responses 受 DTA 限制

已下载 zeyu-acad/Qidian-Webnovel-Corpus 到 raw/qidian_code_repo。仓库公开 metadata、README、book mappings;README 明确 comments/replies 需要 Data Transfer Agreement。本实验不绕过 DTA,也不硬爬受限评论;现阶段用 WebNovelBench/NovelUpdates raw snapshot + calibrated augmentation 跑通训练/eval,后续拿到 DTA 文件后可直接接入同一 schema。

Simulator metrics

动态 user simulator 训练结果

小规模 CPU smoke:360 events,训练显式 rating_mae、隐式 continue_auc / fast_swipe_auc 与 reader trust/fatigue transition。

rating_mae

0.1720

评分预测误差,来自 held-out event split。

continue_auc

0.9258

继续阅读动作预测 AUC。

fast_swipe_auc

0.9879

快滑/跳读动作预测 AUC,覆盖隐式负反馈。

counterfactual_separation

0.1333

同文本不同用户 profile 的输出分离度,防止平均用户 collapse。

Closed-loop evaluation

动态 eval:state-conditioned planning 直接生成胜过 memory-only

不做 personalized reranking;每个方法直接根据当前 agent state 生成下一章。

Dynamic return

no_update2.3827
static_profile2.4816
memory_only2.4216
state_conditioned_planning2.5917
oracle_update2.7894

Formula boxes

DSTG = Return(state_conditioned_planning) - Return(memory_only)
     = 2.5917 - 2.4216 = 0.1701

No personalized reranking:
y_t = G(prompt, story_state_t, agent_state_t)
not argmax over K candidates with a personalized reranker.

Method table

方法对比

这个实验回答你的问题:可以不做 reranking,先监督 trajectory-level personalization。

Methoddynamic_returnexpectation_alignmentpersonalization_diversitystate_growth
no_update2.38270.00000.22500.000
static_profile2.48160.33330.29480.667
memory_only2.42160.26670.22020.500
state_conditioned_planning2.59170.76670.27701.833
oracle_update2.78940.80000.48503.833

Trajectory-level personalization

直接生成而不是 reranking

起点建议:state-conditioned planner 监督。agent state 改变下一章 plan beats,再由 generator 直接写章节。

planner state

反馈改变事件序列

pacing_slow → 提高 planner_speed 与 critic_exposition_gate;agency_low → 提高 agency_policy;continuity_check → 提高 retrieval_strength。

direct generation

不生成 K 个候选

每轮只用当前 state 生成一个 plan/chapter。监督信号来自动态 simulator 的 trajectory return、expectation alignment 和 personalization diversity。

Artifacts

实验文件

公开的是小样例和结果;完整本地工作区在 /root/code/vepfs/hermes/novel-demo/.../v3-data。