Google工程师在2008年VLDB大会上关于Deep Web的演讲稿
From:Google工程师Jayant Madhavan在2008年VLDB大会上的发言。
Deep Web指的是隐藏在HTML表单之后的信息内容,举例来说,对于一个网上卖书的网页来说,用户必须反复的尝试不同的值去提交表单,网站返回给用户的是一个列表展示的各种书的页面,这些内容其实都是属于Deep Web的内容。
Deep Web产生的原因是这种通过表单提交的方式已经超过了搜索引擎的范围:
1、 很少有其他网页的超文本链接指向的网页表单提交;
2、 当前的网页抓取程序是没有能力自动提交表单的。
因为这些网页未进入搜索引擎的索引,不能把它们展示给给搜索引擎用户,所以我们把这部分隐藏的信息叫做Deep Web。
为什么要在VLDB(Very Large Data Base)上做这个报告呢?
我们认为在Deep Web的背后有一个非常大的结构化的数据源,没一个表单之后都是由背后的数据库做支撑的。而事实上,在早期的一些文档中,我们可以知道www存在超过1000万不重复的表单,很显然,这样会带来更多的数据。我们所面临的挑战就是如何把这些隐藏在表单之后的网页尽可能方便的展示给用户。
Deep Web会处理很多的表单,包括位置信息,二手车,专利,食谱等,但是不会包括登陆表单,或者航班预定等信息,而且不能处理多步骤表单的处理。
当我还是一个毕业生参加早些时候VLDB会议,也有一些文章是讲Deep Web的。大部分的解决方案似乎是一个数据集成一体化的方案。有一种虚拟一体化的办法,为每一个域名(网站)建立一个虚拟的表单,收集每个域名的数据源,然后构建语义类型的从数据源到虚拟表单的映射关系,这种模式也是当前非常流行的设计垂直搜索引擎(特定领域的搜索引擎)的设计方案。不过这并不是一个能够很好的推广的方案。首先,有太多的网站域名(重复和很难界定是否重复),建设和建模这样一个系统是非常困难的。其次有运行时间的问题,如查询路由的选择问题(确定用户关键字和哪个数据源最相关),如果路由选择做的不够好,可能会导致Deep Web数据源的负载非常高。
相反,我们平常使用的称之为Surfacing(表面)。我们预先计算所有有趣的需要提交的HTML表单,每种形式的提交对应一个独特的URL地址,然后把这些网址添加到搜索引擎索引,同其他任何网页一样索引。这样对于Surfacing来说,有两个显着的优势。首先,Dee Web的网址可以被当作另一个URL ,对现有的搜索引擎的是一种很好的补充。其次,当用户认为Deep Web的结果和关键词非常相关(基于搜索片段),用户会点击搜索结果,然后执行的一种表单形式的提交,大大减少负载Deep Web网页源。
然而,这种形式也对搜索引擎提出了新的挑战:
1、 如何适当的预测文本表单的输入值?如:在recipes.com需要输入正确的原料名称, borderstores.com需要输入正确的ZIP编码。
2、 预测正确的输入的组合。一个表单可能同时存在多个输入框,假如只能一个简单的预测方案,创造一切可能的预测结果会非常浪费并且耗费资源。例如cars.com,仅仅只有50万个列表页面,但是会产生的2.5亿左右的可能性查询。
我们的目标是尽可能覆盖更多的Deep Web的内容,也就是要影响尽可能多的搜索引擎的用户查询关键词。当前我们已经知道有超过1千万的表单需要覆盖,此外,由于表单产生的分布具有“重尾”的特性,每周能够新产生80万唯一的表单,同时Deep Web总体的覆盖度比特定网站的覆盖度更重要。我们不能把眼光聚集到1000个网站,而应该更加高效率的解决百万级别的表单的提交,我们需要面对很多各种各样的网站和各种语言的网站,并且不能人工的执行循环或者有一些特定的脚本去做这些事情。
—–未完待续——



最新评论