文档库 最新最全的文档下载
当前位置:文档库 › 一种基于图模型的Web数据库采样方法_刘伟

一种基于图模型的Web数据库采样方法_刘伟

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.wendangku.net/doc/1313498040.html,

Journal of Software, Vol.19, No.2, February 2008, pp.179?193 https://www.wendangku.net/doc/1313498040.html, DOI: 10.3724/SP.J.1001.2008.00179 Tel/Fax: +86-10-62562563

? 2008 by Journal of Software. All rights reserved.

?

一种基于图模型的Web数据库采样方法

刘伟, 孟小峰+, 凌妍妍

(中国人民大学信息学院,北京 100872)

A Graph-Based Approach for Web Database Sampling

LIU Wei, MENG Xiao-Feng+, LING Yan-Yan

(School of Information, Renmin University of China, Beijing 100872, China)

+ Corresponding author: Phn: +86-10-62519453, E-mail: xfmeng@https://www.wendangku.net/doc/1313498040.html,, https://www.wendangku.net/doc/1313498040.html,/xfmeng/

Liu W, Meng XF, Ling YY. A graph-based approach for Web database sampling. Journal of Software, 2008,

19(2):179?193. https://www.wendangku.net/doc/1313498040.html,/1000-9825/19/179.htm

Abstract: A flood of information is hidden behind the Web-based query interfaces with specific query capabilities,

which makes it difficult to capture the characteristics of the Web database, such as the topic and the frequency of

updates. This poses a great challenge for Deep Web data integration. To address this problem, a graph-based

approach WDB-Sampler for Web database sampling is proposed in this paper, which can incrementally obtain

sample records from a Web database through its query interface. That is, a number of samples are obtained for the

current query, and one of them is transformed into the next query. The important characteristic of this approach is it

can adapt to different kinds of attributes on the query interfaces. The extensive experiments on the local simulation

Web databases and the real Web databases prove that the approach can achieve high-quality samples from a Web

database at a lower cost.

Key words: deep Web; Web database; database sampling

摘要: Web数据库中,海量的信息隐藏在具有特定查询能力的查询接口后面,使人无法了解一个Web数据库内

容的特征,比如主题的分布、更新的频率等,这就为Deep Web数据集成带来了巨大的挑战.为了解决这个问题,提出

了一种基于图模型的Web数据库采样方法,可以通过查询接口从Web数据库中以增量的方式获取近似随机的样本,

即每次查询获取一定数量的样本记录,并且利用已经保存在本地的样本记录生成下一次的查询.该方法的一个重要

特点是不受查询接口中属性表现形式的局限,因此是一种一般的Web数据库采样方法.在本地的模拟实验和真实

Web数据库上的大量实验表明,该方法可以在较小代价下获得高质量的样本.

Web;Web数据库;数据库采样

关键词: deep

中图法分类号: TP311文献标识码: A

? Supported by the National Natural Science Foundation of China under Grant No.60573091 (国家自然科学基金); the National

High-Tech Research and Development Plan of China under Grant No.2007AA01Z155 (国家高技术研究发展计划(863)); the Beijing

Natural Science Foundation of China under Grant No.4073035 (北京市自然科学基金); the Program for New Century Excellent Talents

in University of China (新世纪优秀人才支持计划)

Received 2007-09-03; Accepted 2007-10-19

180

