PLAID Engineer Blog

PLAID Engineer Blog


KARTEを提供する株式会社プレイドのエンジニアブログです。プレイドのエンジニアのユニークなパーソナリティを知ってもらうため、エンジニアメンバーたちが各々執筆しています。

PLAID Engineer Blog

Privacy Sandbox における Web 広告の Edge Computing 技術

Masahiro YamauchiMasahiro Yamauchi

プレイドのエンジニア兼ハンター @algas です。
この記事では Privacy Sandbox の中でも Web 広告に関連する Edge Computing の技術を紹介します。
Ad Selection (広告の選択) の技術である TURTLEDOVEFLoCPrivacy Sandbox で提案されています。
この2つは個人を特定するデータをブラウザから送信せずに興味の似ているユーザの大規模なグループに広告を配信する技術です。
TURTLEDOVE はブラウザで広告オークションを行う仕組みで、FLoC はブラウザで広告の興味モデルを学習させるグルーピングの仕組みです。
どちらの技術もブラウザから個人を特定するデータを送らないという目的があります。

ブラウザから個人を特定するデータを送信したくない3つの理由

なぜブラウザから個人を特定するデータを送信しない仕組みが必要なのでしょうか?
これには大きく3つの理由があります。

  1. プライバシーの保護
    ここ数年で GDPR のように企業が必要以上に個人を特定するデータを集めないようにする世界的な流れがより強まっています。データの取り扱いを正しく行えない企業には厳しい罰則や社会的な批判が強まることは避けれません。不要なデータを企業が持たなければ問題も起こりません。
  2. ユーザが自分のデータ利用を制御できない
    これまではユーザを同定するためなどにブラウザの Cookie を使っていましたが、最近では情報漏えいを防ぐために Cookie を使わない方針になってきています。Cookie の代替として fingerprinting などの技術が一部の Web サイトで使われています。しかし、これらの技術にはユーザが制御できないという問題があります。個人を特定するデータがブラウザの外に出なければ制御できない対象もなくなります。
  3. 個人端末やブラウザの性能向上
    多くの Web ユーザはスマートフォンのブラウザからサイトにアクセスします。スマートフォンやブラウザの性能は日々向上しているのでサーバで処理しなくてもブラウザ側でできることが増えてきました。ブラウザでデータを処理することができればサーバやネットワークの負荷を減らすことができます。

技術要素

TURTLEDOVE

https://github.com/michaelkleber/turtledove
TURTLEDOVE は Privacy Sandbox が提案するブラウザでの広告オークションの仕組みです。

Web広告の表示に重要な以下の2つのデータがあります。

  1. 興味データ
    ウェブサイトの訪問者が何に興味を持っているかのデータです。
    このデータに基づいてどんな種類の広告を出すか決定されます。
  2. アドオークションの勝者
    アドオークションというWeb広告のオークションでどの広告を表示するかが決められます。
    アドオークションの勝者が広告を出すことができます。
    アドオークションの詳細は 広告オークションについて を参照してください。

これまではサイト運営や広告サーバがこの2つのデータを保持していました。

TURTLEDOVE の提案はこれらのデータをサーバではなくブラウザで処理してしまうように変更することです。
ブラウザでデータを処理することによって訪問者のプライバシーを保護することにつながります。
広告主は訪問者の興味に基づいて広告を出すが、他の情報との結びつけができなくなります。
同様にウェブサイトや広告ネットワークは訪問者の興味について学習できません。

TURTLEDOVE は "Two Uncorrelated Requests, Then Locally-Executed Decision On Victory" の略語です。
Two Uncorrelated Requests は「コンテンツ連動広告」と「広告主が特定した興味」の2つのデータを意味しています。
前者は広告を表示するページのURLが含まれているデータ、後者は興味のデータのみで行動履歴と紐付けできないようになっています。
Then Locally-Executed Decision On Victory は勝利した広告をアドネットワークがブラウザに表示することを意味しています。
ただしこの判定はブラウザ内でローカルに実行されてブラウザの外に情報を送ることができません。

サーバからブラウザに広告データの扱いを移行することでプライバシーの保護以外にもメリットがあります。
広告主が "interest group" をどう作って使っているかの透明性を確保できることやグループへの所属時間を制限できることです。
ここで interest group は「広告主やアドネットワークがある種の広告に興味を持っていると信じている」人々の集合のことをいいます。

TURTLEDOVE の目的は主に以下の3つです。

  1. 広告効果を改善したい
    サイト訪問者が興味を持つ広告を見続けられるようにします。
    嫌いな種類の広告を見なくていいようにします。
  2. グルーピングの透明性を確保したい
    訪問者の興味を広告配信者がなぜ知っているのかに答えられるようにします。
    広告のターゲティングを止められるようにします。
  3. プライバシーを保障したい
    広告主が訪問者の興味について学習できないようにします。
    ウェブサイトが interest group について学習できないようにします。

