什么是同类群组联合学习 (FLoC)?

摘要

FLoC 为基于兴趣的广告选择提供了隐私保护机制。

当用户浏览网络时,浏览器会使用 FLoC 算法得出其 "兴趣同类群组"。凡是具有短期相似浏览记录的浏览器,得出的结果都是相同的。浏览器会在用户设备上定期重新计算其同类群组,但不会与浏览器供应商或其他人共享个人浏览数据。

广告客户 (为广告付费的网站) 可在自己的网站上添加代码来收集同类群组数据,再将数据提供给其广告技术平台 (提供广告投放软件和工具的公司)。例如,一个广告技术平台可能会从一家线上鞋店中得知,来自 1101 和 1354 同类群组的浏览器似乎对该店的登山装备感兴趣。同时,广告技术平台还会从其他广告客户那里了解到这些同类群组的其他兴趣。

随后,当其中一个同类群组的浏览器从显示广告的网站 (如新闻网站) 请求页面时,广告平台即可使用这些数据选择相关的广告 (如鞋店的登山靴广告)。

????

隐私沙盒 (Privacy Sandbox) 由一系列提案组成,可满足第三方用例而不需要第三方 Cookie 或其他跟踪机制。您可以参阅深入了解隐私沙盒了解所有提案的概述。

这一提案还需要您的反馈!如果您有任何意见或者建议,请在 FLoC Explainer 库中提交反馈。如果您就 Chrome 对此提案的实验有任何反馈,请在 Intent to Experiment 上发表回复。

  • FLoC Explainer

    https://github.com/WICG/floc

  • 提交反馈

    https://github.com/WICG/floc/issues/new

  • Intent to Experiment

    https://groups.google.com/a/chromium.org/g/blink-dev/c/MmijXrmwrJs

我们为什么需要 FLoC?

许多商家依靠广告来带动网站流量,广告则通过出售广告资源获得资助。人们通常更愿意看到与自己相关的实用广告,并且相关的广告也会给广告客户带来更多业务,给托管网站创造更多收入。也就是说,广告内容在显示具有相关性的广告时更有价值。因此,选择相关的广告可以增加广告承载网站的收入。反过来,这又意味着相关的广告有助于支持内容创作,使用户受益。

  • 给托管网站创造更多收入

    https://services.google.com/fh/files/misc/disabling_third-party_cookies_publisher_revenue.pdf

然而,许多人担心定制广告对隐私的影响。目前,定制广告依赖于跟踪 Cookie 和设备指纹等跟踪个人浏览行为的技术。FLoC 提案的目的是在不损害隐私的情况下,实现更有效的广告选择。

FLoC 可以用来做什么?

  • 对于经常访问特定广告客户网站或对相关主题感兴趣的同类群组,向其下属浏览器的用户显示特定广告。

  • 使用机器学习模型,根据同类群组预测用户转换率,为广告竞价提供参考。

  • 向用户推荐内容。例如,假设一个新闻网站发现其体育播客网页在同类群组 1234 和 7 的访问者中特别受欢迎。那么他们就可以向这些同类群组的其他访问者推荐该内容。

FLoC 是怎样运作的?

以下示例说明了使用 FLoC 选择广告时的不同角色。

  • 本例中的广告客户 (为广告付费的公司) 是一家线上鞋类零售商: shoestore.example

  • 示例中的发布商 (出售广告位的网站) 是一家新闻网站: dailynews.example

  • 广告技术平台 (提供广告投放软件和工具) 为: adnetwork.example

在此示例中,用户为 YoshiAlex。最初,他们的浏览器都属于同类群组 1354。

????

用户在这里称为 Yoshi 和 Alex,但仅出于示例目的。用户名称和个人身份不会通过 FLoC 透露给广告客户、发布商或广告技术平台。

 

不要将同类群组视为一群人的集合,而应该把同类群组看作浏览活动的分组。

