この記事では、連合学習(FL)と秘密計算の違いについて説明していきます。
はじめに
昨今、膨大に存在する顧客情報を活用してサービスに還元することは、ビジネスが成功するために欠かせない要素となっています。
しかし、個人情報に関する行政の規制は強まっており、個人のプライバシーを守ることも企業活動を行う上で重要になっています。
プライバシーを守った上でデータ活用をする方法として、連合学習(Federated Learning)と秘密計算という2つの手法が存在しています。
この記事では、その両者の違いについてわかりやすく解説していきます。
連合学習とは
連合学習(Federeted learning)とは、機械学習の手法の一つである、データを集約せずに分散した状態で機械学習を行う方法です。
連合学習では個々のデバイスで機械学習を行い、改善点などの必要な要素のみ集計します。従来の機械学習と比べ、データの計算負荷も一定であり、通信量も少なく済みます。さらに、データ
が持ち主から離れることがないので、プライバシーも確保できます。
この連合学習の特性によって、データの活用のハードルが下がると考えられます。
秘密計算とは
秘密計算とは、暗号化したままの状態で計算を実行することです。
今回の比較では、より詳細な比較をするため、具体的な秘密計算の技術に関しても軽く説明します。
秘密計算の仕組みの代表的なものは2つあります。
- 秘密分散+MPCベース
- 準同型暗号ベース
秘密分散+MPCベースの秘密計算は、データを分割し物理的に計算空間を分けるというアーキテクチャでデータの秘匿性を担保しているのに対し、準同型暗号ベースは、鍵を用いて暗号化することで秘匿性を担保するという性質の違いがあります。
秘密計算の詳細に関しては、以下の記事にて解説しています。
秘密計算の仕組みの違いとして、ある研究では同一の計算を実行する際、秘密分散+MPCベースの秘密計算に比べ、準同型暗号ベースの秘密計算は、実行時間が3,000倍以上長かったという演算結果が得られています。 (下記表参照)

参照元:菊池 亮 五十嵐 大 秘密計算の発展 (2018) https://www.jstage.jst.go.jp/article/essfr/12/1/12_12/_pdf
計算速度が遅いことは、データ分析での利用において非常に大きなデメリットとなります。
そのため、準同型暗号に関しては、上記理由から今回の比較からは除外して考えることとします。
連合学習と秘密分散+MPCベースの秘密計算の違い
それぞれの情報の流れの違い
それぞれの計算手法における情報の流れを確認してみましょう。
まず、連合学習についてです。
先述した通り、連合学習とは、個々のデバイス内で機械学習を行い、改善点などの計算結果のみを取り出してサーバに送信する手法です。サーバで改善された共有モデルは再度個々のデバイスに送信され、繰り返し計算が行われていきます。

次に、秘密分散+MPCベースの秘密計算についてです。
この手法は、生データを分散して暗号化し、それらのデータを複数サーバ間の通信を利用して計算するという手法です。

