PWSCup2024-参加記

x facebook hatena

はじめに

PWS Cup[1]はコンピュータセキュリティシンポジウム(CSS)[2]内のイベントとして毎年開催されている、個人データの安全な利活用に向けた匿名化技術を匿名化と攻撃の対戦形式で競うコンテストです。トヨタ自動車株式会社、株式会社 KDDI 総合研究所、株式会社 ARISE analytics は、PWS Cup 2024[3] に三社合同チームで参加し、10回目の開催において過去最多タイとなる21チームが参加する中、攻撃力が最も高いチームに送られるベストアタック賞を受賞しました[4][5][6]

本ブログでは、ベストアタック賞を獲得した手法を含め、本コンテストで弊チームが考案した手法に関して技術的内容をより詳細に解説いたします。


図1:PWSCup2024の概要ポスター(公式HP[3]より)

PWS Cup2024のコンテスト概要

社会背景

AI技術の発展には、高品質なデータが不可欠です。特に、機械学習モデルは膨大なデータをもとにパターンを学習し、精度を向上させるため、できるだけ多くの多様なデータを確保することが求められます。しかし、自社だけで十分なデータを持っているとは限らず、他社や第三者のデータを活用するケースも増えています。ただし、データの共有や活用には大きな課題があります。それがプライバシーの問題です。個人情報を含むデータをそのまま利用すれば、個人の特定につながるリスクがあり、法規制の厳格化とともに慎重な対応が求められています。

その有効な解決策として挙げられるのが匿名化技術です。匿名化技術は、レコードの属性に対し削除や変換を行い、レコードの統計情報を保持しながら個人の特定を困難にする手法です。例えば、氏名や住所を削除したり、詳細な年齢を年代に変換したりすることで、データの匿名性を高めることができます。しかし、匿名化には「強度」の問題がつきまといます。匿名化が不十分だと、データベース再構築攻撃など複数のデータセットを組み合わせることで個人情報が復元されてしまうリスクがあることが知られています。一方で、匿名化を強化しすぎるとデータの持つ情報量が減少し、AIの学習に十分な質のデータが得られなくなる可能性があります。このような背景から、プライバシー保護とデータ利用のバランスが取れた匿名化手法が求められています。単純な匿名化にとどまらず、新たなアプローチを取り入れることで、安全性を確保しつつ、データの価値を最大限に引き出すことが重要になっています。

コンテストストーリー

本コンテストでは、匿名化技術に関する実践的な課題が与えられました。
以下が、本コンテストにおけるコンテストストーリーです。

 企業Aは顧客データを利用して映画の推薦システムを作りたいと思い、推薦システム開発のコンペのために顧客データを匿名化してコンペ参加者に提供することとした。参加者は顧客データを公開したい企業を想定した加工者となり、与えられたデータを加工してデータに含まれる人のプライバシーを保護することを目指します。

データセットとしては、ユーザが視聴した映画のレビュー結果をまとめたオープンデータセットであるMovieLens 1M Dataset[7]から作られた合成データを用います。

配布データのイメージ図。図2: 配布データのイメージ図。ユーザの属性情報とユーザが映画を見た際の
評価(Rating)で構成されるテーブルデータセット

 

基本的な流れ

本コンテストは、予備戦・本戦の2戦行われ、それぞれで匿名化フェーズ・攻撃フェーズという共通のタスクを行います。

コンテストの基本的な流れを表す図図3:コンテストの基本的な流れ(公式資料[8] 頁6より抜粋)

1.匿名化フェーズ 

前述の配布データセットBiを10個の映画グループに分けたサブセットデータBi(0)-Bi(9)に対し、匿名化(値の変更やシャッフルなど)を行い、匿名化データセットCi(0)-Ci(9)を作成

2.攻撃フェーズ

他チームが作成した匿名化データセットCi(0)-Ci(9)を使用し、図4の手順で作成される攻撃用データセットDjに対し個人特定攻撃とデータベース再構築攻撃の2つの攻撃を行います。

・個人特定攻撃
 ✓シャッフルされたRatingsデータがどのUser IDに紐づくものかを特定する 

データベース再構築攻撃
 ✓黒塗りされた箇所の値を特定する。 

攻撃用データセット作成方法イメージ図

図4:図3の⑤攻撃用データセットDjの作成方法イメージ図(公式資料[8] 頁15より抜粋)

 


評価指標

本コンテストでは、匿名化データの作成と攻撃手法の開発の両面で評価指標が設けられています。評価指標は図5の通りです。

評価指標を表す図表図5:評価指標

