Noiselab

このドキュメントについて

このドキュメントを読むことで、次のことが可能になります。

  • 概要レポートを生成する前に、作成する戦略を理解します。
  • さまざまなノイズ パラメータの効果を把握し、さまざまなノイズ管理戦略を迅速に探索して評価できるツールである Noise Lab について説明します。
Noise Lab のスクリーンショット
ノイズラボ

フィードバックをお寄せください

このドキュメントでは、概要レポートを扱うためのいくつかの原則をまとめていますが、ノイズ管理には複数のアプローチがあり、ここに反映されていないものもあります。ご提案、追加、ご質問をお待ちしております。

  • ノイズ管理戦略、API の有用性やプライバシー(ε)、Noise Lab でのシミュレーション時の観察結果について一般公開でフィードバックするには、この問題にコメントする
  • Noise Lab に関する公開フィードバック(質問、バグの報告、機能のリクエスト)を送信するには: 新しい問題を作成してください
  • API の他の側面に関するフィードバックを公開するには、新しい問題を作成してください。

始める前に

  1. 概要については、アトリビューション レポート: 概要レポートアトリビューション レポートのシステム全体の概要をご覧ください。
  2. このガイドを最大限に活用するには、ノイズについて集計キーについてをご覧ください。

設計上の意思決定

基本的な設計原則

サードパーティ Cookie と概要レポートの動作には根本的な違いがあります。主な違いのひとつは、概要レポートの測定データに追加されるノイズです。もう 1 つは、レポートのスケジュール設定方法です。

シグナル対ノイズ比の高い概要レポートの測定データにアクセスするには、デマンドサイド プラットフォーム(DSP)と広告測定プロバイダは、広告主と連携してノイズ管理戦略を策定する必要があります。これらの戦略を策定するには、DSP と測定プロバイダが設計上の決定を行う必要があります。これらの決定は、1 つの重要なコンセプトを中心に行われます。

分布から抽出されるノイズ値は、厳密に言えば 2 つのパラメータ(ε と貢献度予算)にのみ依存しますが、出力測定データのシグナル対ノイズ比に影響する他のコントロールもいくつかあります。

反復プロセスによって最善の意思決定に至ることが期待されますが、これらの意思決定の各バリエーションによって実装が若干異なるため、これらの意思決定は各コードの反復処理の前に(および広告の掲載前に)行う必要があります。

決定: ディメンションの粒度

  1. 詳細モードに移動します。
  2. [パラメータ] サイドパネルで、[コンバージョン データ] を探します。
  3. デフォルトのパラメータを確認します。デフォルトでは、1 日の貢献度の割り当てられたコンバージョンの合計数は 1, 000 です。デフォルトの設定(デフォルトのディメンション、各ディメンションで可能な値のデフォルト数、キー戦略 A)を使用する場合、バケットあたりの平均値は約 40 になります。[1 バケットあたりの 1 日の貢献コンバージョン数] の入力値が 40 であることに注目してください。
  4. [シミュレート] をクリックして、デフォルトのパラメータでシミュレーションを実行します。
  5. 左側のパネルの [パラメータ] で、[ディメンション] を探します。[Geography] の名前を [City] に変更し、有効な値の最大数を 50 に変更します。
  6. これにより、バケットごとの 1 日あたりの貢献コンバージョン数がどのように変化するかを確認します。大幅に低下しました。これは、このディメンション内の有効な値の数を変更せずに増やすと、各バケットに含まれるコンバージョン イベントの数は変更されずに、バケットの合計数が増加するためです。
  7. [シミュレート] をクリックします。
  8. 結果のシミュレーションのノイズ比率を確認します。ノイズ比率は、前のシミュレーションよりも高くなっています。

コア設計原則に基づくと、概要の値が小さいほど、ノイズが多い傾向があります。したがって、構成の選択は、各バケット(集計キー)に割り当てられるアトリビューション コンバージョン イベントの数に影響し、その量は最終的な出力概要レポートのノイズに影響します。

