[iOS 10] Appleのデータ収集に学ぶ差分プライバシー

ios10_400x400

はじめに

iOS 10に関連して、WWDC2016で発表された内容にはユーザーのプライバシーをAppleがどのようにして守っているかについての発表がありました。

この発表の中で取り上げられていた差分プライバシーという概念がわりあい個人的に面白かったので紹介します。

差分プライバシーとは

差分プライバシーとはざっくりと誤解を恐れずにいうならば

レコード単位では個人を特定できない程度の雑音をいれて集めた大量のレコードから有用なデータを得るための技術

です。

もう少し具体的な例を挙げます。例えばユーザーの行動履歴(どの場所にどれくらいの頻度で行っているか)を表すテーブルがあったとします。

ユーザ履歴テーブル

ユーザーID 東京 大阪
1 20 30
2 10 40
3 90 20
4 80 30

このテーブル情報を元にユーザーの行動履歴全体の傾向を算出したい、かつ個人のプライバシーは守りたいケースを想定します。

ユーザーの行動履歴全体の傾向は全体の平均を取ることで算出自体は可能です。

東京に行った頻度の平均 = 50

大阪に行った頻度の平均 = 30

このユーザーの行動履歴のテーブルは全体の傾向をとるために作られたものであって、個人の履歴を利用するために作られたものではないですが、ある日偶然第三者がユーザーID 2, 3, 4の情報を全て握ってしまったとします。

第三者の知っている情報

ユーザーID 東京 大阪
2 10 40
3 90 20
4 80 30

そして、ユーザーの行動履歴の平均がなんらかのAPIで公開されていたとき、第三者は残りのユーザー1の行動履歴を正確に知ることになります。

ユーザー1の東京に行った頻度 = 50 * 4 - (10 + 90 + 80) = 20

ユーザー1の大阪に行った頻度 = 30 * 4 - (40 + 20 + 30) = 30

このような補助情報をもった第三者からの個人情報の入手を防ぐために差分プライバシーという方法がMicrosoftのDworkによって2006年に考案されました。1

差分プライバシーのアイデア

差分プライバシーを先ほどの例で理解してみます。

ユーザーの行動履歴の傾向は公開したいが、個人のプライバシーは保証したいとき、テーブルのデータ全体にノイズを加えて、公開する傾向として多少のノイズ-0.25~+0.25を許容します。それは全体としては微々たるものなので全体傾向として見た場合ほとんど変わらないです。

東京に行った頻度の平均 = 50±0.25

大阪に行った頻度の平均 = 30±0.25

±は後の数値と合わせてノイズの幅を表した記号です

先ほどと同様な補助情報をもった第三者が正確にユーザー1の行動履歴を知ろうとした場合、テーブルのデータ全体にはノイズがかかっています。どうなるでしょうか。

ユーザー1の東京に行った頻度 = (50±0.25) * 4 - (10 + 90 + 80) = 20±1.0

ユーザー1の大阪に行った頻度 = (30±0.25) * 4 - (40 + 20 + 30) = 30±1.0

(ノイズは頻度の平均に寄せてあります)

今度は第三者がユーザー1の行動履歴を正確に知ることは難しくなりました。

このような

全体として見た場合に小さいが、個別の情報を弾き出そうとすると大きくなるノイズを情報に加える

アイデアが差分プライバシーの根幹です。

厳密には数学的な証明を用いて統計的に個人の特定に有意な情報をはじき出すことが難しいことが検証されますが、他の資料に譲ります。

iOSにおける差分プライバシー

WWDC2016のスライドではこのような差分プライバシーの技術がiOSのどの部分に用いられているか紹介されています。

具体的には次のような情報をAppleのサーバーに送信するときにノイズを加えているとのことです。

  • 絵文字の利用頻度
  • QuickTypeの辞書にはない新単語
  • アプリ内のディープリンクのうち、Spotlight検索に対するサジェストに適したもの
  • Lookup Hints

これらはいずれも生の情報の場合、第三者に提供されることで個人のプライバシーを侵害しうる有用なヒントを与えます。しかし、ノイズが加わった状態でリモートの分析向けDBに格納することによって、たとえ第三者機関がなんらかの手段を用いてDBを見れる状態になったとしても個人のプライバシーは保てるとAppleは主張できるわけです。

差分プライバシーの導入に伴う今後

この節は割りと個人の妄想が入ります。iOSのユーザ体験の向上を目的とした分析に差分プライバシーが使われていることがわかりましたが、このような技術を今回全面に押し出してきたということは、AppleがiOSを個人のプライバシー保護に優れたデバイスとしてブランディングしていこうという方針の現れとも捉えられます。

このブランディングの方針を取る場合には、AppleはiOSアプリ開発者に対してサーバーに送信する個人情報にAPIを通じてノイズをかけるように通告を行うかもしれません。

iOS 9でSafariの拡張機能が開放され、その一つとして広告ブロック拡張アプリが公開され、モバイル向けの広告業界が打撃を受けたことは記憶に新しいです。こうした一業界の意向も厭わず、ドラスティックにユーザー体験を追求していく方針が変わっていないとしたら、今回のようなプライバシー対策によって、今後大きく打撃を受ける企業や業界が出てくるのも想像に難くないです。

まとめ

大規模なWebサービスを提供する企業は必然的に個人情報の保護に関する対策が求められますが、それに対する有力なヒントを今回Appleは提供してくれました。分析に携わる人にとっても大規模データに対するプライバシー対策は強く知識を求められることと思いますが、今回Appleの提示してくれた差分プライバシーの実用例は大きく参考になると思いました。

参考