Skip to main content

第 10 章 Web 数据(Web Data)

原文:Readings in Database Systems, Fifth Edition (2015),Chapter 10: Web Data,Introduced by Peter Bailis。原书文本采用 CC BY-NC-SA 4.0 许可;本译文按同一许可发布。

导读:Peter Bailis

选读论文

  • Sergey Brin and Larry Page. “The Anatomy of a Large-scale Hypertextual Web Search Engine.” WWW, 1998.
  • Eric A. Brewer. “Combining Systems and Databases: A Search Engine Retrospective.” Readings in Database Systems, Fourth Edition, 2005.
  • Michael J. Cafarella, Alon Halevy, Daisy Zhe Wang, Eugene Wu, Yang Zhang. “WebTables: Exploring the Power of Tables on the Web.” VLDB, 2008.

自从本读本上一版出版以来,万维网已经明确消除了任何关于其长期生命力和全球影响的残余疑问。包括 Google 和 Facebook 在内的若干拥有数十亿用户的服务,已经成为发达世界现代生活的核心;与此同时,互联网与 Web 相关技术已经渗透到商业互动和个人互动之中。毫无疑问,Web 将继续存在,至少在可预见的未来是如此。

Web 数据系统带来了一组新的挑战,包括极高规模、数据异质性,以及复杂且不断演化的用户交互模式。经典关系数据库系统设计并不是以 Web 工作负载为目标,也不是这个语境下的首选技术。相反,Web 数据管理需要一种混合技术,横跨信息检索、数据库内部机制、数据集成和分布式系统。本节收录三篇论文,它们突出了 Web 数据管理内在问题的技术解决方案。

前两篇论文描述搜索引擎和索引技术的内部机制。第一篇论文来自 Google 联合创始人 Larry Page 与 Sergey Brin,描述了早期 Google 原型的内部结构。这篇论文从历史角度和技术角度都很有趣。最早的 Web 索引(例如 Yahoo!)由人工策划的“目录”构成。虽然目录策划很有用,但目录很难扩展,并且需要大量人力维护。因此,包括 Google,以及由第二篇论文作者 Eric Brewer 共同创办的 Inktomi 在内的许多搜索引擎,都开始寻找自动化方法。这些引擎的设计在概念上很直接:一组爬虫下载 Web 数据副本,构建并维护只读索引;这些索引用于计算相关性评分函数。随后,查询由前端 Web 服务处理,该服务读取索引,并呈现一组按评分函数排序的结果。

这些引擎的实现和落地非常复杂。例如,评分算法经过高度调优,即使在今天的搜索引擎内部,其实现也被视为商业秘密:Web 作者有很强动机操纵评分函数,让结果对自己有利。Google 论文中描述的 PageRank 算法(详见 [126])是评分函数的著名例子,它根据超链接图来衡量每个页面的“影响力”。两篇论文都描述了实践中如何使用一组大多未明说的属性进行评分,包括“锚文本”(为链接来源提供上下文)以及其他形式的元数据。这些技术的算法基础,例如关键词索引,可以追溯到 20 世纪 50 年代 [107];另一些技术,例如 TFxIDF 排名和倒排索引,则可以追溯到 20 世纪 60 年代 [139]。构建互联网搜索引擎时,许多关键系统创新来自如何扩展它们,以及如何处理脏的、异质的数据来源。

虽然这些论文中的高层细节有助于理解现代搜索引擎如何运行,但它们关于构建生产级 Web 搜索引擎过程的评论也很有意思。两篇论文的一个核心信息是:Web 服务必须考虑多样性。Google 作者描述了典型信息检索技术中的假设在 Web 语境中可能不再成立(例如 “Bill Clinton sucks” 网页)。Web 来源以不同速率变化,因此需要优先级爬取来维护新鲜索引。Brewer 也强调了操作中的容错性和可用性,这呼应了他在构建 Inktomi 时的现场经验;那段经历还促成了 harvest 与 yield [31] 以及 CAP 定理等概念的发展,见第 7 章。Brewer 概述了使用通用数据库引擎构建搜索引擎的困难(例如,Informix 比 Inktomi 的定制方案慢 10 倍)。不过,他指出,数据库系统设计原则,包括“自顶向下”设计、数据独立性和声明式查询引擎,在这个语境中仍然有价值,只要经过适当调整。

今天,Web 搜索引擎已经被视为成熟技术。然而,竞争服务仍在不断通过增加额外功能来改进搜索体验。今天的搜索引擎远远不只是面向文本网页的信息检索引擎;前两篇论文的内容只是 Google 或 Baidu 这类服务内部机制的一小部分。这些服务提供一系列功能,包括定向广告、图像搜索、导航、购物和移动搜索。这些领域在检索、实体解析和索引技术上无疑存在交叉,但每个领域都需要特定领域的适配。

作为海量 Web 数据所支持的新型搜索例子,我们收录了 Google 的 Alon Halevy 领导的 WebTables 项目论文。WebTables 允许用户查询并理解存储在 HTML 表格中的数据之间的关系。由于缺少固定模式,HTML 表格在结构上天然多样。然而,在 Web 规模上聚合足够多的表格,并执行一些轻量级自动数据集成,可以支持一些有趣查询;例如,包含流感爆发地点的表格可以与包含城市人口数据的表格结合起来。挖掘这些表格的模式、判断其结构和真实性(例如,论文语料中的表格实际上只有 1% 是关系),以及高效推断它们之间的关系,都很困难。我们收录的这篇论文描述了构建属性相关统计数据库(AcsDB)的技术,用于回答关于表格元数据的查询,从而支持模式自动补全等新功能。WebTables 项目今天仍以多种形式延续,包括 Google Table Search,以及与 Google 核心搜索技术的集成;关于该项目的更新可见 [24]。生成结构化搜索结果的能力,在若干非传统领域中都很有吸引力,包括移动搜索、上下文搜索和基于音频的搜索。

WebTables 论文尤其突出了在大规模 Web 数据上工作的力量。在 2009 年的一篇文章中,Halevy 及其同事描述了“数据的不可思议有效性”,实际上是在论证:只要数据量足够大,就会捕获足够多的潜在结构,从而让建模变得更简单;相对简单的数据挖掘技术往往会胜过数学上更复杂的统计模型 [79]。这个论点强调了仅凭数据和计算的体量来释放隐藏结构的潜力,无论是挖掘模式相关性,还是执行语言之间的机器翻译。当草垛足够大时,针也会变大。即使只考察 Web 语料中 1% 的表格,VLDB 2009 论文也研究了 1.54 亿个不同关系;这个语料比此前考虑过的最大语料“大五个数量级”。

由于廉价通用存储和云计算资源的出现,在这些公司之外分析海量数据集和系统架构的门槛正在下降。然而,很难复制用户(例如垃圾信息制造者)与算法(例如搜索排名算法)之间的反馈循环。互联网公司在开创考虑这种反馈循环的系统设计方面处于独特位置。随着数据库技术驱动更多交互式领域,我们相信这种范式会变得更加重要。也就是说,数据库市场和有趣的数据库工作负载或许可以从类似分析中受益。例如,对 Amazon Redshift 和 Microsoft SQL Azure 等托管数据库平台执行类似分析会很有趣,它可以支持多种功能,包括索引自动调优、自适应查询优化、从非结构化数据中发现模式、查询自动补全,以及可视化推荐。