收藏 分享(赏)

数据时效性修复问题的求解算法.doc

上传人:无敌 文档编号:157243 上传时间:2018-03-22 格式:DOC 页数:16 大小:199.50KB
下载 相关 举报
数据时效性修复问题的求解算法.doc_第1页
第1页 / 共16页
数据时效性修复问题的求解算法.doc_第2页
第2页 / 共16页
数据时效性修复问题的求解算法.doc_第3页
第3页 / 共16页
数据时效性修复问题的求解算法.doc_第4页
第4页 / 共16页
数据时效性修复问题的求解算法.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、数据时效性修复问题的求解算法 李默涵 李建中 哈尔滨工业大学计算机科学与技术学院 摘 要: 数据过时问题普遍存在于实际应用中,因此将数据库中的过时数据修复为最新值是提高数据质量的关键步骤.当前主要有基于规则和基于统计 2 类数据修复方法.基于规则的修复方法能够将领域知识直观地表达为规则的形式,但是难以表达数据中某些复杂的关联关系;基于统计的方法能够表达数据中的复杂关联关系,并修复许多通过规则难以发现和修复的错误,但是该类方法均需要学习较复杂的条件概率分布,且难以直接应用数据语义相关的领域知识.研究数据时效性的修复问题,同时,为了克服当前 2 类数据修复方法的缺点,提出一类新的修复规则,将规则和

2、统计的方法结合起来修复过时数据.该规则一方面能够以传统规则的方式表达领域知识,另一方面还能够使用其特有的分布表来描述数据随时间变化的统计信息.接着,还给出了修复规则学习算法和数据时效性修复算法.真实和虚拟数据上的实验均验证了算法的有效性.关键词: 数据质量; 数据时效性; 数据修复; 数据质量规则; 分布表; 作者简介:李默涵 作者简介:Li Jianzhong,born in 1950.Professor, PhD supervisor.Fellow member of China Computer Federation. His research interests include mas

3、sive data computing, wireless sensor networks and cyber- physical systems,etc.收稿日期:2014-07-25基金:国家“九七三”重点基础研究发展计划基金项目(2012CB316200)Algorithms for Improving Data CurrencyLi Mohan Li Jianzhong School of Computer Science and Technology,Harbin Institute of Technology; Abstract: Fixing obsolete data to l

4、atest values is a common challenge when improving data quality.Previous methods of data repairing can be divided into two categories,that is,the methods based on quality rules and the methods based on statistic techniques.The former can express the domain knowledge,but fall short in their ability to

5、 detect and represent some complex relationships of data.The latter can fix some errors that quality rules cannot detect or repair,but the current methods need to learn complex conditional probability distribution,and they cannot involve domain knowledge effectively.To overcome the shortages of the

6、above two kinds of methods,this paper focuses on combining quality rules and statistical techniques to improve data currency.A new class of rules for repairing data currency is proposed.Domain knowledge can be directly expressed by the antecedents and consequents of rules,and the statistical informa

7、tion can be described by the distribution tables corresponding to each rules.Based on these rules,the algorithms for learning repairing rules and fixing obsolete data are provided.The experiments based on both real and synthetic data prove the efficiency and effectiveness of the methods.Keyword: dat

8、a quality; data currency; data repairing; data quality rules; distribution table; Received: 2014-07-25数据质量已被公认为数据管理的重要问题之一.在实际应用中,劣质数据往往会误导企业决策或影响用户日常生活,例如美国每年仅零售行业的劣质数据就能造成高达 25 亿美元的损失1.这使得修复劣质数据的需求变得十分强烈.在诸多影响数据质量的因素中,时效性显得尤为突出.有统计指出, 由于客户信息变动,每个月约有 2%的商业数据陈旧过时1,那么如果这些数据没能被及时修复,则在最坏情况下 2 年内将有约 50%

