人種を見ない合成バンディットが特定層へ26%高く価格設定。Equityはプロキシを発見しEEOC 4/5則で監査、CID対応パックを封印します。
AIガバナンスダイナミックプライシングアルゴリズムの公平性

「モデルから人種と所得を除外した」は動的価格設定訴訟で敗訴を招く言葉である

Ashutosh SinghalAshutosh Singhal2026年7月22日14 min

2025年12月、FTCはEversightの価格設定実験をめぐりInstacartと6,000万ドルで和解し、訴状には同一商品で最大23%もの価格差があったことが記録されました。FTCはアルゴリズムにどのような指示が出されていたかを立証する必要はなく、同一商品に対して異なる購入者へ実際に提示された価格そのものに基づいて訴訟を提起しました。

あらゆるプライシングチームが頼りにする決まり文句は、結果責任論とは正反対の主張です。「モデルから人種と所得を除外した」という説明です。私はそう主張するチームの誠実さを信じています。しかし同時に、それこそが法廷で敗訴を招く言葉であるとも考えています。抽象論を語るのではなく、私はその主張を自ら真実として語ることのできる価格決定エンジンを構築し、それを監査しました。そのエンジンは7つの価格アームを持つLinUCBコンテキストバンディットであり、シード42で初期化され、収益最適化を目的として、意図的にプロキシ構造を埋め込んで生成した10,000人の合成消費者集団を用いて学習させました。この架空の小売企業をShopMartと名付けました。実際の小売業者が監査されたわけでも、本物の顧客に過大請求が行われたわけでもありません。だからこそ私は真実(グラウンドトゥルース)を把握しており、それに対して監査を厳密にスコアリングできるのです。その上に構築されたレイヤーがEquityと名付けたコンソールであり、小売業者がすでに運用しているあらゆる価格決定エンジンの上で動作するように設計されています。この検証環境において監査対象となるエンジンは私自身のバンディットです。完全な実行手順はveriprajna.com/demos/ai-pricing-complianceで公開しています。

同一のイヤホン、同等の需要、26%の価格上乗せ

私はバンディットに9つの入力変数を与えましたが、その中に保護対象属性は一切含まれていません。郵便番号(ZIP)所得指数、デバイス層、流入元、滞在時間、カートサイズ、リピート率、セッション数、有料会員資格、時間帯であり、さらに流入元と滞在時間の交差項も加えました。実際の商用エンジンは交差項や決定木を備えていることが多いため、同等の挙動を再現できるようにしたかったからです。そして、Aura Wireless Earbuds(定価79.00ドル)という単一のSKUに対し、10,000回すべての決定を通じて価格を算出させました。

コンソールのヒーローカードは、処理を実行する前に画面に最初に表示される指標です。2つのコホート、1つの製品、そして一致した需要シグナルが並びます。決定セットAは高所得ZIPかつ最新デバイスのコホート(2,880件の決定)で、アッパーイーストサイドのZIPと最新のiPhoneで表現され、提示価格は74.06ドルです。決定セットBは過半数がマイノリティのZIPかつ旧型デバイスのコホート(3,037件の決定)で、サウスブロンクスのZIPと旧型Androidで表現され、提示価格は93.47ドルとなりました。測定された差異は+26.2%です。これらはそれぞれ約3,000件の決定にわたるコホート平均値であるため、不運な1人の買い物客の結果ではなく、ポリシーの体系的な挙動を示しています。各カードのZIPとスマートフォンはコホートの代表的なプロファイルであり、定義そのものではありません。

Equity Pricing Outcome Comparisonカード:決定セットAはZIP 10021と最新iPhoneで表される2,880件の基準コホートで74.06ドル。決定セットBはZIP 10456と旧型Androidで表される3,037件の露出コホートで93.47ドル。同一のAura Wireless Earbuds(定価79.00ドル)に対して測定された格差は+26.2%でした。
監査実行前のヒーローカード。同一SKU、同等の需要シグナルでありながら、74.06ドル対93.47ドルとなり、それぞれ約3,000件の合成決定のコホート平均で26.2%の格差が生じています。