受賞対象

5の評価指標をもとに受賞者が決定されます。また、本年度より匿名化したデータを用いて有用な分析手法を提案したチームに与えられるデータサイエンス賞が設けられました。

総合1位~5総合得点(匿名性スコア+有用性スコア)が高かったチーム
ベストアタック賞攻撃力が最も高かったチーム
ベストプレゼン賞当日のプレゼンが最も優れていたチーム
ベストデータサイエンティスト賞

 – 実際に今回の匿名化データを使って有用な分析手法を提案したチーム 
 – 分析手法の独創性や実用性、および匿名化データを使った分析の有用性などを総合的に評価

 

結果

6が弊チームの結果になります。

チームの結果を表す図表
図6:弊チームの結果。予備選匿名化フェーズを除きとても良い結果!

 

予備戦の匿名化フェーズでスタートダッシュに失敗したものの、その後は安定的に高いスコアを獲得し、全体では匿名化フェーズ7位、攻撃フェーズで1位となりベストアタック賞を獲得いたしました。
次章では、高得点を獲得した本戦の匿名化手法・攻撃手法と今回新たに設けられたデータサイエンス賞に向けて提案した分析手法について解説いたします。

 

解法

匿名化手法

考え方(匿名化における合成データの可能性)

匿名化というと、個人データ(配布データBi)を元に、その値を書き換えることで個人の特定を困難にする手法が一般的です。代表的な匿名化手法であるk-匿名化やスワッピングなどがこれに該当します。より大胆な手法として、個人データを元にせず、ランダムに同じ形式のデータを生成する手法も存在します。このように人工的にランダムに作られたデータを合成データ(synthetic data)と呼びます。今回のPWS Cupでは合成データを生成し、それを匿名化データCiとして提出しました。

合成データはランダムに生成された存在しない個人に関するデータであり、完全にランダムな合成データならば個人特定は原理的に不可能です。一方で、完全にランダムに生成してしまうと元データの統計的性質が失われ、有用性のない無価値なデータになってしまいます。そこで、元データの統計的性質をある程度保存しつつ合成データを生成することを考えます。最も基本的なアプローチは、各属性(年齢など)の1次元周辺分布(あるいはヒストグラム)が元データと一致するように属性ごとに独立に値をランダム生成する方法です。この方法では各属性の分布は元データと一致しますが、属性間の相関の情報が失われてしまいます。今回の例で言えば、元データで年齢とある映画のratingの相関が存在していたとしても、その相関は合成データに反映されません。

元データの属性間の相関を保存するように合成データを生成するというのは、一般に難しい問題です。機械学習で属性間の相関を学習して合成データを出力する方法もありますが、相関を保存すべき属性の指定・制御が難しく、特に今回のように明確な有用性の定義が存在するコンテストには不向きです。そのため、今回は機械学習を用いず、まず完全にランダムに合成データを生成し、それから元データと統計的性質が合致するように繰り返し値を書き換えていく手法を用いることにしました。

本コンテストの有用性スコアは、各Bi(k)Ci(k)ファイル内の全ての属性のペアに対するクロス集計表の値の誤差(Mean Absolute Error; MAE)のうち最も大きいものをベースに計算されます。すなわち、任意の2属性間の2次元周辺分布を元データと一致させればさせるほど有用性スコアは高くなります。よって、今回の合成データ生成の目標は2次元周辺分布の値のみを元データとできるだけ一致させることであり、その他の統計的性質は失われても良いものとします。

提案手法の詳細
では、具体的に今回用いた合成データ生成手法を説明します。手法としてはPrivSyn [9]と呼ばれる合成データ生成手法をベースにしました。PrivSynは低次元周辺分布の値が元データとできるだけ合致するように逐次的に合成データの値を書き換えていく手法です。今回のコンテストでは2属性間の2次元周辺分布(クロス集計表)のみを一致させることを試みます。なお、PrivSynでは差分プライバシーを適用していますが、今回は差分プライバシーの適用は行っていません。具体的な手順は以下のようになります。

匿名化手法の概要

匿名化手法の概要図7:匿名化手法の概要

 

手順:

1. 配布データBi(k)から全ての属性ペア間のクロス集計表を計算する。Bi(k)内の属性x,y間のクロス集計表をMBk(x,y)と表記する。以降、Bi(k)のクロス集計表以外のデータは用いない。

2. 配布データBi(k)の形式に合わせて完全にランダムに合成データを生成し、これを匿名化データCi(k)とする。