Journal of Software 软件学报 V ol.19, No.2, February 2008 Web 的迅速发展使其成为一个巨大的信息源.按照信息蕴含的深度,整个Web 可分为Surface Web 和Deep Web 两大部分.Surface Web 是指Web 中能够被传统搜索引擎(如google,yahoo 等)索引到的内容,而Deep Web 则是指不能被传统搜索引擎索引到的内容,这些内容主要存储在Web 中大量可在线访问的Web 数据库中.根据文献[1]在2004年的调查,目前整个Web 中至少有450 000个可访问的Web 数据库,并且数量仍在迅速增长,其中存储的信息覆盖了现实世界的各个领域,如商业、医学、体育等.Deep Web 中的信息量是Surface Web 的550倍之多[2],这使得Deep Web 成为人们获取信息的一个重要途径.用户对Web 数据库的访问主要是通过其在Web 页面中提供的具有特定查询能力的接口来获取所需要的结果.比如,购书网站当当(https://www.wendangku.net/doc/1313498040.html,/)就是一个典型的商业Web 数据库,图1(a)所示为该网站提供的图书查询接口.如果用户想要购买数据库方面的图书,只需在属性“书名”上填写关键词“数据库”并提交,当当网就会动态生成包含符合该查询条件的查询结果的网页(如图1(b)所示)返回给用户.

(a) Query interface page

(a) 查询接口页面 (b) Query result page (b) 查询结果页面 Fig.1 Examples of Web database

图1 Web 数据库示例

由于对Web 数据库特有的访问方式,使得传统的搜索引擎无法有效地索引到其中的内容.为了帮助用户能够有效地利用Deep Web 中的海量信息,研究者们展开了对Deep Web 数据集成的研究,即建立一个Deep Web 数据集成系统.该系统可以为用户提供一个集成查询接口,并把各个Web 数据库返回的结果合并到一个统一的模式下.至今,在该研究领域已经取得了若干成果,比如查询接口集成[3,4]、Web 数据库的分类[5,6]、Web 数据的抽取[7,8]等.

由于Deep Web 的规模巨大,使得Deep Web 数据集成系统[9]中会集成上百甚至上千个Web 数据库,极地地超过了传统数据集成系统中数据源的数量.然而,由于对Web 数据库的访问只能通过其提供的具有特定查询能力的查询接口,给我们对Web 数据库的了解带来了困难.这就需要对Web 数据库进行采样,通过这个样本,我们可以了解该Web 数据库的主题分布、更新频率以及大小等有用的特征.举个例子,在Deep Web 数据集成系统中,对于一个给定的用户查询,事实上:(1) 有些Web 数据库并不满足该查询,无须对其查询;(2) 有些Web 数据库之间存在着较大的冗余,只选择其中1个或几个查询.如果用户查询被集成系统不加选择地直接分发到每个Web 数据库中,则不但查询代价高,而且会返回大量冗余的结果,造成系统不必要的负担和用户等待时间过长.因此,要为一个给定的查询选择合适的Web 数据库.一个可行的解决方案是:从每个Web 数据库中获得一份样本并保存在本地,对用户的查询首先用样本代替对应的Web 数据库进行考察,从而选择出合适的Web 数据库进行真正的查询.

数据库采样是一个从数据库中随机选取记录的过程,可以获得数据库的有用的统计信息.对于不受限制的访问方式,过去已经提出了许多方法可以有效地从数据库中随机地采样[10?13].然而,由于对Web 数据库的访问只能通过其提供的具有约束的查询接口,无法自由地从Web 数据库中获取记录,因而传统的方法不利于实现对

刘伟等:一种基于图模型的Web数据库采样方法181

Web数据库的采样,给我们带来了巨大的挑战.

HIDDEN-DB-SAMPLER[14]是目前唯一的一项针对Web数据库采样而提出的工作,它存在一个明显的局限性就是只能处理数字和分类属性,即属性的取值是可数的或有限的(对范围属性的处理是把取值范围划分为若干小的离散的范围,比如年龄属性可划分为0~10,11~20,…,91~100).而对于可以任意取值的关键词属性并没有给出相应的处理办法,比如图书领域中的书名、作者、出版社等属性.事实上,很多领域存在着大量的关键词属性,而且其中一些关键词属性通常被查询接口的设计者规定为必填的,比如图书领域的书名和工作领域的职位.表1列出了一些常见领域中存在的可任意取值的属性.当查询接口中存在这样的属性时,文献[14]所提出的方法则根本不能实现对该Web数据库的采样.

Table 1Examples for the attributes with random values

表1可任意取值的属性举例

Domain Attributes

Author,

Publisher

Book Title,

Actors

Directors,

Movie Title,

Company

Job Position,

本文提出了一种一般的Web数据库采样方法,不受查询接口中属性表达形式的任何限制:即使查询接口中存在可任意取值的必填属性,我们的方法也同样能够实现对Web数据库的近似随机采样.由于Web数据库的特殊性,只能通过其所提供的查询接口获取记录,因此受查询接口的查询能力的限制,无法从Web数据库中自由地获取记录,这使得传统的随机采样方法无法应用.基于这种考虑,我们提出一种增量式的Web数据库采样方法WDB-Sampler,其基本思想主要分为4步(如图2所示):第1步,从一个任意的有效查询(有返回结果)开始查询;第2步,从返回的查询结果页面中抽取记录;第3步,将这些记录放入本地样本库;第4步,从样本库中选取一个记录,将它转化为对Web数据库的下一次查询,转第2步.第2步的实现是属于从Web页面中抽取结构化数据的问题,至今已有许多工作[7,8],我们利用这些工作,因此对这一部分就不再加以介绍. Array Web database

Fig.2 WDB-Sampler: Web database sampling process

图2 WDB-Sampler:Web数据库采样流程

对Web数据库的采样主要需要面对两个挑战:一是所得样本的偏差,即使样本的数据分布与Web数据库保持一致;二是获取样本的代价,即以尽可能少的查询次数来获得这些样本.针对这两个挑战,WDB-Sampler在理论上需要考虑的问题有如下3个:样本的选取,即每次的查询结果中选取哪些记录作为样本;查询的选择,即每次的查询结果中选取哪一个记录作为下一次查询;采样的终止,即采样过程的终止条件是什么.

上面3个问题的解决将直接影响样本的客观性和获取样本的效率.为了有效地解决这些问题,我们提出以

182 Journal of Software软件学报 V ol.19, No.2, February 2008

图游历的方式指导对图2所示的Web数据库的采样过程.这里的“游历”与通常所说的“遍历”是有区别的,即每次只访问1个顶点的部分邻接顶点.我们后面还会对所提出的图模型以及图游历的过程作更正式、更详细的定义和描述.

总之,本文主要是在理论层面上给出这些问题的解决方案.本文的贡献主要总结为如下3个方面:

? 提出了一种一般的Web数据库采样方法WDB-Sampler.该方法采取增量采样的方式,不受查询接口中对属性表现形式的影响.

? 提出一种新的Web数据库的图模型,并通过图游历的方式实现对Web数据库增量式的采样.

? 通过在本地模拟Web数据库和真实Web数据库上广泛的实验,其实验结果表明,我们提出的Web数据库采样方法可以同时保证样本的质量和采样的效率.

1 预备知识

1.1 相关符号定义

在现实中,Web数据库大都是用当前流行的关系数据库实现的,比如Oracle,My SQL等.因此在本文中,我们把Web数据库看作一个关系模式的数据表.为使描述下为简洁,我们首先对本文用到的Web数据库相关的概念进行符号化定义,见表2.

Table 2Symbols and their remarks

表2相关符号及其注释

Symbol Remarks Symbol Remarks

database A(R) Attribute set of R

WDB Web

I The query interface of WDB A(IR) A(I)∩A(R)

R The records in WDB A(Q)The attribute set of Q

A Attribute set, denoted to be {a1,a2,…} R(Q) The records of WD

B satisfying query Q

Q An available query on I S A sample set of WDB, S∈WDB A(WDB) The attribute set of WDB R S(Q) The records of S satisfying query Q

A(I)The attribute set of I Cost(S) The cost of obtaining S from WDB 需要指出的是,在现实中,并非查询接口中的所有属性都出现在查询结果的记录中,即A(I)≠A(R).一般情况下,我们认为A(WDB)=A(I)∪A(R),因为既不在查询接口中也不在查询结果记录中出现的属性对于Web数据库的使用者来讲是没有任何意义的.如果不加特殊说明,A(Q)则是指在查询接口和查询结果的记录中都出现的属性,即A(Q)=A(I)∩A(R),因为我们无法对只在查询接口中出现的属性获取它在Web数据库中的取值.

1.2 属性分类及查询表达

根据我们的观察,查询接口中不同的属性有着不同的表达形式,对查询结果的影响也并不相同.按照填写方式以及对查询结果的影响,通常可以把这些属性分为关键词属性、范围属性和分类属性3类.

? 关键词属性:用户可以在该属性上随意填写的文本,表示为a q like v q,其中v q为由1个或多个关键词组成的文本.

? 范围属性:用户可以在该属性上自由填写两个值(比如数字或日期),表示一个范围,表示为v q1

? 分类属性:用户可以从该属性上有限个互斥的值中选取1个或多个,表示为a q=v q,其中v q是分类属性中的一个值.

图3是我们从真实的图书领域的WDB查询接口中获得的3类属性的典型示例.需要注意的是,一个属性的语义并不能决定它属于哪种类型,同一语义的属性在不同WDB的查询接口经常会表示成不同的类型,这是由WDB的设计者决定的.比如,图3(b)中的第1个属性看起来似乎是一个范围属性,但用户并不能自由填写范围,只能从有限的几个选择中选取,因此它是一个分类属性.图3(c)中的第1个属性与图3(b)中的第1个属性尽管都表示价格,但它却是典型的范围类型.因此,我们的方法是与属性的语义无关的,所关心的只是它在查询接口上

刘伟等:一种基于图模型的Web数据库采样方法183 的表现形式.

(a) Key-Word attributes

(a) Key-Word属性

(b) Category attributes

(e) Category属性

(c) Range attributes

(c) Range属性

Fig.3 Examples of attribute category

图3 属性分类示例

通过对大量真实查询接口的观察,我们给出一个合理的假设:在查询接口中,(1) 属性之间是“与”关系,即返回的查询结果必须同时满足用户在查询接口中给出的所有属性值的约束;(2) 在关键词属性上,关键词之间是“与”关系.根据我们对大量实际WDB,特别是对电子商务WDB的观察,比如大家熟悉的国内的当当、淘宝,以及国外的亚马逊等,该假设是符合现实情况的.其原因很简单:WDB更加注重返回结果的质量,而不是使用户淹没在大量无关的结果中.

基于上述的符号表达,对WDB的每一次查询Q,可以用SQL的语法描述如下:

SELECT a r1,a r2,…,a rn

FROM WDB

WHERE … and ?a q1 like v qi?,…, and ?v qj

其中,a ri(1

如果一个记录R满足给定一个查询Q,由于WDB返回的结果集中所有记录必然会满足它,因此,对于?a i∈S(Q),对它在查询结果中的值v rj,则满足下面3种情况:

? 如果是a i关键词属性,则v rj∩v i≠?;

? 如果是a i范围属性,则v j1

? 如果是a i分类属性,则v rj=v i.

1.3 样本偏差评价方法

由于只能通过具有特定查询能力的查询接口来获取WDB中的记录,因此在理论上是无法保证S真正的客观性的.直觉上,如果S具有真正的随机性,则对于任何一个查询Q i,必然满足下面的关系:

|()|||

|()|||

i

S i

R Q WDB

R Q S

≈.

为了能够客观地评价S的质量,我们需要一组随机的查询RandomQ{Q1,Q2,…,Q n},分别在WDB和S中进行查询,通过比较同一查询下各自查询结果的数量,得到对样本偏差的一个评价,我们给出形式化的公式:

()

Quality S=

S为空无意义,因此,|S|>0;另外,如果R S(Q i)为空,则为其赋一个足够小的值来代替.

184

Journal of Software 软件学报 V ol.19, No.2, February 2008 通过公式(1)我们可以看出,对于一个WDB 的样本集合S ,Quality (S )越趋近于0,表示该样本记录集合的偏差越小;反之,Quality (S )越大,表示样本记录集合偏差越大,客观性越低.

不可否认的是,通过公式(1)对S 的评价结果与RandomQ 有直接的关系.极端情况下,如果对于每个查询Q i , WDB 只返回一个记录,那么样本记录集合将返回0个或1个记录,这会使偶然性增大.因此,在实验部分我们将介绍如何产生随机的查询.

1.4 采样代价

除了保证样本集合S 的质量以外,另一个关键问题是采样的代价Cost (S ).在本文中,我们简单地把它定义为获得S 通过查询接口向WDB 提交查询的次数.这是因为一般情况下,本地的执行时间远小于Web 中的网络数据传输时间,由于WDB 的自主性,无法用一个常量来表示每次查询的执行时间,所以我们以向WDB 提交查询的次数来代替.文献[14,15]也都采用相同的代价估算方法.

需要注意的是,在现实中,WDB 经常因返回查询结果的记录数量较多而分多次提供给用户,即在结果页面中每次只返回k 个记录,如果用户想得到后续的记录,则必须通过翻页得到,这就相当于发送一次查询请求.比如,从Amazon 查询有关“Java”的图书,共得到46 979个记录,每次只返回用户12个记录,用户如果要看到更多的结果,就要通过不断地翻页来实现,而每次翻页就相当于向Amazon 发送了一次查询请求.

实际上,样本质量和采样代价是矛盾的:如果为了提高样本质量,必然要提交更多的查询来获得更多的记录,就会使采样代价提高.正如前面已经提到过的,针对这个矛盾,本文的目的是如何以尽可能小的代价来获得尽可能高质量的样本.

2 一种Web 数据库图模型

本节我们提出一种新的Web 数据库图模型,通过该模型我们以图游历方式达到对Web 数据库采样的目的.我们首先提出若干相关定义、性质和定理,然后对这种Web 数据库图模型进行深入讨论.

定义1(强查询). 对于两个查询Q 1和Q 2,如果A (Q 1)?A (Q 2),且对于?a i ∈A (Q 2)满足下面3个条件,那么,我们称Q 1是Q 2的一个强查询:

? 如果是a i 关键词属性,则Q 1在a i 上的值是Q 2在a i 上值的超集;

? 如果是a i 范围属性,则Q 1在a i 上的取值范围是Q 2在a i 上的子范围;

? 如果是a i 分类属性,则Q 1在a i 上的值等于Q 2在a i 上的值.

例:表3给出3个关于图书的查询示例,其中涉及了文本(书名)、数字(价格)和分类(类别)3类属性.Q 1分别是Q 2和Q 3的强查询.

Table 3 Examples of strong query

表3 强查询示例

Title Price Category

Q 1 Thinking in Java ?30,40?

Computer Q 2 Thinking in Java Null Null

Q 3 Java ?20,50?

Computer 根据定义1,我们可以得到下面两个性质:

性质1(包含性). 如果Q 1是Q 2的强查询,那么R (Q 1)?R (Q 2).

证明:?记录1i Q R R ∈,对于属性a j ∈A (R i )∩A (Q 2)的值v j 分别作如下考虑:

? 如果a j 是关键词属性,则由于v j 是Q 1在a i 上的值的超集,而Q 1在a i 上的值是Q 2在a i 上值的超集,所以v j 与Q 2在a i 上的值的交集不为空;

? 如果a j 是范围属性,则v j 必然在Q 1在a i 上的取值范围内,而Q 1在a i 上的取值范围是Q 2在a i 上的子范围,v j 在Q 2在a i 上的取值范围内;

? 如果a j 是分类属性,则v j 等于Q 1在a i 上的值,而Q 1在a i 上的值等于Q 2在a i 上的值,所以v j 等于Q 1在

刘伟等:一种基于图模型的Web数据库采样方法185

a i上的值.

从以上3个方面可以得出,R i必然满足Q2,即R(Q1)?R(Q2). □性质2(传递性). 如果Q1是Q2的强查询,而Q2是Q3的强查询,那么Q1必然是Q3的强查询.

证明:根据定义1,A(Q1)?A(Q2)?A(Q3).对于属性a j∈S(Q1)分别作如下考虑:

? 如果a j是关键词属性,Q1在a i上的值是Q2在a i上值的超集,而Q2在a i上的值是Q3在a i上值的子集,则Q1在a i上的值是Q3在a i上值的超集;

? 如果a j是范围属性,Q1在a i上的取值范围是Q2在a i上的子范围,而Q2在a i上的取值范围是Q3在a i 上的子范围,则Q1在a i上的取值范围是Q3在a i上的子范围;

? 如果a j是分类属性,Q1在a i上的值等于Q2在a i上的值,而Q2在a i上的值等于Q3在a i上的值,则Q1在

a i上的值等于Q3在a i上的值.

从以上3个方面可以得出,Q1必然是Q3的强查询. □定义2(弱查询). 如果Q1是Q2的一个强查询,那么Q2是Q1的一个弱查询.

根据定义2,我们同样可以得到与上面两个性质类似的性质,这里不再赘述和证明.

定义3(查询相关记录). 给定一个记录集合{R1,R2,…,R n},如果通过提交某一个查询Q,使得它们可以同时出现在同一个查询结果中,则称它们彼此是关于查询Q相关的;反之,则称它们是非查询相关的.

例:设一个WDB的查询接口可以根据图书的名称、作者和类别3个属性进行查询.表4给出了3个记录,其中,R1和R2可以通过作者属性同时查询出来,而R3则不能通过任何查询与R1或R2同时出现在同一查询结果集中,因此,我们说R1和R2是查询相关的,而R3与R1或R2是查询不相关的.通过这个例子也可以看出,两个记录是否查询相关,与查询接口的表达能力是密切相关的,如果查询接口中有出版社的属性,而R3与R1又恰好是同一出版社出版的,那么它们就是查询相关的了.

Table 4Examples of query-related records

表4查询相关记录示例

Title Author

Catrgory

1

R2Thinking in C++ Bruce Eckel Computer

potter J.K. Rowing Novel

R3 Harry

定理1. 给定一个查询相关的记录集合R{R1,R2,…,R n},设Q{Q1,Q2,…,Q m}为R所有相关查询的集合.如果Q 非空,那么必然存在一个查询Q i(1≤i≤m)是这个集合中其他任意一个查询Q j(1≤j≤m,j≠i)的强查询.我们把Q i称作记录集合R的最强查询.

证明:证明分为两步:首先构造一个特定的查询Q i(1≤i≤m),然后证明该查询为Q中的其他任意一个查询Q j(1≤j≤m,j≠i)的强查询.

第1步,构造查询Q i:需要确定Q i中有哪些属性以及每个属性上的取值.

对于?a k∈A(IR),考虑如下:

? 如果a k是关键词属性,并且其中各个记录在a k上的取值有非空的交集,则Q i包含a k,并且在a k上的取值为各个记录在a k上的取值的交集;如果交集为空,则Q i不包含a k.

? 如果a k是范围属性,则Q i包含a k,并且Q i在a k上的取值范围介于R中记录在a k上取值的最大值和最小值之间.

? 如果a k是分类属性,如果R中各个记录在a k上的取值相同,则Q i包含a k,并且Q1在a k上也取该值;否则,Q i 不包含a k.

第2步,证明Q i(1≤i≤m)是这个集合中其他任意一个查询Q j(1≤j≤m,j≠i)的强查询.

对于?a k∈A(Q j)作如下考虑:

? 如果a k是关键词属性,则Q j在a k上的所有关键词必然出现在R中每一个记录在a k上的值中,所以也必然出现在Q i在a k上的关键词集合中;

186 Journal of Software软件学报 V ol.19, No.2, February 2008

? 如果a k是范围属性,则R中每一个记录在a k上的值必然在Q j于a k上的取值范围内,所以,Q i在a k上的取值范围是Q j在a k上的子范围;

? 如果a k是分类属性,则R中每一个记录在a k上的值必然等于Q j在a k上的取值,所以,Q i在a k上的取值等于Q j在a k上的取值.

因此,根据定义1,Q i是Q j的强查询.进而定理得证. □定义4(Web数据库图模型(Web database graph,简称WG). 对于一个给定的WDB,它的图模型表示为WG(V,E).其中,V是顶点的集合,每个顶点v i都与WDB的记录R i一一对应,即|V|=|WDB|.E是无向边的集合,如果两个记录是查询相关的,那么,它们对应的顶点之间存在一条相连的边.对于每一个顶点,附加对应记录的最强查询;对于每一条边,附加的查询为该边所连接的两个顶点对应记录的最强查询.

在该图模型中,每个顶点和每条边都附加了一个唯一的查询,查询的生成方法在定理1中已经给出.对于每个顶点,相当于记录集合R中只有顶点对应的那个记录;对于每条边,相当于记录集合R中只有该边所连接的两个顶点对应的记录.

需要指出的是,WG是与WDB所提供的查询接口的查询能力密切相关的,因为前面我们已经指出,本文中涉及的查询都是查询接口中可表达的.因此,两个记录在WG中是否存在一条边,取决于是否存在一个查询接口可表达的查询使得这两个记录同时满足该查询.进一步来说,顶点和边上附加的查询也同样由查询接口的表达能力所决定.因此,对于两个具有相同内容的WDB,如果它们的查询接口在查询能力上不同,那么所产生的WG也是不同的.实际上,已经有一些工作通过把一个数据库转化成图的形式去解决特定的问题,我们将在相关工作中进行简要的介绍.

3 基于WG的Web数据库采样方法

利用图模型WG可以把任意一个WDB在记录层次上转化为图的表示.我们可以从图中揭示出记录之间在查询上的关联关系.前面我们已经简要介绍了对WDB增量式的采样方法(如图2所示),并给出了需要解决的3个问题:样本的选取、查询的选择和终止条件.这一节,我们将详细讨论如何在WG中采用图游历的思想来实现对WDB增量式的采样.

由于我们无法越过查询接口直接得到WDB中的所有记录,因此也无法为一个给定的WDB建立真正的WG.实际上,我们也并非有意为要采样的WDB建立一个完整的WG,而是从当前WG中一个随机的点开始进行游历,实现对WDB的采样.基于WG,采样过程的基本思想重新描述如下:

? 第1步,从任意一个查询Q0开始,并提交给WDB;

? 第2步,把查询结果中的记录保存在本地中R L,对当前已经保存下来的记录R L建立WG L;

? 第3步,判断是否达到终止条件:如果是,则终止,否则进入下一步;

? 第4步,通过对当前WG L的分析,从R L中选取一个合适的记录形成下一次的查询,转第1步.

在第1步中,我们使用任意的查询Q0作为采样的开始,虽然Q0是通过人工产生,不可避免地带有主观性,但人工选择时只要保证Q0的查询结果足够多,比如大于100,就保证了Q0是WG中度较大的一个点,从而可以避免不同初始查询带来的采样差异.

在第2步中,随着R L中保存记录数量的不断增多,WG L也在不断地扩大(加入新的顶点和边),因此,我们对WG L采取增量式的维护方式,即把每次查询返回的记录添加到当前的WG L中,而不是每次对当前的R L重新构建WG L.显然,WG L是WG的一个子图.对WG L的扩展,根据定义4很容易实现,这里就不再过多地介绍.

采样过程中最关键的步骤是第3步和第4步,共包括3个问题(在本文开始部分提到的3个问题):

(1) 如何根据WG L从当前的样本记录集合中选取一个合适的记录?

(2) 被选中的记录应该生成什么样的查询?

(3) 这个采样过程在什么情况下结束?

下面,我们首先根据基本思想形式化地给出WDB-Sampler的算法描述,然后针对上面的问题提出解决

刘伟 等:一种基于图模型的Web 数据库采样方法

187 策略.

3.1 WDB-Sampler 算法 WDB-Sampler 算法是对采样过程形式化的描述(如图4所示),其思想前面已经给出,这里不再重复.其中有一点需要说明的是:对每次的查询结果,我们只获取第1页中的记录.这是因为我们基于如下两点考虑:第一,前面已经提到,要获取此次查询结果中更多的记录需要不断翻页,而翻页操作实际上相当于一次查询;第二,所有查询结果都是满足此次查询的,因此根据公式(1),会导致偏差急剧增大.

Algorithm WDB-Sampler

Input R 0: A record in WDB . Output s

S {R 0,R 1,…,R n }: A set of records, which are sample from WDB . Begin e

te L

initialize WG L ; // the initial WG L is empty initialize R L ; // the initial R L is empty, and it is us d to store the records obtained with each query add R 0 to R L ; WG L =buildGraph (R 0); //build WG L with only one node R 0 while StopCriteria is not reached do

v c =recordSelector (WG L ); //select an appropria node (record) v c from WG L to generate the next query

Q c =queryGenerator (v c ); //generate the query Q c with the selected record v c R c =queryWDB (Q c ); //query WDB with Q c and then obtain the top-k records from the first result page

Add R c to R L ; //input R c into R and remove the duplicated records

WG L =graphExpanding (WG L ); //expand WG according to the fresh records

end S =amendDeviation (R L );

return S ; End Fig.4 WDB-Sampler: Web database sampling algorithm

图4 WDB-Sampler:Web 数据库采样算法

算法中recordSelector,queryGenerator 和StopCriteria 分别对应着本节开始所提出的3个问题,它们也是该算法的关键.本节的剩余部分将对它们逐一进行讨论.

3.2 记录的选择(recordSelector )

为了产生下一次的查询,我们需要从当前保存在本地的记录集合中选取一个合适的记录作为查询,这就是recordSelector 所要完成的功能.我们选择记录的目的是为了能让其产生的查询得到更多新的记录.从WG 的角度来看,就是从当前WG L 中选取一个顶点v ,使得通过v 可以找到更多的不在WG L 中的顶点.因此,我们的选择方案是:把WG L 中的顶点按照它们的度从低到高排序,选取度最小的顶点.WG L 中顶点的度小,这有两种可能:在WG 中有很多与其邻接的顶点(新的记录)还没有访问到,或者该顶点在WG 中的度也小.因此,如果该顶点生成的查询获得记录数量小于k ,则丢弃该顶点并重新选择剩余顶点中度最小的.

3.3 查询的生成(queryGenerator )

当选定WG L 中的一个顶点后,即从中选定了一个记录R c ,下一步就是queryGenerator 如何利用这个记录生成下一次的查询.显然,一个记录可以生成若干可能的查询.为了得到更多新的记录,对于每一个a i ∈A (IR ),我们根据R L 中的记录为其建立如下的统计信息:

? 如果a k 是关键词属性,则统计R L 中的记录所有出现的关键词及它们各自的出现频率;

? 如果a k 是范围属性,则为其建立一个数轴,将R L 中的记录在该属性上的值映射到这个数轴上;

? 如果a k 是分类属性,则统计R L 中的记录在该属性上各个分类取值的频率.

基于这些统计信息,由当前选定记录R c 生成查询Q c 的规则是:

? 对于Q c 中的关键词属性,我们首先统计:(1) R c 在该属性上的关键词;(2) 在WG L 中与R c 相邻记录在该

188

Journal of Software 软件学报 V ol.19, No.2, February 2008 属性上的关键词及频率.如果R c 中关键词不出现在它的相邻记录中,那么从这些关键词中选择在R L 中出现频率最低的那一个;否则,选择在它的相邻记录中出现频率最低的那一个.

? 对于Q c 中的范围属性,预定义一个区间长度δ,选择这样一个取值范围:长度为δ,且使得在这个范围中,在WG L 中与R c 相邻记录中出现得最少.

? 对于Q c 中的分类属性,选择在WG L 中与R c 相邻记录在属性上出现频率最低的那个取值.

3.4 采样过程的终止(StopCriteria )

如果没有终止条件,采样过程可以一直进行下去,在理论上可以得到WDB 中所有的记录,但这并非我们的目的.我们的目的是得到足够可以作为样本的记录.直觉上,如果连续多次使得每次查询结果中总有一定比例的记录与R L 中的记录重复,那么我们可以认为已经游历到了WG 中的大部分空间中.因此,我们设定两个常量n q 和σ,n q 是一个大于1的自然数,σ是一个0~1的百分比,其意义表示,如果连续n q 次每次查询结果中总有超过σ比例的重复记录,那么采样过程就会终止.通常,n q 设为5~10之间,σ设为5%~15%.

3.5 样本偏差的修正

事实上,如果我们把当前获得的R L 作为样本,一般会有较大的偏差(公式(1)).因此,我们需要采取措施来修正偏差.根据我们的观察,通常WDB 在结果页面中会给出一个统计数字来表示满足当前查询的记录数量.因此,我们保存采样过程中的所有Q {Q 1,Q 2,…,Q m },同时为每个查询时记录查询结果的数量.

1|||()||()|

|||()|()|()|m L j

j L j L

i i L i R R Q R Q R R Q Deviation Q R Q m ==?∑ (2)

我们进行样本偏差修正的基本思想是:通过对R L 逐步地删减,使得Q 如果作为随机查询集合,则利用公 式(1)得到的偏差尽可能地小.修正的过程描述如下:

第1步,我们利用公式(2)对每一个查询Q i 作偏差估计,得到偏差的最大的查询Q max ;

第2步,如果Deviation (Q max )小于设定的值ε,终止,当前的为可用样本;否则,用Q max 查询R L ,得到所有满足的记录;

第3步,对这些记录统计它们各自在Q 中可满足查询的数量(不包括Q d ),设R min 为可满足查询的数量最少的记录;

第4步,从R L 中将R min 移除,同时从WG L 中将相应顶点移除,转第1步.

从上面的描述可知,该过程是离线完成的(即不需要与WDB 有任何的交互),可以从WDB-Sampler 算法中分离出来,选择一个合适的时机完成.因此,即使因R L 数量大,造成修正代价较高,也不会对采样的代价造成影响. 4 实 验

为了客观评估Web 数据库采样方法,我们根据WDB-Sampler 算法实现了一个原型,并在本地模拟的Web 数据库以及真实的Web 数据库上进行了验证.下面首先介绍实验中使用的数据集,然后给出实验结果及相应的分析.

4.1 数据集

在本实验部分,我们使用两种数据集:一个本地模拟Web 数据库和两个真实Web 数据库.下面对它们分别进行简要介绍.

4.1.1 本地模拟Web 数据库

工作通(JobTong):招聘信息集成数据库,它集成了从当前国内流行的招聘网站(智联招聘、中华人才网、前程无忧网、易才等)爬取下来的招聘信息.尽管我们把它看作模拟实验数据,其中的数据全部是从现实的WDB 获取的真实信息.我们使用了它在2007年7月15日之前的备份数据库,共存储了982 951条记录.我们手工为其设计了一个虚拟的查询接口:职位名称(关键词属性)、公司名称(关键词属性)、薪水要求(范围属性)、学历要

刘伟等:一种基于图模型的Web数据库采样方法189

求(分类属性).

4.1.2 真实Web数据库

当当网(https://www.wendangku.net/doc/1313498040.html,/):大型电子商务网站,尽管它提供各种商品的在线销售,我们只关注其中主要的图书记录.它不但提供了图书的高级查询接口(https://www.wendangku.net/doc/1313498040.html,/book_search.html),可以在书名(关键词属性)、译作者(关键词属性)、出版社(关键词属性)、价格(范围属性)、出版时间(范围属性)上进行查询,而且还提供了图书的分类链接(https://www.wendangku.net/doc/1313498040.html,/zhuanti2006/book/2001.shtml).利用图书的分类链接,我们可以获得每个分类的数量,从估算出到全部图书的近似总数为62万.由于许多图书同时属于多个分类,因此,这一数字并不十分准确,仅作为参考.

中国图书网(https://www.wendangku.net/doc/1313498040.html,/):大型电子商务网站,只出售图书.它提供了高级查询接口(http:// https://www.wendangku.net/doc/1313498040.html,/book_find/advancedFind.asp),可以在书名、作者、出版社、出版时间上进行查询.在其主页中宣称共有图书58万种,我们用它作为该网站图书记录总数.

4.2 随机查询生成

前面我们已经给出评估样本质量的标准(公式(1)),但需要一组查询分别在样本记录集合S和Web数据库上执行.查询的随机性对样本偏差的计算有直接的影响,而且查询的数量也要足够大,这样才能保证样本偏差与实际情况相符.基于这种考虑,我们提出一种简单的查询自动生成方法来代替人工生成查询.这种方法利用已经存储在本地的样本记录来生成:首先从样本记录中随机选取一个,然后再从该记录中随机选取一个属性值作为查询.从生成方法可以看出,这与前面所提出的方法存在根本的不同:前者要求返回结果数量尽可能地多,这样可以避免偶然性的发生.

另外,为了进一步保证偏差评估的客观性,在随即查询生成的过程中,我们丢弃了重复的查询和在采样过程中用过的查询.

4.3 实验结果及分析

下面分别给出在本地模拟Web数据库和真实Web数据库上的实验结果,并同时对结果进行分析讨论.

4.3.1 本地模拟Web数据库

本节所做实验在本地工作通数据库进行,相应的参数设置为n q=7,σ=15%.为了模拟的真实性,我们在采样过程中每次获取查询结果的top-k个记录,同时为了验证k(一个Web数据库每页最多可显示的记录数量)与样本质量的关系,分别赋予k不同的值在此前提下进行采样得到下面的统计数据.

(1) 样本质量分析

我们分别随机生成100,200和500个查询对表5中展示的4次采样(最终样本)作偏差分析,得到图5所示的结果.

Table 5Statistics on local simulating Web databases

表5在本地模拟Web数据库上的统计数据

Total record number

k

Query

number

Obtained record

number

Distinct record

number

Sampling

ratio (%)

Sample

number 10 4 086 40 860 38 275 4.16 36 204 15 2 912 43 680 39 942 4.44 36 811 20 2 273 45 460 41 059 4.62 37 339

982 951

30 1 642 49 260 41 731 5.01 36 974

从图5中我们可以得到3个结论:第一,样本偏差总体来看较小,平均在10%左右;第二,在其他条件不变的情况下,样本偏差是与k成反比的;第三,用于检测样本偏差的随机查询的数量较少时(100)可能会使测量的偏差与实际情况背离较大,数量较大时(200和500)可以认为测量值与实际值相符.

190

l.19, No.2, February 2008 Journal of Software 软件学报 V o 16.00%

14.00%

12.00%

10.00%8.00%6.00%

4.00%

2.00%

0.00%S a m p l e b i a s

k =10 k =15 k =20 k =25

Random queries Fig.5 Local WDBs sample bias related simulation experiments

图5 本地模拟WDB 样本偏差相关实验

(2) 采样代价分析

从图6可以得出两个结论:一是随着Web 数据库每页显示的结果数量的增加,采样代价会逐渐减小;二是在k 值大于30以后,采样代价的下降趋于平缓.这首先反映出样本偏差和查询代价是成反比的;另外,我们并不能通过增长k 来无限制地降低采样代价.在现实中,一个Web 数据库的k 的大小如果是可改变的,我们就可以根据实际需要在样本偏差和查询代价之间作出权衡.

Fig.6 Relationship between k and query cost

图6 k 与查询代价的关系

4.3.2 真实Web 数据库

本节所做实验在两个真实的Web 数据库进行,分别是当当网和中国图书网,因为对真实的Web 数据库进行采样需要用Wrapper 程序从结果页面中抽取记录,复杂性要远高于本地数据库上的实验,因此,我们把相应的参数设置为n q =5,σ=5%,略小于前面的设置.其k 值的大小分别为20和10,所获得的实验数据见表6.

Table 6 Statistics on real Web databases

表6 在真实Web 数据库上的统计数据

WDB

Record number k Query number Obtained record number Distinct record number Sampling ratio (%) Sample number Dangdang

620 000 10 1 327 13 270 12 446 2.01 11 962 BooksChina 580 000 20 852 17 040 15 184 2.94 14 325

(1) 样本质量分析

我们分别随机生成100和200个查询对表6中展示的对两个Web 数据库的采样(最终样本)作偏差分析,得到图7所示的结果.

4000

3500

3000

2500

2000

1500

1000

500

04500

Q u e r y n u m b e r k 10 152030

407550

刘伟 等:一种基于图模型的191 Web 数据库采样方法

Fig.7 Real WDBs sample bias related simulation experiments

图7 真实WDB 样本偏差相关实验

从图7中我们可以得到3个结论:第一,样本偏差总体平均在20%左右,整体要高于本地的实验结果;第二,随着随即查询数量的增多,样本偏差同样会逐渐减小;第三,中国图书网的样本偏差要明显小于当当网的样本偏差.产生第1个结论的原因,一个是我们把n q 和σ设得较小,另一个是由于我们无法准确知道这两个Web 数据库的大小.第2个结论十分直接,这里不再作解释.第3个结论是由于当当网的记录总量是我们根据每个分类累加所得,而事实上分类之间存在一定的重复,因而会大于实际值;而从中国图书网可以看出,其提供的数字虽然不是确切数字,但与事实数字应该十分接近.这也说明了我们的方法需要Web 数据库大小的一个准确数字,而对Web 数据库大小的估计也是我们目前开展的工作之一.

(2) 采样代价分析

与在模拟Web 数据库上的实验结论类似,采样代价仍然与k 值成反比,这里不再赘述.

5 相关工作

随机采样技术在数据库领域已经得到了大量深入的研究[10?13],传统的数据库采样技术被用来降低从数据库获取数据的代价,其应用包括直方图的估计方法和近似处理等.然而,对Web 数据库采样的研究至今还未得到太多的关注.随着Web 的飞速发展以及Web 数据库数量的急剧增长,Web 数据库采样无论在理论上还是在应用中都成为Web 数据库集成领域中迫切需要解决的问题.

真正针对Web 数据库采样提出的工作有HIDDEN-DB-SAMPLER [14].它首先把Web 数据库简单化为一个布尔数据库,即每个属性上只能取为1或为0的布尔值,如图8(a)所示,进而把这个布尔数据库构建为一棵树模型,如图8(b)所示.树的每一层对应着一个属性,某一层上非叶节点的分支对应着该属性的一个取值,叶节点对应着Web 数据库中的一个记录.这样,对Web 数据库的一个查询可以表示为从根节点开始的一条路径,比如,通过(0,0,1)就可以到达t 1所在的节点.其采样的基本思想是:从根节点开始,由两个分支中随机选取一个向下走,直至到达一个叶节点,如果该叶节点上存在一个记录,就把该记录作为样本保存.随后,又把简单的布尔类型扩展到一般的数字和分类属性上.但它的局限性也是明显的,在本文开始部分我们已经讨论了它的局限性,这里不再 赘述.

我们需要关注的其他工作是Web 中对搜索引擎或文档数据库(text database)的采样.对搜索引擎采样的研究已经有许多工作,这里我们对近年来具有代表性的一些工作进行介绍.文献[16]提出了利用搜索引擎返回的top-k 个结果在文档集合中随机漫步(random walk)的思想,为每个样本文档附加权值来修正其偏差,从而得到近似均匀分布的样本集合.随机漫步的思想类似于本文所提出的图游历的思想,但两者的主要区别在于:搜索引擎中的文档是由一组关键词构成;而Web 数据库中的记录则是结构化的,存在非文本类型的属性.搜索引擎的采样方法也是通过向公共接口提交关键词查询来获得样本文档,查询生成的方法或者是手工产生[17],或者是利用用户的查询日志产生[18].而我们的方法则是从一个随机的查询开始,利用返回结果中的记录来产生下一次的查询.

目前,已有一些工作通过把一个数据库转化成图的形式去解决特定的问题.文献[15]为实现对Web 数据库的爬取,把数据库中的每个属性值看作图中的一个顶点,根据如下规则建立顶点之间的关联:(1) 属于同一个记25.00%20.00%15.00%10.00%

30.00%

B i a s e s t i m a t i o n 5.00%

0.00%Dangdang

Bookschina

192 Journal of Software 软件学报 V ol.19, No.2, February 2008 录;(2) 属于同一属性且值相同.该方法可以有效地实现从Web 数据库中获取大量的记录,虽然也可以作为一种增量式的采样方法,但它的目标是为了找到更多的新记录,难以保证样本的质量.文献[19]为实现在关系数据库上基于关键词的搜索,把数据库中的每个记录看作图中的一个顶点,按照记录之间外键关系建立顶点之间的关联.虽然该方法提出的图模型也是记录层次的,但由于Web 数据库是自治的,因此我们无法获得Web 数据库的模式信息,也无法根据主外键为Web 数据库建立图模型.

Fig.8 Illustration of HIDDEN-DB-SAMPLER

图8 HIDDEN-DB-SAMPLER 示例

6 结论和未来工作

随着Deep Web 的迅速发展,Deep Web 数据集成逐渐成为数据集成领域的一个热点研究问题.由于Web 数据库的数量巨大而且只能通过具有特定查询能力的查询接口进行访问,因此需要通过对Web 数据库的采样了解它们的内容特征.本文提出了一种增量式的Web 数据库采样方法WDB-Sampler,通过把一个Web 数据库转化成图来表示,达到对其进行增量采样的目的.该方法不受查询接口中属性表达形式的限制,本地模拟实验和真实Web 数据库上的实验表明,该方法可以在较小代价下获取高质量的样本.

不可否认,该工作有一些地方在未来仍然需要进一步的完善和探讨:第一,我们在采样过程中设置了若干参数,这些参数的取值是我们在实现过程中根据经验得到的,还需要在理论上进行分析;第二,对采样代价的评估目前只是通过对Web 数据库的访问次数来衡量,还需要进一步给出更合理的评估方法;第三,我们下一步将在更多的Web 数据库上开展实验,发现和改进需要完善之处,进一步降低样本的偏差.

References :

[1] Chang KCC, He B, Li CK, Patel M, Zhang Z. Structured databases on the Web: Observations and implications. SIGMOD Record,

2004,33(3):61?70.

[2] https://www.wendangku.net/doc/1313498040.html,. The deep Web: Surfacing hidden value. 2000. https://www.wendangku.net/doc/1313498040.html,

[3] He H, Meng WY, Yu C, Wu ZH. WISE-Integrator: An automatic integrator of Web search interfaces for e-commerce. In: Proc. of

the 29th Int’l Conf. on Very Large Data Bases. San Fransisco: Morgan Kaufmann Publishers, 2003. 357?368.

[4] Wu WS, Yu C, Doan AH, Meng WY. An interactive clustering-based approach to integrating source query interfaces on the deep

Web. In: Proc. of the 24th ACM SIGMOD Int’l Conf. on Management of Data. Paris: ACM Press, 2004. 95?106.

[5] Peng Q, Meng WY, He H, Yu C. WISE-Cluster: Clustering e-commerce search engines automatically. In: Proc. of the 6th ACM

Int’l Workshop on Web Information and Data Management. Washington: ACM Press, 2004. 104?111.

[6] He B, Tao T, Chang KCC. Clustering structured Web sources: A schema-based, model-differentiation approach. In: Proc. of the 9th

Int’l Conf. on Extending Database Technology. Heraklion: Springer-Verlag, 2004. 536?546.

[7] Zhao HK, Meng WY, Wu ZH, Raghavan V, Yu C. Fully automatic wrapper generation for search engines. In: Proc. of the 14th Int’l

World Wide Web Conf. Chiba: ACM Press, 2005. 66?75.

[8] Zhai YH, Liu B. Web data extraction based on partial tree alignment. In: Proc. of the 14th Int’l World Wide Web Conf. Chiba:

ACM Press, 2005. 76?85.

t 3

A 3A 2A 1t 41t 2

t 1

00000011111t 3A 3A 2A 1t 4

011t 2t 100000111101(a) (b)

刘伟 等:一种基于图模型的Web 数据库采样方法

193 [9] Chang KCC, He B, Zhang Z. Toward large scale integration: Building a MetaQuerier over databases on the Web. In: Proc. of the

2nd Int’l Conf. on Innovative Data Systems Research. Asilomar, 2005. 44?55.

[10] Chaudhuri S, Das G, Srivastava U. Effective use of block-level sampling in statistics estimation. In: Proc. of the 24th ACM

SIGMOD Int’l Conf. on Management of Data. Paris: ACM Press, 2004. 287?298.

[11] Haas PJ, Koenig CA. Bi-Level bernoulli scheme for database sampling. In: Proc. of the 24th ACM SIGMOD Int’l Conf. on

Management of Data. Paris: ACM Press, 2004. 275?286.

[12] Olken F. Random sampling from databases [Ph.D. Thesis]. Berkeley: University of California, 1993.

[13] Piatetsky-Shapiro G, Connell C. Accurate estimation of the number of tuples satisfying a condition. In: Proc. of the 4th ACM

SIGMOD Int’l Conf. on Management of Data. Boston: ACM Press, 1984. 256?276.

[14] Dasgupta A, Das G, Mannila H. A random walk approach to sampling hidden databases. In: Proc. of the 27th ACM SIGMOD Int’l

Conf. on Management of Data. Beijing: ACM Press, 2007. 629?640.

[15] Wu P, Wen JR, Liu H, Ma WY. Query selection techniques for efficient crawling of structured Web sources. In: Proc. of the 22nd

Int’l Conf. on Data Engineering. Atlanta, 2006. 47?56.

[16] Ziv B, Gurevich M. Random sampling from a search engine’s index. In: Proc. of the 15th Int’l Conf. on World Wide Web. ACM

Press, 2006. 367?376.

[17] Bradlow E, Schmittlein D. The little engines that could: Modeling the performance of World Wide Web search engines. Marketing

Science, 2000,19(1):43?62.

[18] Lawrence S, Giles C. Searching the World Wide Web. Science, 1998,5360(280):98.

[19] Bhalotia G, Hulgeri A, Nakhe C, Chakrabarti S, Sudarshan S. Keyword searching and browsing in databases using BANKS. In:

Proc. of the 18th Int’l Conf. on Data Engineering. San Jose: IEEE Computer Society, 2002. 431?440.

刘伟(1976-),男,山东聊城人,博士生,主

要研究领域为Deep Web 数据集成,Web

数据抽取. 凌妍妍(1985-),女,硕士生,主要研究领域为Deep Web 数据集成.

孟小峰(1964-),男,博士,教授,博士生导

师,CCF 高级会员,主要研究领域为Web 数

据管理,XML 数据管理,移动数据管理.

相关文档