私を動揺させたのは、差別的と呼べるルールを一行も書いていなかったという事実です。私は収益最大化アルゴリズムを記述し、支払い意欲を予測するシグナルを与えたにすぎません。ZIPは所得を予測し、所得は価格弾力性を予測し、旧型Androidは他店比較の少なさを予測します。これらは人種そのものではありません。しかしすべて人種と相関して動き、収益で報酬を得るバンディットはそのすべてを発見します。シグナルがコホートの情報を運んでいるとき、26%の格差こそがまさに収益最適化の帰結なのです。

2つの無害な入力の間に潜むプロキシ

私が思いついたすべての個別テストには抜け穴が存在したため、各入力を3つの方法で評価する監査を設計しました。保護対象コホートに対する絶対ピアソン相関(監査自体は受け取らないラベル)、正規化相互情報量(NMI)、そして反事実価格リプレイです。リプレイでは、保護対象コホートの該当入力を優位コホートの基準値で上書きし、他のすべての入力を一定に保ったままエンジンのポリシーを再実行して、保護対象コホートの価格がどれだけ動くかを測定します。リプレイはモデルに依存しません。入力を変化させて出力を観察するため、エンジンがバンディットであれ、決定木であれ、ブラックボックスであれ問題になりません。

Input Auditテーブルの最初の2行は誰もが予測する通りの結果です。ZIP所得指数は|r| 0.95、MI 1.00、反事実変動+7.8%で、VIOLATIONとなりました。この母集団において地理情報は保護対象クラスを完全にエンコードしており、エンジンはそれに基づいて価格を設定しています。デバイス層は0.32、0.08、+2.9%でVIOLATIONとなり、コード内で閾値として設定した相関0.30およびMI 0.05を超える表面上中立なシグナルでした。

3つ目のVIOLATIONは、個別特徴量監査では検知できないものです。流入元単独では|r| 0.00、MI 0.00でPASS。滞在時間単独では0.17、0.03でPASS。特徴量ごとの個別監査は両方を合格として通過させます。しかし流入元×滞在時間の交差項は|r| 0.00、結合MIが0.73、反事実変動+1.7%となり、VIOLATIONと判定されます。これは最良の単一要素を0.71上回る相互作用ゲインです。

Equity Audit Resultsダイアログ、Input Audit:どの特徴量が人口統計的プロキシであるか。ZIP所得指数0.95、1.00、+7.8%、VIOLATION。デバイス層0.32、0.08、+2.9%、VIOLATION。流入元×滞在時間の交差項0.00、0.73、+1.7%、VIOLATION。有料会員0.24、0.04、ABSTAIN。流入元、滞在時間、カートサイズ、リピート率、セッション数、時間帯はすべてPASS。
カーソルを交差項の行に置いたInput Auditテーブル。流入元と滞在時間は個別にテストするとそれぞれ合格しますが、両者を組み合わせた保護対象クラスとの結合相互情報量は0.73に達します。

私はこの構造を排他的論理和(XOR)型として設計しました。自然検索流入かつ長時間の滞在は保護対象コホートを示します。価格比較サイト経由かつ短時間の滞在も保護対象コホートを示します。自然検索かつ短時間、および価格比較かつ長時間という組み合わせは優位コホートを示します。流入経路だけでも滞在時間だけでもグループを分離することはできませんが、ペアにすることで分離が可能になります。相関分析は1列ごとの手法であるためこれを見抜くことができません。ペアに対する相互情報量こそがこれを検出できるのです。入力を1つずつ監査するコンプライアンスプログラムは監査対象を根本的に誤っているのであり、単一特徴量検証の回答が確実に誤りとなる母集団を構築することなしに、それを証明する手立てはありませんでした。

かつての私自身が提示したであろう抗弁