FLoC 服务 

  1. 浏览器使用 FLoC 服务创建数学模型,包含数千个 "同类群组",每一个又都对应数千个具有相似近期浏览记录的网络浏览器。下面将详细介绍其工作原理。

  2. 每个同类群组都有一个编号。

  • 工作原理

    https://web.dev/floc/#floc-server

浏览器 

  1. Yoshi 的浏览器从 FLoC 服务中获取描述 FLoC 模型的数据。

  2. Yoshi 的浏览器使用 FLoC 模型的算法得出其同类群组,再计算最接近其浏览记录的同类群组,此示例中为同类群组 1354。注意,Yoshi 的浏览器不会与 FLoC 服务共享任何数据。

  3. Alex 的浏览器以同样的方式计算其同类群组 ID。Alex 的浏览记录与 Yoshi 的不同,但相似度很高,因此他们的浏览器都属于同类群组 1354。

广告客户: shoestore.example 

  1. Yoshi 访问 shoestore.example。

  2. 网站请求 Yoshi 的浏览器提供其同类群组:1354。

  3. Yoshi 在看登山靴。

  4. 网站记录下来自同类群组 1354 的浏览器对登山靴表现出兴趣。

  5. 网站随后记录下来自同类群组 1354 以及其他同类群组的浏览器感兴趣的其他产品。

  6. 网站通过广告技术平台 adnetwork.example 定期汇总和共享有关同类群组和产品兴趣的信息。

接下来轮到 Alex。

广告发布商: dailynews.example

  1. Alex 访问 dailynews.example。

  2. 网站请求 Alex 的浏览器提供其同类群组。

  3. 然后,网站向其广告技术平台 adnetwork.example 请求广告,包括 Alex 浏览器的同类群组: 1354。

广告技术平台: adnetwork.example

  1. adnetwork.example 可以选择适合 Alex 的广告,具体方法为结合来自广告发布商 dailynews.example 和广告客户 shoestore.example 的数据:

    1. Alex 的浏览器同类群组 (1354),提供者为 dailynews.example。

    2. 同类群组和产品兴趣数据,来自 shoestore.example:"同类群组 1354 的浏览器可能对登山靴感兴趣。"

  2. adnetwork.example 选择适合 Alex 的广告: shoestore.example 的登山靴广告。

  3. dailynews.example 显示广告 ????。

????

目前的广告选择方法依赖于跟踪 Cookie 和设备指纹等技术,广告客户等第三方使用这些技术跟踪个人浏览行为。

使用 FLoC 时,浏览器不会与 FLoC 服务或任何其他人共享其浏览记录。浏览器在用户设备上计算其所属的同类群组。用户的浏览记录永远不会离开设备。

谁能够运行创建 FLoC 模型的后端服务?

每个浏览器厂商都需要自己选择如何将浏览器分组。Chrome 正在运行自己的 FLoC 服务;其他浏览器可能会选择使用不同的集群方法来实现 FLoC,并运行自己的服务来实现这一点。

FLoC 服务如何使浏览器确定其同类群组?

  1. 浏览器使用的 FLoC 服务会为所有潜在的网页浏览记录创建一个多维数学表征。我们称此模型为 "同类群组空间"。

  2. FLoC 服务将此空间划分为数千个细分。每个细分都代表着数千个相似浏览记录组成的集群。这些分组并不基于对任何实际浏览记录的了解,而只是基于在 "同类群组空间" 中选择随机中心或以随机线分割空间。

  3. 每个细分都被赋予一个同类群组编号。

  4. 浏览器从其 FLoC 服务获取描述 "同类群组空间" 的数据。

  5. 当用户浏览网络时,浏览器将使用一种算法定期计算 "同类群组空间" 中与其自身浏览记录最接近的区域。

FLoC 服务 "同类群组空间" 划分为数千个细分 (此处仅显示一部分)

????