9、的数据因过时失效而无法使用.因此,对数据时效性的修复至关重要.当前的数据修复方法大致可分为 2 种:基于数据质量规则的修复方法和基于统计的修复方法.基于规则的方法根据修复规则或数据依赖,如编辑规则2、函数依赖3、条件函数依赖4等,对不满足规则的数据项进行修复,并寻找代价最小的修复策略. 通过规则,可以很容易地引入相关的领域知识,根据这些领域知识发现错误并进行修复.然而,数据中的某些错误是基于规则的方法所无法修复甚至无法发现的5.例如,同一所大学可能有多个校址,同一个城市可能有多个邮编,这些情况下简单的规则往往难以精确地描述不同属性取值之间的关联关系.因此,基于统计的数据修复方法被提出.基于统计

10、的修复方法5-6通过机器学习得出数据的分布规律,并进一步给出正确概率最大的修复策略.基于统计的方法使用条件概率描述数据之间的关联关系,其能够修复许多通过规则难以发现和修复的错误,但是这种方法存在 2 个弱点:1)此类方法需要从样本中学习到条件概率 P(Y|X),但当前的方法均假设 Y 包含所有待修复属性,X 则包含所有可信属性.当 X 和 Y 中属性较多时,P(Y|X)的学习非常耗时且很容易出现过拟合的情况.2)当前基于统计的方法通常不考虑领域知识,事实上,引入领域知识往往能更好地指导数据修复.数据质量规则可以用来指导基于统计的方法中条件概率的学习.根据规则可以知道哪些属性之间存在着依赖关系,

11、那么如果能删减掉 X 和 Y 中的无关属性,就能使得学习 P(Y|X)更高效且修复数据更精准.例如,数据库包含 A,B,C,D,E 这 5 个属性,其中 A,B,D,E 这 4 列的值是可信的,而 C 列的值过时需要被修复为最新值.根据现有方法,需要学习概率分布 P(C|A,B,D,E),但是如果有函数依赖 AC 和BC 且没有其他与 C 相关的数 据库依赖,则可以认为 C 依赖于 A 和 B 而独立于其他属性,因此在修复 C 时只需学习 P(C|A,B)并以之来确定 C 的修复操作,而无需考虑其他属性,这样就摒除了无关属性的干扰,既节省条件概率的学习时间,又能提高修复正确率.基于上述原因,本

12、文提出一种新的方法,能够将基于规则和基于统计的修复方法结合起来.当前虽然有许多数据修复方面的研究工作,但是这些工作主要关注修复 数据不一 致3-4,6-7、不精确8和不完整5等问题,虽然有一些能够集成多种质量规则的清洗系统9-10,但是均无法有针对性地解决数据过时问题.时效性维度与数据质量的其他维度相比,有其独有的特点与挑战:1)随着时间的流逝,即便是一致、完整且精确的数据集合中也可能有数据过时失效,因此针对其他维度的修复方法并不能被直接用来修复过时数据;2)数据不一致、不完整、不精确等错误都是静态的,直接根据当前数据表即可判定错误是否存在及如何修复,而时效性关注数据的变化,往往要从历史数据中

13、获取数据变化的规律才能给出可行的修复方案;3)确定过时数据的修复方案时,不能仅仅考虑当前数据集合中的属性值,还需要参考其他元组或属性在之前的一个或几个时间点的取值.例如,某公司员工张三的地址由北京变为哈尔滨,相应地其原来的邮编也过时,而哈尔滨有多个邮编,如 150001,150500 或 154800 等,此时若无其他知识则很难判断应当如何修复,但如果历史数据可用,则可能从历史数据中学习到,若该公司的员工地址由北京变为哈尔滨,则超过 50%的人的邮编都变为 150500,进而将张三的邮编也修复为150500.为了应对上述 3 个挑战,必须有专门针对时效性的修复方法提出.本文研究如何结合规则和统

14、计方法来修复数据的过时问题,贡献如下:1)提出了一种过时数据的修复规则,称为时效修复规则.该规则能够解决函数依赖后件所包含的属性上的时效修复问题:一方面能够以规则的方式表达相关的领域知识;另一方面还能够使用其特有的分布表 T 来描述数据随时间变化的统计信息.2)给出了时效修复规则发现算法,该算法能够从数据库现有的函数依赖和历史数据中发现和学习精简的时效修复规则.3)提出了基于时效修复规则的数据修复算法.4)在真实和虚拟数据上进行了实验,验证了本文规则和算法的有效性.1 相关工作当前主要有基于规则和基于统计 2 类修复方法.在基于规则修复数据时,常用的数据质量规则有涉及单 个数据表 的函数依 赖