3.Ci(k)のすべての属性ペア間のクロス集計表を計算し、これを$MCk(x,y)とする。

4. 全てのk,x,yに対しMBk(x,y)MCk(x,y)の誤差(MAE)を計算する。

5. 最も大きいMAEを持つ(kworst,xworst,yworst)の組を1つ選び、Ci(kworst)におけるクロス集計表MCkworst(xworst,yworst)MBkworst(xworst,yworst)と一致するような最小の値の書き換えを求める(最適輸送問題)。

6. 最適輸送問題の結果をもとにCi(kworst)の属性xworst,yworstの値を書き換える。

7. 手順3に戻る。


十分に有用性スコアが上がるまで上の値の書き換えを繰り返します。

次に、手順5においてクロス集計表を一致させる方法について述べます。ここではある2属性間のクロス集計表が元データと一致させますが、その2属性の値の書き換えのパターンは複数存在します。しかし、多くの値を書き換えてしまうとその分他のクロス集計表の値も大きく変わってしまい、全体の有用性スコアが上がりきらなくなってしまいます。そのため、できるだけ少ない書き換えによってクロス集計表の値を一致させることを考えます。今回は、最適輸送問題を解くことで最小の値の書き換えを求めました。最適輸送問題では、あるクロス集計表から別のクロス集計表に変化させるために必要な値の書き換えパターンのうち、書き換えの数が最小になるものを線形計画法で求めます。実装ではPythonPOT: Python Optimal Transport ライブラリ[10]を用いて解いています。

このように合成データを生成することで、有用性を高く保ちつつ、元データには存在しない個人に関するデータを実現できました。では、このデータは個人情報を全く含まない安全なデータと言えるでしょうか。おそらく答えはNoです。なぜなら、有用性スコアが高い場合、各属性ペアのクロス集計表の値は元データとほぼ一致していることを示しており、それは元データの多くの統計量が公開されていることを意味するためです。統計量の公開だけであればプライバシー保護されていると見なされがちですが、実はそうとも限らないことが分かってきています。十分な量の統計量が分かっている場合、統計量の制約を満たすように(数独を解くようなイメージで)DB再構築を行い、個人特定に繋げる攻撃が知られています。米国国勢調査でもこの点が問題視され、2020年より差分プライバシーを満たすランダムノイズを加えた上で統計量を公開しています[11]。以下で説明する我々の攻撃手法はクロス集計表の値しか考慮していませんが、我々の攻撃を自身の匿名化データに実際に適用してみると、有用性を十分高めた合成データではかなりの割合で攻撃が成功してしまうことが分かりました。

どの程度有用性を上げると攻撃が有効に作用するのか、実際に実験した結果を図8に示します。横軸が有用性スコア、縦軸が我々の攻撃の結果を元に計算した匿名性スコアです。図の右側に近いほど良い匿名化であると言えます。攻撃用データDiの50レコードの選び方によって攻撃成功率に大きくばらつきがあるため、乱数のシード値を変えて10パターン試してみました。興味深いことに、有用性が70台中盤に差し掛かった辺りで匿名性スコアが急落していることが見て取れます。この現象の詳しい解析はできていませんが、本戦で有用性が75を超えている他のチームにも我々の攻撃が有効であったことを踏まえると、我々の合成データ生成手法特有の現象ではなさそうです。この結果を踏まえ、本戦では我々と同様の攻撃を行ってくるチームが居ても耐えられるよう、有用性が72程度の合成データを提出しました。


8:有用性スコアと匿名性スコアの関係性。
有用性が70を超えたあたりから、急激に攻撃を受けやすくなることが示された


結果

以下が本戦匿名化フェーズの結果になります。弊チーム(Team20)は、総合得点で2位となりました。予選の結果を合わせると7位と残念ながら入賞にはなりませんでしたが爪痕を十分残せたと思います。本戦上位には有用性を70付近にしたチームが集まっており、有用性を抑えたことが良い結果につながったと考えられます。ただし、上位層の匿名性の得点の差については、図8からも分かる通り、攻撃用データDiの選び方で10点程度は上下してしまうため、匿名化手法の良し悪しが直接順位に反映されているわけではないと考えています。

図9:本戦-匿名化フェーズ結果(公式HP[3]より弊社加工)

 

攻撃手法

考え方