在此过程中,用户的浏览记录绝不会与 FLoC 服务或任何第三方共享。浏览器同类群组由浏览器在用户设备上计算得出。FLoC 服务不会获取或存储任何用户数据。

浏览器的同类群组可以改变吗?

可以!浏览器的同类群组当然可以改变!您不会每周都访问相同的网站,浏览器的同类群组也将对此做出回应。

同类群组代表的是浏览活动的集群,而不是人的集合。同类群组的活动特征通常在一段时间内是一致的,并且可将相似的近期浏览行为归为一组,因此有助于广告选择。个人的浏览器会随其浏览行为的变化而在同类群组间浮动。最初,我们预计浏览器每隔七天重新计算一次同类群组。

在上面的示例中,Yoshi 和 Alex 的浏览器同类群组均为 1354。将来,如果 Yoshi 和 Alex 的浏览器的兴趣数据发生变化,它们可能会转移到不同的同类群组。在下面的示例中,Yoshi 的浏览器转移到同类群组 1101,Alex 的浏览器转移到同类群组 1378。其他人的浏览器将随着其浏览兴趣的变化而进出同类群组。

如果 Yoshi 和 Alex 的兴趣发生变化,其浏览器同类群组可能会随之改变。

????

同类群组定义的是一组浏览活动,而不是一群人。浏览器会随其活动的变化而进出同类群组。

浏览器如何确定其同类群组?

如上所述,用户的浏览器从其 FLoC 服务获取描述同类群组数学模型的数据: 一个代表所有用户浏览活动的多维空间。然后,浏览器使用一种算法计算出此 "同类群组空间" 中的哪个区域 (即哪个同类群组) 与自身近期的浏览行为最为接近。

FLoC 如何确定合适的同类群组规模?

每个同类群组中都将拥有成千上万个用户浏览器。

较小的同类群组可能对个性化广告更有用,但不太可能避免用户跟踪 —— 反之亦然。同类群组的浏览器分配机制需要在隐私和实用性之间做出权衡。隐私沙盒使用 k 匿名性 (k-anonymity),让用户能够 "隐藏在人群中"。如果一个同类群组至少被 k 个用户共享,那么它就是 k 匿名的。k 数越高,该同类群组受到的隐私保护程度就越高。

  • k 匿名性 (k-anonymity)

    https://en.wikipedia.org/wiki/K-anonymity

FLoC 能否用于根据敏感类别对人员进行分组?

构建 FLoC 同类群组模型的集群算法旨在评估同类群组是否与敏感类别相关,无需了解类别为什么敏感。可能揭示种族、性取向或病史等敏感类别的同类群组将被屏蔽。换句话说,在计算同类群组时,浏览器只会在不显示敏感类别的同类群组中进行选择。

难道 FLoC 只是一种对用户进行在线分类的方法吗?

通过 FLoC,用户的浏览器将与成千上万个其他用户的浏览器一起,从属于成千上万个同类群组的其中之一。与第三方 Cookie 和其他定位机制不同,FLoC 仅显示用户浏览器所在的同类群组,而不显示个人用户 ID。它不会让其他人在一个同类群组中区分个人。此外,用于计算浏览器同类群组的浏览活动信息本地保存在浏览器或设备中,不会上传到其他位置。浏览器可以进一步利用其他匿名化方法,例如差分隐私 (differential privacy)

https://en.wikipedia.org/wiki/Differential_privacy

网站必须参与和共享信息吗?

网站可以选择加入或退出 FLoC,因此涉及敏感主题的网站能够防止对其网站的访问被纳入 FLoC 计算。FLoC 服务的分析也将作为额外的保护措施,在不知晓同类群组为何敏感的前提下,评估同类群组是否可能泄露有关用户的敏感信息。如果某个同类群组可能表示访问敏感类别网站的人数超过典型人数,那么该同类群组将被移除。负面财务状况和心理健康属于此分析所涵盖的敏感类别。

