DOCUMENTATION

Auto-Tuner解剖 ①: エンジン概要と設計哲学

EXAWin Auto-Tunerの全体構造を解剖する。6つの学習対象、5段階のデータ成熟度、そして「合わせるのではなく、正確にする」という設計原則を詳細に解説する。

このドキュメントシリーズは、EXAWinのAuto-Tunerエンジンの内部を解剖する。コード一行一行の意味、選択した統計手法の理由、そして各パラメータがなぜその範囲にあるべきかを、講義のように紐解いていく。

このシリーズを最後まで読めば、あなたはAuto-Tunerのすべての推奨値が「なぜその値なのか」を説明できるようになる。



1. Auto-Tunerとは何か

1.1 一行での定義

Auto-Tuner = 過去のプロジェクト(Won/Lost)の結果に基づき、ベイジアンエンジンのパラメータを「正確にする」システム

ここで核心となるのは「正確に」である。P(Win)を単に上げるのではなく、WonになったディールのP(Win)は高く、LostになったディールのP(Win)は低く — つまり現実と一致させる方向にパラメータを調整する。

1.2 自動車の比喩

エンジン(ベイジアンの計算式)自体は変更されない。Auto-Tunerが行うのは燃料の配合比を調整することである:

エンジン部品自動車の比喩EXAWin の対応
点火閾値点火時期(イグニッションタイミング)T — ステージの閾値
燃料噴射量インジェクター開弁時間Impact — シグナルの重み
加速レスポンススロットル感度k — 傾き (Velocity)
排気処理触媒コンバーター効率Dampening — 重複シグナルの減衰
燃料漏れペナルティ燃料漏れ警告Silence Penalty — 活動空白のペナルティ

1.3 設計の5原則

① 合わせるのではなく、正確にすること
② インピーダンスの二重構造を保存すること
③ 推奨値+判断根拠を併せて提供すること
④ 人間の承認を必須とする — 自動適用はしない
⑤ 保存データの不変性 — シミュレーションは純粋な計算のみ

特に⑤は重要だ。Auto-Tunerは一度もDBを変更しない。分析ボタンを押すとメモリ上でシミュレーションが回り、管理者が「適用」ボタンを押して初めてDBがアップデートされる。



2. 6つの学習対象

Auto-Tunerが分析し推奨するパラメータは正確に6つだ。

① Signal Lift — 判別力の分析

"このシグナルが出現した場合、Wonの確率は実際に高まるか?"

各シグナルのLift = (Wonでの出現率) / (Lostでの出現率) を計算する。Lift > 1なら陽性指標、Lift < 1なら陰性指標だ。現在の分類(Positive/Negative)と実際の判別力が一致しているかを検証する。

📌 詳細: ② Signal Lift解剖編

② Impact Score — 最適な重み付け

"Game Changerに5.0という値は本当に最適か?"

各ImpactTypeのスコアを±の範囲内で変更しながら、分離度 (Won avg P(Win) - Lost avg P(Win)) が最大になる値を探す。Phaseごとに探索範囲が拡張される。

📌 詳細: ③ Grid Searchエンジン解剖編

③ T — 閾値の最適化

"各ステージの閾値(Threshold)をどこに設定すれば、WonとLostを最もよく区別できるか?"

YoudenのJ統計量 = Sensitivity + Specificity - 1 を最大化するTのポイントを見つける。J < 0.20の場合、「データはこのステージでWon/Lostを区別できない」という意味になるため、値は推奨されない。

📌 詳細: ④ Threshold · k解剖編

④ k — 傾き (Velocity)

"P(Win)がTを超えた時、どれほど急激に反応すべきか?"

従来は証拠量(α+β)の比率に基づく経験則公式 1 + ln(ratio) を使用していたが、Grid Searchベースに転換し、分離度を直接最大化するkを探索する。上限は理論書に基づき12としている。

📌 詳細: ④ Threshold · k解剖編

⑤ Dampening — 重複シグナル減衰

"同じミーティングでシグナルが3つ同時に出た場合、すべてに同じ重みを与えるべきか?"

Compound Score = MAX(シグナル群) + 残りのシグナル × dampening。dampeningが0なら最も強いシグナルのみ、1ならすべてに同じ重み。現在のデフォルト値0.25をGrid Searchで最適化する。

⑥ Silence Penalty — 活動空白ペナルティ

