一个基于特征向量的近似网页去重算法

转自;http://www.cnindex.fudan.edu.cn/zgsy/2009n1/caoyujuan.htm

一个基于特征向量的近似网页去重算法

曹玉娟1,2  牛振东1  彭学平1  江  鹏1

(1北京理工大学计算机科学技术学院  100081)

 (2北京航天飞行控制中心  100094)

摘  要  在搜索引擎的检索结果页面中,用户经常会得到内容相似的重复页面,它们中大多是由于网站之间转载造成的。为提高检索效率和用户满意度,提出一种基于特征向量的大规模中文近似网页检测算法DDW(Detect near-Duplicate WebPages )。试验证明,比起其他网页去重算法(I-Match),DDW具有很好的抵抗噪声的能力及近似线性的时间和空间复杂度,在大规模实验中获得良好测试结果。

关键词  网页去重算法   特征向量   近似网页   支持向量机

 

随着近年来互联网技术和规模的空前发展,Internet已经成为获取信息的主要渠道之一。截至2007年7月的调查中,共统计约1亿2千5百多万个网站[1]。搜索引擎因其方便快捷的检索功能,成为当今网络用户进行信息检索的主要工具,而其中信息检索的质量及其工作效率将直接影响到搜索引擎的整体性能。根据中国互联网络信息中心2005年7月发布的统计报告显示,用户在回答“检索信息时遇到的最大问题”这一提问时,选择“重复信息太多”选项的占44.6%,排名第1位[2]。面对海量的数据,用户不愿意看到一堆内容相同或近似的数据,如何更为快速、准确地帮助用户获取所需要的信息,是网络信息服务面临的新课题。

我们常把句法、结构完全相同的文档视为重复文档。但本文所指的近似网页是指正文内容基本相同的网页,而不论其句法、结构是否完全一致。

重复文档的去除采用传统的剽窃检测技术很容易完成,但对于内容近似的文档检测就不那么容易了。本文提出的近似网页去重算法DDW(Detecting near-Duplicate WebPages),兼顾考虑网页的语法和语义信息,提取特征向量进行文档的表示;并充分利用检索系统和分类信息进行近似网页检测和排查。

本文余下的内容组织如下:第一部分介绍现有去重算法;第二部分论述DDW算法设计;第三部分介绍我们的试验结果和对结果的分析;第四部分是结论。

1  现有近似网页检测算法介绍

近年来针对近似网页的检测展开了许多研究,例如网页结构近似性检测[3],超级链接近似性检测[4]等。但本文关注的是网页内容近似检测。

我们大致可以把文本复制检测算法分为两类:基于语法的方法(基于Shingle的方法)和基于语义的方法(基于Term的方法)。

1.1  基于Shingle的方法

Shingle是指文档中一组临近的有序词。基于shingle的算法要求从文档中选取一系列shingle,然后把shingle映射到Hash表中,一个shingle对应一个Hash值,最后统计Hash表中相同的shingle数目或者比率,作为判断文本相似度依据。参考文献[5-10]都是常用的基于single的算法。为实现大规模文档的检测,各研究者采用了不同的采样策略,用于减少参加比较的shingle的数量。

Heintze[8]选取Hash值最小的N个shingle, 并去除频繁出现的shingles。Bharat[6]选取Hash值为25倍数的shingle,每篇文档最多选取400个shingle。Broder[7]将多个single联合起来组成一个supershingle并通过比较supershingle的Hash值计算文档的相似度。尽管supershingle 算法计算量更小,但Broder发现它不适用于短小文档的检测。Fetterly[13]把连续出现的5个词视为一个shingle,每篇文档采样 84个shingle,然后将这些shingle组合为6个supershingle; 具有2个相同supershingles的文档被视为内容相似的文档。吴平博等[9]利用标点符号多数出现在网页文本中的特点,以句号两边各五个汉字作为single来唯一地标识网页。

对于各种基于shingle的算法,Ye[10]就其参数选择进行了系统研究。

1.2  基于Term的方法

基于Term的方法[11-14]采用单个词条作为计算的基本单元。通过计算文档特征向量的余弦值来获得文档的相似度,而不考虑词条出现的位置和顺序。由于采用了许多特征提取(尤其是特征向量的选择)技术,使得基于Term的方法比基于Shingle的算法更为复杂。