私自身がかつて規制当局に提示したであろう抗弁、すなわち「無認知による公平性(fairness through unawareness)」を試しました。ZIPとデバイスの入力を除外してエンジンを再学習させ、その結果を報告するという手法です。複合プロキシが内部に残っていることは分かっていました。把握できていなかったのは、0.43という数値のうち、どれだけがZIPとデバイス単体によるもので、どれだけが隠されたペアに起因するものかという点でした。ZIPとデバイスを削除して再学習させたところ、4/5比率は0.43から0.59へと推移しました。依然として不合格であり、残された格差こそがあらゆる単一特徴量監査をすり抜ける部分です。ベンチマークカードはその理由を「Compound Proxy Still Leaks」という言葉で端的に示しています。

Equity Benchmark Resultsダイアログ、Validation Benchmark:ラベル付き評価セット。適合率100%、再現率100%、正当なシグナルの誤フラグ0件、二重用途シグナルの適切な判断留保1/1件。ベースライン:無認知による公平性(ZIPおよびデバイス除外)、4/5比率0.59、不合格、理由「Compound Proxy Still Leaks」。Equity制約0.82、合格、収益影響-1.3%、厳格上限ベースライン0.59、不合格。
同一のシード付き合成データセットにおけるラベル付きベンチマーク。ZIPとデバイスを除外しても判定基準は0.43から0.59に移行しただけで依然として不合格であり、監査は意図的に組み込まれた3つのプロキシすべてを誤検出ゼロで特定しました。

この結果によって、あの決まり文句に対する私の受け止め方は一変しました。エンジンは、単一列テストのすべてに合格する2つのシグナルを通じて、何の手がかりも与えられずにコホートを特定し、今後も特定し続けるでしょう。なぜなら、それを見つけ出すことこそが収益最大化エンジンに課された使命だからです。無認知という前提を口にするだけなら費用はかかりませんが、後になって法廷で釈明を迫られる数値を手渡されることになります。

そのカードに記載された100%という数値には厳密な限定条件があります。このベンチマークはシード42で生成された同一の母集団を再構築し、私が埋め込んだラベルに対して監査をスコアリングしたものであるため、適合率と再現率100%が意味するのは、ラベル付き合成セットにおいて埋め込まれた3つのプロキシすべてを誤検知ゼロで検出したという実績です。これは既知のグラウンドトゥルースに対する自己検証であり、合成環境では再現できない複雑な交絡因子が絡み合う企業の実際の価格決定ログにおける精度としてそのまま引用できるものではありません。

0.43が意味するもの、そしてモデルに決定権を委ねなかった理由

私は独自の社内基準数値を勝手に考案することを拒否しました。自作の数値を規制当局が尊重する理由などないからです。Equityのゲートは外部の法的基準、すなわちEEOCの4/5ルール(29 CFR 1607.4(D))を採用し、採用選考率から価格階層へと応用したものです。「有利」とは最上位ではない価格階層に割り当てられることを意味します。納品されたエンジンにおいて、36%の保護対象コホートが有利な階層を受け取っているのに対し、優位コホートでは83%に達しています。0.36を0.83で割ると0.43となり、法的基準値は0.80であるため、メーターは赤色でFailを示します。その隣には、保護対象コホートの64%が最高価格帯に属し、優位コホートに対して平均+15.6%の超過請求が発生していることが示されています。

差別的影響ゲートまでスクロールしたEquity Audit Resultsダイアログ:EEOC 4/5ルール。赤いメーターは0.43、4/5比率(基準0.80)、不合格を示し、パネルには有利な価格階層の保護対象コホート36%、有利な価格階層の優位コホート83%、最高価格階層の保護対象コホート64%、超過請求平均+15.6%(保護対象対優位)が表示されています。その上部にFeature AuditorとAdversarial Challengerの注記。
ゲートの様子。保護対象コホートの36%が有利な階層にいるのに対し、優位コホートは83%であり、比率は0.43で0.80の基準線を下回るためダイヤルは赤くなります。上部にあるAdversarial Challengerの注記は、判断が留保された有料会員入力についてのロイヤルティ正当化論拠を展開しています。

