推荐内核 · 算法流程图 · v0.6

「我的审美档案」是怎么选下一帧的

brain.js 的美学奖励算法接到新知识图谱的三套真实坐标上。一句话:不是找最像你的,是找最能让你「原来如此」的——落在你惊奇带上、且接得住。把人建模成审美流形上的 N(μ, Σ) + 动态项:μ=12维向量、Σ=各轴椭球、动态=漂移/惊奇带/探索。v0.5–0.6 新增:双时间尺度 · 惊奇带自学习 · 三盏灯+自检 · Σ协方差椭球 · 负反馈语义化

输入 · 三套真实坐标空间(画与人共用)
世界观平面
再现-表现 ⊥ 结构-感知
2D · dWV
语言
构图/空间/造型/光影/色彩/笔触/边缘
7D · dLang
情绪 VAD
愉悦 × 唤起
2D · dAff
组合距离 d(a,b) = 0.5·dWV + 0.3·dLang + 0.2·dAff (各子空间均归一到 0–1)
候选 = 226 张真迹,每张在这三套坐标里都有落点;同一套坐标,人也落得上去——所以"匹配"就是在同一空间里算距离。
画像生成线 · 事件流 → 你

A1事件流(append-only · 唯一真相)

每次交互记一条;画像永远从事件流回放重算(可解释、可回放)。
信号权重 heart/choose +2 · door +1 · view +0.3 · skip −0.5 · reject −0.6

A2双时间尺度 EMA 质心

正权重事件才移动重心。同时维护两套:长期口味 life(慢更新)与此刻心情 sess(快更新)——分清"你是谁"和"你今天什么状态"。三套坐标各一对。
life ← ema(·, r=clamp(0.10·w,.04,.35)) | sess ← ema(·, r=clamp(0.5·w,.25,.7))

A3同时沉淀 + 自学习

loved 心动集(谱系锚)visited 各区访问 各轴 std → Σ椭球exploreAppetite 探索胃口 惊奇带 d* 反学习aversion 回避向量(负反馈)轨迹快照
d* ← ema(d*, 你接受的跳跃幅度, 0.15) — 从行为反学你个人惊奇带,不再写死

画像 Person

{ μ=life/sess 双重心Σ=各轴 std(椭球)、aversion 回避向量、visited、loved、dStarLearned、exploreAppetite、轨迹、三盏灯 } —— 一个审美流形上的 N(μ,Σ)+动态,与艺术家点云同构。
推荐打分线 · 你 → 下一帧

多路召回 recall

每路管一种"相似/相关",去重合并成候选池(不全量打分)。
wv-near 世界观近lang-near 语言近aff-near 情绪近 same-region 常驻区lineage-bridge 谱系桥far-explore 远探索
冷启动(n=0):最远点采样铺 8 张 —— 先把你问清楚

打分 = 美学奖励(见下)

每个候选算一个"能给你多大顿悟"的总分。
total = (1.0·Aha+0.6·Calm+0.5·Info+0.35·Growth)/Σw − 0.4·回避惩罚

MMR 重排 · 多样 + 疲劳

挑分高的,但扣掉"和已选太像"与"同区/同画家连续出现"。
挑选值 = score − 0.3·最大相似 − 疲劳(同区×0.12 / 同画家 0.15)

选 top + 探索位 → 下一帧真迹

默认给顿悟带里最稳的一帧;按探索胃口,偶尔故意丢一个更野的。已看过的进 shown,永不重复。
若候选>3 且 random() < 探索胃口 → 改取队尾(标"探索位")
打分核心 · 美学奖励四项(brain.js 的灵魂,重接 KG)
① Aha 顿悟 倒U×可消解
落在你惊奇带 d* 上(不近不远)× 接得住(谱系/某轴很贴)。这是不返回最近邻的根本原因。
exp(−(d−d*)²/2σ²)·(0.4+0.6·anchor)
② Calm 安静
唤起贴近低设定点 + 轨迹平滑(不忽高忽低)。低唤醒护栏。
(1−|唤起−0.34|) − 0.5·|唤起−上一帧|
③ Info 信息
越不懂你 → 越想用一个远点来"问"你。不确定性 = 答题数 + 区覆盖 + 各轴方差三者合成。
不确定性(.45cnt+.30cov+.25轴方差)·(0.3+0.7·d)
④ Growth 成长
向没去过的世界观区 + 没见过的母题扩张。6 区当课程。
0.6·(新区?1:0) + 0.4·新母题占比

为什么是"倒 U",不是"越近越好"

横轴 = 候选离你多远 d,纵轴 = Aha 得分。峰在 d*:太近(你已知,没惊喜)、太远(接不住,看不懂)都低分,"刚好新"才高。anchor(谱系/轴贴近)再把这条曲线整体抬高 —— 远但有谱系接得住时,顿悟最强。
距离 d → Aha d*(因人学习) 太近·已知 太远·接不住 刚好新 → 顿悟
闭环 · 自学习 + 自检 + 负反馈(v0.5–0.6)

① 惊奇带自学习

推荐时记下预测,你 ♥/✕ 后把"实际接受的跳跃幅度"回灌 d*。有人爱大跳、有人只小步——d* 因人而异、越逛越准,不再写死 0.34。

② 三盏灯(整段旅程质量)

顿悟密度=心动里落在新异上的比例 · 审美成长=区覆盖熵+确定度 · 安静感=序列唤起贴设定点且平顺。衡量体验,不是单帧。

③ 算法自检

把每次推荐的"预测四项分"对照真实 ♥/✕,算每项对你♥的预测力(lift)+ 校准(高分帧是否真更受爱)。能诚实暴露"哪项对你没用"。

④ 负反馈语义化(v0.6)

跳过时推断你嫌它哪条轴(被跳过的画在各轴相对你重心的偏向,EMA 成 aversion 向量)。打分只惩罚朝该轴方向的候选,不是整张画扣分。喜欢会让回避慢慢淡化。

⑤ Σ 协方差椭球(v0.6)

离散从"一个半径"升级为"各轴各自的 std"——世界观平面画成椭圆(横长=在再现↔表现上摇摆、纵长=在结构↔感知上摇摆),并报出你最笃定/最摇摆的轴。即 N(μ,Σ) 里的 Σ。

这意味着

内核从"我们手调参数"走向"数据定参数":预测 → 记录真实反应 → 自检/校准/学惊奇带/学回避 → 调整。可证伪、正在自我检验。
可调参数(页面旋钮 / 代码常量)
参数含义默认
weights.aha / calm / info / growth四个奖励项权重(旋钮可调)1.0 / 0.6 / 0.5 / 0.35
dStar 惊奇带半径从你接受的跳跃幅度反学(再随探索胃口微调)学习·初始0.34
sigma惊奇带宽度(越小越挑剔)0.20
arousalSet安静设定点(低唤醒)0.34
子空间权重世界观 : 语言 : 情绪0.5 : 0.3 : 0.2
EMA r(life / sess)长期慢 / 此刻快 两套质心更新速率0.10·w / 0.5·w
三处用新 KG 做强(相对 v0.3):① 顿悟锚用211 条真实谱系边;② 成长用6 个世界观区当课程;③ 打分空间用语言7轴/世界观/VAD 真坐标替代旧的 4 维代理。
v0.5–0.6 再加五层:① 状态/特质双时间尺度;② 惊奇带 d* 自学习;③ 三盏灯 + 算法自检闭环;④ 负反馈语义化(只避一条轴);⑤ Σ 协方差椭球。
→ 去「我的审美档案」实跑这套算法