Chowdhury 的I-Match[11]算法通过计算逆文本频率指数(IDF :inverse document frequency)来确定选择哪些词作为特征向量。IDF = log (N/n),其中N 为文档集中文档的数目,n 为包含该关键词的文档的数目。I-Match算法正是基于“在文档集中频繁出现的词并不会增加文档的语义信息”[13]的推断,去掉IDF值较小的词,从而获得了更好的文档表示。经过过滤的关键词按降序排列构成文档的“指纹”(fingerprint),指纹相同的文档被视为近似文档。最坏情况下(所有文档都是近似文档),I-Match算法的时间复杂度为O(nlogn)。

2  基于特征向量的去重算法设计

本文提出的基于特征向量的大规模中文网页去重算法,采用类似I-Match的关键词向量提取方法,但同时采用关键词的位置和权重信息构建特征向量来进行文档表示。不计算特征向量的hash值而是利用分类信息和检索系统来进行文档相似度计算和排重。具体设计方案如下:

2.1  网页的文本提取

网页中包含的广告信息、链接到其他网页的导航信息等,都会对该网页内容检索产生干扰。因此,在对网页的内容建立索引之前,我们需要对其中的有效正文信息进行了提取。采用的是我们另一项课题的研究成果[15]:

1)根据网页的视觉信息将文章分块,并人工标注各个内容块是否为有效信息块。

2)提取内容块的空间位置、视觉特征、语言信息及结构特征。

3)提取文章标题,使用潜语义分析方法计算内容块与文章标题的潜在语义相关度。

4)将以上信息构成内容块的特征向量。

5)使用人工标注的内容块做六折交叉法,训练SVM(Support Vector Machine)分类器。

6)使用训练好的SVM分类器判断新的内容块是否为有效信息块;提取有效信息块中的文本作为有效的正文信息。

2.2  文本的表示

迄今为止,文本的表示主要还是采用向量空间模型(VSM)。在该模型中,文档空间被看作是由一组正交向量张成的向量空间。若该空间的维数为n,则每个文档d可被表示为一个特征向量Vd=(ω1,ω2,…,ω1,…,ωn),其中ωi表示特征向量中第i个特征项的权重。

特征项的选取即文本特征的提取过程。目前常用的特征选择策略有:文档频数(Document Frequency)、信息增益(Information Gain)和互信息(Mutual In formation)等特征选择方法。

从中文信息处理角度来看,比较好的方式是利用意义较大的多字词来表示文档的内容,将文本分词后,将这些词的权重作为向量的分量来表示文本。但由于中文分词的词典规模一般在5万到25万词条之间[16]。也就是说中文的特征空间维数比英文高很多。在相同规模训练语料条件下,更高的维数必然导致更多的低频词出现。在这样的情况下使用IG和MI进行特征抽取,由于它们对低频词的倚重,必定将会有更多的低频词作为特征使用。从而导致了特征向量抽取的不准确。文献[17]的试验结果表明在中文特征向量问题上它们的表现远远不及TFIDF。

因此,我们在系统中采用了一种使用比较普遍的TF-IDF公式来计算各个分量的权重:

词条t在文档d中的TFIDF值由式(1)定义

(1)

 

        

其中,TF(t,d)表示词条t在文档d中出现的次数,M为文本的总数,m为所有文本中含有t的文本的个数。为降低高频特征对低频特征的过分抑制,在实验中计算权值时还对TFIDF值进行如(2)所示的规范化处理:

(2)

 

                                     

2.3  索引构建

为了对特征向量进行快速访问,必须对特征项建立索引机制。倒排索引具有实现相对简单、查询速度快、容易支持同义词查询等优点。本文对特征项建立倒排索引文件。在我们的系统中有文章类别信息的支持,可以针对不同类别建立特征项索引,以提高检索效率。

2.4  特征向量检索

由于网页噪声的影响,重复网页的文本特征向量有时不完全相同,精确匹配会导致匹配失败。但由于特征向量是最能代表一篇文章的一组词,因此只用检索排在前边的n维特征向量并计算其相似度,即可基本确定两篇文章是否是近似文档。在得出匹配检索后,采用余弦公式(3)进行相似度计算。

(3)

 

                      

若sim(d1,d2)>阈值可以推断d1,d2是近似网页。

3  实验结果及对比分析

为了评价本算法的正确性和效率,本文设计了一系列试验。

正确性是算法的生命;这里给出两个评价标准:重复网页召回率(Recall) 和去重准确率(Precision),定义如下:

     