"顧客に会わない期間が長くなった場合、どれだけのペナルティを与えるべきか?"

βに累積されるペナルティの割合をGrid Searchで最適化する。



3. 5段階のデータ成熟度 (Phase)

Auto-Tunerはデータ不足時の過学習を防止するため、WonとLostのうち少ない方(min)を基準に5段階の信頼等級を付与する。

Phase条件Emoji調整範囲信頼度
1min < 5分析不可none
2min 5~9🟠方向性の参照のみ、適用不可low
3min 10~19🟡Impact, T, kmoderate
4min 20~49🟢Impact, T, k, Dampening, Silencehigh
5min ≥ 50🔵全体 + MCMC事後分布stable

なぜ min を基準にするのか?

Wonが100件でもLostが3件しかなければ、「Lost3件だけでこのパラメータにおいてLostがよく区別される」とは言えない。 統計的有意性は常に少ない方のサンプルに制限される。

Phaseによって変化するもの

Phaseが上がるとAuto-Tunerの働きは段階的に拡張される:

動作Phase 2Phase 3Phase 4Phase 5
Signal Lift最小出現3回5回8回10回
Grid Search範囲±20%±30%±40%±50%
T/k の調整
Dampening/Silence の調整
MCMC事後分布
Prior α/βの推奨手動モーメント法MLEMLE


4. コア指標: 分離度 (Separation)

Auto-Tunerの目的関数(objective function)は分離度である。

Separation=P(Win)WonP(Win)Lost\text{Separation} = \overline{P(Win)}_{\text{Won}} - \overline{P(Win)}_{\text{Lost}}
  • Separation > 0.40: Excellent (A) — パラメータが現実をよく反映している
  • 0.25 ~ 0.40: Good (B) — 改善の余地あり
  • 0.10 ~ 0.25: Needs Improvement (C)
  • < 0.10: Urgent (D) — パラメータの早急な調整が必要

分離度の限界とAUC

分離度は平均値の差のみを測定する。分布の重なりは考慮しない。

例:

  • シナリオA: Wonの平均 0.70、Lostの平均 0.30 → Separation 0.40 → Excellent!
  • シナリオB: Wonの範囲 [0.20, 0.90]、Lostの範囲 [0.10, 0.80] → 平均の差は同じだが大きく重なっている

これを補完するためにROC AUCを導入した。AUCは「ランダムにWonを1つ、Lostを1つ選んだ時、WonのP(Win)の方が高い確率」である。重なりが大きいとAUCは低下する。

📌 詳細: ⑤ 統計検証解剖編



5. シミュレーション・エンジン

Auto-Tunerの核心はメモリベースのシミュレーションである。DBに保存された実際のBayesianUpdateを使用せず、元データ(活動、シグナル、Prior)から最初から再計算を行う。

なぜ再計算するのか?

パラメータを変更してテストするには「もしImpactが3.0だったら、P(Win)はどのように変わっていただろうか?」を計算しなければならない。これはDBに保存された過去の結果からは分からない。仮想のパラメータを用いて最初からシミュレーションして初めて結果が分かる。

シミュレーション 1回のフロー:
  α, β ← Priorの初期値
  for 各活動 (時間順):
    → 該当する活動のシグナルからCompound Scoreを計算
    → α += SWV × 陽性Compound
    → β += SWV × 陰性Compound
    → β += 沈黙ペナルティ (活動空白時)
  P(Win) = α / (α + β)

このシミュレーションをすべてのWon/Lostプロジェクトに対して繰り返すことで、そのパラメータにおける分離度を導き出す。

DBクエリ = 0

シミュレーション中、DBへのクエリは一度も実行されない。初期化時に全データをメモリ上にプリロードし、それ以降は純粋な計算のみを実行する。これが設計原則⑤の実装である。



6. ドキュメントシリーズ案内

タイトル内容
① [現在]エンジン概要と設計哲学全体構造、6つの学習対象、Phase、分離度
Signal Lift 解剖Lift計算、Laplace smoothing、分類検証
Grid Searchエンジン解剖Impact最適化、Phase別範囲、Dampening、Silence
Threshold · k 解剖Youden J、T最適化、k Grid Search
統計検証 解剖AUC、K-fold CV、Prior推奨
MCMC事後分布 解剖Emcee Ensemble MCMC、モデル定義、HDI、収束診断