差分プライバシーとは
Differential Privacy / DP
個々のデータの有無が分析結果へ与える影響を数学的に制限し、統計分析や機械学習モデルから個人が特定されるリスクを抑える枠組み
ひとことで言うと
あるデータが1件含まれていてもいなくても分析結果がほとんど変わらないよう、あえてノイズを加えることで個人を特定されにくくする仕組み。
概要
差分プライバシーは、あるデータセットに特定の1件のレコードが含まれているかどうかによって、分析結果や学習済みモデルの出力がどれだけ変化しうるかを数学的に制限する枠組み。分析結果にノイズを加える際のノイズ量を、対象とする関数の感度(1件のレコードの変化が結果に与える最大の影響)に応じて調整することで、個々のレコードの有無が結果からほとんど区別できない程度に抑える。この制限の強さはプライバシー予算と呼ばれるパラメータ(εなど)で表され、εが小さいほどプライバシー保護は強くなる一方、ノイズが増える分だけ分析結果や学習済みモデルの精度は低下しやすい。機械学習の文脈では、学習時の勾配計算にノイズを加えるDP-SGDのような手法を用いることで、学習済みモデルに対するメンバーシップ推論攻撃などのプライバシー攻撃への耐性を高める対策として利用される。
背景
統計データを匿名化しても、複数の統計情報を組み合わせることで特定の個人が再識別されてしまうリスクが知られており、単純な匿名化だけでは十分なプライバシー保護にならない場合がある。差分プライバシーは、この再識別リスクを、個々のレコードの有無が結果に与える影響を数学的に制限するという形で扱うために研究されてきた。
歴史
2006年: Dworkらが論文Calibrating Noise to Sensitivity in Private Data AnalysisをTCC 2006で発表し、関数の感度に応じてノイズを較正するという差分プライバシーの基本的な枠組みを提示。
アーキテクチャ
差分プライバシーを満たす仕組みは、対象とする関数(集計や学習アルゴリズムなど)の感度、すなわちデータセット中の1件のレコードが変化したときに関数の出力がどれだけ変わりうるかを求め、その感度に比例したスケールのノイズ(ラプラスノイズやガウスノイズなど)を出力に加えることで構成される。機械学習モデルの学習に適用する場合は、DP-SGDのように、各学習ステップで計算した勾配のノルムを一定の範囲にクリッピングしたうえでノイズを加える手法が使われ、個々の学習サンプルがモデルパラメータへ与える影響を制限する。
ワークフロー
対象とする関数(集計処理や勾配計算など)の感度を求める。 感度に応じたスケールのノイズを、関数の出力(またはDP-SGDの場合は勾配)に加える。 ノイズを加えた値を用いて、分析結果の算出やモデルパラメータの更新をする。 プライバシー予算(ε)の消費を記録し、許容範囲内で分析や学習を繰り返す。
欠点
- ノイズを加える分だけ、分析結果や学習済みモデルの精度が低下しやすい
- プライバシー予算(ε)の設定によって保護の強さと有用性のトレードオフが生じ、用途に応じたεの値をどう決めるかが課題になる
- DP-SGDのような手法では、勾配のクリッピングとノイズ付加によって学習の収束が遅くなりやすい
比較
- メンバーシップ推論攻撃 — 差分プライバシーは、メンバーシップ推論攻撃の成功率を数学的に抑えるための代表的な対策の1つとして用いられる
- 連合学習 — 連合学習が生データを共有しない学習方式であるのに対し、差分プライバシーは共有される情報自体にノイズを加えて個々のデータの影響を制限する点で異なるが、両者は組み合わせて使われることも多い
- プライバシー保護学習 — 差分プライバシーは、プライバシー保護学習を実現する代表的な技術の1つに位置づけられる
関連用語
よくある質問
差分プライバシーのεとは?
プライバシー保護の強さを表すパラメータ(プライバシー予算)で、値が小さいほど個々のレコードの有無が結果に与える影響が小さく抑えられ、プライバシー保護が強くなる。
差分プライバシーは機械学習にどう使われる?
DP-SGDのように、学習時の勾配をクリッピングしたうえでノイズを加える手法が使われ、学習済みモデルに対するメンバーシップ推論攻撃などへの耐性を高める。