Pinterest 利用内容指纹技术,在数百万个域名中实现 URL 去重

2026-06-16 1 阅读 作者;Leela Kumili
Pinterest 工程师开发了 一套名为“最小重要查询参数集”(MIQPS)的 URL 标准化系统 ",旨在优化其大规模数据采集管道中的内容去重处理。该系统用于判断哪些 URL 查询参数会影响页面标识并且应该予以保留,哪些可以视为非必要参数并且可以安全地移除。其目标是在保持数据采集准确性的同时,减少数百万个域名中重复内容的处理工作。 该系统部署于 Pinterest 的内容采集基础设施中,负责处理来自各类商家和发布商网站的 URL。其中许多 URL 指向同一底层页面,但因为包含不同的跟踪参数、活动标识符、会话令牌及其他查询字符串变量而存在差异。尽管下游系统最终能够检测到重复内容,但每个 URL 变体仍然会产生独立的抓取、渲染和索引成本,这在规模比较大时会增加基础设施的开销。 多个带有不同查询参数的 URL 均指向同一底层产品(图片来源: Pinterest 博客 ") 在 LinkedIn 上的一篇 博文 "中,Pinterest 软件工程师 Shanhai Liao " 着重说明了该问题的严重性: 这个问题看上去微不足道,但当你像 Pinterest 这样运营在数百万个商家域名上时,它们的 URL 规范千差万别,问题就会变得十分棘手。静态白名单只适用于主流平台,对于长尾场景,我们需要更智能的解决方案。 为解决这一问题,MIQPS 取代了传统的基于规则的 URL 规范化方法。传统方法依赖于人工维护的白名单、黑名单或特定于域的启发式规则。对于 URL 结构不一致的异构长尾域名,这些方法难以实现规模化应用。相反,MIQPS 采用数据驱动的方法,通过评估移除查询参数是否会改变页面渲染内容来判断。如果内容变化超过预设阈值,该参数将被归类为重要参数并予以保留;否则便视为噪声并在规范化过程中将其移除。 该系统的运作原理是:首先从 Pinterest 的数据采集管道中收集大量的 URL,并根据查询参数的模式对其进行分组。随后,该系统渲染页面并生成内容指纹,比较移除单个参数所产生的影响。这使得该系统能够基于观察到的内容行为来推断参数的重要性,而非依赖预定义的规则或规范标签等元数据。Pinterest 指出,规范标签往往缺失、不一致,或混入了跟踪参数,因此无法作为大规模去重工作的可靠依据。 端到端系统架构 (图片来源: Pinterest 博客 ") MIQPS 使用一组可调参数来控制不匹配阈值和最小样本量。为了提高效率,它采用了早期退出逻辑:经过有限次测试后,如果不匹配率超过阈值,便停止评估,从而避免不必要的页面渲染。此外,当数据不足时,它会采用保守的默认设置,将参数视为非中立参数。输出结果是一个参数重要性映射,存储在配置服务中,可以在运行时与静态规则一同应用。MIQPS 通过异常检测机制进行保护,它会拒绝导致重要参数降级的更新,同时可以安全地向非中立参数集添加新参数。 该架构将离线分析与运行时处理分离。耗时的内容渲染和参数评估在离线环境中进行,而运行时系统在处理 URL 时应用预先计算好的规则。Pinterest 指出,通常来说,URL 结构演变缓慢,因此,对于大规模数据摄取系统而言,离线计算是在数据时效性、成本和运维复杂性之间的一种务实的权衡。 原文链接: https://www.infoq.com/news/2026/06/pinterest-miqps-url-dedup/ "