広告が表示される流れは以下のとおりです。

  1. ブラウザが interest group に加入する
    ブラウザが特定の interest group に一定期間参加するAPIリクエストを広告主が実行します。オリジンはサイト所有者と同じウィンドウかiframeから呼び出されます。
  2. 2つの無相関リクエスト
    contextual リクエスト
    interest group リクエスト
  3. オンデバイスオークション
    レスポンスには広告、メタデータ(広告の複数回利用の制限)、ローカル入札のためのオブジェクト、入札関数が含まれます。
  4. オークションに勝った広告を表示する

FLoC

https://github.com/jkarlin/floc
Federated Learning of Cohorts (FLoC) は Privacy Sandbox が提案するブラウザによる興味ベース観測の仕組みです。
企業が個人の閲覧履歴を観測するのに代わって、興味が似ている人々のグループ(cohort or flock)の動きを観測します。

典型的なWeb広告は3つのカテゴリを元に何を出すか決めています。

  1. ファーストパーティーとコンテンツ情報
    どのページに広告を出すか
    例:「バイクのWebページにこの広告を出そう」
  2. 広告を見ようとしている人の興味についての一般的な情報
    どういう人に広告を出すか
    例:「クラシック音楽好きのためのこの広告を見せよう」
  3. 閲覧者が取った直前の特定アクション
    何をした人に広告を出すか
    例:「カートに入れた靴のクーポンを出そう」

人々の興味関心はWebの閲覧履歴を観測することで推測できます。もしサーバではなくブラウザで似たような興味関心を持つ人をグループ化できれば、特定の個人の閲覧履歴を集めることなく興味ベースの広告を出すことができるようになります。
この仕組みを実現するのが FLoC です。
FLoC は興味が似ている人々を集めて機械学習でラベルを生成します。このラベルを元にグループ化することで個人的すぎる情報を開示せずに大きなクラスタを形成することができます。
広告配信側にはラベルしか伝わらないのでプライバシーを保護できます。

FLoC のキー(ラベル)をflockと呼びます。flock は短い文字列で表現され数千人で共有されます。個人の閲覧履歴はブラウザで切り離されます。ブラウザはユーザの行動によって flock を更新することがあります。

ブラウザはサイトの訪問履歴に基づくflockを開発するために機械学習アルゴリズムを使います。

関連技術

TURTLEDOVE と FLoC 以外の技術を簡単に紹介します。

Federated Learning

Federated Learning とはエッジコンピューティングで機械学習を行う手法のことです。
一般的な機械学習では大規模な中央サーバにデータを集約してモデルの学習をしますが、Federated Learning ではスマートフォンのような末端の端末でモデルの学習をします。

個人の行動履歴が直接クラウドに送信されず、各端末で学習されたモデルデータのみがクラウドに送信されて共有モデルの改善に使われます。
たとえば Android 向けソフトウェアキーボード GBoard で Federated Learning が使われています。
https://ai.googleblog.com/2017/04/federated-learning-collaborative.html

差分プライバシー

差分プライバシー (Differential Privacy) は公開された統計量に対してプライバシーの保護が十分であるかどうかを定義する指標のことです。
差分プライバシーは利用者が持っている背景知識やアルゴリズムに関わらずに統計量のプライバシー安全性を保証します。

なぜ公開された統計量のプライバシー保護には差分プライバシーが必要なのでしょうか。
公開された統計量の閲覧者においては攻撃者と一般データ利用者を区別できないので鍵の共有を使って完全秘匿性を実現することはできません。
攻撃者にも見える形で完全秘匿性を達成すると公開した統計量が無意味(完全なランダムと同じ)になります。
したがって弱い秘匿性の実現が必要となります。
その弱い秘匿性の実現方法の1つが差分プライバシーです。

差分プライバシーには「ε-差分プライバシー」と「(ε, δ)-差分プライバシー」の2つの定義があります。
詳しくは 差分プライバシーとは何か などを参照してください。

参考文献

まとめ

この記事では PrivacySandbox の中からWeb広告に関する Edge Computing の技術である TURTLEDOVE と FLoC について解説しました。
また関連技術として Federated Learning と差分プライバシーを簡単に紹介しました。

CX(顧客体験)プラットフォーム「KARTE」を運営するプレイドでは、Webの未来を作りたいエンジニア(インターンも!)を募集しています。
詳しくは弊社採用ページまたはWantedlyをご覧ください。 もしくはお気軽に、下記の「話を聞きに行きたい」ボタンを押してください!

Comments