知识卡片

索引压缩的全局模型与局部模型之争

普通读书笔记卡 · 1225.e

内容

压缩倒排列表时可以用同一套参数处理全部词(全局模型),也可以让每个词的参数按自己出现频率单独调整(局部模型)。全局模型(如γ、δ编码)实现简单、解码快;局部模型(如Golomb编码,用每个词自身频率算最优参数b)能更精确贴合”高频词间隔小、低频词间隔大”的规律,但要为每个列表额外存参数、解码多算一步。经验结论是局部模型收益通常超过额外开销,Golomb编码因此成为默认选择。

参考来源

- 位置:第3章《索引》「全局方法与局部方法」小节(源文件:_chapter-text/ch03.txt) - 结论依据:原文明确区分全局方法(同一模型压缩全部列表)与局部方法(按术语参数调整),并说明局部模型压缩效果更优但解码更慢,Golomb编码是首选局部贝努里方法,直接支持卡片论点。 - 原始内容:"我们大略地将这些模型归为两类,一是全局方法,每个倒排列表使用同一常用模型进行压缩;二是局部方法,每个术语的压缩列表的压缩模型根据某些存储的参数可以调整。局部模型在压缩效果方面优于全局模型,但在解压过程中所耗费的时间方面劣于全局模型……对大部分的应用目的来说,最合适的索引压缩方法是局部贝努里方法,使用Golomb编码技术来实现。"