- 置换不变集合建模:用 DeepSets 处理无序资产集合
组合层面的建模有个被普遍忽视的结构问题:一篮子资产是『集合』不是『序列』——把 8 只股票的特征按任意顺序摊平喂给 MLP,同一个组合换个排列顺序,模型输出就变。DeepSets(Zaheer et al., NeurIPS 2017)给出通用解:先对每只资产独立编码 φ(x_i),再做对称池化(sum/mean),最后 ρ 读出——数学上可表达一切置换不变函数。本文用纯 numpy 从零实现 DeepSets(含手写反向传播),在组合尾部风险聚合任务上诚实实测:DeepSets R²=0.90 优于摊平 MLP 的 0.79 与手工聚合特征的 0.78,置换后输出偏移 1.8e-15(数值零)而 MLP 偏移达目标标准差的 39%;但变集合大小泛化诚实翻车——训练只见 K=8,测试 K=12 时 sum-pooling R² 崩到 -6.2。并拆穿池化随便选/摊平加增广就行/万能逼近=实际可学/变 K 免费泛化/组合建模必用集合网络五类真实陷阱(中阶)。
17 min Chinese - Set Transformer 金融表征:用诱导点注意力聚合多资产
组合是集合不是序列,但 DeepSets 的「逐资产编码+对称池化」有个盲区:池化前每个资产互相看不见,成对交互(拥挤度、相似持仓共振)只能靠编码器隐式凑。Set Transformer(ICML 2019)把交互焊进结构:SAB 让集合内元素两两做注意力,PMA 用可学习种子向量做注意力池化,ISAB 用 m 个诱导点把 O(K²) 注意力砍成 O(K·m)。纯 numpy 从零实现 SAB+PMA(手写 einsum 反向传播,梯度校验 1e-9 级),在组合拥挤度聚合任务上实测:SetTransformer R²=0.843 > DeepSets-mean 0.831 ≈ 统计聚合+Ridge 0.830——成对交互任务上有真实但温和的优势;注意力矩阵与真实相似度结构吻合,置换偏移 1.4e-15;ISAB 实测 K=2048 时提速 55 倍。但诚实翻车:n=300 小样本下 SetTransformer 过拟合(train 0.92 / test 0.53),被 DeepSets(0.80)反杀——注意力参数多,先吃数据。拆穿注意力必胜/池化都一样/诱导点无损/交互自动学会/直接上实盘五类陷阱(中阶)。
14 min Chinese
返回