Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

パーソナル履歴データに対する匿名化と再識別:SCIS2017

1,782 views

Published on

SCIS2017での発表スライド(+α)です。個人の購買履歴データの匿名化と再識別コンテスト:PWSCUP2016の参加者としての立場からの発表です。ちなみに当チームは参加15チーム中の1位です。

Published in: Technology
  • Be the first to comment

パーソナル履歴データに対する匿名化と再識別:SCIS2017

  1. 1. パーソナル履歴データに対する 匿名化と再識別 PWSCUP 参加者からの報告 中川裕志 出町彰啓、中川拓麻 (東京大学) SCIS2017 沖縄 2017 Jan 25
  2. 2. 履歴データの匿名化 • 購買履歴、移動履歴、Web閲覧履歴、医療履歴など ビジネスや社会で有用なデータには履歴データが多 い • とりわけ、重要なのはプライバシー保護が必要な個人 データ • そこで、履歴データの有効活用を目指して、その匿名 化に関する技術を検討し、PWSCUPに参加し技術を 競った。  以下は、PWSCUP主催者側ではなく、戦った参加者 側からの発表
  3. 3. 履歴データを匿名化して作り出したい状況 個人履歴データ 個人履歴データ 個人履歴データ 匿名化 履歴データ 匿名化 履歴データ 匿名化 履歴データ 他のデータ や情報 ううむ。。。この匿名 化履歴データは他 の入手可能なデー タと突き合わせても が特定できんな! どのような 匿名化加工を すればよいか が研究課題 データマイニングで けっこう良い結果が 出るぞ データマイニング 事業者 プライバシー悪用 を狙う攻撃者 ?
  4. 4. PWSCUPの枠組み:最大知識攻撃者モデル 個人履歴データ 個人履歴データ 個人履歴データ 匿名化 履歴データ 匿名化 履歴データ 匿名化 履歴データ ううむ。。。この匿名 化履歴データは個人 名削除の履歴データ と突き合わせても が特定できんな! どのような 匿名化加工を すればよいか が研究課題 データマイニングで けっこう良い結果が 出るぞ データマイニング 事業者 プライバシー悪用 を狙う攻撃者 ? 個人履歴データ 個人履歴データ 個人履歴データ 左のデータと 同じだが、個 人名だけは削 除されている
  5. 5. PWSCUPの枠組み:匿名化のプロはこうする! 個人履歴データ 個人履歴データ 個人履歴データ 匿名化 履歴データ 匿名化 履歴データ 匿名化 履歴データ この方法を使えば再 識別できそうだぞ! この方法を推 定したうえで、 それで破れな い匿名化を方 法を考えるの がプロだぜ! データマイニングで けっこう良い結果が 出るぞ データマイニング 事業者 プライバシー悪用 を狙う攻撃者 ? 個人履歴データ 個人履歴データ 個人履歴データ 左のデータと 同じだが、個 人名だけは削 除されている
  6. 6. 履歴データの構造 • 個人データのデータベースの要素となる個人 データレコードの構造 – 個人識別子:氏名,公的個人ID番号(パスポート番号),な ど – 属性データ:生年月日,住所,国籍,など – 履歴データ:(時刻,品目,位置情報,など)の繰り返し 個人識別子 属性データ 履歴データ
  7. 7. 履歴データの例 • 購買履歴の場合 – (購買日時,購買店舗,購買品目,購買金額,など)の 繰り返し • 移動履歴の場合 – (出発地点,出発時刻,経路,到着地点,到着時刻 など)の繰り返し • Webの閲覧履歴 – (閲覧したWebページのURL,閲覧時刻 など)の繰り 返し
  8. 8. 履歴データの仮名化 • 履歴データを含むレコード構造の場合でも仮 名化は有効なプライバシー保護手段である。 仮名 属性データ 履歴データ 個人識別子 仮名=hash関数(個人識別子) 第3者に渡るのはこちらだけ
  9. 9. 履歴データのk-匿名化 • 仮名+属性データ+履歴データを含むレコード構造の場合 • k-匿名化は属性データの精度を落として、データベース中で 同じ属性データを持つレコードがk個以上存在するように変 換 仮名 属性データ 履歴データ 仮名 精度落とした属性データ 履歴データ 同じ属性データが kレコード以上 しかし、履歴データと仮名は1対1対応している
  10. 10. 履歴データの匿名化の問題点 • 属性データを匿名化しただけでは、履歴データから仮 名を再識別できてしまう。 再識別とは、匿名化(=細工された)履歴データと属性 データを元々の仮名データに紐付けてしまうこと。 • だからといって、履歴データをk-匿名化するように精度 落とすと、データの価値が激減 • データの価値を落とさぬように履歴データに細工する 方法を模索せねば!!! そこでPWSCUP! 詳細は直前の発表2D1,2,3にて紹介された
  11. 11. 匿名化への2つのアプローチ 1. データの有用性を与えられた範囲内にしたうえ で,再識別ができるだけ困難な匿名化処理を 行う. 2. 再識別の困難さを与えられた範囲内にしたうえ で,データ有用性ができるだけ高い匿名化処理 を行う • Sweenyのk-匿名化、トップ/ボトムコーディング はタイプ2. • 後述のPWSCUPはタイプ1.
  12. 12. 再識別と匿名化の枠組み-記法 • 記法 • D:対象の個人データのデータベース • U:有用性指標 • A:匿名化手法 • A(D):匿名化後のデータベース • C:A(D)が満たすべき条件 • R:再識別法 • Res: RをA(D)に適用したときの再識別率
  13. 13. 匿名化手法開発の流れ ー再識別率:Resの最小化ー 1. Res,Aを初期化 2. repeat 3. A’=A 4. 新規のAを考案 5. AをDに適用しA(D)を得る 6. if {A(D)がCを満たす} 7. A(D)の再識別法Rを考案 8. RをA(D)に適用し再識別率Resを計算 9. end if 10. until Resが改善せず 11. return 匿名化手法 A’
  14. 14. 匿名化手法開発の流れ ー再識別率に要求水準付与ー 1. while{再識別率が要求水準より高い} 2. 新規のA(匿名化法)を考案 3. AをデータベースDに適用しA(D)を得る 4. if {A(D)が有用性条件Cを満たす} 5. A(D)の再識別法Rを考案 6. RをA(D)に適用し再識別率を計算 7. end if 8. end while 9. return 匿名化手法A
  15. 15. 留意点 • 最適化したほうが形式的にはよさそうだが Resの最小化は計算量莫大 k-匿名化ですら、最適化はNP-完全 これは開発の流れであって、アルゴリズムではな いことに留意 アルゴリズム自体を考案するのは現状、人手。 再識別率=0にできないなら むしろ、再識別率自体を利用者が設定、調整して、 計算時間が耐えられるレベルにする枠組みが現 実的
  16. 16. PWSCUPのデータ構造:復習 p(i):レコード順序 (=表データの行番号)の置換
  17. 17. 最大知識攻撃者モデル • 攻撃者(=再識別を行う者)は、M,Tを知って いる • その上で、匿名化されたM’、T’からレコードの 置換{p(i), i=1,n}を推定する – これが再識別 – 正しく推定できた割合が再識別率
  18. 18. 有用性指標:cmae 詳細は2D1-1, 2D1-2 • 性別と国籍によって顧客をクラスタ化 – クラスタ全体を{C}. Cの部分集合をs, 置換をp – 購買履歴データT内でクラスタsに含まれる顧客に対 応する部分をT|s, Tのj番目のレコードをtj クラスタ内平均単価:𝜇 𝑢𝑝 𝑇|𝑠 = 𝑡 𝑗 単価∙𝑡 𝑗 個数𝑡𝑗∈𝑇|𝑠 𝑡 𝑗 個数 𝑡𝑗∈𝑇|𝑠 絶対値誤差の全クラスタでの平均値: 𝑐𝑚𝑎𝑒 𝑀, 𝑀′, 𝑇, 𝑇′ = 𝜇 𝑢𝑝 𝑇|𝑠 − 𝜇 𝑢𝑝 𝑇′|𝑠 |𝐶|𝑠∈𝐶
  19. 19. 有用性指標:subset • M’から10人の顧客を任意に選び,その集合 をX’とする. • MにおいてX’対応する集合をX • T上の連続した30日間の履歴データ: 𝐷 に対し, XとX’の購入総額の平均値の差の最大値 • 𝑠𝑢𝑏𝑠𝑒𝑡 𝑀, 𝑀′ , 𝑇, 𝑇′ , 𝑝 = 𝑚𝑎𝑥 𝑋′,𝐷( 𝜇 𝑡𝑝 𝑋′ , 𝐷, 𝑇′ − 𝜇 𝑡𝑝 𝑋, 𝐷, 𝑇 )
  20. 20. 有用性指標:ut-jaccard • 顧客𝑐𝑖がTで購入している商品集合:𝑆 𝑇, 𝑖 • 顧客𝑐𝑖がT’で購入している商品集合:𝑆 𝑇′, 𝑖 • Jaccard係数: 𝑑 𝑆 𝑇, 𝑖 , 𝑆 𝑇′, 𝑖 = 1 − 𝑆 𝑇, 𝑖 ∩ 𝑆 𝑇′, 𝑖 𝑆 𝑇, 𝑖 ∪ 𝑆 𝑇′, 𝑖 • 𝑑の𝑀における総和: 𝑢𝑡 − 𝑗𝑎𝑐𝑐𝑎𝑟𝑑 𝑀, 𝑀′ , 𝑇, 𝑇′ , 𝑝 = 1 𝑛′ 𝑑 𝑆 𝑇, 𝑖 , 𝑆 𝑇′, 𝑖 𝑛′ 𝑖=1 𝑛′ は𝑀′中のレコード数
  21. 21. 有用性指標:RFM • RFM(M, M', T, T’) • M, M'の顧客を、それぞれT, T'の – Recency (最後の購買日), – Frequency(購買頻度), – Monetary (購買額) • の3つの条件でクラス分けした顧客数の二乗 平均平方根誤差を(最大値で割ることで0~1 に)正規化した値
  22. 22. 匿名化手法の設計指針 • まず思いつくのは、顧客の仮IDだけを入れ替え bc
  23. 23. • 性別と国籍が同じクラスタ内で仮ID入れ替えをし ていれば、cmae は維持される。 • M,T ,M′,T ′ を知っている再識別側の攻撃者が 使うであろう方法 1. M,T から生年月日が1964/10/1 でapple を購買した 顧客が3456 であることが分かる 2. 攻撃者はM′,T ′ から仮ID =c が顧客ID=3456 に対応 すると考える.同様に,攻撃者は b ↔ 1234,a ↔ 5678 という対応関係を予想し再識別する. 3. これらは正解の対応関係とは全て異なる – 仮ID の入れ替えだけで組織的な再識別を防ぐことが 出来る.
  24. 24. • しかし,全顧客について仮ID を入れ替える匿 名化手法では ut-jaccard の値が大きくなり、 過加工となってしまう. そこで,ut-jaccard の値を維持するように更に 匿名化手法を工夫して考える必要がある そのような手法は ut-jaccard 維持する匿名化 手法への再識別手法 re-itemset に破られや すい re-itemset を想定した匿名化手法の開発が 必要
  25. 25. 有用性指標の条件と匿名化の枠組み • 𝑠𝑢𝑏𝑠𝑒𝑡 ≤ 50000 and 𝑢𝑡 − 𝑗𝑎𝑐𝑐𝑎𝑟𝑑 ≤ 0.7 ∙ 𝑇の総レコード数 • ut-jaccard は厳しい条件 – 履歴データの値の大きな変更やレコードのシャッフルがで きない 1. ut-jaccardの条件をぎりぎりで満たすような匿名化を目 指す。 2. 再識別側は、そのような匿名化処理をしてくることを前 提に再識別処理を工夫 3. 匿名化側は、そのような再識別処理をかいくぐるような 匿名化手法を開発
  26. 26. 有効な再識別手法の設計 •  各チームから提出されたデータでは各顧客の 購入商品集合はある程度以上は保存されている • 元のデータにおける顧客ごとの購入商品集合に は相当のばらつきがあり,ut-jaccard を維持しなが ら他のレコードと完全に紛らわせることは難しい • このことを勘案して、以下のような再識別手法 re- itemset を導入した。
  27. 27. 有効な再識別手法:re-itemset 1. 𝑛′ ← 𝑀′ 2. for{𝑖 = 1 𝑡𝑜 𝑛′} 3. 𝑞 𝑖 ← 𝑎𝑟𝑔𝑚𝑖𝑛 𝑗 𝑑 𝑆 𝑇, 𝑖 , 𝑆 𝑇′, 𝑖 4. end for 5. return 𝑄 = 𝑞 1 , ⋯ . 𝑞 𝑛′ このre-itemsetは事実上最も有効な再識別手 法となり,他チームの多くのデータに対して最 大識別数を記録した.
  28. 28. re-itemset 対策の概要 1. 顧客ci のS(T ; i) に近いS(T ; j) をもつ顧客cj をjaccard クラスタ とし てまとめる  この部分は重要なので後述 2. この処理後の顧客 cj のアイテム集合𝑆 𝑇′ , 𝑝−1 𝑗 が𝑆 𝑇, 𝑖 に 一致するように顧客cj のアイテムを変更する. 3. これにより,jaccard クラスタ 内の顧客の処理後のアイテム集合 は一致し,顧客間で区別できなくなる.  よって,re-itemset ではjaccard クラスタ内の顧客cj は全て顧客ci とし て再識別される  各jaccard クラスタ で再識別される顧客を高々1 人(真の顧客ci)に 抑えることができる  つまり、できるだけjaccardクラスタ数を減らせればうれしい。  ただし、ut-jaccard<0.7 などの条件は満たさないといけない。
  29. 29. re-itemset対策アルゴリズム の種類からなる 任意のjaccard クラスタ jac に おける ut-jaccard の値≤0.7・|jac| を満たすための条件
  30. 30. re-itemset対策アルゴリズム:つづき 端数処理 この「つづき」の部分では、jaccard クラスタ の作成時に余っ た顧客については3 人ずつjaccard クラスタ としてまとめる.  ut-jaccard(jac)=0+1+1=2 < 0.7・3=0.21 条件満足
  31. 31. 想定される再識別率と本戦の結果 • 詳細は略すが、提案アルゴリズムは • 𝑢𝑡 − 𝑗𝑎𝑐𝑐𝑎𝑟𝑑 = 𝑢𝑡 − 𝑗𝑎𝑐𝑐𝑎𝑟𝑑 𝑗𝑎𝑐𝑗𝑎𝑐 ≤ 0.7 ∙ 𝑗𝑎𝑐 = 0.7 ∙𝑗𝑎𝑐 レコード数 • というut-jaccardの制約条件を満たす。  本戦では、400人(=レコード)の顧客を89個のjaccardクラスタにま とめた。 このときのut-jaccardは0.699  よって、ut-jaccardを対象にした再識別手法では、90人以上再識別 されないはず  もしクラスタ内の個人毎識別ができなければ  予想通り、本戦では再識別されたのは89人に留まっ た!!!
  32. 32. 匿名化におけるクラスタ編成手法 • ut-jaccardを対象にした再識別手法では、90人 以上再識別されないはず  もしクラスタ内の 個人毎識別ができなければ • だからと言って、クラスタや個別データのランダ ム化を無制限に行うと有用性が下落 クラスタとデータのランダム化と有用性維持を 両立させるクラスタ編成手法が必要
  33. 33. ランダム化のイメージ 購 買 額 購買個数 購 買 額 購買個数 ランダム化
  34. 34. 匿名化におけるクラスタ編成手法 • クラスタ編成手法について以下で説明 Step 1 顧客の購買統計データとクラスタをラン ダム化. Step 2有用性を維持すべく購買統計データを 調整. Step 3 調整された購買統計データを満たすT ′ を作成.
  35. 35. Step 1 • クラスタと クラスタをランダムに移動し( )、 元のデータとの対応が着きにくくする。 • 水平方向の移動によってランダム化する。 • 水平方向の移動  有効性指標RFMのうち、購買 額がクラスタ内で変化しない • 赤丸の一つが左に動いた場合、別の赤丸をそれと同 程度だけ逆方向すなわち右に動かす。青丸の同様で ある。これによって、有効性指標RFMのうち購買個数 もクラスタ内で変化しないためである。 購 買 額 購買個数 購 買 額 購買個数 ランダム 化
  36. 36. Step 2 • 有用性指標の平均絶対値誤差cmaeを劣化させない  各クラスタにおいてクラスタ重心に傾き(=平均購 買額)が変化させない • この条件でランダムに移動する。 • Step2では各顧客データ,移動するのは1 度のみとす る。 • 未移動顧客の数が最小である未調整クラスタの全未 移動顧客を移動し, • そのクラスタ平均を調整する作業も行う 購 買 額 購買個数 購 買 額 購買個数 ランダム 化
  37. 37. Step 3 • Step 2 で,T ′ において各顧客が満たすべき 購買総個数と購買総額を算出した. • Step 3 ではこの制約を満たし,topitem,ut- jaccard とsubset の有用性が落ちないようにT ′ を作成する. • 詳細については省くが,Step 3 ではおおよそ 既に述べたut-jaccard 維持する匿名化処理 (個別データの値の変更)が行われる
  38. 38. まとめ • 再識別フェーズではut-jaccard を軸にしたre-itemset のような再識別手法を考 えているチームが多かったらしい • 筆者らの加工データは400 人のうち最大で89 人(22.25%)が再識別された • このことは,既に述べたように匿名化時の予測に合致しており,ut-jaccard を 軸にした再識別手法の限界値が89 人である • ただし,22.25% という値それ自体は – 有用性指標の与え方 – 対象データベースの性質 • に強く依存 • 今回のコンテストの設定における参考値に過ぎない
  39. 39. 展望 • 現実には以下の3要件に留意して匿名化手 法の設計が必要 個人識別子と仮IDの対応表の管理 再識別率を抑える匿名化手法:PWSCUP 攻撃者の知識の質量 長大な履歴データと行動観察される可能性

×