第6讲 索引压缩 Index compression 授课人:高曙明

Slides:



Advertisements
Similar presentations
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
Advertisements

一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
DOC 推廣活動 月餅星光大道. 中秋  農曆八月十五日,是中國傳統的中秋節。 古人將一年分成春夏秋冬四季,而一季又 分為孟、仲、季三月,八月是仲秋之月, 而十五又是這個月中間的一天,正處在秋 季的正中,所以把八月十五稱為「中秋」 或「仲秋」。  中秋夜,月亮最圓,月色最美,因此人們 把月圓看成是團圓的象徵,同時也稱八月.
中 五 級中 五 級 戰後國共關係 與 中華人民共和國成立 中國歷史科 1 )認識國共政治協商的概況 2 )認識國共內戰的概略經過及結果 3 )中華人民共和國成立.
不吃早餐的影響: 體內的葡萄糖無法 足夠供應給大腦與 肌肉,會感覺疲勞, 注意力無法集中。。 營養的早餐:乳品 + 全榖類食品 + 蛋白質 + 水果 早餐你吃了嗎?
信息检索与 Web 搜索 第 2 讲 布尔检索 Boolean Retrieval 授课人:高曙明 * 改编自 “ 现代信息检索 ” 网上公开课件( )
第5讲 索引构建 Index construction 授课人:高曙明
人文地理專題研究 王志明.
2014年爱婴医院复核方案解读 省卫生计生委妇幼处 邱灵.
导言 第四 单元 凡尔赛—华盛顿体系与第二次世界大战
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
社團經費申請 及核銷相關規定 製作:世新大學會計室.
会计实验.
“卓越工程师”培养的质量保障体系构建探索
土地出让转让的政策与实务 岳晓武 国土资源部利用司.
老師:鍾郁芬 老師 指導 組長:陳欣怡 組員:曾郁雯 倪敏富 王宣化 簡宏倫 黃郁涵
题目回顾 泉水在地下蓄积,一旦有机会,它便骄傲地涌出地面,成为众人瞩目的喷泉,继而汇成溪流,奔向远方。但人们对地下的泉水鲜有关注,其实,正是因为有地下那些默默不语的泉水的不断聚集,才有地上那一股股清泉的不停喷涌。 请根据你对材料的理解和感悟,自选一个角度,写一篇不少于800字的文章,文体自定,标题自拟。要求:立意明确,不要套作,不得抄袭。
广 东 技 术 师 范 学 院 美术学院 装潢专业 2012级(3)班 郑可珊
第十九章 散文 教学要求: 了解散文的含义、分类、特点,学习写作抒情散文。 重点: 散文的特点,散文的写作。 难点: 散文的写作训练。
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
农机化项目管理培训会 柳州市农机局 郑崇宁
一二·九运动                                                                    0712班.
中小学教育科研课题的选择 王典伟.
小学生游戏.
出口农产品风险管理 企业分类及监督管理表格
倒排检索构建 主讲人:陈文亮 苏州大学计算机学院.
● 四 (2)班 家 长 网络交 流 会 ● 快乐成长 与您 共享 家庭 学校 社会.
学科科研工作与科研 奖励政策解读讲座 朱文斌 博士 教授 2015年9月8日.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第九章 字符串.
如何使用CiteSpace分析Derwent专利数据
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
存储系统.
数 控 技 术 华中科技大学机械科学与工程学院.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
DM8148与DM8127 ISS框架讲解 广州创龙电子科技有限公司
逆向工程-汇编语言
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
Windows 7 的系统设置.
工业机器人技术基础及应用 主讲人:顾老师
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
本节内容 字符编码 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
线段的有关计算.
顺序表的删除.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
VB与Access数据库的连接.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.16 枚举算法及其程序实现 ——数组的作用.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
《偏微分方程》第一章 绪论 第一章 绪论 1.1.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第6讲 索引压缩 Index compression 授课人:高曙明 信息检索与Web搜索 第6讲 索引压缩 Index compression 授课人:高曙明 *改编自“现代信息检索”网上公开课件(http://ir.ict.ac.cn/~wangbin)

索引压缩 什么是索引压缩? 压缩分类: 是指用较少的比特存储原始索引数据 无损压缩:压缩之后所有原始信息都被保留 有损压缩:压缩之后会丢掉一些信息 2

为什么要压缩? 大规模文档集的索引数据巨大,进行压缩具有以 下优点: 减少磁盘空间 (节省开销) 加快从磁盘到内存的数据传输速度 (加快检索速度) [读压缩数据到内存+在内存中解压]比直接读入未压缩数据要 快很多 前提: 解压速度很快 增加内存存储内容 (加快检索速度) 比如,可以尽可能将词典放入内存 3

样本文档集 Reuters RCV1 原始统计数据 词项的统计特性分析 N L M T 文档数目 每篇文档的词条数目 词项数目(= 词类数目) 每个词条的字节数 (含空格和标点) 每个词条的字节数 (不含空格和标点) 每个词项的字节数 无位置信息索引中的倒排记录数目 800,000 200 400,000 6 4.5 7.5 100,000,000 样本文档集 Reuters RCV1 原始统计数据 4

预处理对词典大小和无位置信息倒排记录数目影响很大! 预处理后的统计数据 预处理对词典大小和无位置信息倒排记录数目影响很大! 5

词项数目的估计—Heaps定律 Heaps定律: M = kTb M 是词汇表大小, T 是文档集的大小(所有词条的 个数) 参数k 和b 的一个经典取值是: 30 ≤ k ≤ 100 及 b ≈ 0.5. Heaps定律在对数空间下是线性的 推论:词汇表大小会随着文档集的大小增长而增长! 6

Heaps定律在RCV1上的表现 k = 101.64 ≈ 44 b = 0.49 图中通过最小二乘法拟合出 的直线方程为: log10M =0.49 ∗ log10T + 1.64 即:M = 101.64T 0.49 k = 101.64 ≈ 44 b = 0.49 7

词项的分布 — Zipf定律 Zipf定律: cfi 是第 i 常见的词项ti的文档集频率(collection frequency), 即词项ti在所有文档中出现的次数 于是,如果最常见的词项(the)出现cf1 次,那么第二常见 的词项 (of)出现次数为 第三常见的词项 (and) 出现次数为 另一种表示方式: cfi = cik 或 log cfi = log c +k log i (k = −1) 8

Zipf定律在RCV1上的表现 拟合度不是非常高 但可以发现: 高频词项很少, 低频罕见词项很多 9

词典压缩 进行词典压缩的必要性: 最好能将词典放入内存,以提高查询效率 满足一些特定领域特定应用的需要,如手机、 机载计算机上的应用 保证快速启动 与其他应用程序共享资源 10

定长数组方式下的词典存储 空间需求: 20 字节 4 字节 4 字节 空间需求: 20 字节 4 字节 4 字节 对Reuters RCV1语料: (20+4+4)*400,000 = 11.2 MB 11

定长方式的不足 英语中每个词项的平均长度为8个字符 因此,对所有词项采用固定的20个字节存储造成 空间浪费 即使是长度为1的词项,我们也分配20个字节 不能处理长度大于20字节的词项,如 HYDROCHLOROFLUOROCARBONS SUPERCALIFRAGILISTICEXPIALIDOCIOUS 理想方案:对每个词项平均只使用8个字节来存储 12

基于单一字符串的压缩方法 将整部词典作为一个字符串存储 每个词项存一个定位指针 两指针之间的字符构成一个词项 13

单一字符串方式下的空间消耗 每个词项的词项频率需要4个字节 每个词项指向倒排记录表的指针需要4个字节 每个词项平均需要8个字节 指向字符串的指针需要3个字节 (8*400000个位置需 要log2(8 * 400000) < 24 位来表示) 空间消耗: 400,000 × (4 +4 +3 + 8) = 7.6MB (而定 长数组方式需要11.2MB) 14

将长字符串中的词项进行分组变成大小为k的块(即k个词项为一组) 按块存储的压缩方法 每个块存一个指针 字符串中存词项的 长度 以k=4个词项为一 块,则每个词项节 省12B-7B=5B 整个词典节省 0.5MB 将长字符串中的词项进行分组变成大小为k的块(即k个词项为一组) 15

两种方式下的词项查找 二分查找 先二分查找,再线性查找(在块内部) 16

前端编码技术(Front coding) 基本思想:通过省略词项之间公共前缀实现压缩 举例 按块存储压缩后的某个块 (k = 4) ⇓ 8 a u t o m a t a 8 a u t o m a t e 9 a u t o m a t i c 10 a u t o m a t i o n ⇓ . . . 可以采用前端编码方式继续压缩为: 8 a u t o m a t ∗ a 1 ⋄ e 2 ⋄ i c 3 ⋄ i o n 17

Reuters RCV1词典压缩情况总表 18

倒排记录表压缩 问题分析 主要存储内容:doc ID 需要采用多少位表示 doc ID? 对于Reuters RCV1,可以采用log2 800,000 ≈ 19.6 < 20 位来表示每个docID 如何压缩 doc ID 的表示? 19

采用间隔编码的压缩方法 倒排记录表的一个特点: doc IDi+1=doc IDi +(doc IDi+1- doc IDi ) 自第二个记录开始,可以只存储间隔 通常间隔较小(特别是高频词) 显然,对doc ID 采用间隔编码可以压缩空间 20

变长编码 目标 为了实现上述目标,需要设计一个变长编码(variable length encoding) 对于 ARACHNOCENTRIC 及其他罕见词项, 对每个间 隔仍然使用20比特 对于THE及其他高频词项,每个间隔仅仅使用很少的 比特位来编码 为了实现上述目标,需要设计一个变长编码(variable length encoding) 可变长编码对于小间隔采用短编码而对于长间隔采用 长编码 21

可变字节(VB)码 基本思想:利用整数个字节对间距编码,字节的 数目根据具体的间距确定,一个表中的所有倒排 记录作为一字节流存放 举例 被很多商用/研究系统所采用 22

VB 编码算法 将字节的第一位设置为延续位,用于标识间距编码的结束 如果间隔表示少于7比特,那么c 置 1,将间隔编入一个字节 的后7位中 否则:将低7位放入当前字节中,并将c 置 0,剩下的位数采 用同样的方法进行处理,最后一个字节的c置1(表示结束) 23

VB编码的解码算法 24

ϒ编码 是一种基于位的变长编码 最简单的位编码:一元码 将 n 表示成 n 个1和最后一个0 比如: 3的一元码是 1110 40的一元码是 11111111111111111111111111111111111111110 70的一元码是: 1111111111111111111111111111111111111111111111111 1111111111111111111110 25

ϒ编码方法 将G 表示成长度(length)和偏移(offset)两部分 偏移对应G的二进制编码,只不过将首部的1去掉 长度部分给出的是偏移的位数 长度部分采用一元编码: 1110 举例: 13的ϒ编码 13 → 1101 → 101 = 偏移 G=13 (偏移为 101), 长度部分为 3 13的整个ϒ编码是1110101 26

ϒ编码的例子 27

ϒ编码的长度 偏移部分是 ⌊log2 G⌋ 比特位 长度部分需要 ⌊log2 G⌋ + 1 比特位 ϒ 编码的长度均是奇数 ϒ 编码在最优编码长度的2倍左右 28

ϒ 编码的性质 ϒ 编码是前缀无关的,从而保证了解码的唯一性。 编码在最优编码的2或3倍之内 上述结果并不依赖于间隔的分布,是通用性 (universal)编码 ϒ 编码是无参数编码,不需要通过拟合得到参数 29

ϒ 编码的对齐问题 机器通常有字边界 – 8, 16, 32 位 按照位进行压缩或其他处理可能会较慢 可变字节码通常按字边界对齐,因此可能效率 更高 除去效率高之外,可变字节码虽然额外增加了 一点点开销,但是在概念上也要简单很多 30

Reuters RCV1索引压缩总表 31

参考资料 《信息检索导论》第5章 http://ifnlp.org/ir 有关字对齐二元编码的原文Anh and Moffat (2005); 及 Anh and Moffat (2006a) 有关可变字节码的原文Scholer, Williams, Yiannis and Zobel (2002) 更多的有关压缩 (包括位置和频率信息的压缩)的细 节参考Zobel and Moffat (2006) 32

课后作业 见课程网页: http://www.cad.zju.edu.cn/home/smgao/IR