15、3,11、条件函数 依赖4,7、时效规则12和涉及多表的包含依赖3、条件包含依赖13、匹配规则14、编辑规则2等.然而当前基于规则的工作在时效性方面的研究很少,仅有的基于时效规则的工作12,15-16只能判定数据是否过时,却缺少修复算法,因而无法给出合理的修复策略,这对解决过时数据修复问题是远远不够的.早期基于统 计的修复 方法主要 用于实体 识别17和缺失值推断5,文献6基于统计学习且通过修改数据的方式修复数据.其基于学习得到的条件概率根据可信属性修复不可信属性,但存在如下 2 个问题:1)该方法不能处理数据过时失效的问题, 因为在修复数据时该方法考虑的属性取值仅限于当前数据 表中出现 的值

16、,而修复过 时数据往 往需考虑前一个甚至前几个时刻数据的变化;2)该方法学习得到的条件概率 P(Y|X),其中 Y 包含所有不可信属性,X 包含所有可信属性,当属性个数较多时学习非常耗时,且训练样本不足的情况下易出现过拟合.2 时效修复规则2.1 时效修复规则定义令数据库模式 R=(A1,Am),其中 Ai是第 i 个属性,取值范围为 dom(Ai).R 被划分为 2 个不相交的子集 Rver和 Runv,其中 Rver中属性称 为可信属 性,是经过用户确认的非过时属性,且从上一时刻到当前时刻 Rver中属性发生的改变change(Rver)已知; R unv中属性称为待修复属性,其值均是上一

17、时刻的值,因此可能过时失效.D=t 1,t2,th是 R 的数据库实例,其中 tidom(A 1) dom(Al)是 D 的第 i 条元组.时效修复规则描述了当属性集合 X 的值改变之后,对应的属性集合 Y 的可能变化,形式化定义如下:(change(X)change(Y),T),其中,change(X)和 change(Y)分别称为规则的左部和右部; T 称为规则 对应的分布表.T 中记录的是当 X 的改变为 xi时,Y 的改变为 yj的条件概率,即 P(change(Y)|change(X).下文中在不引起歧义的情况下,我们将根据具体语境交替地使用术语“分布表”和“条件概率”,同时为了使表

18、述更简洁,我们将 change()简写为 ch().图 1 所示为时 效修复规 则的一个 例子,表示 City 改变会导致 Zip 改变,规则下方表格即是对应的分布表,前 2 列中二元组(a,a)表示属性值由 a 变成 a.直观来说,时效修复规则的作用即是根据 Rver中属性的改变 ch(Rver)来计算 Runv中属性最有可能的改变,即 ch(Runv)最有可能的取值.本文仅讨论 X 和 Y 中属性值域是离散且有界的情况,如果属性值域是连续的,则通过分段将其离散 化.容易看出,本文方法可以扩展到值域连续或无界的属性.Fig.1 An example of currency repairing

19、 rules. 图 1 修复规则实例 下载原图2.2 修复规则学习问题和其他数据质量规则类似,时效修复规则也可以由专家根据领域知识给出,如青少年年龄与身高增长的关系可以由规则“ch(Age)ch(Hight),T” 表示.然而,由于用户往往不具备充分的领域知识, 因而很难给出良好的修复规则,那么就需要有方法能够自动地发现修复规则.最简单的规则发现方法是直接枚举所有可能的集合 X 和 Y,再根据训练数据集学习分布表,但是这样一共需枚举 2 种可能的规则,无论是枚举规则的代价还是学习分布表的代价都是难以接受的.事实上,在构建和使用数据库时,用户或领域专家通常会定义一些数据库上的依赖用于反映属性之间

20、的相关性.例如,根据函数依赖 AC 和 BC 可知,C 的取值受到 A 和 B 的影响,那么当 A 和 B 的值发生变化时,可以自然地联想到 C 可能也会发生变化,进一步可得 ch(A,B)ch(C).这样就可以避免枚举,而只需由数据库现有的依赖生成修复规则的左右部.因为本文是首个结合规则和统计的方法来修复数据的工作,而函数依赖(functional dependency, FD)是最常见的一种数据库依赖,所以作为一个初始的探索,我们仅讨论数据库依赖集合(记为 )中只包含 FD 的情况,并将 中包含多种依赖的情况作为下一步的研究工作.FD 的语法为 ,其中 和 是 2 个属性集合;语义为元组

21、t1和 t2的 属性集合的值相等时,其 属性集合的值也应对应相等.综上,时效修复规则的学习问题可形式化如下:输入:模式 R=RverR unv,待修复数据库实例 D、D 上的 FD 集合 、训练数据(即历史数据)集合 Dtr;输出:时效修复规则集合 .给定数据库 D,可以分 2 步解决时效修复规则的学习问题:1)根据 ,生成修复规则的左右部;2) 从历史数据中学习每条规则的分布表 T.2.3 生成规则的左部和右部由时效性修复规则的定义可知,X 和 Y 的选择决定了条件概率学习的效率和修复规则的有效性. 在学习和使用修复规则时,X 和 Y 中混入无关的属性一方面会增加学习的时间开销,另一方面也会

