Tab-PE 公式デモの再現と下流 utility の分析

埋め込み・上限・ε スイープ・診断(詳細)

追加分析:下流 utility のレバー(詳細)

このページは要約レポート(📄 レポート §3)の詳細な裏付けである。Adult を軸に、 (1) 埋め込みの精緻化、(2) 下流の実測上限、(3) ε スイープ、(4) 「なぜ埋め込みが効かないか」の 診断、を順に示す。結論は「utility のレバーは埋め込みではなく ε、ただし ε も頭打ち」で、 その根拠がここにある。

埋め込みの精緻化

公式 Adult デモは既定の TabularEmbedding(数値は metadata の min-max、カテゴリは one-hot、距離は L2)を使う。Adult 固有の性質——capital-gain/loss のゼロ集中、 fnlwgt が標本重みであること、education と education-num の重複——を距離へ反映すると 下流 utility や統計的 fidelity が改善するかを追加実験した。

これは公式再現条件の変更である。公式 adult(EXECUTED)結果は置換せず、 adult_embedding_* として独立に記録した。判定はすべて EXECUTED。設計と公開定数 (domain bounds、education→education-num 対応表)は docs/research/adult-embedding.md 参照。

variant

生成・DP・population・分類器(tabicl)・WSD の定義は公式 adult と同一。変えたのは 埋め込みだけ。各 variant を seed 0,1,2 の 3 試行(#22 の seed 制御)で実行した。

Utility(下流分類)

平均±標準偏差(results/summaries/adult_embedding_seed_aggregate.csv):

variant test acc (%) macro F1 AUC
official 79.89 ± 0.58 70.58 ± 1.18 83.33 ± 0.86
robust_numeric 81.01 ± 1.30 71.19 ± 0.54 84.61 ± 1.34
adult_semantic 77.78 ± 1.84 62.58 ± 9.33 80.90 ± 2.84
public_fe 78.61 ± 0.81 63.28 ± 7.72 80.20 ± 4.28
(参考)実データ1000→実test 84.01 77.77 90.42
(参考)実データ全量→実test(xgboost) 86.44 80.48 92.65

variant 別の精度 mean±std(seed 3 試行)

図 5: Adult 埋め込み variant 別の分類精度 mean±std(seed 0,1,2)。

参考として、同じテストセットでの上限を実測した(scripts/datasets/adult/measure_ceiling.py、 results/summaries/adult_ceiling.json に provenance を保存、#42)。同サイズ実データ (実1000→実test、tabicl)は acc 84.01% / macro F1 77.77、全量 xgboost は acc 86.44% / macro F1 80.48。多数派ベースラインは 75.77%。→ 我々の DP 合成(acc ~80%、macro F1 ~70)は 上限まで accuracy で ~4 点、macro F1 で ~7 点の余地があるが、埋め込みの選択でその差は ほとんど動かない。

official(79.89%) と robust_numeric(81.01%) の差は約 1.1 点で標準偏差(0.58〜1.30)と同程度で 有意ではない。adult_semantic(77.78%) と public_fe(78.61%) はむしろ official を下回った。 気を利かせた埋め込みでも下流 utility は改善せず、やり方によっては悪化する。

Fidelity・意味的一貫性

最終合成 CSV に対する追加評価(低いほど良い。公式 TabICL 評価とは分離):

variant capital-gain>0 比率差 capital-loss>0 比率差 education 不整合率
official 0.760 ± 0.012 0.805 ± 0.012 0.549 ± 0.044
robust_numeric 0.498 ± 0.008 0.521 ± 0.016 0.711 ± 0.024
adult_semantic 0.519 ± 0.012 0.535 ± 0.016 0.502 ± 0.072
public_fe 0.516 ± 0.013 0.531 ± 0.019 0.939 ± 0.014

variant 別の fidelity/一貫性 mean±std

図 6: capital 比率差と education 不整合率(低いほど良い)。誤差バーは標準偏差。

公式埋め込みは capital のゼロ集中を全く再現できていない(capital-gain>0 が実データ 9% に対し 合成 83%、比率差 0.76)。robust_numeric/adult_semantic/public_fe はこれを 0.50 前後まで 下げた(差 ≫ std、明確な改善)。一方 education 不整合は、robust_numeric で 0.71、public_fe では 0.94 まで悪化した。public_fe は埋め込みから education 列を落とし education-num だけを 残したため、生成時に両者を揃える力が働かず、education と education-num がほぼ無関係になった。 列を埋め込みから外すと、その列の同時整合は保証されなくなる。

仮説の判定

公開 FE(public_fe): 分類器に良い FE は埋め込みには逆効果

一般的な公開特徴量エンジニアリング(fnlwgt 除去、age/hours の固定エッジ・ビン化、capital の 符号 3 値化、education-num 順序化、native-country を US/非US に集約。正解を覗かない・リークしない) に基づく public_fe を試した。狙いは「分類器に効く良い特徴量なら fidelity/utility が上がるはず」。

結果は逆だった。public_fe は utility が official を下回り(acc 78.61、macro F1 63.28)、 education 不整合は 0.94 まで悪化した。capital 忠実度だけは改善した(0.52)。

理由は、分類器向けの「良い FE」(ビン化・グループ化・列の削除)が、Tab-PE の距離にとっては 情報の削減だからである。Tab-PE は埋め込み上の最近傍で「非公開データに近い合成サンプル」を 選ぶ。ビンで解像度を落とし、native-country を 2 値に潰し、fnlwgt や生の capital 額や education 列を落とすと、最近傍が使える手掛かりが減り、選択の質——ひいては下流 utility——が下がる。 過学習を防ぐための粗い特徴量は、生成の距離としてはむしろ有害だった。

ε を振ると(DP 予算がレバー、ただし頭打ち)(#38)

埋め込みがレバーでないなら、残るギャップの主因は DP ノイズ(ε)か生成機構のはず。これを直接 確かめるため、公式 TabularEmbedding を固定して ε ∈ {0.5, 1, 2, 4, 8, ∞} を振った(単一 seed、 ∞ は noise_multiplier=0=ノイズなしの PE 上限)。

ε acc (%) macro F1 AUC noise_multiplier
0.5 79.98 68.68 82.05 40.9
1.0 80.67 71.43 84.53 21.6
2.0 81.27 73.04 86.29 11.4
4.0 81.84 73.43 87.26 6.2
8.0 82.61 73.04 88.02 3.4
∞ 82.47 72.79 87.46 0.0

Adult utility vs ε(official と robust_numeric)

図 7: Adult の分類精度を ε で振った曲線(単一 seed)。青が official、橙が robust_numeric 埋め込み。 破線は同サイズ実データの acc 上限 84.01%、点線は多数派ベースライン 75.77%。

観察(official 埋め込み):

結論: ε は DP ノイズ分のギャップを(収穫逓減しつつ)埋めるレバーだが、生成機構由来の残差は ε でも 埋め込みでも消えない。ギャップを本気で詰めるなら、埋め込みより ε(プライバシーとの引き換え)か、 生成機構・反復数・サンプル数・少数クラス対応の方が筋がよい。

robust_numeric 埋め込みで ε を振る(#40):ノイズは埋め込み効果を隠していなかった

24 の「埋め込みは効かない」は ε=1(ノイズ大)での結論だった。**DP ノイズが埋め込みの差を覆い

隠していた可能性**を確かめるため、最良 variant robust_numeric でも ε を振って official と比べた。

ε official acc robust acc Δ(robust−official)
0.5 79.98 81.49 +1.51
1.0 80.67 81.59 +0.92
2.0 81.27 78.36 −2.91
4.0 81.84 78.21 −3.63
8.0 82.61 79.34 −3.27
∞ 82.47 77.63 −4.84

結果は仮説の逆だった(図 7 の橙)。低 ε(0.5,1)では robust がわずかに上回るが、ε≥2 では official が明確に上回り、ノイズを切った ε=∞ では official 82.47% に対し robust 77.63%(−4.84)。 robust の曲線は非単調で macro F1 も大きく振れる(単一 seed の不安定さを含むため形状は過信しない)。

つまり DP ノイズが埋め込みの利点を覆い隠していたのではない。むしろ逆で、ノイズが無いほど official(デフォルト)が優勢。ε=1 で robust がわずかに良く見えたのは低 ε の産物で、ノイズが 埋め込みの粗さを覆っていたと解釈できる。高 ε ほど最近傍選択が鋭くなり、robust の作り込んだ距離 幾何がむしろ選択を悪くしていると考えられる。→ 埋め込みは utility のレバーでない、が一層強まった。

診断(なぜ robust が悪いのか): 「capital のバイナリ presence 次元が幾何を支配している」という 仮説を、capital の重みを段階的に落として ε=∞ で切り分けた(--capital-presence-weight / --capital-amount-weight)。

ε=∞ の埋め込み acc macro F1 AUC WSD 1/2/3
official 82.47 72.79 87.46 0.025/0.045/0.065
robust(全部) 77.63 63.30 79.13 0.037/0.072/0.107
robust(presence=0) 80.94 72.15 82.42 0.031/0.060/0.089
robust(capital=0:presence+amount 0) 80.98 73.32 84.12 0.134/0.254/0.366

分解すると:

要するに、plain な min-max(評価空間と一致)から離れる工夫はどれも代償を伴う。presence 次元は 最大の逸脱なので accuracy への害が最も大きく、log 量は AUC を、capital 除去は忠実度を、fnlwgt 圧縮は 残差を、それぞれ削っていた。

総括

強い主張はしない。単一指標での優劣ではなく、utility・fidelity・意味的一貫性の trade-off として 読むべき結果である。tabicl が強力なため、埋め込みの改良が下流精度に表れにくい可能性も残る (未確認)。