1 つのバケット内のアトリビューション コンバージョン イベントの数に影響する設計上の決定の一つが、ディメンションの粒度です。集計キーとそのディメンションの例を次に示します。

  • アプローチ 1: 粗いディメンション( x 広告キャンペーン(または最大のキャンペーン集計バケット)x 商品タイプ(10 種類の中から選択))を持つ 1 つのキー構造
  • アプローチ 2: 詳細なディメンション(都市 x クリエイティブ ID x 商品(100 個の中から選択))を含む 1 つのキー構造

都市よりも詳細なディメンションです。クリエイティブ IDキャンペーンよりも詳細なディメンションです。商品商品カテゴリよりも詳細なディメンションです。したがって、アプローチ 2 では、概要レポートの出力でバケットあたり(= キーあたり)のイベント数(コンバージョン数)がアプローチ 1 よりも少なくなります。出力に追加されるノイズはバケット内のイベント数に依存しないため、アプローチ 2 では概要レポートの測定データのノイズが大きくなります。広告主ごとに、結果の有用性を最大限に高めるために、キーの設計でさまざまな粒度のトレードオフをテストします。

決定: 主な構造

シンプル モードでは、デフォルトの鍵構造が使用されます。詳細モードでは、さまざまなキー構造を試すことができます。いくつかのディメンションの例が含まれています。これらは変更することもできます。

  1. 詳細モードに移動します。
  2. [パラメータ] サイドパネルで、[キー戦略] を探します。ツールで A という名前のデフォルト戦略は、地域 x キャンペーン ID x 商品カテゴリというすべてのディメンションを含む 1 つの詳細なキー構造を使用しています。
  3. [シミュレート] をクリックします。
  4. 結果のシミュレーションのノイズ比率を確認します。
  5. キー戦略を B に変更します。これにより、鍵構造を構成するための追加のコントロールが表示されます。
  6. 次のようにキー構造を構成します。
    1. キー構造の数: 2
    2. キー構造 1 = 地域 x 商品カテゴリ。
    3. キー構造 2 = キャンペーン ID x 商品カテゴリ。
  7. [シミュレート] をクリックします。
  8. 2 つの異なるキー構造を使用しているため、測定目標タイプごとに 2 つの概要レポート(購入件数と購入額のそれぞれ 2 つ)が生成されます。ノイズ比率を確認します。
  9. 独自のカスタム ディメンションで試すこともできます。これを行うには、トラッキングするデータ: ディメンションを探します。サンプル ディメンションを削除し、最後のディメンションの下にある [追加]、[削除]、[リセット] ボタンを使用して独自のディメンションを作成することを検討してください。

1 つのバケット内のアトリビューション コンバージョン イベントの数に影響するもう 1 つの設計上の決定は、使用するキー構造です。集計キーの例を次に示します。

  • すべてのディメンションを含む 1 つのキー構造。これをキー戦略 A と呼びます。
  • 2 つの主要な構造があり、それぞれにディメンションのサブセットがあります。これを主要戦略 B と呼びます。
図:

戦略 A はシンプルですが、特定の分析情報にアクセスするには、概要レポートに含まれるノイズの多い概要値を集計(合計)する必要がある場合があります。これらの値を合計すると、ノイズも合計されます。戦略 B では、概要レポートに表示される概要値で必要な情報がすでに提供されている場合があります。つまり、戦略 B の方が戦略 A よりもシグナル対ノイズ比が高くなる可能性が高いということです。ただし、ノイズは戦略 A ですでに許容できる場合があるため、単純に戦略 A を選択することもできます。詳しくは、これらの 2 つの戦略の概要を説明した詳細な例をご覧ください

鍵管理は深いトピックです。信号対雑音比を改善するために、さまざまな複雑な手法が考えられます。1 つは高度な鍵管理で説明しています。

決定: バッチ処理の頻度

  1. シンプル モード(または詳細モード - バッチ処理の頻度に関しては両方のモードが同じように動作します)に移動します。
  2. [パラメータ] サイドパネルで、[集計戦略] > [バッチ処理の頻度] を探します。これは、1 つのジョブで集計サービスで処理される集計可能レポートのバッチ処理頻度を指します。
  3. デフォルトのバッチ処理頻度を確認します。デフォルトでは、1 日のバッチ処理頻度がシミュレートされます。
  4. [シミュレート] をクリックします。
  5. 結果のシミュレーションのノイズ比率を確認します。
  6. バッチ処理の頻度を週単位に変更します。
  7. 結果のシミュレーションのノイズ比を確認します。ノイズ比は、前のシミュレーションよりも低くなっています(改善されています)。

