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

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

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

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

埋め込みの精緻化

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

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

variant

生成・DP・population・分類器(tabicl)・WSD の定義は公式 adult と同一。変えたのは 埋め込みだけ。各 variant を seed 0,1,23 試行(#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.pyresults/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 が強力なため、埋め込みの改良が下流精度に表れにくい可能性も残る (未確認)。