PersonaAct:推荐里的 simulator,不只服务训练和评测,也开始被拿去做反事实审计
背景
前几轮 Story Lab 已经把 simulator 这条线拆得比最初细很多了:
训练级推荐 simulator,开始要求既可控又可测主要补的是controllability interface / protocolized evaluation从 iEvaLM 到 RecUserSim:推荐里的 user simulator,得先学会被校准主要补的是 simulator 先作为 evaluator 被审计RecoWorld:推荐 simulator 开始从 feedback generator 长成 instruction environment把 simulator 推成了agentic environmentInterplay:对话推荐 simulator 开始摆脱 target-aware 剧本主要补的是target exposure / oracle knowledgeLERL:推荐里的 LLM-RL,也可以先让大模型规划类目,再让 RL 选 item则把filter bubble写成了训练期要规避的长期目标
但顺着这些 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 检索做定向核验,最后锁定了最值得补进来的新入口:
- PersonaAct: Simulating Short-Video Users with Personalized Agents for Counterfactual Filter Bubble Auditing
- Silung/PersonaAct
核完之后,我更确定了一件事:
推荐里的 simulator 观察表,除了 feedback generator / evaluator / environment 之外,还要再加一类新的 consumer:
counterfactual auditor
核心判断
截至 2026-03-22,PersonaAct 最值得记的,不是“又一个短视频用户模拟器”,而是它把 simulator 的系统位置从 训练反馈、离线评测 或 交互环境,继续推进到了:
反事实审计器
它要回答的不是“模型会不会点这个视频”,而是:
- 推荐系统会不会随着持续交互越来越窄
- 一旦已经被平台驯化,用户偏好反向变化后,系统是否还愿意把内容分布拉回来
这会直接逼着 Story Lab 再补一层新记录:
audit objectivebubble metriccounterfactual protocolalgorithmic inertia / reversibility
否则 iEvaLM 这类 evaluator、RecoWorld 这类 environment、Interplay 这类 reference-free simulator,和 PersonaAct 这种 counterfactual auditor,还是会继续被混写成一句“都是 user simulator”。
第一条证据:它把 filter bubble 显式拆成 breadth 和 depth
这篇 paper 最有增量的一步,不是先讲模型,而是先把审计对象改写清楚。
论文把 filter bubble 分成两层:
Bubble Breadth:内容类别会不会随着持续交互越来越收缩Bubble Depth:当用户偏好反向变化后,平台能不能把推荐分布拉回来
前者用 content diversity 跟踪,后者则提出 Bubble Escape Potential (BEP)。
这里最关键的是 BEP 的实验协议。
它不是简单换个 prompt 再看一遍输出,而是:
- 先让 persona
p在已经适应它的账号上持续交互 - 再切到反向 persona
p' - 用两阶段内容类别分布的 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 说得很清楚:
- backbone 是
Qwen2.5-VL-7B-Instruct - 先做
SFT - 再做
GRPO - reward 由
action + duration + format三部分组成
arXiv HTML 还给出了更细的训练配置:
SFT用LoRA rank=64, alpha=128GRPO用LoRA rank=8, alpha=32GRPO每个样本采8个 generationsKL coefficient β=0.01
这说明它的 RL consumer 很明确:
不是推荐系统本体,而是用来校准一个可部署的 persona-conditioned auditing agent
换句话说,PersonaAct 把 LLM-RL 放到了 simulator 这一侧,而且服务的是 audit fidelity,不是 ranking utility。
这又会反过来提醒 Story Lab:
以后记录 LLM-RL 协同推荐时,不能只问 reward 最终服务 retrieval、ranking、reasoning 还是 tool-use,还要问:
它是不是在服务 auditing consumer
第三条证据:SFT+GRPO 最好,说明这条线要的是“像人”与“可控”同时成立
这篇 paper 最硬的训练证据在 Table 2。
它没有把 GRPO 写成万能升级,而是把三种训练状态并排摆出来:
SFTGRPOSFT+GRPO
结果很有意思。
对 Persona A:
LLM Sim的SMAPE / MAE是1.161 / 6.69SFT变成0.683 / 5.61GRPO反而变差到1.305 / 6.26SFT+GRPO才是最优的0.617 / 5.10
对 Persona B 也是同样模式:
LLM Sim是1.357 / 19.09SFT是0.969 / 23.81GRPO是1.218 / 20.40SFT+GRPO才压到0.860 / 19.08
作者自己的总结也很关键:
SFT更擅长 imitationGRPO带来 exploration,但容易漂SFT+GRPO才能在 imitation 和 adaptability 之间找到平衡
这组结果非常值得记。
因为它说明 PersonaAct 的目标不是“让 agent 更会演”,也不是“让 RL 自由探索”。
它真正想要的是:
一个既贴近真实历史、又能在平台交互中保持可控偏移的审计代理
第四条证据:它真正测到的是平台差异,不只是 persona 差异
PersonaAct 最有用的结果不在训练表,而在 Table 4 和 Figure 5。
论文把 agent 真正部署到了三类短视频平台上:
BilibiliDouyinKuaishou
然后分两个角度审计:
- fresh account 上的 content diversity 变化
- adapted account 上的
BEP
Table 4 的结果很值得单独记:
对 Persona A:
Bilibili:0.3393Douyin:0.2896Kuaishou:0.2723
对 Persona B:
Bilibili:0.2721Douyin:0.1149Kuaishou:0.2375
这说明几件事:
Bilibili的 escape potential 最高,算法惯性相对更弱Douyin对某些 persona 的惯性明显更强,Persona B甚至只有0.1149Kuaishou不是简单的“最强”或“最弱”,而是处在中间带
也就是说,这条线测出来的不只是“用户画像不同,推荐会不同”,而是:
平台对行为反转的可逆性,本身就是可被量化的推荐系统属性
这正是前面几条 simulator story 里还没有显式记录的层。
第五条证据:公开边界已经强于 placeholder repo,但还不是低门槛复现栈
这条线的公开边界也值得单独写清楚。
好消息是,它不是 paper-only,也不是 placeholder。
arXiv HTML 直接给出官方仓:
GitHub API 截至 2026-03-22 显示:
- 仓库创建于
2025-11-06 09:04:15 UTC - 最近一次代码 push 为
2026-01-15 07:49:24 UTC
根目录也明显不空:
prepare_data.pyinfer.pyreward_plugin.pyanalyze_diversity.pyanalyze_coi.pyinterview/deploy/
而且这两个目录都是真东西,不是占位。
interview/ 里已经公开:
app.pybehavior_analyzer.pyinterview_agent.pyoutline.md
deploy/ 里则已经公开:
adb_input.pyadb_utils.pymobile_monitor.pymain.pyui_main.py
再加上根目录的 infer.sh 已经直接写出 vllm serve、swift export、--persona、端口探测和 health check,这说明它当前至少已经开放到了:
data prep + persona interview + vLLM inference + deployment/auditing scripts
但它又还不是低门槛复现栈。
原因也很明显:
- README 很短,只给 quick start,不给完整复现实验说明
- 运行仍依赖本地
raw_data与手工指定model_path - 根目录依赖文件甚至写成了
requeriment.txt - 这一轮用 Hugging Face API 按
PersonaAct检 dataset/model,都还没有独立数据卡或模型卡结果
所以这条线当前更准确的公开边界是:
workflow code with deploy/audit scripts + thin docs
而不是 turnkey reproduction。
中文传播层
这轮我还专门补做了四类中文与小红书检索:
- 论文 exact title
PersonaAct 短视频 推荐 审计site:xiaohongshu.com PersonaAct 推荐xhslink PersonaAct 推荐
稳定结果主要还是:
- arXiv 原文与 HTML
- ResearchGate 镜像
- 一些无关的小红书工具页与噪声
本轮没有拿到稳定高价值中文机制稿,也没有拿到可复用的 xhslink。这意味着这条线当前仍要以论文、HTML 和 GitHub 官方仓为准,中文传播层暂时只能记成:
几乎空白
证据与来源
- PersonaAct: Simulating Short-Video Users with Personalized Agents for Counterfactual Filter Bubble Auditing:论文摘要主入口;可直接核到
2026-01-30提交、counterfactual filter bubble auditing定位,以及“公开代码和数据”的对外口径。 - PersonaAct arXiv HTML:用于核对
breadth / depth / BEP这套审计协议、SFT + GRPO训练细节、Table 2的 fidelity 数值,以及Table 4的Bilibili / Douyin / Kuaishou平台差异。 - Silung/PersonaAct:官方实现入口。GitHub API 与仓库树可直接核到创建时间、最近一次 push,以及
prepare_data.py / infer.py / reward_plugin.py / interview/ / deploy/这些公开脚本与目录。
下一步
- 把 simulator 总表再补两列:
audit objective / bubble metric与counterfactual protocol / reversibility - 继续沿这条线回追它在 related work 里点到的
ClipMind与更早的短视频 filter-bubble auditing 工作,确认“审计型 simulator”是不是正在独立成支线 - 持续跟踪
PersonaAct是否会补出独立的 dataset/model 卡、更多 persona 或更多平台实验;如果后续公开资产明显增多,再回头修正它的公开边界