PersonaAct:推荐里的 simulator,不只服务训练和评测,也开始被拿去做反事实审计

背景

前几轮 Story Lab 已经把 simulator 这条线拆得比最初细很多了:

但顺着这些 story 回看,还有一个更前面的缺口一直没被单独写开:

如果大家都在谈 filter bubble,到底谁来稳定、低成本、可重复地审计它

真实用户实验成本高、隐私负担重;sockpuppet 账号又很难长期复现,且难以精细控制 persona 变化。于是这一轮我没有再去追“更强的推荐 policy”,而是先用 arXiv API 按 recommendation + llm + reinforcement learning 做候选发现,再回到 arXiv 摘要页、arXiv HTML、GitHub API 和本地 search-layer 的 exact-title / site:xiaohongshu.com / xhslink 检索做定向核验,最后锁定了最值得补进来的新入口:

  1. PersonaAct: Simulating Short-Video Users with Personalized Agents for Counterfactual Filter Bubble Auditing
  2. Silung/PersonaAct

核完之后,我更确定了一件事:

推荐里的 simulator 观察表,除了 feedback generator / evaluator / environment 之外,还要再加一类新的 consumer:

counterfactual auditor

核心判断

截至 2026-03-22PersonaAct 最值得记的,不是“又一个短视频用户模拟器”,而是它把 simulator 的系统位置从 训练反馈离线评测交互环境,继续推进到了:

反事实审计器

它要回答的不是“模型会不会点这个视频”,而是:

  1. 推荐系统会不会随着持续交互越来越窄
  2. 一旦已经被平台驯化,用户偏好反向变化后,系统是否还愿意把内容分布拉回来

这会直接逼着 Story Lab 再补一层新记录:

  1. audit objective
  2. bubble metric
  3. counterfactual protocol
  4. algorithmic inertia / reversibility

否则 iEvaLM 这类 evaluator、RecoWorld 这类 environment、Interplay 这类 reference-free simulator,和 PersonaAct 这种 counterfactual auditor,还是会继续被混写成一句“都是 user simulator”。

第一条证据:它把 filter bubble 显式拆成 breadthdepth

这篇 paper 最有增量的一步,不是先讲模型,而是先把审计对象改写清楚。

论文把 filter bubble 分成两层:

  1. Bubble Breadth:内容类别会不会随着持续交互越来越收缩
  2. Bubble Depth:当用户偏好反向变化后,平台能不能把推荐分布拉回来

前者用 content diversity 跟踪,后者则提出 Bubble Escape Potential (BEP)

这里最关键的是 BEP 的实验协议。

它不是简单换个 prompt 再看一遍输出,而是:

  1. 先让 persona p 在已经适应它的账号上持续交互
  2. 再切到反向 persona p'
  3. 用两阶段内容类别分布的 Jensen-Shannon divergence 来衡量“系统愿不愿意跟着变”

也就是说,PersonaAct 不是在评估“模拟器像不像人”,而是在用模拟器测:

平台本身的算法惯性有多强

这和前面几条 simulator story 的 consumer 已经明显不同。

RecoWorld 更像 environment,Interplay 更像 reference-free conversation generator,而 PersonaAct 更像被部署到真实平台上的 behavioral auditor

第二条证据:这条线的 RL 并不服务 ranker,而是服务审计代理本身

PersonaAct 的第二个关键信号,是它虽然也用了 RL,但这里的 RL 并不是拿去训推荐模型。

论文 4.2 / 5.1 说得很清楚:

  1. backbone 是 Qwen2.5-VL-7B-Instruct
  2. 先做 SFT
  3. 再做 GRPO
  4. reward 由 action + duration + format 三部分组成

arXiv HTML 还给出了更细的训练配置:

  1. SFTLoRA rank=64, alpha=128
  2. GRPOLoRA rank=8, alpha=32
  3. GRPO 每个样本采 8 个 generations
  4. KL coefficient β=0.01

这说明它的 RL consumer 很明确:

不是推荐系统本体,而是用来校准一个可部署的 persona-conditioned auditing agent

换句话说,PersonaActLLM-RL 放到了 simulator 这一侧,而且服务的是 audit fidelity,不是 ranking utility

这又会反过来提醒 Story Lab:

以后记录 LLM-RL 协同推荐时,不能只问 reward 最终服务 retrieval、ranking、reasoning 还是 tool-use,还要问:

它是不是在服务 auditing consumer

第三条证据:SFT+GRPO 最好,说明这条线要的是“像人”与“可控”同时成立

这篇 paper 最硬的训练证据在 Table 2

它没有把 GRPO 写成万能升级,而是把三种训练状态并排摆出来:

  1. SFT
  2. GRPO
  3. SFT+GRPO

结果很有意思。

Persona A

  1. LLM SimSMAPE / MAE1.161 / 6.69
  2. SFT 变成 0.683 / 5.61
  3. GRPO 反而变差到 1.305 / 6.26
  4. SFT+GRPO 才是最优的 0.617 / 5.10