攻撃フェーズでは、他チームが元データBjから匿名化したデータを用いて、攻撃対象データに対し情報の復元を試みます。攻撃対象データ(Dj)は、元データBjから50行をサンプリングし、Ratings変数の一部を黒塗りしたうえで、基本属性とRatingsの組み合わせをランダムにシャッフルしたものです。そのため、個々のユーザの属性情報とRatings情報はばらばらになっています。このシャッフルを逆に辿り元の正しいペアを復元し、さらに黒塗りされているRatingsの値の推定することが、本フェーズで求められていることです。

 

             図10: 攻撃対象データDjの作成方法(再掲)


我々はこの課題に対し、まずは「基本属性とRatingsの紐づけ」をどのように行うかを先に検討する方針となりました。黒塗りされたRatingsの推定には正しく紐づけされた基本属性の情報も重要になると想定されたからです。

基本属性とRatingsの紐づけに関し、初めは主催者側から提供されていたシンプルな方法(ハミング距離)や機械学習を活用し、各Ratingsレコードにとって最も近い/確率が高い基本属性のレコードを推定する手法を試みました。しかしながら、どの方法も出現頻度が高い属性を持つレコードが複数マッチングしてしまうなど、期待した精度を得ることができませんでした。

完全に行き詰ってしまったそんな折に、攻撃イメージ図(図[10] 右図)を見ていた時、ふと「なんか合コンみたいだな」という思いが脳裏をよぎりました。参加者(基本属性とRatings)が好感度を最大となるようそれぞれ最適な相手とマッチングするという構造が、合コンで男女がちょうどよくペアを作る場面に似ていると感じたのです。この比喩をヒントに、「合コンで誰も余らず、うまくペアを作る方法があれば、それを応用できるのではないか」と考えました。

図11:ChatGPTにマッチング理論について聞いている図

そういう手法がないか話題のChatGPTに聞いてみると「今回の問題は最大マッチング問題の一種として位置づけられるのではないか」という回答を得ることができました。今回はこの最大マッチングの考え方を採用し、新たな攻撃手法として試すことにしました。

提案手法

今回は属性データとRatingデータの50vs50の最大マッチング問題と置くことができます。この問題を解くには、上記の合コンの例の「好感度」にあたるような重みを定義する必要があります。今回は属性データ(4変数)とRatingデータ(46変数)の全50変数が同時に発生する確率を重みとして定義することにしました。同時確率は下記式で算出します。P(Xk)P(Xk|Xl)は匿名加工データにおける各変数の出現頻度から推定します(ただし黒塗りされている部分は計算ができないので確率1として計算)。

提案手法を表す数式の図

最後に最適なマッチングを探索するわけですが、愚直に計算するとO(N!)の計算量が必要となり、現実的な時間では計算することができません。そこで今回使用したのが、ChatGPTから提案されたハンガリアンアルゴリズム[12]です。本アルゴリズムはO(N3)の計算量で済むため、数秒での計算が可能となります。これで適切なマッチングが得られたので、残りは黒塗りされている部分の特定です。こちらは、先ほど個人特定攻撃に使用した同時確率を拡張し、黒塗り部分に入力される可能性のある値(0~5)を代入し同時確率が最大となる値を推定値として採用しました。

結果
以下が本戦の結果になります。弊チーム(Team20)は、全チームに対する攻撃成功数では全体1位、ベストアタック賞の計算に用いられるtop5への攻撃成功数合計では全体2位を獲得しました。これに予選の結果を合わせ、ベストアタック賞の獲得となりました。

図12本戦-攻撃フェーズ結果(公式HP[3]より弊社加工)

 

データサイエンス手法

分析背景
匿名化フェーズや攻撃フェーズが関わる賞とは別に、新たにデータサイエンス賞が設けられました。この賞では、自チームで匿名化したデータを用いて有用な分析手法を提案することが課題となり、ルールは次の通りです。

ベストデータサイエンティスト賞
実際に今回の匿名化データを使って有用な分析手法を提案したチーム
分析手法の独創性や実用性、匿名化データを使った分析の有用性などを総合的に評価
当日のプレゼンで提案。発表するかどうかは任意

本賞は今年度から新設されたため前例がなく、分析における特別な制約も存在しません。自由度が高い反面、どのような分析を行うべきか悩ましいところです。

ここで、今回のPWS Cupにおけるコンテストストーリーを振り返ってみます。

企業Aは顧客データを利用して映画の推薦システムを作りたいと思い、推薦システム開発のコンペのために顧客データを匿名化してコンペ参加者に提供することとした。参加者は顧客データを公開したい企業を想定した加工者となり、与えられたデータを加工してデータに含まれる人のプライバシーを保護することを目指します。

