ECビジネスが成長する中で、他のショップと自社の顧客がどの程度重なっているのかを知りたい、と考えたことはありませんか?「あのショップとウチ、意外と同じお客さんが多いのかな?」「新規顧客獲得のために、まだリーチできていない層が多いショップはどこだろう?」
このような情報は、マーケティング戦略を練る上で非常に価値があります。しかし、顧客リストは最も重要な個人情報・機密情報の一つ。競合他社はもちろん、たとえ協力関係にある企業であっても、簡単に共有することはできません。
そこで登場するのが、MPC(Multi-Party Computation、マルチパーティ計算)、日本語では「秘密計算」とも呼ばれる技術です。
MPC(秘密計算)とは?
MPCは、複数の参加者(この場合はネットショップ)が、それぞれの秘密情報(顧客リスト)を互いに明かすことなく、それらの情報に基づいて特定の計算(顧客の重複数)を実行できる暗号技術です。
まるで、各々が自分の持っている数字を誰にも見せずに、全員の数字の合計値だけを知る、といった魔法のような計算を可能にします。
MPCで複数ショップ間の顧客重複を調べる仕組み
3つ以上のネットショップ(ここではショップA, B, Cとします)が協力して、共通の顧客数を計算する場合の、MPCを用いた基本的な考え方と手順を見ていきましょう。
前提:
- 各ショップは、顧客を一意に識別できる情報(例:ハッシュ化されたメールアドレスや電話番号など)を持っています。重要なのは、生データではなく、そのままでは個人を特定できない形に変換(ハッシュ化など)し、かつ全ショップで同じルールで変換された識別子を用いることです。
- MPCの計算を行うためのシステムやプラットフォームを利用します。
ステップ:
- データの準備(秘密のベクトル化):
- 各ショップ(A, B, C)は、自社の顧客リストを元に、「顧客識別子」のリストを作成します。
- MPCの計算では、このリストを直接使うのではなく、「どの識別子を持っているか」を示す情報(一種の目録やベクトル)を、MPCの方式(例:秘密分散)に従って断片化(シェア化)します。
- 例えば、考えられる全ての顧客識別子(あるいは分析対象とする識別子の集合)に対して、自社にその顧客がいれば「1」、いなければ「0」を持つような、非常に長い「秘密のベクトル」をイメージしてください。各ショップは、このベクトルの各要素を秘密分散し、その断片(シェア)を計算に参加する他のショップ(あるいは計算サーバー)に配布します。この時点では、どのショップも他のショップの顧客リストそのものや、完全なベクトルを知ることはできません。
- 秘密計算の実行(共通顧客の特定とカウント):
- MPCシステム上で、各ショップから集められたデータの断片(シェア)を使って計算を実行します。
- ここでの計算目標は、「ショップA、B、Cのすべてに存在する顧客識別子の数」を求めることです。
- 具体的には、各顧客識別子に対応するベクトル要素について、全ショップが「1」を持っている場合にのみ、結果が「1」となるような計算(秘密計算における論理積や乗算に相当)を行います。
- 顧客XがショップAにいる(1)、Bにいる(1)、Cにいる(1) → 1 × 1 × 1 = 1 (共通顧客)
- 顧客YがショップAにいる(1)、Bにいる(1)、Cにいない(0) → 1 × 1 × 0 = 0 (共通顧客ではない)
- この計算は、データの断片(シェア)上で行われるため、途中の計算結果や個々の顧客の有無が外部に漏れることはありません。
- 結果の集計と復元:
- 上記の計算を、分析対象とする全ての顧客識別子について行います。
- 最後に、全識別子について計算された結果(共通顧客なら「1」、そうでなければ「0」)の合計値を、MPCの仕組みを使って計算します。これもデータの断片(シェア)上で行われます。
- 最終的に、この「合計値」の計算結果の断片(シェア)を全参加者(ショップA, B, C)が集めることで、初めて「ショップA, B, Cのすべてに共通する顧客の総数」という最終結果だけが復元されます。個々の顧客が誰であるかは、最後まで誰にもわかりません。
具体的な計算式のイメージ(概念)
MPCの内部で行われる計算は複雑な暗号理論に基づきますが、概念的な計算式でイメージを掴んでみましょう。
N 個の顧客識別子候補 \(j\)=1,2,…,N があると仮定します。 ショップ \(i\)(\(i\)=1,2,3)が顧客 \(j\) を持っているかどうかを \(x_{ij}\) で表します(持っていれば \(x_{ij}\)=1、いなければ \(x_{ij}\)=0)。
我々が知りたいのは、3つのショップ全てに共通する顧客の総数、つまり \(x_{1j}\)=1 かつ \(x_{2j}\)=1 かつ \(x_{3j}\)=1 となる顧客 j の数です。これは、各顧客 j について、\(x_{1j}\)×\(x_{2j}\)×\(x_{3j}\) を計算し、その合計を取ることに相当します。
\(N_{\text{common}} = \sum_{j=1}^{N} (x_{1j} \times x_{2j} \times x_{3j})\)
MPCでは、この \(x_{ij}\) の値を直接やり取りする代わりに、それらを秘密分散した値(シェア) [\(x_{ij}\)] を用います。そして、シェアの状態のまま、特殊なプロトコルに従って乗算 [×] と加算 [+] を行い、最終結果のシェア [共通顧客数] を得てから、最後に結果を復元します。
\([N_{\text{common}}] = \sum_{j=1}^{N} ([x_{1j}] \otimes [x_{2j}] \otimes [x_{3j}])\)
※上記はあくまで概念的なイメージであり、実際のMPCプロトコルはより高度な手法(準同型暗号、ガーブル回路、秘密分散に基づく各種演算など)を組み合わせて実現されます。
MPC利用のメリットと考慮点
メリット:
- プライバシー保護: 最大のメリット。顧客情報を一切開示せずに分析できます。
- 法的・倫理的リスクの低減: 個人情報保護法などの規制を遵守しやすくなります。
- 新たなインサイト獲得: 単独では得られない、市場全体の顧客動向に関する知見を得られます。
- 企業間連携の促進: データ共有のハードルを下げ、新しい協力関係を築くきっかけになります。
考慮点:
- 計算コスト: MPCは通常の計算より複雑なため、計算時間やコストがかかる場合があります。
- 技術的専門性: MPCの実装や運用には、専門知識や対応ツール・サービスが必要です。
- 合意形成: 参加する企業間での目的、利用するデータ項目、運用ルールなどについて、事前の合意形成が重要です。
まとめ
MPC(秘密計算)は、プライバシーという現代ビジネスにおける重要課題を守りながら、データから価値あるインサイトを引き出すための強力な技術です。複数のネットショップが協力して顧客の重複状況を分析するようなケースでは、まさにその真価を発揮します。
自社だけでは見えなかった市場の姿を知り、より効果的なマーケティング戦略を展開するために、MPCの活用を検討してみてはいかがでしょうか。技術は進化しており、以前よりも利用しやすくなっています。未来のデータ活用の一つの形として、注目していく価値があるでしょう。