22、因条件概率不能准确地反映属性的相关性而降低修复的正确率,因此,如何为每条规则选择合适的 X 和 Y 是这一步要面临的最大挑战.在这一节我们给出算法,根据 确定 S(X,Y)=(X1,Y1),(X2,Y2),(Xn,Yn),对每一对 ,且 Xi 中属性影响 Yi 中属性;同时在保证这种影响关系的前提下,令 Xi 和 Yi 尽量小,即令导出的规则左右部尽量地“精简”.为了形式化定义 S(X,Y),我们首先提出影响图(influence graph,IG)的概念.定义 1.有向图 G 称为 FD 集合 的影响图, 当且仅当其同时满足:1)|G |=|R|且 G 中的任意结点 vi对应属性 Ai,如果

23、 AiR ver,则 vi是黑色结点,否则 vi是白色结点;2)v i到 vj有一条有向边, 当且仅当 中存在依赖 ,使得 Ai,A j.我们假设 中不存在循环依赖,即 G 无环.G 可通过扫描一遍 构建.例如,Rver=A,B,E,G, Runv=C,D,F, 如图 2(a)所示时 G 如图 2(b) 所示.Fig.2 Functional dependency setand influence graph G. 图 2 依赖集合 与影响图 G 下载原图根据 G 中的边,可以定义属性间影响关系:如果 G 中 vi到 vj存在有向路(即 vi是 vj的祖先结点),则称对应的属性 Ai影响 Aj

24、.将所有影响 Aj的属性构成的集合记为 I(Aj),则 Ai影响 Aj可写为 AiI(A j).G 可能包含多于一个弱连通分量,显然不同弱连通分量的属性间没有影响关系.修复规则导出的基本原理是根据 G 的每个弱连通分量 Cl生成规则,将 Cl中的黑色结点对应的属性都加入 Xl,白色结点对应的属性都加入 Yl.然而连通分量较大时得到的 Xl和 Yl可能仍然很大.为了能够进一步地精简规则,我们提出 2 条修复规则的修剪原则,并依靠这 2 条原则来进一步减少 Xl和 Yl中包含的属性:1)左部修剪原则.影响关系具有传递性,即如果 AiI(A j)且 AkI(A i),则AkI(A j).根据 FD