このストーリーに沿って考えると、企業Aは提供した匿名化データを用いて開発された推薦システムが自社で活用できることを望むでしょう。そのため、匿名化データの性質は、匿名化前とできるだけ変わらないことが望ましいと考えられます。私たちのチームでは、その「変わらなさ」を具体的な推薦モデルを使って測定し、分析することにしました。

分析方針
分析には、推薦問題でよく用いられるモデルの一つである Factorization MachinesFM)を採用しました[13]FMは特徴量間の相互作用効果を2次の非線形項で学習することを目的としたモデルで、

y^(x):=i=1nwixi+i=1nj=i+1nvi,vjxixj+w0
で表されます。ここでxは特徴量、y^はレーティングの値の回帰値です。今回の匿名化が「映画推薦システムの開発にとって良い匿名化」といえるかどうかを、FMが2次の非線形効果をどの程度うまく学習できているかから推定する、という方針を取りました。

具体的には、匿名化データのレーティング値を回帰で推定する問題を設定し、以下の2ケースでFMを学習・推定しました。
1. 第二項を除き線型項のみ考慮する  
2. 第二項も含め非線形項も考慮する  

それぞれの回帰誤差をE1,E2としたとき、E=E2E1は非線形効果による精度への影響を意味します。匿名化前のデータでこのEを求めると正の値となりました。つまり、匿名化前後で精度に関する性質が保存されていれば、匿名化後もEは正になるはずです。逆に負になれば、匿名化によって非線形効果が失われている可能性があるということです。
この性質を検証するため、私たちは2種類の匿名化手法で得たデータについて、分析における「有用性」とEの変化を調べました。


1. 比較手法:データカラムをランダムに選択し、2行をランダムに選んでスワップする手法  
2. 提案手法:私たちのチームが提案した匿名化手法

分析結果と考察

これらの手法で得られた匿名化データについて、今回コンテストで定義された有用性のスコアとEの関係を調べた結果は次の通りです。

 

各匿名化手法における、有用性スコアと非線形効果による精度影響(E)の関係を表す図表図13:各匿名化手法における、有用性スコアと非線形効果による精度影響(E)の関係

 

比較手法のスワップ方式では、スワップ数の増加に対し有用性が徐々に低下し、それに比例してEも減少しました。一方提案手法の合成データ方式では、有用性の値にかかわらずEはほぼ負の領域にプロットされました。これは、合成データ生成の初期化時点で元データの非線形関係が失われ、さらにその後の処理で有用性を向上させてもデータの非線形関係が回復しなかったことを示しています。

もちろん今回のコンペ設計上この点が重要視されていなかったための結果なのですが、実務上はもし「推薦システムの精度」を重視するのであれば、その要件を反映した有用性の定義を行う必要があると考えられます。つまり単に何某かの有用性を定義しそれを高めるだけでなく、非線形効果が損なわれないよう配慮した匿名化手法や有用性指標を設計することが重要といえそうです。

終わりに

今回、私たちは3社合同で匿名化コンテストに取り組み、匿名化・攻撃・データサイエンス技術の提案を行いました。異なる専門技術を持つ3社が協力し、ベストアタック賞をはじめとし良い成績を収めることができました。

データ匿名化技術はAI技術の発展に必要不可欠な技術です。本コンペで得た知見を活かし、実社会での応用を見据えた研究開発等に今後とも取り組んでいき、より安全かつ実用な匿名化技術の確立に貢献していきます。

 

参考文献
[1] https://www.iwsec.org/pws/index.html
[2] https://www.iwsec.org/css/
[3] https://www.iwsec.org/pws/2024/cup24.html
[4] https://www.toyota-tokyo.tech/news/241129_2.html
[5] https://www.kddi-research.jp/topics/2024/112901.html
[6] https://www.ariseanalytics.com/news/20241129/
[7] https://grouplens.org/datasets/movielens/
[8]https://www.iwsec.org/pws/2024/Images/20240731_PWSCUP2024_iPWSCUP2024.pdf
[9] Zhang et al., “PrivSyn: Differentially Private Data Synthesis,” in USENIX Security ’21. https://www.usenix.org/system/files/sec21-zhang-zhikun.pdf
[10] https://pythonot.github.io
[11]https://web.archive.org/web/20241127175308/https://www2.census.gov/library/publications/decennial/2020/census-briefs/c2020br-03.pdf
[12] Harold W. Kuhn, “The Hungarian Method for the Assignment Problem”, 1955
[13] https://ieeexplore.ieee.org/document/5694074

 

ご質問・お問い合わせは
こちらよりお送りください
採用
ARISE analyticsとは

PAGE TOP