1 つのバケット内のアトリビューション コンバージョン イベントの数に影響する設計上の決定事項として、バッチ処理の頻度があります。バッチ処理の頻度は、集計可能なレポートを処理する頻度です。

集計のスケジュールがより頻繁(1 時間ごとなど)に設定されているレポートには、集計のスケジュールがより低い頻度(毎週など)に設定されている同じレポートよりも、含まれるコンバージョン イベントが少なくなります。その結果、1 時間ごとのレポートにはノイズが多く含まれます。``` 集計スケジュールがより短い(毎週など)同じレポートよりも、コンバージョン イベントが含まれる数が少なくなります。そのため、他の条件が同じであれば、1 時間ごとのレポートの信号対雑音比は週単位のレポートよりも低くなります。さまざまな頻度でレポート要件をテストし、それぞれについてシグナル対ノイズ比を評価します。

詳しくは、バッチ処理長い期間にわたる集計をご覧ください。

意思決定: アトリビューション コンバージョンに影響するキャンペーン変数

予測が難しく、季節要因に加えて大幅な変動が生じる可能性もありますが、1 日あたりのシングルタッチ起因コンバージョン数を 10 のべき乗(10、100、1,000、10,000)に最も近い値で推定してみてください。

  1. 詳細モードに移動します。
  2. [パラメータ] サイドパネルで、[コンバージョン データ] を探します。
  3. デフォルトのパラメータを確認します。デフォルトでは、1 日の貢献度の割り当てられたコンバージョンの合計数は 1, 000 です。デフォルトの設定(デフォルトのディメンション、各ディメンションで可能な値のデフォルト数、キー戦略 A)を使用する場合、バケットあたりの平均値は約 40 になります。[1 バケットあたりの 1 日の貢献コンバージョン数] の入力値が 40 であることに注目してください。
  4. [シミュレート] をクリックして、デフォルトのパラメータでシミュレーションを実行します。
  5. 結果のシミュレーションのノイズ比率を確認します。
  6. 次に、1 日の合計アトリビューション コンバージョン数を 100 に設定します。これにより、[1 日の平均アトリビューション コンバージョン数(バケットごと)] の値が低下します。
  7. [シミュレート] をクリックします。
  8. ノイズ比率が高くなっていることがわかります。これは、バケットあたりのコンバージョン数が少ないと、プライバシーを維持するためにノイズがより多く適用されるためです。

重要な違いは、広告主様が獲得できるコンバージョンの合計数と、アトリビューション可能なコンバージョンの合計数です。後者が最終的に概要レポートのノイズに影響します。アトリビューション コンバージョンは、広告予算や広告ターゲティングなどのキャンペーン変数の影響を受けやすいコンバージョンの合計サブセットです。たとえば、他の条件が同じであれば、1,000 万円の広告キャンペーンよりも 10 万円の広告キャンペーンの方が、コンバージョンにつながった広告の数は多くなります。

注意点:

  • アトリビューション レポートのスコープ内にあるシングルタッチの同一デバイス アトリビューション モデルと、アトリビューションされたコンバージョンを比較します。これは、Attribution Reporting API で収集される概要レポートの対象となります。
  • アトリビューション コンバージョンの最悪のシナリオと最良のシナリオの両方のカウントを検討してください。たとえば、他の条件が同じであれば、広告主様のキャンペーン予算の最小値と最大値を検討し、両方の成果に起因するコンバージョン数を予測してシミュレーションに入力します。
  • Android プライバシー サンドボックスの使用を検討している場合は、クロスプラットフォーム アトリビューション コンバージョンを計算に含めることを検討してください。

決定: スケーリングを使用する

  1. 詳細モードに移動します。
  2. パラメータのサイドパネルで、[集計戦略] > [スケーリング] の順に選択します。デフォルトでは [はい] に設定されています。
  3. スケーリングがノイズ比率に与えるプラスの効果を理解するため、まず [スケーリング] を [いいえ] に設定します。
  4. [シミュレート] をクリックします。
  5. 結果のシミュレーションのノイズ比率を確認します。
  6. [スケーリング] を [はい] に設定します。Noise Lab は、シナリオの測定目標の範囲(平均値と最大値)に基づいて、使用するスケーリング ファクタを自動的に計算します。実際のシステムまたはオリジン トライアルの設定では、スケーリング ファクタの独自の計算を実装する必要があります。
  7. [シミュレート] をクリックします。
  8. この 2 番目のシミュレーションでは、ノイズ比が低下していることがわかります。これは、スケーリングを使用しているためです。

コア設計原則に基づいて、追加されるノイズはコントリビューション バジェットの関数です。

したがって、シグナル対ノイズ比を高めるために、コンバージョン イベント中に収集された値を、貢献度予算に対してスケーリングし(集計後にスケーリングを解除)、変換することができます。スケーリングを使用して、信号対雑音比を高めます。

決定: 測定目標の数とプライバシー バジェットの分割

これはスケーリングに関連しています。スケーリングの使用を必ず読んでください。

測定目標とは、コンバージョン イベントで収集される個別のデータポイントです。

  1. 詳細モードに移動します。
  2. [パラメータ] サイドパネルで、トラッキングするデータ: 測定目標を探します。デフォルトでは、購入額と購入回数の 2 つの測定目標があります。
  3. [シミュレート] をクリックして、デフォルトの目標でシミュレーションを実行します。
  4. [削除] をクリックします。これにより、最後の測定目標(この場合は購入数)が削除されます。
  5. [シミュレート] をクリックします。
  6. この 2 番目のシミュレーションでは、購入額のノイズ比が低下していることがわかります。これは、測定目標が減ったため、1 つの測定目標に貢献予算がすべて割り当てられるようになったためです。
  7. [リセット] をクリックします。これで、購入額と購入数の 2 つの測定目標が設定されました。なお、Noise Lab は、シナリオの測定目標の範囲(平均値と最大値)に基づいて、使用するスケーリング ファクタを自動的に計算します。デフォルトでは、Noise Lab は測定目標に均等に予算を分割します。
  8. [シミュレート] をクリックします。
  9. 結果のシミュレーションのノイズ比率を確認します。シミュレーションに表示されるスケーリング ファクタをメモします。
  10. 次に、プライバシー予算の分割をカスタマイズして、シグナル対ノイズ比を改善しましょう。
  11. 各測定目標に割り当てられた予算の割合を調整します。デフォルトのパラメータでは、測定目標 1(購入額)の範囲は測定目標 2(購入数)の範囲(1 ~ 1、つまり常に 1)よりもはるかに広く(0 ~ 1,000)なっています。そのため、より多くの「スケールアップの余地」が必要です。測定目標 1 に測定目標 2 よりも多くの貢献度予算を割り当て、より効率的にスケールアップできるようにすることをおすすめします(スケーリングを参照)。
  12. 予算の 70% を測定目標 1 に割り当てます。測定の目標 2 に 30% を割り当てます。
  13. [シミュレート] をクリックします。
  14. 結果のシミュレーションのノイズ比率を確認します。購入価値では、ノイズ比が以前のシミュレーションよりも大幅に低下しました(改善)。購入数については、ほぼ変化はありません。
  15. 指標ごとに予算配分を調整し、これがノイズに与える影響を観察します。

[追加]、[削除]、[リセット] ボタンを使用して、独自のカスタム測定目標を設定できます。


コンバージョン イベントで 1 つのデータポイント(測定目標)(コンバージョン数など)を測定する場合、そのデータポイントは貢献度予算(65,536)をすべて受け取ることができます。コンバージョン イベントにコンバージョン数や購入額など、複数の測定目標を設定している場合、それらのデータポイントは貢献度予算を共有する必要があります。つまり、値をスケールアップする余裕が減ります。

したがって、測定目標が多いほど、信号雑音比は低くなる(ノイズが大きくなる)傾向があります。

測定目標に関して決定すべきもう 1 つは、予算の分割です。コントリビューション バジェットを 2 つのデータポイントに均等に分割すると、各データポイントに 65,536 ÷ 2 = 32,768 のバジェットが割り当てられます。これは、各データポイントで可能な最大値に応じて最適である場合とそうでない場合があります。たとえば、購入数(最大値 1、最小値 1、最大値 120)と購入金額(最小値 1、最大値 120)を測定している場合、購入金額は「より多くのスペース」を割り当てられるため、コントリビューション 予算の割合を増やすことができます。ノイズの影響に関連して、一部の測定目標を他の測定目標よりも優先すべきかどうかを確認できます。

決定: 外れ値の管理

測定目標とは、コンバージョン イベントで収集される個別のデータポイントです。

  1. 詳細モードに移動します。
  2. パラメータのサイドパネルで、[集計戦略] > [スケーリング] を探します。
  3. [スケーリング] が [はい] に設定されていることを確認します。Noise Lab は、測定目標に指定した範囲(平均値と最大値)に基づいて、使用するスケーリング ファクタを自動的に計算します。
  4. これまでの最大購入額が 2, 000 ドルで、ほとんどの購入が 10 ~ 120 ドルの範囲内であるとします。まず、リテラル スケーリング アプローチ(非推奨)を使用するとどうなるかを確認しましょう。purchaseValue の最大値として $2000 を入力します。
  5. [シミュレート] をクリックします。
  6. ノイズ比率が高いことを確認します。これは、現在、スケーリング係数は $2, 000 に基づいて計算されているためです。実際には、ほとんどの購入額はそれよりもかなり低くなります。
  7. では、より実用的なスケーリング アプローチを適用しましょう。最大購入額を $120 に変更します。
  8. [シミュレート] をクリックします。
  9. この 2 番目のシミュレーションでは、ノイズ比が低くなっています(改善されています)。

スケーリングを実装するには、通常、特定のコンバージョン イベントで可能な最大値に基づいてスケーリング係数を計算します(詳細については、こちらの例をご覧ください)。

ただし、そのスケーリング係数を計算するためにリテラルの最大値を使用しないでください。これにより、シグナル対ノイズ比が悪化します。代わりに、外れ値を削除し、実用的な最大値を使用します。

外れ値の管理は深いトピックです。信号対雑音比を改善するために、さまざまな複雑な手法が考えられます。1 つは高度な外れ値管理で説明されています。

次のステップ

ユースケースに応じてさまざまなノイズ管理戦略を評価したので、オリジン トライアルで実際の測定データを収集して、概要レポートのテストを開始する準備が整いました。API を試すためのガイドとヒントを確認する。

付録

Noise Lab を使用すると、ノイズ管理戦略をすばやく評価して比較できます。適した用途:

  • ノイズに影響を与える主なパラメータとその影響を理解します。
  • さまざまな設計上の決定に基づいて、出力測定データに対するノイズの影響をシミュレートします。ユースケースに適した信号対雑音比に達するまで、設計パラメータを調整します。
  • 概要レポートの有用性についてフィードバックをお寄せください。イプシロンとノイズ パラメータのどの値が適切で、どの値が適切でないかを教えてください。転換点はどこにありますか?

これは準備ステップと考えてください。ノイズラボは、入力に基づいて概要レポートの出力をシミュレートする測定データを生成します。データの保持や共有は行いません。

ノイズラボには 2 つのモードがあります。

  1. シンプル モード: ノイズに関するコントロールの基本を理解します。
  2. 詳細モード: さまざまなノイズ管理戦略をテストし、ユースケースに最適なシグナル対ノイズ比をもたらす戦略を評価します。

上部のメニューのボタンをクリックして、2 つのモードを切り替えます(下のスクリーンショットの 1 番目)。

シンプル モード
  • シンプル モードでは、Epsilon などのパラメータ(左側、または下のスクリーンショットの 2)を制御し、ノイズへの影響を調べます。
  • 各パラメータにはツールチップ(「?」ボタン)があります。クリックすると、各パラメータの説明が表示されます(下のスクリーンショットの 3.)。
  • 開始するには、[シミュレート] ボタンをクリックして、出力を確認します(下のスクリーンショットの 4.)。
  • [出力] セクションには、さまざまな詳細が表示されます。一部の要素の横には「?」が表示されます。各「?」をクリックして、さまざまな情報の説明を確認してください。
  • テーブルの展開版を表示するには、[出力] セクションで [詳細] 切り替えボタンをクリックします(下のスクリーンショットの 5.)。
  • 出力セクションの各データ表の下には、オフラインで使用するために表をダウンロードするオプションがあります。また、右下にはすべてのデータ表をダウンロードするオプションがあります(下のスクリーンショットの 6.)。
  • [パラメータ] セクションでパラメータのさまざまな設定をテストし、[シミュレート] をクリックして、出力への影響を確認します。
    ノイズ
    シンプル モードのノイズラボ インターフェース。
詳細モード
  • 詳細モードでは、パラメータをより細かく制御できます。カスタムの測定目標とディメンションを追加できます(下のスクリーンショットの 1 と 2)。
  • [パラメータ] セクションでさらに下にスクロールして、[キー戦略] オプションを確認します。これを使用して、さまざまなキー構造をテストできます(下のスクリーンショットの 3 番目)。
    • さまざまなキー構造をテストするには、キー戦略を [B] に切り替えます。
    • 使用する異なるキー構造の数を入力します(デフォルトは「2」に設定されています)。
    • [鍵構造を生成する] をクリックします。
    • 鍵構造を指定するためのオプションが表示されます。各鍵構造に含める鍵の横にあるチェックボックスをオンにします。
    • [シミュレート] をクリックして出力を確認します。
      詳細モードでは、測定目標とトラッキングするディメンションのコントロールがサイドバーにハイライト表示されます。
      詳細モードの Noise Lab インターフェース。
      詳細モードでは、サイドバーの [パラメータ] セクションに [キー戦略] オプションもあります。
      詳細モードの Noise Lab インターフェース。

基本コンセプト

ノイズは個々のユーザーのプライバシーを保護するために付加されます。

ノイズ値が高い場合、バケットまたはキーがスパースで、限られた数の機密性の高いイベントからの貢献が含まれていることを示します。これは Noise Lab によって自動的に行われ、個人が「群衆に紛れる」ことを可能にします。つまり、より多くのノイズを追加することで、限られた個人のプライバシーを保護します。

ノイズ値が低いということは、データ設定が、個人が「群衆に紛れる」ことをすでに許容するように設計されていることを示します。つまり、バケットには、個々のユーザーのプライバシーを保護するために十分な数のイベントからの貢献が含まれています。

このステートメントは、平均率誤差(APE)と RMSRE_T(しきい値付きの二乗平均平方根相対誤差)の両方に当てはまります。

APE(平均パーセント誤差)

APE は、ノイズと信号(真の概要値)の比率です。p> APE 値が低いほど、信号対雑音比が高くなります。

数式

特定の概要レポートの APE は次のように計算されます。

APE の式。ノイズは負の値になる可能性があるため、絶対値が必要です。

True は、真の概要値です。APE は、各真の概要値のノイズの平均値で、概要レポート内のすべてのエントリの平均値です。Noise Lab では、この値に 100 を乗算してパーセンテージを算出します。

長所と短所

バケットのサイズが小さいほど、APE の最終的な値に不均衡な影響を与えます。ノイズを評価する際に誤解を招く可能性があります。そのため、APE のこの制限を軽減するように設計された別の指標 RMSRE_T を追加しました。詳しくは、をご覧ください。

コード

APE 計算のソースコードを確認します。

RMSRE_T(しきい値付き二乗平均平方根相対誤差)

RMSRE_T(しきい値付き二乗平均平方根相対誤差)は、ノイズの別の指標です。

RMSRE_T の解釈方法

RMSRE_T 値が低いほど、信号対雑音比が高くなります。
たとえば、ユースケースで許容されるノイズ比率が 20% で、RMSRE_T が 0.2 の場合、ノイズレベルが許容範囲内にあると確信できます。

数式

特定のサマリー レポートの場合、RMSRE_T は次のように計算されます。

数式
RMSRE_T の式。ノイズは負の値になる可能性があるため、絶対値が必要です。
長所と短所

RMSRE_T は APE よりも理解するのが少し複雑です。ただし、概要レポート内のノイズの分析には、APE よりも適している場合もあります。

  • RMSRE_T はより安定しています。「T」はしきい値です。「T」は、コンバージョン数が少ないバケットに RMSRE_T の計算で重み付けを低くするために使用されます。バケットのサイズが小さいため、ノイズの影響を受けやすくなります。T を使用すると、コンバージョン数が少ないバケットで指標が急増することはありません。T が 5 の場合、コンバージョン数が 0 のバケットでノイズ値が 1 に近い場合でも、1 を大幅に超える値として表示されません。代わりに、T が 5 であるため、1/5 に相当する 0.2 に制限されます。ノイズの影響を受けやすい小さいバケットに重きを置かないため、この指標はより安定しており、2 つのシミュレーションを比較しやすくなります。
  • RMSRE_T を使用すると、簡単に集計できます。複数のバケットの RMSRE_T と実際のカウントがわかれば、その合計の RMSRE_T を計算できます。また、これらの結合値に対して RMSRE_T を重視した最適化も可能です。

APE では集計が可能ですが、ラプラスノイズの合計の絶対値が含まれるため、式は非常に複雑です。これにより、APE の最適化が難しくなります。

コード

RMSRE_T の計算に関するソースコードを確認します。

3 つのバケットを含む概要レポート:

  • bucket_1 = noise: 10, trueSummaryValue: 100
  • bucket_2 = noise: 20, trueSummaryValue: 100
  • bucket_3 = noise: 20, trueSummaryValue: 200

APE =(0.1 + 0.2 + 0.1)÷ 3 = 13%

RMSRE_T = sqrt( ( (10/max(5,100))^2  + (20/max(5,100))^2 +
(20/max(5,200))^2) / 3) =  sqrt( (0.01 + 0.04 + 0.01) / 3) =  0.14 

3 つのバケットを含む概要レポート:

  • bucket_1 = noise: 10, trueSummaryValue: 100
  • bucket_2 = noise: 20, trueSummaryValue: 100
  • bucket_3 = noise: 20, trueSummaryValue: 20

APE =(0.1 + 0.2 + 1)÷ 3 = 43%

RMSRE_T = sqrt( ( (10/max(5,100))^2  + (20/max(5,100))^2 +
(20/max(5,20))^2) / 3)  =  sqrt( (0.01 + 0.04 + 1.0) / 3) =  0.59

3 つのバケットを含む概要レポート:

  • bucket_1 = noise: 10, trueSummaryValue: 100
  • bucket_2 = noise: 20, trueSummaryValue: 100
  • bucket_3 = noise: 20, trueSummaryValue: 0

APE =(0.1 + 0.2 + 無限大)÷ 3 = 無限大

RMSRE_T = sqrt( ( (10/max(5,100))^2  + (20/max(5,100))^2  +
(20/max(5,0))^2) / 3) =  sqrt( (0.01 + 0.04 + 16.0) / 3) =  2.31

DSP や広告測定会社には、複数の業界、通貨、購入価格の可能性にまたがる、何千ものグローバル広告顧客が存在する場合があります。つまり、広告主様ごとに 1 つの集計キーを作成して管理することは、非常に現実的ではありません。また、数千にのぼる世界中の広告主様に対してノイズの影響を抑えることができる、集計可能な最大値と集計予算を選択することは困難です。代わりに、次のシナリオについて考えてみましょう。

主な戦略 A

広告技術プロバイダは、すべての広告主様に対して 1 つのキーを作成して管理することにしました。すべての広告主とすべての通貨で、購入の範囲は少量の高価格帯の購入から、大量の低価格帯の購入までさまざまです。キーは次のようになります。

キー(複数の通貨)
集計可能な最大値 5,000,000
購入額の範囲 [120 ~ 5000000]
キー戦略 B

広告技術プロバイダは、すべての広告顧客にわたって 2 つの鍵を作成して管理することにしました。キーを通貨別に分割することにしました。すべての広告主様とすべての通貨で、購入の範囲は少量の高価格帯の購入から、大量の低価格帯の購入までさまざまです。通貨別に分割すると、2 つのキーが作成されます。

キー 1(米ドル) キー 2(¥)
集計可能な最大値 $40,000 5,000,000 円
購入額の範囲 [120 ~ 40,000] [15,000 ~ 5,000,000]

通貨の価値は通貨間で均等に分布していないため、キー戦略 B の結果にはキー戦略 A よりもノイズが少なくなります。たとえば、円建ての購入と米ドル建ての購入が混在すると、基になるデータが変更され、ノイズの多い出力が生成される仕組みについて考えてみましょう。

主な戦略 C

広告技術プロバイダは、すべての広告顧客に 4 つのキーを作成して管理し、通貨と広告主の業種で分類することにしました。

キー 1
(米ドル x 高級ジュエリー広告主)
キー 2
(¥ x 高級ジュエリー広告主)
キー 3
(米ドル x 衣料品小売店の広告主)
キー 4
(¥ x 衣料品小売店の広告主)
集計可能な最大値 $40,000 5,000,000 円 $500 65,000 円
購入額の範囲 [10,000 ~ 40,000] [1,250,000 ~ 5,000,000] [120 ~ 500] [15,000 ~ 65,000]

広告主様の購入額は広告主様ごとに均等に分布していないため、キー戦略 C の結果にはキー戦略 B よりもノイズが少なくなります。たとえば、高級ジュエリーの購入と野球帽の購入が混在すると、基盤となるデータが変化し、ノイズの多い出力が生成される可能性があります。

出力のノイズを減らすには、複数の広告主に共通する項目について、共有の最大集計値と共有のスケーリング ファクタを作成することを検討してください。たとえば、広告主様向けに以下のさまざまな戦略をテストできます。

  • 1 つの戦略(通貨(米ドル、円、カナダドルなど)ごとに分割)
  • 広告主の業種(保険、自動車、小売など)ごとに分かれた 1 つの戦略
  • 類似の購入額の範囲([100]、[1,000]、[10,000] など)で区切られた 1 つの戦略

広告主の共通点を中心にキー戦略を作成することで、キーと対応するコードを簡単に管理でき、シグナル対ノイズ比が高くなります。さまざまな広告主様の共通点に基づいてさまざまな戦略をテストし、ノイズの影響とコード管理のバランスを最大限に取る転換点を特定します。


2 つの広告主様を例に考えてみましょう。

  • 広告主 A:
    • 広告主 A のサイト上のすべての商品の購入価格は、$120 ~$1,000 の範囲で、$880 です。
    • 購入価格は 880 ドルの範囲に均等に分布しており、購入価格の中央値から 2 標準偏差を超える外れ値はありません。
  • 広告主 B:
    • 広告主 B のサイトのすべての商品の購入価格は、$120 ~$1,000 の範囲で、$880 です。
    • 購入価格は 120 ~ 500 ドルの範囲に偏っており、500 ~ 1,000 ドルの範囲での購入は 5% に過ぎません。

貢献度予算の要件と、最終結果にノイズを適用する方法を考慮すると、広告主 B は、外れ値が基盤となる計算に影響する可能性が高いため、デフォルトでは広告主 A よりもノイズの多い出力になります。

特定のキー設定でこの問題を軽減できます。外れ値データを管理し、キーの購入範囲全体に購入値をより均等に分散させるのに役立つ主要な戦略をテストします。

広告主 B の場合は、2 つの異なる購入価格の範囲をキャプチャするために、2 つの個別のキーを作成できます。この例では、広告テクノロジーが、購入額が 500 ドルを超える外れ値があることを検出しています。この広告主に対して、次の 2 つのキーを別々に実装してみてください。

  • キー構造 1 : 120 ~ 500 ドルの範囲内の購入のみをキャプチャするキー(合計購入量の約 95% をカバー)。
  • キー構造 2: 500 ドルを超える購入のみをキャプチャするキー(合計購入量の約 5% をカバー)。

この主な戦略を実装すると、広告主 B のノイズを適切に管理し、概要レポートの有用性を最大限に高めることができます。範囲が狭くなったため、キー A とキー B では、以前の単一キーよりも各キーにわたってデータが均等に分散されるようになります。これにより、各キーの出力へのノイズの影響が、以前の単一キーの場合よりも小さくなります。