收藏 分享(赏)

第五章 索引压缩-韩牧哲.ppt

上传人:ysd1539 文档编号:6973526 上传时间:2019-04-29 格式:PPT 页数:24 大小:1.50MB
下载 相关 举报
第五章 索引压缩-韩牧哲.ppt_第1页
第1页 / 共24页
第五章 索引压缩-韩牧哲.ppt_第2页
第2页 / 共24页
第五章 索引压缩-韩牧哲.ppt_第3页
第3页 / 共24页
第五章 索引压缩-韩牧哲.ppt_第4页
第4页 / 共24页
第五章 索引压缩-韩牧哲.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、第五章 索引压缩,2014-4-2,章节框架,词项统计特性1.Heaps定律2.Zipf定律 词典压缩1.长字符串和词项指针2.按块存储3.前端编码 倒排记录表压缩1.可变字节编码2.编码,索引压缩的对象,IR中两个主要的数据结构:,索引压缩的意义,1.节省磁盘空间目标:达到1:4的压缩比例 2.增加高速缓存技术的利用率目标:把常用的条目放入内存存储,减少系统应答时间 3.加快数据从磁盘到内存的传输速度目标:结合高效的解压缩算法提高系统运行速度,本章介绍的解压算法都很高效,可以达到以上目标 索引压缩通常是无损压缩,有损压缩技术在预处理阶段介绍(2.2),本章所用语料库,存储所有的(词项ID,文

2、档ID)对需要1.28GB 初步处理后的文档集大小为960MB 未压缩的文档集词典存储空间为11.2MB 未压缩的倒排记录表大小为250MB,初步处理后的语料库,Heaps定律词项数目的估计,词项数目的估计:Heaps定律 M = kTbM 是词汇表大小, T 是文档集的大小(文档集合中所有词条的个数,即所有文档大小之和) 参数k 和b 的一个经典取值是: 30 k 100 及 b 0.5.Heaps定律通过文档集合中的词条数来估计词汇表大小,词汇表大小会随着文档集的大小增长而增长!Heaps定律结论: 随着文档数目的增加,词汇量会持续增长而不会稳定到一个最大值。 大规模文档集的词汇量也会非常

3、大。,Zipf定律对词项的分布建模,在自然语言的语料库里,一个单词出现的频率与它在频率表里的排名成反比。词项分布的估计:Zipf定律 cfi (1/i)如果出现最多的词项的出现次数是 cf1的话,出现第二多的词项的出现次数就是 cf1的一半,出现第三多的词项出现次数会是 cf1的 1/3,其余均可依此类推。注:cfi 是文档频率(collection frequency): 词项ti在所有文档中出现的次数(不是出现该词项的文档数目df),词典压缩,词典压缩的目的:将词典放入内存 传统的词典存储方式:定长数组,M*(20+4+4)=400000*28=11.2MB,大量存储空间被浪费,即使是长度

4、为1的词项,我们也分配20个字节;不能处理长度大于20字节的词项;而英语中每个词项的平均长度为8个字符;能否对每个词项平均只使用8个字节来存储?,将词典看成单一字符串,M*(平均长度+文档频率+倒排记录表指针+词项指针) =400000*(8+4+4+3)=7.6MB,按块存储,M*(平均长度+文档频率+倒排记录表指针+长度标记+词项指针/k) =400000*(8+4+4+1+3/4)=7.1MB K越大,压缩率越高,但是会牺牲查找速度。,每k个词项为一组,每组保留一个词项指针,每词项前用一个字节标记长度。,平均时间= 查询所需步数/结点个数当所取的k趋于最大,以把词典压缩到最小值: 400

5、000*(4+4+1+8)=6.8MB 此时词典的查找速度会变得非常慢K的选取必须在压缩和词项查找速度之间保持某种平衡,按块存储+前端编码,M*(平均长度+文档频率+倒排记录表指针+长度+前缀+词项指针/k) =400000*(4+4+4+1+1+3/4)=5.9MB,词典压缩总结,倒排记录表压缩,倒排记录表空间远大于词典,至少10倍以上 压缩关键:对每条倒排记录进行压缩 目前每条倒排记录表中存放的是docID. 对于Reuters RCV1(800,000篇文档), 当每个docID可以采用4字节(即32位)整数来表示 目标: 压缩后每个docID用到的位数远小于20比特 改进要点:采用变长

6、编码方法对间距进行编码。 1.按字节压缩可变字节编码 2.按位压缩编码,可变字节编码Variable Byte coding,设定一个专用位 (高位) c作为延续位(continuation bit)。 如果间隔表示少于7位,那么c =1,将间隔编入一个字节的后7位中; 否则,将低7位放入当前字节中,并将c 置 0,剩下的位数采用同样的方法进行处理,最后一个字节的c置1(表示结束)。,VB编码算法,VB解码算法,通过VB编码压缩,可以使语料库索引压缩到116MB,压缩率超过50%。 编码单位的长短和压缩率成反比,和所需的位操作次数成正比。 以字节为单位的压缩率和解压速度之间提供了一个很好的平衡

7、点。,编码Elias Gamma coding,一元编码:n的一元编码是在n个1后面加1个0. 编码:分别用长度length和偏移offset表示文档间距G。 G的偏移实际上是G的二进制编码,但是其前端的1被去掉。 G的长度是指偏移的长度,用一元编码来表示。,偏移部分是 log2 G 位,长度部分需要 log2 G + 1 位; 因此,全部编码需要2log2 G + 1位, 编码的长度均是奇数。,编码的性质,通用性编码: 理想情况下,G的最优编码长度为log2G。而编码的长度近似于它的2倍。在离散的概率分布情况下,经过演算,编码方式同样能够达到最优编码长度的2倍左右。编码可以适用于任何分布。

8、前缀无关性: 一个编码不会是另一个编码的前缀,亦即是对于一个编码的序列来说,只能有唯一的解码结果,不需要对编码进行切分。 参数无关性: 编码方式无需对模型的参数进行拟合使之适应于索引中间距的分布情况。,运用Zipf定律估算编码的压缩率,得出预期数字224MB。 但是由于Zipf定律对实际估计有偏差且文档间距不满足均匀分布, 实际中编码可以把倒排记录表压缩到101MB,大约是为压缩前的1/10.,编码的压缩率,编码的对齐问题,在Reuters-RCV1语料库中,编码技术能够获得比可变字节编码高15%的压缩率 机器通常有字边界 8, 16, 32 位 按照位进行压缩或其他处理可能会较慢 可变字节码通常按字边界对齐,因此可能效率更高 除去效率高之外,可变字节码虽然额外增加了一点点开销,但是在概念上也要简单很多,总结,现在我们可以构建一个空间上非常节省的支持高效布尔检索的索引,大小仅为文档集中文本量的10-15%。 然而,这里我们没有考虑词项的出现位置和频率信息,因此,实际当中并不能达到如此高的压缩比。,谢谢观赏,

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

当前位置:首页 > 建筑环境 > 建筑资料

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


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

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

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