为了检测DDW的性能,我们在军事、医学和计算机三个领域选择了24个查询,用Google检索关键词,在每组检索结果中选取内容相同或相似的网页共计1711篇,并将这些近似网页插入已存在的文档集(包含1028,568个网页)中。并同时运行I-Match (同样选取20个特征词) 和 DDW 算法进行近似网页检测。试验结果如图1所示:

图1 DDW 与 I-Match算法准确率与召回率比较

4  结论

影响网页去重准确性的主要因素是网页噪声。本文提一种基于特征向量的近似网页去重算法。有效减少噪声信息对算法准确性的不良影响;获得了去重准确率>90%,召回率>80%的良好效果。由于本算法具有近似线性的时间和空间效率,试验证明其适用于大规模中文网页去重,本文的研究成果已成功应用实际的工程项目。

本课题的研究受到教育部新世纪优秀人才项目计划、霍英东青年教师奖励资助基金国防科研基础研究基金等支持。

 

参考文献

1  http://news.netcraft.com/archives/web_server_survey.html 

2  中国互联网络信息中心.第十六次中国互联网络发展状况统计报告(2005-07-01).http://www.cnnic.net.cn/index/0E/00/11/index.htm 

3  Li Z., Ng W. K., Sun A.. Web data extraction based on structural similarity. Knowledge and Information Systems,2005(12):438-461 

4  Dean J., Henzinger M. R.. Finding related pages in the World Wide Web.in  Proceeding of the eighth International World Wide Web Conference (WWW),1999:1467-1479 

5  Gurmeet Singh Manku: Detecting Near Duplicates for Web Crawling. International World Wide Web Conference Committee(IW3C2), 2007:141-149  

6  Bharat K., Broder A. Z., Dean J. et al. A comparison of techniques to find mirrored hosts on the WWW. Journal of the American Society for Information Science (JASIS), 2000:1114-1122 

7  Broder A., Glassman S., Manasse S.  Syntactic clustering of the web. In Proceedings of the Sixth International World Wide Web Conference (WWW),1997:391-404 

8  HEINTZE, N.. Scalable document fingerprinting. In Proceedings of the Second USENIX Electronic Commerce Workshop (Oakland),1996:191-200 

9  吴平博,陈群秀. 基于特征串的大规模中文网页快速去重算法研究. 中文信息学报, 2003,17(2):28-35 

10  Ye Shaozhi, Wen  Ji-Rong. A systematic study on parameter correlations in large scale duplicate document detection. in Proceedings of the 10th Pacific-Asia Conference on Knowledge Discovery and Data Mining,2006:275-284 

11  Chowdhury A., Frieder O., Grossman D. et al. Collection statistics for fast duplicate document detection. ACM Transactions on Information System,2002:171-191 

12  Cooper J. W., Coden A.,Brown E. W.. Detecting similar documents using salient terms. in Proceedings of the 11th ACM International Conference on Information and Knowledge Management (CIKM),2002: 245-251 

13  Conrad J. G., Guo X. S., Schriber C. P. Online duplicate document detection: signature reliability in a dynamic retrieval environment. in Proceedings of the 12th International Conference on Information and knowledge management (CIKM),2003:443-452 

14  Kolcz A., Chowdhury A., Alspector J.. Improved Robustness of Signature-Based Near-Replicate Detection via Lexicon Randomization.in Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining(SIGKDD),2004:605-610 

15  Cao Yujuan, Niu ZhenDong. Extracting Informative Blocks from Web Pages. Proceedings of the Seventh International Conference on Advanced Language Processing and Web Information Technology (ALPIT),2008: 544-550 

16  黄昌宁.对自动分词的反思//语言计算与基于内容的文本处理.北京:清华大学出版社,2003:26-38  

17  代六玲,黄河燕,陈肇雄.中文文本分类中特征抽取方法的比较研究.中文信息学报,2004,18(1) 

 

曹玉娟  北京航天指挥控制中心高级工程师。

牛振东  北京理工大学计算机科学技术学院副院长、教授,中国索引学会副理事长。

 