网站可以通过设置页面 Permissions-Policy 标头 interest-cohort=() 来选择退出 FLoC。对于为选择退出的网站,如果在页面上使用了 document.interestCohort() 或 Chrome 检测到页面加载了广告或相关资源,那么在 FLoC 初始试用阶段,页面访问将被包含在 FLoC 计算中。(Chromium 中的广告代码解释了 Chrome 广告检测机制的工作原理。)

而对于私有 IP 提供的网页,如内网页面等,将不包含在 FLoC 的计算范围内。

  • Permissions-Policy

    https://www.w3.org/TR/permissions-policy-1/#introduction

  • FLoC 初始试用

    https://developer.chrome.com/origintrials/#/trials/active

  • 加载了广告或相关资源

    https://github.com/WICG/floc/issues/82

  • Chromium 中的广告代码

    https://chromium.googlesource.com/chromium/src/+/master/docs/ad_tagging.md

作为网站开发者该如何试用 FLoC?

FLoC API 非常简单: 使用以下方法即可返回一个 promise,此 promise 解析到提供同类群组 id 和 version 的对象:

const { id, version } = await document.interestCohort();
console.log('FLoC ID:', id);
console.log('FLoC version:', version);

提供的同类群组数据如下所示:

{
  id: "14159",
  version: "chrome.1.0"
}

version 值让使用 FLoC 的网站可以知道同类群组 ID 所指的浏览器和 FLoC 模型。如下所述,document.interestCohort() 返回的 promise 将拒绝允许 interest-cohort 权限以外的任何框架。

FLoC API 可用于 Chrome 89 及更高版本,但您如果没有参加初始试用,则需要设置标记并通过命令行运行 Chrome。使用标记运行 Chromium 进一步介绍了如何针对不同的操作系统执行此操作。

  • 使用标记运行 Chromium

    http://www.chromium.org/developers/how-tos/run-chromium-with-flags

  1. 使用以下标记启动 Chrome:

    --enable-blink-features=InterestCohortAPI
    --enable-features="FederatedLearningOfCohorts:update_interval/10s/minimum_history_domain_size_required/1,FlocIdSortingLshBasedComputation,InterestCohortFeaturePolicy"
    
  2. 确保未阻止第三方 Cookie,并且没有运行任何广告拦截器。

  3. 在 floc.glitch.me 上查看演示。

  • floc.glitch.me

    https://floc.glitch.me/

????

如何参加 FLoC 初始试用说明了如何在第一方和第三方环境中试用 FLoC。

  • 如何参加 FLoC 初始试用

    https://developer.chrome.com/blog/floc

网站如何选择退出 FLoC 计算?

interest-cohort 权限政策使网站可以声明不希望被纳入用户的网站列表中进行同类群组计算。该政策默认为 allow。document.interestCohort() 返回的 promise 将拒绝允许的 interest-cohort 权限以外的任何框架。如果主框架没有 interest-cohort permission 权限,那么网页访问也不会被纳入兴趣同类群组计算。

例如,网站可以发送 HTTP 响应标头选择退出所有 FLoC 同类群组计算:

 Permissions-Policy: interest-cohort=()

我怎样提供建议或反馈?

如果您要提供对 API 的意见,请在 FLoC Explainer 库中提交反馈。

  • FLoC Explainer

    https://github.com/WICG/floc

  • 提交反馈

    https://github.com/WICG/floc/issues/new

更多资源

FLoC demo: https://floc.glitch.me

如何参加 FLoC 初始试用: https://developer.chrome.com/blog/floc

深入了解隐私沙盒 (Privacy Sandbox): https://web.dev/digging-into-the-privacy-sandbox/

FLoC Explainer: https://github.com/WICG/floc

评估 FLoC API 的同类群组算法: https://github.com/google/ads-privacy/blob/master/proposals/FLoC/README.md

推荐阅读

如页面未加载,请刷新重试

 点击屏末  | 访问 Web.dev 了解更多相关信息


相关推荐