はじめに
本記事では、GoogleがサードパーティCookieに代わって採用することを発表した、FLoCに関する詳細をまとめています。
FLoCとは
FLoCとは、Federated Learning of Cohorts (群れの連合学習) の略称です。
連合学習の詳細は以下の記事にて解説しています。
FLoCは、機械学習アルゴリズムを利用してウェブサイトを訪れたユーザのデータを分析し、何千人ものユーザから構成されるグループを作成する手法です。
このグループは、好きなものや、興味が近い人々で構成されており、これを「群れ(コホート)」と呼びます。
従来の手法のように、個人の興味・関心を追跡する方法はプライバシー侵害の観点から懸念されますが、FLoCでは、個人ではなく、「群れ」ごとに行動をトラッキングするため、プライバシー侵害とならない、と考えられています。
また、FLoCでは、安全性の担保として、k-匿名性を利用しています。
k-匿名性とは、少なくともk個までしか対象を絞り込めない状態のことを指します。
つまり、個人を「群れ」の中に含めることにより、個々人の行動の導出を困難にすることによって、プライバシー侵害を防ごうとしているのです。
なお、k-匿名性を活用したプライバシー保護である差分プライバシーに関する詳細は以下の記事にて解説しています。
以下の図は、FLoCと用いた場合、同じユーザの集合であっても異なる「群れ」の作り方が存在する可能性を示しています。
ここでは、6人のユーザがいます。割り当てAでは、xyz.com と abc.com それぞれにアクセスしたユーザで「群れ」を作っています。
一方、割り当てBでは、車か自転車、どちらの愛好家であるかによって「群れ」を作っています。
上記の割り当てを行なったことによって、どちらもk=3でのk-匿名性を満たしています。
k-匿名性が満たされている理由を、詳しく説明します。まず、割り当てAにおいては、xyz.com と abc.com どちらかを使用したユーザを特定したい場合でも、「群れ」の中にはユーザが3人います。そのため、「訪れたWebサイト」の情報だけでは、ユーザを3人よりも少なく絞り込むことはできません。同様に、割り当てBに関しても、「好きな乗り物」の情報だけでは、ユーザを3人よりも少なく絞り込むことができなくなっています。これが、k=3での、k-匿名性が満たされている理由です。

(引用 : https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC-Whitepaper-Google.pdf)
FLoCの仕組み
先ほども説明したように、FLoCとは、個人をグループ化し、そのグループごとにトラッキングを行うことによってプライバシーを保護する仕組みです。
以下ではFLoCにおいて、ユーザをどのようにグループ化するのか、という部分に関する仕組みを詳しく解説します。
SimHash
SimHashとは、2つの対象がどれくらい似ているのかを判定する手法です。
現在でも、Googleクローラーにおいて、Webページの中から、内容が近く、重複しているページがないか探すために使われています。
SimHashによって同様の入力を持つと判断されたユーザ同士には、同じ「群れ」の番号(コホートID)が共有されます。
しかし、SimHashには大きな欠点があります。それは、「群れ」として識別する最小の構成要素数を設定できないことです。
つまり、人数が極端に少ない「群れ」が作られてしまう可能性があるということです。
先ほど、FLoCの安全性はk-匿名性によって担保されていると説明しました。しかし、「群れ」に所属する人数が少なければ、k-匿名性を保つことができず、プライバシー侵害の危険性が高まってしまいます。
そこで、次に説明する、SortingLSHを活用します。
SortingLSH
先ほどのSimHashを用いると、規模が大きな「群れ」と規模が小さい「群れ」が発生します。「群れ」の大きさが不均一であることは、その後収集するデータの正確性を損なってしまうため、できるだけ規模が均一になるように、規模が大きな「群れ」を分割します。
下の図の場合を考えます。k=4でのk-匿名性を適応し、(0)と(1)の2つの「群れ」に分かれています。ただ(1)の要素数が8と多いため、(1)の「群れ」を分割することを考えます。
この時、図の右側のような分割をした場合、(1)はそれぞれ要素数が4の(1,1)と(1,0)に分割することができます。しかし、それと同時に、(0)も(0,0)と(0,1)に分割されてしまいました。これは、k-4のk-匿名性を壊してしまいます。

(引用 : https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC-Whitepaper-Google.pdf)
SortingLSHは、k-匿名性を確保しながら、一つの「群れ」に所属するユーザの数を均一化することによって、この問題を解決します。
まず、先ほどと同じように、SimHashによって、ユーザの類似度を計測し、ユーザに対してある数字を渡します。その後、それぞれを「群れ」に割り当ててしまうのではなく、先ほど渡した数字ををもとにして、ユーザを並べます。そして、順序ごとに並んだものの中から、少なくともk個の連続したものを一つの「群れ」とします。
これにより、k-匿名性を保ったまま、一つの「群れ」に所属するユーザの数を均一化することができます。

(引用 : https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC-Whitepaper-Google.pdf)
FLoCが導入される背景
現在、世界中でプライバシーに関する法整備が進んでいます。その法律の一部には、Cookieを個人情報として取り扱うものも存在しています。
日本の場合
2020年に可決された、個人情報保護法一部改正法案の中で第三者提供制限の規律が適用された、個人関連情報により、日本においても、Cookieの第三者提供が制限される可能性があります。
個人関連情報に関する詳細は、以下の記事にて解説しています。
EUの場合
EUには、2016年に発効された、GDPR(一般データ保護規則)というプライバシーに関する法律が存在します。
この中で、Cookieなどの”仮名化”された情報であっても、それは個人情報である、と明確に宣言されています。
GDPRに関する詳細は、以下の記事にて解説しています。
カリフォルニア州の場合
アメリカのカリフォルニア州において、2020年1月に施行された、CCPA(California Consumer Privacy Act)という法律があります。
CCPAの特徴として、消費者が企業に対し、オプトアウトできる権利を持つことが挙げられます。
これは、消費者が自分の個人情報の第三者提供に関して、その停止することを要求できる権利を指します。
CCPAに関する詳細は、以下の記事にて解説しています。
Cookieを個人情報として扱うことに対する各企業の対応
上記のように、様々な国や地域において、プライバシーに関する法整備が進んでいます。
これを受け、ブラウザを提供する企業は、自社のブラウザにおいてCookieをブロックするような仕組みを作っています。
Appleの対応
Appleは、2020年3月24日に、自社が提供するブラウザである、Safariにおいて、サードパーティCookieを完全にブロックしたことを発表しています。
Appleは、2017年からサイトを横断してユーザのトラッキングを行うことを制限する機能をSafariに搭載していました。
Googleの対応
Googleは、2020年1月14日に、自社が提供するブラウザである、Chromeにおいて、サードパーティCookieのサポートを2年以内に完全に廃止する計画を発表しています。
そして、2021年3月3日、サードパーティCookieに代わる、よりプライバシーを守れる代替技術の一つとしてFLoCを採用することを発表しました。
まとめ
GoogleがサードパーティCookieに代わって採用することを発表した、FLoCに関する詳細をまとめました。
- FLoCとは、Federated Learning of Cohorts (群れの連合学習) の略称であり、同じ興味を持ったユーザの集まりである「群れ」ごとに行動をトラッキングすることによって、プライバシー侵害を防ぐ手法である。
- FLoCでは、SimHashを用いてユーザを分類し、SortingLSHを用いてユーザを均一にグループ化する。
- FLoCが導入された背景として、プライバシーに関する法整備が進み、様々な国でCookieが個人情報として扱われるようになったことなどが挙げられる。
- Cookieを個人情報として扱うことになり、企業がCookieの利用を取りやめる動きが見られる。