跨会话设备匹配背后的数学原理
在不断变化的信号中匹配设备的数学基础——AI 驱动的分析如何在信号漂移的情况下重新识别回访用户。
设备指纹识别面临一个根本性挑战:信号会变化。浏览器会更新,用户会修改设置,字体会被安装和卸载。严格比较会把每一个发生变化的信号都当作一台新设备,从而摧毁识别的准确性。我们的跨会话匹配系统通过 AI 驱动的技术解决了这个问题——它量化相似度,而不是要求完全相等。
问题所在:信号漂移
设想一台昨天被采集了指纹的设备,在浏览器更新之后于今天再次到访。user agent 字符串发生了变化。现在新支持了两个 CSS 特性。新增了一个 WebGL 扩展。canvas 渲染结果保持不变(同一块 GPU、同一套驱动)。音频指纹完全相同。除了新增的那个扩展之外,WebGL 参数也完全相同。
采用精确匹配时,这台设备将无法被识别——因为组合指纹已经改变了。但凭直觉我们知道这是同一台设备。硬件信号完全一致,而软件层面的变化与一次浏览器更新完全吻合。我们的跨会话匹配系统把这种直觉形式化了。
针对特征信号的基于集合的比较
许多浏览器信号天然可以表示为集合:所支持的 CSS 特性集合、可用的字体集合、WebGL 扩展集合。对于这些信号,我们使用基于集合的相似度指标来衡量重叠程度。对于两个集合 A 和 B,我们计算共享元素与元素总数的比值。
一台设备昨天有 45 个 CSS 特性、今天有 47 个(其中 44 个相同),其相似度分数很高。这足以表明这是同一台设备经过了一次浏览器更新。而一台完全不同的设备可能只共享 30 个 CSS 特性,相似度分数会低得多。“同一设备”与“不同设备”之间的阈值是从带标签的数据中学习得来的。
高效的候选生成
在大规模场景下,计算每一对设备之间的相似度代价高得令人望而却步。我们的候选生成系统采用先进的索引技术,以很高的概率将相似项映射到同一个查找桶中,从而让我们能够在常数时间内找到潜在匹配。
这种方法在候选生成阶段消除了 99.9% 的比较,即便面对数十亿设备画像,系统依然保持高效。
针对复杂信号的 AI 驱动分析
有些信号无法整齐地分解为集合。canvas 指纹、音频处理输出和 WebGL 参数向量都是复杂数据,简单的集合比较并不适用。对于这些信号,我们采用 AI 驱动的分析,将设备画像映射到一个表示空间中,使相似的设备彼此靠近。
AI 模型能够捕捉信号之间不那么显而易见的关系。例如,它会学到:WebGL renderer 字符串从某个 GPU 型号变为同一型号的小幅升级版本,代表的是同一台机器上的 GPU 升级;而变为一个完全不同的 GPU 厂商,则代表这是一台完全不同的设备。
组合这些技术
我们的生产系统以级联方式使用多种技术。第一步,高效的候选生成识别出潜在匹配。第二步,基于集合的比较为基于特征的信号提供精确的重叠度量。第三步,AI 驱动的分析为依赖硬件的信号打出相似度分数。最终的置信度分数是所有方法的加权组合,其权重在带标签的数据上调优得出。
这种级联架构兼具准确性与高效性。对于一位回访用户,总匹配耗时平均在 5ms 以内。