Skip to main content
QUICK REVIEW

[论文解读] Self-Index based on LZ77 (thesis)

Sebastian Kreft, Gonzalo Navarro|arXiv (Cornell University)|Dec 20, 2011
Algorithms and Data Compression参考文献 4被引用 4
一句话总结

本论文提出首个基于LZ77的自索引结构,专为高度重复文本设计,采用一种新颖的LZ-End解析方式,实现高效的随机子串提取。该方法在压缩性能上优于RLCSA(最高达2倍),构建速度更快(仅需RLCSA时间的35%,空间仅需60%),且在短模式搜索方面表现更优,整体在重复数据的关键指标上超越当前最先进水平。

ABSTRACT

Domains like bioinformatics, version control systems, collaborative editing systems (wiki), and others, are producing huge data collections that are very repetitive. That is, there are few differences between the elements of the collection. This fact makes the compressibility of the collection extremely high. For example, a collection with all different versions of a Wikipedia article can be compressed up to the 0.1% of its original space, using the Lempel-Ziv 1977 (LZ77) compression scheme. Many of these repetitive collections handle huge amounts of text data. For that reason, we require a method to store them efficiently, while providing the ability to operate on them. The most common operations are the extraction of random portions of the collection and the search for all the occurrences of a given pattern inside the whole collection. A self-index is a data structure that stores a text in compressed form and allows to find the occurrences of a pattern efficiently. On the other hand, self-indexes can extract any substring of the collection, hence they are able to replace the original text. One of the main goals when using these indexes is to store them within main memory. In this thesis we present a scheme for random text extraction from text compressed with a Lempel-Ziv parsing. Additionally, we present a variant of LZ77, called LZ-End, that efficiently extracts text using space close to that of LZ77. The main contribution of this thesis is the first self-index based on LZ77/LZ-End and oriented to repetitive texts, which outperforms the state of the art (the RLCSA self-index) in many aspects. Finally, we present a corpus of repetitive texts, coming from several application domains. We aim at providing a standard set of texts for research and experimentation, hence this corpus is publicly available.

研究动机与目标

  • 解决高度重复文本集合(如版本化文档、DNA序列、维基百科)中高效存储与随机访问的需求。
  • 克服传统自索引依赖固定上下文预测的局限,后者难以捕捉重复数据中的长距离重复模式。
  • 设计一种基于LZ77的自索引,支持随机子串提取与模式搜索,同时空间使用接近压缩后文本的大小。
  • 提出一种新型解析方案LZ-End,以实现LZ77压缩文本的快速且空间高效的随机访问。
  • 构建一个公开可用的重复文本数据集,以标准化该领域实验研究。

提出的方法

  • 提出LZ-End,LZ77的一种变体,仅存储短语的结束位置,从而支持高效的反向遍历,实现随机子串提取。
  • 设计基于LZ-End解析的自索引结构,利用波浪树(wavelet trees)与压缩位图支持反向搜索及秩/select操作。
  • 优化索引构建过程,仅使用RLCSA所需空间的60%与时间的35%,并利用重复数据的可压缩性。
  • 在LCP数组的深度上构建波浪树,以支持高效的范围查询与定位操作。
  • 对波浪树组件使用压缩位图(如RRR压缩)以减少空间开销,同时不牺牲性能。
  • 将索引与新型解析算法集成,理论上支持增量构建与动态更新。

实验结果

研究问题

  • RQ1尽管LZ77本身缺乏随机访问能力,能否使基于LZ77的自索引在随机访问与模式搜索方面具备实用性?
  • RQ2能否设计一种新型LZ77变体(LZ-End),在保持空间效率的同时实现常数时间每字符的提取?
  • RQ3在重复文本上,基于LZ77的自索引与最先进的RLCSA相比,在压缩率、构建时间与查询性能方面表现如何?
  • RQ4能否将自索引的空间开销降低至现有LZ-based索引之下,尤其在高度重复数据中?
  • RQ5能否建立一个标准化的、公开可用的重复文本数据集,以作为未来该领域研究的基准?

主要发现

  • 所提出的LZ-End解析方式可实现每秒超过200万个字符的随机子串提取速度,较标准LZ77快逾一倍。
  • 基于LZ-End的自索引在DNA与维基百科数据集上压缩性能最高达RLCSA的2倍,且空间使用接近压缩文本本身大小。
  • 索引构建速度比RLCSA快35%,空间使用仅为其60%,适用于大规模重复文本集合的高效处理。
  • 短模式(≤10个字符)的搜索速度优于RLCSA,且在长模式下空间/时间权衡更优。
  • 除‘exists’查询外,该索引在所有主要指标上均优于RLCSA,尤其在非存在模式查询中,RLCSA仍更快。
  • 公开发布了来自生物信息学、版本控制与维基百科的重复文本数据集,网址为 http://pizzachili.dcc.uchile.cl/repcorpus.html,以标准化基准测试。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。