判定ロジックはエージェントレイヤーの外側、NumPyのみで動作し、弁護士に対してそのまま読み上げ可能な固定順序で実行されます。二重用途シグナルは違反テストの前に評価されます。有料会員は保護対象コホートと0.24の相関を持ちますが、同時に正当なロイヤルティシグナルでもあるため、コードはABSTAINを出力し、違反と決めつけたり免責したりすることなく法務レビューへと回します。後続の処理がこれを独断で違反へ昇格させることは禁じられています。その後に違反閾値、判断留保帯、そしてPASSが続きます。カートサイズ、リピート率、セッション数、時間帯はいずれも合格しました。監査はすべての項目に見境なくフラグを立てるわけではないのであり、あらゆる要素に警告を出す監査は、何も発見できない監査と同様に民事調査要求(CID)の前では無力です。

チーム内のエージェント(Feature AuditorとAdversarial Challenger)は自然言語で意見書を作成します。設計上の3つ目の役割であるRegulatory Mapperは、この構成ではモデルではなく固定の参照テーブルとして実装されています。Challengerの職務は、判断留保された入力について顧客ロイヤルティのメリットを最大限に弁護することであり、画面上でもその通りに議論が展開されます。しかし、それは0.24という数値を改ざんすることも、判定を変更することも、0.43が0.80未満であるかどうかを左右することもできません。私は当初からその境界を厳密に定めました。エージェントは助言し、コードが決定します。モデルは触れることを禁じられた数値について、どれほど説得力のある論理を展開しても構わないのです。

効果を期待していた修正策

私が最初に試した修正は価格上限の設定でした。これはあらゆるプライシングチームが真っ先に頼る対策です。公正な基準価格を15%以上上回る設定を決して行わないという手法です。私はこれをHard-Cap Baselineとして構築し、無難で適切な解決策になると予想していました。しかしそれは収益の0.2%のコストにとどまり、ゲートでは0.59で不合格となりました。カード上のゲーミング兆候がその理由を克明に示しています。29%もの保護対象コホートが、上限から1%以内の境界線上に価格設定されていたのです。判定にはGamed To The Boundaryと表示されます。上限設定が安価で済んだ理由はまさに、エンジンが対象コホートの価格をその境界線の直下に再設定したからにほかなりません。安価でありながら不合格となる策は、予算会議では魅力的に見えても証拠開示の手続きには耐えられません。

収益最大化エンジンは上限値を目標値として扱うのです。
Equity Remediation Resultsダイアログ、公平性制約:検知から是正へ。4/5比率は是正前0.43(不合格、出荷時エンジン)、是正後0.82(合格、収益影響-1.3%)。公平性を考慮した報酬形成(Fairness-Aware Reward Shaping)、推奨制御:0.82合格、収益影響-1.3%、ゲーミング兆候2%、牽引重み0.65。厳格上限ベースライン(適正価格の115%):0.59不合格、収益影響-0.2%、上限価格率29%、判定Gamed To The Boundary。
2つの修正策の比較。報酬形成は収益の1.3%のコストと2%のゲーミング兆候で0.82を達成して合格しました。115%の厳格上限策は0.2%のコストですが0.59で不合格となり、保護対象コホートの29%を上限の境界線に張り付かせました。

有効に機能した制御策は、公平性を考慮した報酬形成(Fairness-Aware Reward Shaping)でした。境界線で強制的に切断するのではなく、プロキシを除外し正当なシグナルのみで再学習させた第2のバンディットである「プロキシフリー基準価格」に向かって、すべての価格を連続的に引き戻し、0.80をクリアする最小の牽引重みを二分探索で特定します。このエンジンでの重みは0.65であり、グリッドを1段階下げた0.625では0.778にしか届きませんでした。是正後の4/5比率は0.82で合格。収益コストは1.3%です。ゲーミング兆候は2%であり、悪用できる不連続な境界が存在しないためです。コンソール自体の注記にも、収益への影響はこの合成エンジンおよびシナリオ固有のものであると記載されていますが、私からも明言しておきます。1.3%という数値は単一のシード付き母集団での測定値であり、公平性を担保するための一般的な対価として宣伝するつもりはありません。