25、的语义可以近似认为 I(Ai)决定 Ai的取值,那么若 Ai和 I(Ai)同时出现在规则左部,可以将 Ai删除而不影响规则语义,即可将 ch(AiI(A i)X) ch(A j)改写为 ch(I(Ai)X)ch(A j),其中 X可以是任意属性集合,包括空集.2)右部修剪原则.对 ch(Xl)ch(A i,Aj),如果 ch(Ai)和 ch(Aj)条件独立,则可以将原规则拆分为 ch(Xl)ch(A i)和 ch(Xl)ch(A j).这 2 条规则共同表达了原始规则的语义,但右部的集合 Y 变小了.对于原规则,需学习 P(ch(Ai,Aj)|ch(X),如果 Ai和 Aj值域均离散有界,则最

26、坏情况下二者可能的变化分别有|dom(A i)|和|dom(Aj)|种,故给定 ch(X),需穷举|dom(A i)|dom(Aj)|种可能的概率值,但拆分后只需分别学习 P(ch(Ai)|ch(X) 和 P(ch(Aj)|ch(X),穷举开销降至|dom(A i)|+ |dom(Aj)|.例如在图 2(b)中,ch(D)和 ch(C)在给定 ch(A)时就可认为是独立的,ch(C)和 ch(F)则不独立.在判断 ch(Ai)和 ch(Aj)是否条件独立时, 因为可以作为条件的只能是 Rver中属性,即 ;2 要保证 Ai,Aj不会同时影响第 3 个 Runv 中属性 Ak,否则 Ai和 Aj

27、 必须和 Ak出现在同 一条规则 中,也就是说,要保证 使得 Ai 和 Aj同时属于 I(Ak).只有在上述 2 个条件同时 满足时,才可以假 定 ch(Ai)和 ch(Aj)条件独立,进而将其置于不同规则的右部.基于规则导出的基本原理和修剪原则,可以形式化地定义 S(X,Y)需满足的条件:1)对(X i,Yi)S (X,Y),Xi和 Yi均不为空集, 且对AX i有 AR ver,对BY i有 BR unv,而且存在 AX i和 BY i满足 AI(B);2)对任意 AR ver和 BR unv,如果 BY i且 AI(B),那么 AX i当且仅当不存在AI(B) 使得 AI(A);3)B,

28、BR unv,B 和 B属于同一个 Yi当且仅当下述 3 个条件之一满足:1BI(B)或 B I(B);2 存在 BY i,使得 BI(B)且 BI(B); 3存在 BY i,使得 BI(B)且 BI(B).在上述条件中,2)和 3)分别对应了左部和右部修剪原理. 中 FD 确定的属性影响关系可以完整地被 G 表达,因此求满足条件的 S(X,Y)可以进一步等价地转化为G 中的关联结点族求解问题,定义如下:定义 2.影响图 G =(V,E)中的关联结点族为集族 SV=V1,Vn,其中 VlS V称为一个关联结点集合,且 SV满足下述 3 个条件:1) 中至少存在一个黑色结点和一个白色结点,且 V

29、l中结点是弱连通的;2)对任意黑色结点 v 和白色结点 w,如果 v 是 w 的祖先结点且 wV l,那么 vV l当且仅当不存在黑色结点 v同时是 v 和 w 的祖先结点.3)对任意白色结点 w 和 w,如果 w 和 w属于同一 Vl当且仅当下述 3 个条件之一满足:1w 可达 w或 w可达 w;2 存在白色结点 w,使得 w 可达 w且 w可达 w;3 存在白色结点 w,使得 w可达 w 且 w可达 w.对V kS V,将 Vk中的黑色结点对应的属性作为 Xk,白色结点对应的属性作为 Yk,则定义 2 中的 3 个条件和 S(X,Y)需满足的条件一一对应.给出关联结点族的求解算法之前,先用

30、例子直观地展示求解过程.例 1.对图 2(b)表示的影响图,可分 4 步求解其关联结点族.1)图 2 所示的影响图中从白色结点到黑色结点的有向边对于导出修复规则是没有帮助的,因此, 我们首先需要将这样的边去除,图 2(b)中(C,E)需要被去掉.直接删除(C,E)会损失掉 A,C 对 F 和 A 对 E 的影响关系,为了避免这样的损失,在去除(C, E)的同时要添加新边(C,F)和(A,E),得到新的影响图如图 2(c)所示.2)结点按影响关系分层,如图 2(c)虚线所示. 第 0 层为从上到下第 1 个出现白色结点的层次,从 0 层开始,每向上一层层次编号减 1,向下一层编号加 1.3)从第