RFID冗余数据近似消重 1.简介: 随着信息技术的发展,各种数据(如XML、RDF和RFID数据生成。RFID不需要接触即可检测射频识别标签的特性,因此被用于很多领域,如商业、军事和医学,导致了大量的RFID数据生成,沃尔玛采用RFID技术是一个典型的RFID在商业领域应用的例子。 然而,RFID技术也带来一系列的问题,由于RFID是非接触式探测,只要标签在阅读器的探测范围内,所有的标签信息都会被读到,因此,RFID标签在探测区移动缓慢或者停留都会产生冗余数据。另外,标签在探测区移动速度过快或者有多个标签同时移动,会造成阅读器漏读。为了避免漏读现象的产生,就会在一个区域放置多个阅读器,当同一个标签被几个阅读器读到时,冗余数据也就产生了。 一个智能的RFID阅读器能够去除自身产生的冗余数据,但是多个阅读器产生的冗余数据紧靠本身自包含的处理能力去除是不可能的,因此我们提出了一种基于中间件的处理冗余数据的技术。 上面这张图表示:有两个阅读器Reader1和Reader2,两个标签在探测区内,Reader1探测到标签用ID1,Reader2探测到标签用ID2表示,每个阅读器生成的信息表示形式为 : <tag ID, location of the reader, time>. Reader1探测到标签ID1产生RFID数据 : <ID1, Loc1, 1>, <ID1, Loc1, 2>, <ID1, Loc1,4>,然而, RFID 数据是重复的除了<ID1, Loc1, 1>. .Reader1 也探测到了ID2的RFID 数据 <ID2, Loc1, 3>, <ID2, Loc1, 5> , <ID2, Loc1, 5> 是重复数据. 同样的, Reader2 探测到的数据和产生的一些冗余数据在上图中都表示出来了。由于两个阅读器可能会探测到同一个RFID标签于是更多就会造成中间件中有更多的冗余数据。比如:Reader1<ID1, Loc1, 1>, Reader2<ID1, Loc2, 1> 就是冗余数据。中间件要进行去冗余处理,去冗余后结果为<ID1, Loc1, 1>, <ID2, Loc2, 2>.对于小数据的处理似乎是很简单的。 然而,RFID数据量是很庞大的,如果每个商品上都有一个标签,那么一个大型的零售商每天产生的数据将会超过1TB,并且,RFID数据是以流的形式产生的,也就意味着冗余数据在一个有限的内存中要立即进行去重处理,我们很难设计出一个精确的去冗余办法,因而,提出了一个近似去冗余方案去替代它。 有一种应用背景是这样的。我们要对大型百货商场中客户的移动进行实时分析,每个客户都有一个唯一的RFID标签,经理希望得到对客户的一些实时分析,比如:每个商店的顾客数量,哪个商店的顾客数量最多,百货商店的中间件就应该对这些数据进行去冗余处理。在这样的环境中,大量的重复数据同时进入中间件,特别是一个顾客长时间呆在同一个地方就会产生大量的重复数据,为了准确的去除冗余数据,我们需要在内存中长时间保存包括重复数据在内的所有RFID数据。当相对于RFID数据来说存储器的数量较少时,RFID数据实时去冗余也就很困难。在这个应用中,管理者是允许统计数据有误差,因而我们提出了在有限存储空间中的近似RFID去重技术。 Bloom filter是一种能够容忍误差的情况下被广泛应用的数据结构。要用少量的内存管理RFID数据流,我们设计了基于bloom filter的方法。然而,由于布鲁姆过滤器是针对静态数据,我们应该让bloom filter适应RFID数据流的环境。因此,我们提出了time bloom filter,由于要用少量的内存管理RFID数据流,我们设计了基于bloom filter的方法。然而,由于布鲁姆过滤器是针对静态数据,我们应该让bloom filter适应RFID数据流的环境。因此,我们提出了time bloom filter,由于time bloom filter是基于bloom filter的,它们不会产生假阴性错误,但是,它们可能产生假阳性错误。我们也计算出了time bloom filter的假阳性错误率,为了降低错误率,我们又提出了time interval bloom filter。 2.相关工作: 3.初期(基本bloom filter介绍): 为了表达S={x1, x2,…,xn}这样一个n个元素的集合,Bloom Filter使用k个相互独立的哈希函数(Hash Function),它们分别将集合中的每个元素映射到{1,…,m}的范围中。对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为1(1≤i≤k)。注意,如果一个位置多次被置为1,那么只有第一次会起作用,后面几次将没有任何效果。在下图中,k=3,且有两个哈希函数选中同一个位置(从左边数第五位)。 在判断a是否属于这个集合时,我们对a应用k次哈希函数,如果所有hi(a)的位置都是1(1≤i≤k),那么我们就认为a是集合中的元素,否则就认为a不是集合中的元素。A如果不是集合中的元素但却被误认为是集合中的元素。这就是一个false positive。 错误率: 当k= 时错误率最低。 4.问题说明: 系统结构如图 2所示,RFID数据流产生并进入中间件。中间件中有过滤模块和应用程序在。在原始RFID数据流进入应用程序之前,它通过过滤模块去除重复RFID数据,之后应用程序接收到非重复的RFID数据。即,在过滤模块中,重复的RFID数据被去除。 RFID数据是在许多RFID阅读器中连续地产生的。 RFID阅读器发送RFID数据到中间件。因此,中间件接收到一系列的RFID数据流。 其中RFID数据包括标签识别符(即,EPC),RFID阅读器的位置,检测标签的时间。 RFID数据流定义如下: Definition1:数据流S(s1,s2,s3,……sn),si=(TagID,Loc,Time), 在RFID数据流,,如果在RFID数据流中存在γ(≠x),使得x.TagID= y.TagID 和 x.Time-y.Time≤τ,RFID数据x被认为是一个重复的,其中τ是应用程序专用的正值[2,21,22]。从冗余的定义中,我们可以通过去除重复数据找到非重复的RFID数据流。然而,有这样一种情况,即在时间间隔小于或等于τ时相同标签被探测到的RFID数据产生,找到一个非重复的RFID数据流就是混乱的。例如,一个RFID数据流S= {S1,S2,S3},其中S1 =(tag1,loc1,5),S2 =(tag 1,loc 1,10)和s3=(tag 1,loc1,15)(τ= 8)。根据s1我们知道S2是重复的,根据s2我们知道S3是重复的。然而,S连续的到达中间件的。如果S2到达中间件,我们可以先从{S1,S2}中除去s2。在这种情况下,如果S3到达中间件,因为不存在s2所以S3就判断为不是一个重复数据。(相同时间去定义重复) 根据不同的应用程序,非重复的数据流S的定义是不同的。 Definition 2:(不同时间定义重复数据)标签相同,出现时间间隔小于等于t即为重复。 Definition 3:集合S'(⊂S)为S的无重复数据集合,如果不存在x∈S',则称x在S中属于重复数据。 Definition 4:集合S'(⊂S)为S中的最大无重复集合, x∈S-S’,则称x在S中属于重复数据。 Min=|Sˆ−S| / |S’| , Max=s’。 5.time bloom filter 为了去除冗余数据,我们提出了一个基于bloom filter 的简单的time bloom filter,从definition2 中可以知道,标签相同的RFID数据不一定就是冗余数据,因此,可以用时间信息来检测冗余。Bloom filter的位数组被设置成0或者1,TBF的数组设置成RFID标签的检测时间。也就是说,TBF用整数数组而不是一个bit数组。 TBF如图三所示。它使用k个相互独立的哈希函数(h1,h2,…..hk),如BF一样映射到(0,….,m-1).TBF第i个单元的值用M[i]表示。为了存储RFID数据x,找到h1(x.TagID),⋯,hk(x.TagID)对应的k个单元,TBF将K个单元的值设置为x的检测时间x.time。如果这个单元已经被设置成之前RFID数据的检测时间,TBF用当前RFID数据的检测时间。 为了检测RFID数据x是否是冗余数据,检测h1(x.TagID),….,hk(x.TagID)对应的k个单元,如果至少存在一个单元满足x.Time−M[hi(x.TagID)]>τ,那么x不是冗余数据(因为冗余数据产生在t时间内)。在TBF中,可以将x.Time−M[hi(x.TagID)]≤t看作BF中的1,x.Time−M[hi(x.TagID)]>τ看作BF中的0。 图四是数据流基于TBF的去冗余算法,这个算法能够在有限的存储空间中找到非重复的数据,TBF所有的单元初始值为0,当RFID数据到达中间件,通过TBF 的数据将被过滤,换句话说,数据x要么被过滤掉要么被发送给应用程序。首先,当数据x通过TBF的时候,检测x.Time-M[hi(x.TagID)]≤τ for all i∈{1, 2,⋯,k}是否全部满足来判断数据x是否是重复数据。因为所有单元的初始值都是0,如果当至少有一个单元的值为0时,数据x就不是重复数据。如果 x.Time−M[hi(x.TagID)]≤τ满足对于所有的 i∈{1, 2,⋯,k}没有满足 M[hi(x.TagID)]为0的,数据x可能就是重复数据,然后将x过滤掉,将非重复数据发送给应用程序,最后 x是否是重复数据都将单元的值更新为x.time。如果我们仅当数据不是重复数据的时候更新,那么当有相同标签的数据在小于t的时间间隔内连续出现时就不能进行被过滤掉。 例子1:如图五所示,图五表示数据流S={s1, s2, s3}在通过TBF过滤之后的TBF 的状态。s1=(ID1, Loc1, 10), s2=(ID2, Loc2, 120), and s3=(ID1, Loc1, 130).TBF的数组长度为8,哈希函数个数k为3,时间间隔t为100,为了很好的解释TBF,我们假定h2(ID1)=h1(ID2)。 考虑TBF如何处理数据流S={s1, s2, s3},当s1到达TBF的时候,它将会检测s1是否是冗余数据,因为M[0],M[5],and M[2]的初始值都是0,s1不是重复数据,s1被发送给应用程序,然后TBF设置M[0],M[5],and M[2]的值为10。当s2通过TBF的时候因为没有重复数据,它被发送给应用程序,TBF设置M[5],M[7],and M[3]的值为120,对于M[5]单元,虽然之前的值10,但也被重新设置为120。s3通过TBF时,由于 130−M[0]>τ and 130−M[2]>τ,不是重复数据,s3发送到应用程序。TBF设置M[0],M[5],and M[2]的值为130.在这个例子中,因为没有数据是重复的,所以应用程序可以接受到所有的RFID数据。 TBF假阳性率(错误率): 公式: ,其中k为哈希函数个数,n’ 为在t时间内非重复的元素个数,m为单元个数。 证明:为了得到错误率,我们假定到达TBF的数据流都是非重复的,然而,在真正的应用中,RFID数据流中有很多重复数据,这些数据流的标签相同,到达时间集中因而在TBF被哈希到相同的单元,单元设置的时间值相似。因而,重复数据到达TBF后被过滤和非重复数据到达TBF导致的TBF状态是一样的。因而,假定到达TBF的数据都是非重复数据是合理的。 思考,之前有RFID数据到达TBF,现在对于任意的元素x我们想计算其假阳性率。重复数据的定义是在时间t内到达的数据,也就是说在时间t内到达TBF的数据是无效的,因此,我们只考虑相对于x.time来说t时间内的数据。 P1为x.Time−M[hi(x.TagID)]≤τ for 1≤i≤k的概率,p2为x可能为重复数据的概率。 X的假阳性概率为:x=p1-p2; 为了得到p1,我们先得到对于u的x.Time−M[u]≤τ的 概率,我们假定哈希函数有统一的分布,对于在时间t内的RFID数据y来说概率为:hi(y.TagID)≠u for some i is (1−1/m),对于所有的i∈{1, 2,…,k},hi(y.TagID)≠u的概率为 。 假定n’为在t时间内到达TBF的RFID数据的数量, 。 . 因为我们假定到达TBF的数据是非重复数据,因而,p2=0. 所有y的假阳性概率为: 。 6.time interval bloom filter . 在前面的部分,我们介绍了TBF,TBF只是BF的一个简单扩展,我们提出了TIBF去优化TBF。 如图3即为TIBF的结构,M[i].StartTime和M[i].EndTime分别表示第i个单元的开始和结束时间,开始和结束时间的初始值分别为0和-1.考虑TIBF如何保持每个单元的开始和结束时间,一个简单的解释是,假定哈希函数的个数为1,TIBF的每一个单元对应一个标签,当RFID数据x(TagID=1)首先到达时,设置TagID=1对应单元的开始和结束时间为x.time,也就是初始时间间隔是一个时间点,当另一个数据y(TagID=1)到达时,仅仅改变TagID=1对应单元的结束时间为y.time。因此,TIBF保持了TagID=1对应的时间间隔,对RFID数据x,如果有x.Time-EndTime>t, x.Time-x.StartTime>t,时间间隔没有用,在这种情况下,初始化时间间隔,设置单元的开始和结束时间为x.Time. 因为一个单元可能被不同TagID的RFID数据设置,对于每个TagID的时间间隔可能被混合,但是,单元的间隔时间[StartTime,EndTime]涉及所有跟单元有关的RFID数据的检测时间。 为了确定RFID数据x是否是冗余数据,检查h1(x),h2(x),…hk(x)对应的所有时间间隔的交集是否为空。如果接收到的RFID数据TagID=x.TagID在时间t内到达TIBF,x.TagID对应的所有时间间隔应该包括了该数据的检测时间,并且其交集应不为空。因此,当交集为空,亏确定任何RFID数据TagID=x.TagID在时间t内没有到达TIBF.. 图6说明了如何确认RFID数据x是否为冗余数据,图6中TIBF右侧坐标表示数据x对应的时间间隔,在图6(a)中,四个时间间隔的交集是[10,15]。因为交集非空,x是冗余数据。在图6(b)中,四个时间间隔的交集为空,x非冗余数据。 图7 为TIBF 去除冗余数据的算法,RFID数据x到达TIBF,首先检测x是否为冗余数据,为了检测x是否为冗余数据,首先要检查时间间隔对应的h1(x),h2(x),….,hk(x)的交集是不是空集,如果交集在x.time-t之前(即x.time-intersection.EndTime>t),我们认为他是空集,因为重复数据定义在t之间之内的,当交集不是空集并且x. Time−intersectInterval.EndTime≤τ, 则认为数据x是重复数据并且将被过滤掉,否则将会被发送给应用程序。 例子2:考虑数据流{(ID1, Loc1, 10), (ID1, Loc1, 11), (ID2, Loc2, 14), (ID3, Loc3, 15), (ID2, Loc4, 17), (ID2,Loc2, 18)}.在解释TIBF的操作之前,我们先解释数据流通过TBF后的TBF的状态,哈希函数如图8,9所示,单元数组的长度为8,k为3,t为100,为了解释TIBF,假定h1(ID1)=h2(ID4), h1(ID2)=h1(ID4), and h3(ID3)=h3(ID4).如果(ID4, Loc4,20)通过TBF,因为20−M[h1(ID4)]≤τ, 20−M[h2(ID4)]≤τ and 20−M[h3(ID4)]≤τ,TIBF将会检测到ID4为重复数据,实际上ID4不是重复数据,也就是说这里出现了假阳性错误。 同时,TIBF记录了开始时间和结束时间,如图9为上述数据流通过TIBF后TIBF的状态,如图9,考虑数据(ID4,Loc4,20)通过TIBF,ID4的三个时间间隔的集合(即[10,11], [14,18], [15])为空,因此,时间间隔过滤器将会检测到ID4为非重复数据。 对于TIBF,必须根据时间间隔的交集来计算错误率,所以很难计算,但是考虑TBF和TIBF具有相同个数单元和相同哈希函数设置,那么,对于任何RFID数据流,TIBF的错误率小于等于TBF。 理论2:考虑TBF和TIBF具有相同个数单元和相同哈希函数设置,那么,对于任何RFID数据流,TIBF的错误率小于等于TBF。 证明:假定相同的数据流通过TBF和TIBF ,当数据被检测出来是重复时就会出现假阳性错误,证明,对于任何元素x,当被TIBF检测出为重复时,被TBF检测出也为重复。 假定TIBF检测x为重复数据。 Then intersectInterval≠ϕ and x.Time−intersectInterval.EndTime ≤τ ei ≥intersectInterval.EndTime for 1≤ i≤k (also, si ≤intersectInterval:StartTime) mi = ei ≥intersectInterval.EndTime [mi is M[hi(x.TagID)] −mi≤−intersectInterval:EndTime By adding x.Time in both sides, x.Time−mi ≤ x:Time−intersectInterval:EndTime Since x.Time−intersectInterval.EndTime≤τ by Eq. (1), x.Time−mi ≤τ 所以对于任何元素x,当被TIBF检测出为重复时,被TBF检测出也为重复。 6.1空间优化: 如果TBF和TIBF的元素个数相同,那么TIBF需要的空间是TBF的两倍。但是,因为只有t以内的时间间隔有用,可以对TIBF的空间进行优化,如图10所示,时间间隔只需保存StartTime 和 EndTime−StartTime(DiffTime)代替了StartTime 和 EndTime,因为DiffTime所需空间小于EndTime。但是用如图7所示的算法运行的时候DiffTime的值可能会大于t,为了使DiffTime的值小于等于t,我们修改了算法如图11所示。StartTime和 EndTime需要保存数月,日,时,分,秒,但是t只是一个很小的值,因此保存DiffTime会大大减少了空间需求。 如图11所示,考虑空间优化后的TIBF算法,StartTime 和 DiffTime的初始值为0和-1,类似TIBF()算法,TIBF_OPT()首先检查数据x是否为重复数据,EndTime可以通过DiffTime+StartTime计算出来。 为了保证t的值小于等于t,TIBF_OPT()更新单元值的方法与TIBF()不同,当StartTime=0 或者x.Time−(StartTime+DiffTime)>τ时,设置StartTime = x.Time , DiffTime = 0,当x.Time−StartTime>τ时StartTime = x.Time−τ ,DiffTime =τ,当x.Time−StartTime≤τ时,只设置DiffTime =x.Time−StartTime。 7.参数设置。 对于TIBF,因为必须根据时间间隔的交集计算错误率,所以很难计算。但是考虑TBF和TIBF具有相同个数单元和想要哈希函数设置。对于BF,k设置为(ln2)(m/n)(n为数据个数)时,BF的错误率最低,那么,对于任何RFID数据流,TIBF的错误率小于等于TBF(理论2,证明2)。同样,k设置为(ln2)(m/n’)时,可以保证TIBF的错误率小于等于TBF。因此,对于TIBF和TBF,k值均为(ln2)(m/n’)(n’为非重复数据的个数)。 8.实验 为了验证算法的有效性,我们设计了实验进行验证。比较了BF,TBF和TIBF处理数据额能力。实验环境:3GHz PC with 1 GB 主存。 8.1数据集 由于没有一个已知的数据集,我们生成了类似的合成数据,用检测模型去模拟RFID标签检测。 如果标签和阅读器的距离过远,标签将不能被检测到,随着标签靠近阅读器,标签被检测到的概率和距离成正比,这个区域被称作次检测区域,当标签和阅读器的距离较近时,标签被检测到的概率是恒定的,这个区域被称为主检测区域。 由于我们的目的是检测去重效率,所以假定标签是直线移动的,如图13所示。标签只在出发的时候产生,然后沿着直线移动,移动速度是标签生成时随机分配的,同一时间产生的标签分配的速度相同因为在现实的应用中,标签是一起移动的,标签到达目的地后就会消失,另外,为了提高检出率在检测区内存在多个标签和多个阅读器。我们分别在有一个阅读器和三个阅读器的检测区生成了107, 2×107, 3×107, 4×107, 5×107,和6×107(10的7次方)个元组。之前的数据称为SData 之后的数据称为MData。 8.2 实验结果 8.2.1显示的是根据元数据多少的实验结果,8.2.2显示的是根据空间大小的实验结果。 如图14.15所示为根据元数组大小的实验结果,对于数据SData和MData,BF的processing rate随着元数组的增加而增大,而TBF和TIBF的processing rate恒定。但是SData的processing rate小于MData,因为MData的k值较大(k值较小,在BF中访问的单元就比较小,因而,processing rate较大)。 为了验证算法的有效性,根据元数据量对TIBF,TBF和BF的错误率进行了测评,对于SData数据,如图17所示,BF的错误率更高,对于MData数据,如图17所示,TIBF的错误率都低于0.007%,随着元数组数量的增加,错误率都随之增大。 8.2.2根据空间大小的实验结果。 给定的元组数量为4*107(10的7次方),测定根据空间大小的processing rate 和error rate。如图18,,19所示随着空间的增大,BF,BTF,BITF的processing rate减少。 对于数据SDate,BF的processing rate比BTF和BITF高很多,对于数据MDate,BF的processing rate 比TBF和TBIF也高出一些,这是因为BF中MDate的k值比BTF和BITF中的K值增加的更多。 如图20和21为根据空间大小的错误率结果。随着空间增大BF的错误率保持恒定,而TBF和TIBF的错误率降低。而TIBF的错误率比起其他算法来是最低的,因为BF不能动态改变单元的值,并且元数组的数量越少错误率越高。 8.2.3优化k值 和BF类似,k值也影响TBF和TIBF的错误率,为了测试在第7部分提出来的K值是否有效,从1到10改变k的值去测试错误率,如图22和23所示,给定的空间大小为3*107(10的7次方),元数组数量为3*107(10的7次方),单个圆圈表示用第7部分公式测试的k值,双圆圈表示用BF的公式测试的k值。 实验结果表明虽然第7部分给定的K值不是最优解,但是计算出来的错误率最低。 9.结论 通常,RFID数据流中有大量的重复数据,由于数据是以流的形式产生的,所以要在很小的存储空间上去除重复数据是很困难的,因此,我们提出了近似去重方法,基于BF的TBF和TIBF。根据RFID数据中重复的定义是和检测时间有关的,我们用时间信息的整数代替了BF中的bit,为了降低错误率,TIBF用了时间间隔。最后,实验结果表明,新提出的算法去重的错误率更低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值