監査記録が果たすべき真の目的

私が証拠パックを最後に作成したのは、それ以前のすべての成果も弁護士が法廷に提出できなければ無意味だからです。民事調査要求(CID)が届いた際、適切なデータを記録してこなかった企業は何ヶ月もフォレンジックデータ抽出に追われることになります。Equityは監査結果を印刷可能なHTML版を伴うJSONパックへと封印します。エンジン名とバージョン、監査された10,000件の決定、ゲート判定、代表的な格差、各入力の所見と根拠、是正結果、そして改ざん防止ハッシュとしてのパック本文のSHA-256ダイジェストです。各VIOLATIONは5つの法規制に紐付けられています。EEOC 4/5ルール、ニューヨーク州アルゴリズム価格開示法(2025年11月10日施行、違反あたり最大1,000ドルの民事罰)、コロラド州AI法(SB 24-205、2026年6月30日施行)、EU AI法第13条および第14条(2026年8月2日からの高リスク義務)、およびFTC法第5条です。判断留保された入力は単一の法務レビュー項目に割り当てられます。

規制マッピングは固定テーブルです。モデルに文章を作成させることも容易でしたが、私はそれを拒否しました。すべてのVIOLATIONには同一の5つの法規制行が付与され、ABSTAINには1つの法務レビュー行が付与され、マッピングのための自然言語は一切生成されません。適用法令について推論を行うモデルは、次のバージョンでその推論内容が変化してしまいます。モデルの挙動によってマッピングが変動するパックは、規制当局の専門家によって容易に論破されてしまいます。パック内の解説文章はモデルによって作成されキャッシュされますが、数値、判定、規制マッピングは確定的なコードによって出力されます。基盤となるモデルが何であれ、この証拠パックは裁判で提出可能な有効性を維持します。画面上でパックを確認できる完全な解説はveriprajna.com/demos/ai-pricing-complianceにあります。

Veriprajnaは価格を設定するものではなく、Pricefx、PROS、Zilliant、Competeraに取って代わるものでも、法的判断を下すものでもありません。顧客のエンジンは価格設定を継続し、私は客観的な証拠を提供し、最終決定は顧客の法務チームが下します。

そして、文章による説明よりも実際の監査実行画面を確認したい場合は、最初から最後までの一連の流れをこちらからご覧いただけます。

私はプライシングチームのあの言葉に何度も立ち返ります。なぜなら、その主張自体は真実だからです。人種も所得もモデルには入っていません。私が構築したエンジンにおいて、その偽りのない言葉のすぐ隣に、同一のイヤホンに対する26%の価格差、0.43のゲート判定、そして機能しているように見えて実際には破綻していた上限設定が存在していました。誰もエンジンに購入者の素性を教えてはいません。収益の最大化を報酬とするだけで十分だったのです。なぜなら、購入者を推測することこそが最も利益を生む推定だったからです。そして監査はその推測がどこまで踏み込んだかを精密に測定しました。法廷で通用する言葉は、もっと重みのあるものです。「私たちは、指示されずともエンジンがコホートを見つけ出せることを知っており、それがどこまで及んだかを測定し、それを食い止めるためにこれだけのコストを支払った」という説明です。

関連リサーチ

他のプラットフォームでも公開

確かな信頼のもとに、AIを構築する。

次世代のエンタープライズAI構築において豊富な経験を持つチームと、ぜひご一緒ください。信頼できるAI戦略の設計・構築・導入を、私たちがお手伝いします。

Veriprajna ディープテック・コンサルティング は、ヘルスケア・金融・規制対応分野における安全性重視のAIシステム構築を専門としています。当社のアーキテクチャは確立されたプロトコルに照らして検証され、包括的なコンプライアンス文書を備えています。