31、 0 层开始,根据 0 层的白色结点 C,初始化关联结点集合 V1=C.然后将 C的所有子孙结点加入 V1,得 V1=C,F,F 加入 V1后第 1 层还有白色结点 D 不属于任何关联结点集合,则为 D 建立一个新的关联结点集合 V2=D,D 没有子孙结点,故无需进一步扩展,此时所有白色结点都扩展过了,进入下一步.4)对 Vi中每个白色结点,将其祖先结点中层次编号最小的黑色结点全部加入 Vi,得 V1=A,C, F,V2=A,B,D.SV= V1,V2扩展完毕,进而可以写出 2 条规则 ch(A)ch(C,F)和 ch(A,B) ch(D).关联结点族的求解算法伪代码如算法 1 所示. 行 1

32、ReplaceUselessArcs(G )删除 G 中所有白 色结点到黑色结点的边,并为可能丢失的影响关系补边.可用迭代的方法完成该过程,即每次找出影响图中一条无用边(u,v)(如图 2(b)中的边(C,E),将其用(f(u),v)和(u,c(v)替换,其中 f(u)表示 u 的父结点,c(v)表示v 的子结点,此过程迭代进行直到没有可替换的边为止.当对任意结点 f(u)和c(v) 均是常数时,该迭代过程至多执行|V|次替换,其中|V|=|R|是 G 的结点数,显然 ReplaceUselessArcs(G )不会向 G 中引入新的环.行 2LayerNodes (G )对点进行分层:首先将

33、入度为 0 的点划分一层 (即层次编号最小的层);然后去掉这些点及其邻接边,再将剩下的入度为 0 的点划为一层,以此类推直到所有点都被划分层次为止;最后令第 0 层为从上到下第 1 个出现白色结点的层次,从第 0层开始,每向上一层编号减 1,向下一层编号加 1.行 313 从第 0 层开始,检查是否存在祖先结点全是黑色结点的白色结点 wi,如果 wi存在,则该结点及其子孙结点可能构成一条新规则的右部,因此为其创建一个新的集合 Vwi,并将其后代中白色结点 均加入 Vwi(定义 2 条件 3)中的条件 1),一旦发现 2 个集合交集不为空,则说明这 2 个集合中的点有相互影响的可能(定义 2 条

34、件 3)中的条件 23 中的一个),所以合并这 2 个集合.行1416, 对每个集合中的黑色结点,将其祖先结点的白色结点中层次最小的加入该集合,这可以保证被加入集合的白色结点的入度为0,故其对应的属性一定不会被其他结点所影响(定义 2 的条件 2).行1719检查 Vwi中是否至少包含一个黑色结点和一个白色结点,如果是,那么将 Vwi加入SV(定义 2 的条件 1).算法 1.关联结点族的求解算法.算法 1 正确性由定理 1 保证.定理 1.算法 1 的输出满足定义 2 的 3 个条件.根据算法 1 各行的描述,定理显然成立.至此, 只需将 SV中 Vi的黑色结点对应的属性加入 Xi,白色结点