連合学習のメリット・デメリット
連合学習を行うメリットは、下記になります。
- 計算の中間結果を取得できること。
- エッジコンピューティングのような参加者が多い計算であったり、複雑な計算モデルが必要な計算であっても効率的に実行できること。
連合学習では、更新モデルが更新されるごとに計算結果を得ることができます。そのため、計算の過程で結果がどのように変化して行ったのかを確認することが可能です。
加えて、扱うデータを暗号化していないなどのセキュリティ要件の緩和がなされているため、複雑な計算モデルであっても効率的に計算を行うことができます。
その一方で、下記が連合学習のデメリットです。
- 参加者の更新データが流出してしまう危険性があること
- 参加者が少ないと、全体の更新から残りの参加者の更新データを推測することができてしまうこと
上記で述べたように、連合学習には参加者の更新データがリークされてしまう危険性があります。
これは、各デバイスの情報から更新データを受け取る際に発生します。
改善のため、解析者が個人の更新データをチェックできないよう、更新作業を密かに行ってしまうという工夫が施されています。
また、計算への参加者が少ない場合にはさらに情報漏洩の危険性が高まります。
例えば、2人の参加者で連合学習を実行する際、1人の参加者が、i番目の更新されたモデルを確認し、i-1番目の更新モデルから自分の更新情報を削除します。すると、自分の更新情報を削除した更新モデルはもう一人の更新データによる改善がなされたものだということがわかってしまいます。このように、計算への参加者が少ない場合には、1人の参加者が自分以外の参加者の更新データを把握できてしまう可能性が高まってしまうのです。
秘密分散+MPCベースの秘密計算のメリット・デメリット
秘密分散+MPCベースの秘密計算を行うメリットは、下記になります。
- 安全性を高めることができる。
- 理論上、任意の計算を実行することが可能である。
MPCのもつ安全性は大きく計算量的安全性と情報理論的安全性に大別されます。計算量的安全性とは,攻撃者が暗号を解読するのに非常に長い時間がかかることを安全性の根拠とする安全性概念であり,情報理論的安全性とは,攻撃者が無限のコンピュータ資源を持っていても解読が不可能であることを保証する安全性概念です。
また、秘密分散+MPCベースの秘密計算においては、理論上任意の計算を行うことができることが広く知られています。
その一方で、下記が秘密分散+MPCベースの秘密計算を行うことのデメリットです。
- 計算の途中結果を得ることができない
- 計算や通信に必要なコストが多い
連合学習と異なり、秘密分散+MPCベースの秘密計においては、計算は暗号化されたまま実行されています。そのため、計算が終了し、その結果を復号するまで途中結果などを知ることはできません。
さらに、データを暗号化したまま計算を実行するために、複雑なシステムを構築する必要があります。そのため、計算やデータの通信に必要なコストは高くなってしまいます。
具体的なユースケース
連合学習の応用例として、Cookie代替の技術として注目されている、FLoCがあります。
FLoCとは、興味関心が似ているユーザをひとまとめのコホートとして同一なIDを付与し、コホートごとにトラッキングをする仕組みです。個人ではなく、コホートにしてからトラッキングにすることで、個人単体の情報を企業側が知り得ないことから、個人のプライバシーが担保されています。また、連合学習でもあり、機械学習はユーザのデバイス上で行われ、改善点のみが集約されます。
FLoCの詳細に関しては、以下の記事にて解説しています。
MPC + 秘密分散ベースの秘密計算は、理論上任意の計算が実行できるため、さまざまな領域での計算に利用されています。
代表的な事例は以下の記事にて解説しています。
連合学習と秘密計算の違い・マトリックス

まとめ
この記事では、連合学習(FL)と秘密計算の違いについて説明しました。
どちらもデータ解析の際、セキュリティへの関心の高まりや、データの所有者のプライバシーを安全に守ろうとする動きから発展してきた技術です。加えて、解析できるデータの特徴や、セキュリティ強度などにそれぞれ強みを持っています。
ユースケースに合わせてどちらの技術を用いるべきかということを考慮し、効率よく、かつ安全にデータの解析を行っていくことが賢明な判断と言えるでしょう。
- 連合学習(Federeted learning)とは、データを集約せずに分散した状態で機械学習を行う方法。
- 秘密計算とは、暗号化したままの状態で計算を実行すること。
- 連合学習ではデータの暗号化を行わない一方、秘密計算はデータを暗号化したまま分析を行う。
- 連合学習では、計算の途中結果を取得できたり、複雑な計算モデルでも実行ができることがメリットであるが、セキュリティに脆弱性があることがデメリット。
- 秘密分散+MPCベースの秘密計算は、安全にデータの分析を行うことができる反面、計算の途中結果を得ることができなかったり、計算コストが高かったりする。
参考
Google AI Blog(2017)https://ai.googleblog.com/2017/04/federated-learning-collaborative.html
Federated Machine Learning: Concept and Applications(2019) https://arxiv.org/pdf/1902.04885.pdf
David Evans Vladimir Kolesnikov Mike Rosulek A Pragmatic Introduction to Secure Multi-Party Computation https://www.cs.virginia.edu/~evans/pragmaticmpc/pragmaticmpc.pdf
Yehuda Lindell Secure Multiparty Computation (MPC) (2020)https://eprint.iacr.org/2020/300.pdf
Medium Federated learning and MPC https://medium.com/applied-mpc/federated-learning-and-mpc-93ab84c7909a
菊池 亮 五十嵐 大 秘密計算の発展 (2018) https://www.jstage.jst.go.jp/article/essfr/12/1/12_12/_pdf