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

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