Persona B 也是同样模式:

  1. LLM Sim1.357 / 19.09
  2. SFT0.969 / 23.81
  3. GRPO1.218 / 20.40
  4. SFT+GRPO 才压到 0.860 / 19.08

作者自己的总结也很关键:

  1. SFT 更擅长 imitation
  2. GRPO 带来 exploration,但容易漂
  3. SFT+GRPO 才能在 imitation 和 adaptability 之间找到平衡

这组结果非常值得记。

因为它说明 PersonaAct 的目标不是“让 agent 更会演”,也不是“让 RL 自由探索”。

它真正想要的是:

一个既贴近真实历史、又能在平台交互中保持可控偏移的审计代理

第四条证据:它真正测到的是平台差异,不只是 persona 差异

PersonaAct 最有用的结果不在训练表,而在 Table 4Figure 5

论文把 agent 真正部署到了三类短视频平台上:

  1. Bilibili
  2. Douyin
  3. Kuaishou

然后分两个角度审计:

  1. fresh account 上的 content diversity 变化
  2. adapted account 上的 BEP

Table 4 的结果很值得单独记:

Persona A

  1. Bilibili: 0.3393
  2. Douyin: 0.2896
  3. Kuaishou: 0.2723

Persona B

  1. Bilibili: 0.2721
  2. Douyin: 0.1149
  3. Kuaishou: 0.2375

这说明几件事:

  1. Bilibili 的 escape potential 最高,算法惯性相对更弱
  2. Douyin 对某些 persona 的惯性明显更强,Persona B 甚至只有 0.1149
  3. Kuaishou 不是简单的“最强”或“最弱”,而是处在中间带

也就是说,这条线测出来的不只是“用户画像不同,推荐会不同”,而是:

平台对行为反转的可逆性,本身就是可被量化的推荐系统属性

这正是前面几条 simulator story 里还没有显式记录的层。

第五条证据:公开边界已经强于 placeholder repo,但还不是低门槛复现栈

这条线的公开边界也值得单独写清楚。

好消息是,它不是 paper-only,也不是 placeholder。

arXiv HTML 直接给出官方仓:

Silung/PersonaAct

GitHub API 截至 2026-03-22 显示:

  1. 仓库创建于 2025-11-06 09:04:15 UTC
  2. 最近一次代码 push 为 2026-01-15 07:49:24 UTC

根目录也明显不空:

  1. prepare_data.py
  2. infer.py
  3. reward_plugin.py
  4. analyze_diversity.py
  5. analyze_coi.py
  6. interview/
  7. deploy/

而且这两个目录都是真东西,不是占位。

interview/ 里已经公开:

  1. app.py
  2. behavior_analyzer.py
  3. interview_agent.py
  4. outline.md

deploy/ 里则已经公开:

  1. adb_input.py
  2. adb_utils.py
  3. mobile_monitor.py
  4. main.py
  5. ui_main.py

再加上根目录的 infer.sh 已经直接写出 vllm serveswift export--persona、端口探测和 health check,这说明它当前至少已经开放到了:

data prep + persona interview + vLLM inference + deployment/auditing scripts

但它又还不是低门槛复现栈。

原因也很明显:

  1. README 很短,只给 quick start,不给完整复现实验说明
  2. 运行仍依赖本地 raw_data 与手工指定 model_path
  3. 根目录依赖文件甚至写成了 requeriment.txt
  4. 这一轮用 Hugging Face API 按 PersonaAct 检 dataset/model,都还没有独立数据卡或模型卡结果

所以这条线当前更准确的公开边界是:

workflow code with deploy/audit scripts + thin docs

而不是 turnkey reproduction。

中文传播层

这轮我还专门补做了四类中文与小红书检索:

  1. 论文 exact title
  2. PersonaAct 短视频 推荐 审计
  3. site:xiaohongshu.com PersonaAct 推荐
  4. xhslink PersonaAct 推荐

稳定结果主要还是:

  1. arXiv 原文与 HTML
  2. ResearchGate 镜像
  3. 一些无关的小红书工具页与噪声

本轮没有拿到稳定高价值中文机制稿,也没有拿到可复用的 xhslink。这意味着这条线当前仍要以论文、HTML 和 GitHub 官方仓为准,中文传播层暂时只能记成:

几乎空白

证据与来源

下一步

  • 把 simulator 总表再补两列:audit objective / bubble metriccounterfactual protocol / reversibility
  • 继续沿这条线回追它在 related work 里点到的 ClipMind 与更早的短视频 filter-bubble auditing 工作,确认“审计型 simulator”是不是正在独立成支线
  • 持续跟踪 PersonaAct 是否会补出独立的 dataset/model 卡、更多 persona 或更多平台实验;如果后续公开资产明显增多,再回头修正它的公开边界