Tab-PE 公式デモの再現と下流 utility の分析
Microsoft の公式実装 microsoft/DPSDA に含まれる
Tabular Private Evolution (Tab-PE) の公式デモを固定環境で再現し、続けて「DP 合成データの
下流 utility は何で決まり、どこまで上げられるか」を追加実験で調べた記録である。本ページは
要約。数値の詳細・図・条件は各補足タブに置く。
要旨
- 公式 Tab-PE デモを固定コミット
9078c67・uv環境で end-to-end 実行した。公式公表値と 比較していないため、成功実験はすべてEXECUTED(動作確認)でありREPRODUCED(論文再現) ではない。両者を厳密に区別している。 - Adult の DP 合成(ε=1)は下流分類 acc ~80%。同サイズ実データの上限 84% まで ~3〜4 点、 全量学習の上限 86.4% まで ~5〜6 点低い。この差を分解して原因を切り分けた。
- 下流 utility のレバーは埋め込みではなく ε(プライバシー予算)。公式のほか 3 種の作り込んだ 埋め込みを試したが有意な改善はなく(うち 2 種は悪化)、ε は効くが頭打ちで、ノイズを切っても (ε=∞)PE 上限 ~82.5% に留まり、実データ上限 84% には届かない。
- ε=1 での上限との差 ~3.3 点は、DP ノイズ分 ~1.8 点(ε で埋まる)+ PE 生成機構分 ~1.5 点 (ε でも埋め込みでも埋まらない)に分かれる。
- 埋め込み=マッチングの物差し。評価空間と一致する素直な min-max が強く、ノイズを切ると (ε=∞)明確に最良。「意味的に良い」変換は評価空間から離れて utility を落とす(capital の 過大重み付けが主因と診断)。
1. 背景と問い
Private Evolution (PE) は基盤モデルの推論 API のみで DP 合成データを作る枠組みで、Tab-PE は その表形式版(GPU・学習・モデル推論なし、CPU のみ)。合成データは各反復で「埋め込み空間の 最近傍ヒストグラム」に Gaussian ノイズを足して DP を保証し、票の多い候補を選択・変異させて 進化する(🧩 Tab-PE)。
2 つを問うた。(Q1) 公式デモは再現可能な形で動くか。(Q2) 生成される合成データの下流 utility は何で決まり、どこまで上げられるか。
2. 再現(Q1)— 要約
公式 example/tabular/ デモを原則無改変で実行した(SCM 3 prior、実データ 4 種、XOR)。主な
下流分類精度(synthetic-train → real-test、ε=1、分類器 tabicl):
| デモ | acc | macro F1 | 補足 |
|---|---|---|---|
| Breast Cancer | 91.86 | 91.44 | 反復で 52%→92% と改善、進化が有効に機能 |
| SCM (nn / tree / rff) | 85.48 / 66.68 / 61.08 | — | prior で下流精度が大差。順位は 3-seed でも安定(値は単一 run) |
| Adult | 80.94 | 70.78 | 不均衡二値、acc と macro F1 が乖離 |
| Person Activity | 64.04 | 36.52 | 多クラス不均衡、少数クラスが弱い |
| XOR 1/2/3 特徴(tabicl 代替) | 99.8 / 99.0 / 96.9 | — | 高次相関ほど再現が難しくなる傾向 |
全実験の一覧・判定・WSD・実行条件は 🧪 実験 と 📈 詳細結果。
いずれも公式公表値との比較を行っていないため EXECUTED(§5)。
3. 下流 utility のレバーは何か(Q2)
Adult を軸に、上限との距離と「何を変えると utility が動くか」を調べた。詳細な表・図は 🧬 追加分析。
上限(実測). 同じ実 test に対し、実データ 1000 件で学習した tabicl は acc 84.0、実データ 全量の xgboost は 86.4、多数派ベースラインは 75.8。我々の DP 合成(~80)は同サイズ上限に accuracy で ~3〜4 点、macro F1 で ~7 点届かない。
埋め込みはレバーでない. 公式のほかに 3 種の作り込んだ埋め込み(capital 分解+fnlwgt 低減、
education 整合 penalty、公開特徴量エンジニアリング)を 3 seed で試したが、下流 utility に有意な
改善はなく(robust_numeric は ε=1 で誤差内の微増、他 2 種は悪化)、狙った列(capital)の分布
忠実度は上がるが utility には結びつかない。とくに公開 FE 版は、分類器に良い特徴量(ビン化・列
削除)が Tab-PE の距離では逆効果——最近傍選択が使う信号を削る——という転用しやすい教訓を示した。
ε はレバー、ただし頭打ち. ε を 0.5→∞ と振ると acc は 79.98→82.5 と上がり、AUC・macro F1 ほど 恩恵が大きい。だが収穫逓減し、ノイズを完全に切った ε=∞(PE 上限)でも acc ~82.5% で、実データ 上限 84% には届かない。
ギャップの分解.
実データ1000 → 実test 84.0% 同サイズの上限
↑ ~1.5点:PE 生成機構の残差(ε でも埋め込みでも埋まらない)
PE ε=∞(ノイズなし) 82.5% PE の上限
↑ ~1.8点:DP ノイズ分(ε を上げると埋まる)
PE ε=1(既定) 80.7%
(この梯子は ε スイープの単一 seed 系列の値。§2 の Adult 80.94 は公式デモの単独 run、埋め込み 実験の 3-seed ベースラインは 79.89 で、いずれも別条件の同一データ点である。)
なぜ埋め込みが効かないか. Tab-PE の埋め込みは「表現」ではなくマッチングの物差しで、 評価(tabicl・WSD)は生の min-max 空間で行われる。素直な min-max はその評価空間と一致しており、 そこで非公開データに合わせると utility が上がる。「意味的に良い」変換は評価空間から離れた別空間で 合わせるため、高 ε ほど忠実に最適化されて逆に悪くなる(ノイズが低 ε ではその歪みを隠す)。 主因は capital のバイナリ presence 次元による過大重み付けで、これを外すと大半が回復することを 診断で確認した(🧬 追加分析)。
4. 知見のまとめ
- Tab-PE 公式デモは固定環境で end-to-end 実行でき、評価基盤(記録・集計・レポート)を整えた。
- DP 合成の下流 utility を詰めるレバーは埋め込みではなく ε。ただし ε も頭打ちで、生成機構 由来の残差は ε でも埋め込みでも消えない。
- Tab-PE の埋め込みは「評価空間と同じ近さ」であるべき。ノイズを切ると素直な min-max が最良 (ε=1 では変種と誤差内)。「気の利いた」工夫は評価空間から離れて不利で、目的(income)に寄せる 工夫は DP リークになるため、安全に賢くする余地は狭い。
- データ特性の知見:SCM は prior で下流精度が大差だが seed に対し安定。不均衡データ(Adult・ Person Activity)は accuracy と macro F1 が乖離し、少数クラスの再現が弱い。XOR は次数が上がる ほど再現が難しくなる。
- 別データでの確認(Bank・Dry Bean、#49/#55):公式デモ外のデータに チェックリスト(#25)を 適用。同サイズ上限との差はタスクの分離しやすさで決まる:Dry Bean(均衡・分離しやすい 7 クラス) は DP 合成が上限にほぼ一致(acc 90.1 vs 91.4)、Bank(88% 多数派の二値)は accuracy が無意味で macro F1 は一致・AUC のみ ~4 点下、Adult(重なる不均衡二値)は acc で ~4 点下。不均衡データは accuracy でなく macro F1・AUC で評価すべき(📈 詳細結果)。
5. 制約と再現性
- すべて
EXECUTED、REPRODUCEDの実験はない。これは基準に基づく判断で、公式リポジトリは デモの期待値を公表しておらず、論文要旨も本デモ別の数値を示さないため、数値比較に基づくREPRODUCEDを根拠づけられない(判定基準・対応表・許容差は reproduction-criteria、#20)。 - 再現の一部(追加実験)は単一 seed で、run 間の揺れは限定的にしか測っていない。SCM のみ 3 seed。
- XOR の公式分類器
tabpfnはライセンス(要TABPFN_TOKEN)のため未使用(NOT_RUN)。分類評価はtabiclに差し替えた deviation。埋め込み・ε の追加実験も公式条件からの明示的な変更である。 - 入力データは第三者リポジトリ
toan-vt/cloud-data-store@main(未固定参照)から取得。 - 環境再構築・実装メモは 🛠 エンジニアリング、疑問と回答は ❓ QA。
6. 補足(詳細)
- 🧩 Tab-PE — 手法・論文↔コード対応
- 🧪 実験 — 公式デモ一覧・条件・再現判定
- 🔬 データ — データセット・取得元・前処理
- 📈 詳細結果 — 実験別の指標・反復推移・seed 安定性
- 🧬 追加分析 — 埋め込み・上限・ε スイープ・診断
- 🛠 エンジニアリング — 環境・再現手順・落とし穴
References
- Private Evolution 公式実装: https://github.com/microsoft/DPSDA
- Tab-PE 論文: Differentially Private Synthetic Data via APIs 4: Tabular Data, arXiv https://arxiv.org/abs/2606.08259
- 参考レポート構成: https://github.com/gghatano/tpdp2026-binagg