35、对应的属性加入 Yi,就可以得到 S(X,Y).2.4 学习分布表设待学习规则左部和右部分别为 X=A1,A2,A|X|和 Y=B1,B2,B|Y|.通常学习 P(ch(Y)| ch(X)有 3 种方法:1)假设 B1,B|Y|条件独立,令 ch(X)=x,则2)直接枚举给定 ch(X)时 ch(Y)的所有可能,对每种可能的变化 y 计算P(y|ch(X)并合并得 P(ch(Y)| ch(X);3)首先学习 P(ch(B1)|ch(X),P(ch(B2)| ch(B1,X),P(ch(B|X|)|ch(B1,B2,B|X|-1, X),然后根据乘 法原理得在修复时也是根据上述顺序,先根据X 修

36、复 B1,然后根据 B1和 X 修复 B2,以此类推直到所有值都被修复.上述 3 种方法各有缺点:第 1 种方法的独立假设过强,很多情况下难以满足;第 2 种方法的枚举开销很大,且在训练集不够大时容易产生过拟合;第 3 种方法能克服前 2 种方法的缺点,但需保证学习时排在后面的属性只受前面的属性影响,否则在修复时易出现错误,但当前方法要么不能保证这一点6,要么需手工明确属性依赖关系5.本文基于第 3 种方法给出一种策略,可根据 G 自动判断属性间的依赖关系,并进而给出使用乘法原理时的属性排序.本文策略如下:在 G 中,第 i 层的属性仅受层次编号小于 i 的属性影响,故按照层次编号由小到大对

37、Y 中属性划分和排序,得到顺序 Y,Y,Y,其中 Y 是 Y 中第 i 层的白色结点 对应的属 性构成的 集合,显然 Y 仅依赖于满足 ji 的 Y.依次学习 P(ch(Y)| ch(X),P(ch(Y)|ch(Y,Y, X),并将各概 率相乘就 可以得到 P (ch(Y)| ch(X).如例 1 中的规则 ch(A)ch(C,F)对应的 P(ch(C,F)|ch(A)可以由 P(ch(C)|ch(A) P(ch(F)|ch(C,A)得到,其中 Y=Y=C, Y=Y=F.3 数据时效性修复计划在得到修复规则集合 之后,我们可以求出 D 的修复计划 plan(),使得对tD,plan(t) 指定

38、了 t 的最好的修复策略,并进一步根据 plan()修复 D. 下面我们首先给出 plan()已知时数据时效性修复问题的定义及解决框架,再详细讨论 plan()的求解算法.在修复数据时,我们希望通过合理地使用 中的规则,能够令 D 的时效性得到最大程度的提升. 与文献6中的一致性度量类似,我们使用对数似然的提升来度量元组的时效性提升.定义 3.元组时效收益.给定元组 t、修复策略 s 以及 t 的 Rver属性的改变ch(tver),若执行 s 之后 t 的 Runv属性的改变为 ch(tunv),则 s 的时效收益 bens(t) 为 lg P(ch(tunv)|ch(tver)-lg P(

39、re(tunv)|ch(tver), 其中 re(tunv)表示不作任何修改保留 t 的 Runv属性的当前值,P(re(t unv)|ch(tver)是 Rver属性变化时 Runv属性不变的条件概率.基于时效收益,我们进一步给出时效修复问题的形式化定义.给定待修复数据库实例 D、时效修复规则集合 、修复预算 、D 的修复计划 plan(),时效修复问题可表示为其中,u t=1 表示对 t 执行修复策略 plan(t);ut=0 表示保留原值不执行 plan(t);ben(t)是用 plan(t) 修复 t 的元组时效收益;cost(t)是用 plan(t)修复 t 的代价.我们假设元组之间

40、的修复是相互独立的,那么, 如果对任意 tD,cost(t)和ben(t)都是常数,则时效修复问题可以被认为是 0-1 背包问题的变形,0-1 背包的优化问题是 NP 难的,因此我们使用其最常见的启发式方法,即在修复时每次选ben(t)?cost(t) 最大的元组进行修复.于是,求解时效修复问题的重点就落在了如何对每个 tD,计算相应的 cost(t)和 ben(t),而这 2 个值在 plan(t)确定之后也随 之确定,故本节剩余部分则重点讨论如何对每条元组 t 计算 plan(t).如 2.4 节所述,可以将规则 =ch(X)ch(Y),T 的 Y 属性按 G 中层次由 小到大排 成序列 o()= Y,Y,Y.我们将每个 Y 称为一个单元,在使用 修复元组t 时,按照 o()的顺序逐个单元修复.给定 Y,我们考虑其上的 3 种修复操 作:1)修改(modi(Y),即根据 Y,Y 的修复和 P(ch(Y)|ch(Y,Y,X)将 Y 修复为概率 最大的值,其代价 costmodi(Y)为|Y|,即 Y 包含的属性数;2)保留(reta(Y),即不

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报