共有辞書を用いた 効率の良い圧縮アルゴリズム

第156回 データベースシステム研究会,
2012.12.12, 京都
共有辞書を用いた
効率の良い圧縮アルゴリズム
Variable-to-Fixed-Length Encoding for Large Texts
Using a Re-Pair Algorithm with Shared Dictionaries
†
†
†
†
◎ 関根 渓 , 笹川 裕人 , 吉田 諭史 , 喜田 拓也
†
北海道大学大学院情報科学研究科
1
第156回 データベースシステム
研究会, 2012.12.12, 京都
背景:巨大なデータ
 計算機上で扱うデータの巨大化
動画
画像
文章
音楽
容量が足りない
時間がかかる
 データ圧縮は非常に重要
2
第156回 データベースシステム
研究会, 2012.12.12, 京都
背景:文法圧縮
 近年,文法圧縮に注目が集まっている.
 データを一意に生成する文法を構築し,その文法
を符号化する圧縮手法.
 データの文脈を捉えられる.
 代表的な文法圧縮アルゴリズム
 Re-Pair [Larsson and Moffat 1999]
 Re-Pair-VF [Yoshida and Kida 2012]
 SEQUITUR [Nevill-Manning et al. 1994]
 BPE [Gage 1994]
3
第156回 データベースシステム
研究会, 2012.12.12, 京都
Re-Pair-VF アルゴリズム
 最頻出の2-gramを新しい記号で置き換えていく.
ENOOOBOEOOOBEEOOOB
F → OO
ENFOBOEFOBEEFOB
Dictionary
4
第156回 データベースシステム
研究会, 2012.12.12, 京都
Re-Pair-VF アルゴリズム
 全ての2-gramがユニークになったら変換終了
𝑇: ENOOOBOEOOOBEEOOOB
ENFOBOEFOBEEFOB
ENABOEABEEAB
ENCOECEEC
圧縮
伸展
Dictionary
F → OO
A → FO
C → AB
D → EC
ENCODED
固定長符号で符号化
可変長符号で符号化
5
第156回 データベースシステム
研究会, 2012.12.12, 京都
Re-Pair-VF アルゴリズム
 利点
 圧縮率がよい.(gzipを超える)
 圧縮テキストが扱いやすい.
(圧縮パターン照合が高速に出来る)
 欠点
 メモリ消費が激しい.(入力テキスト
の10~20倍)
6
第156回 データベースシステム
研究会, 2012.12.12, 京都
Re-Pair-VF アルゴリズム
Original Text
大きすぎて
メモリに乗らない
Re-Pair-VF
Dictionary
Compressed Text
7
第156回 データベースシステム
研究会, 2012.12.12, 京都
対策:テキストのブロック化
Text1
Original Text
Text2
Text3
テキストを分割
(ブロック化)
Text4
省メモリ化
Re-Pair-VF
Dic1
Dic2
Dic3
Dic4
Comp1
Comp2
Comp3
Comp4
出力される辞書の一部が同じエントリを持ってしまう.
(予備実験では,各ブロックで30%程度の2-gramの重複を確認)
8
第156回 データベースシステム
研究会, 2012.12.12, 京都
対策:辞書の共有化
Text1
Text2
Text3
Original Text
Text4
テキスト全体に頻出する
2-gramを共有する辞書
Re-Pair-VF
Shared
DIC
Local
DIC1
Local
DIC2
Local
DIC3
Local
DIC4
Compressed Text
各ブロック特有の2-gram
に関する辞書
9
第156回 データベースシステム
研究会, 2012.12.12, 京都
研究目的と主結果
目的
 Re-Pair-VFに対し,入力テキストのブロッ
ク化と辞書の共有化を行った際の効果を調査
する.
結果
 改良アルゴリズムBlocked-Re-Pair-VFを考
案,計算機実験によりその有用性を示した.
 辞書の共有化により圧縮率と圧縮時間がわずかに
改善.
 省メモリ化により大規模テキストに適用可能に.
 bzip2に匹敵する圧縮率(約30%)を達成.
10
第156回 データベースシステム研究会, 2012.12.12,
京都
提案手法:Blocked-Re-Pair-VF
 入力:辞書サイズ𝐷,共有辞書サイズ𝑆,ブロックサイズ𝐵,テ
キスト𝑇
𝐵
 出力:辞書ファイル,圧縮テキスト
Text1
Text2
Text3
Text4
Re-Pair-VF
𝑆
𝐷
Shared Dic
replace
Dic1
Local Dic1
Text2’
Re-Pair-VF
Text3’
以下同様
Re-Pair-VF
Local Dic2
Local Dic3
Comp2
Comp3
Comp1
11
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験1
 目的
 Blocked-Re-Pair-VF において,ブロック化による実
行時メモリ消費および辞書の共有化による圧縮パ
フォーマンス(圧縮率,圧縮時間)を調査する.
 方法
 Blocked-Re-Pair-VF において,辞書サイズ𝐷と,共有
辞書サイズ𝑆,ブロックサイズ𝐵の3つのパラメータを
変化させながら,圧縮時間と圧縮率を計測.
 データ
 大きさ約2.2GB,アルファベットサイズ239の英文テ
キストデータ( “english” from Pizza & Chili
corpus)
13
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験1-1:辞書の共有化による効果
 圧縮時間の変化
 辞書サイズ 𝐷 = 220
675
圧
縮 650
時
ブロックサイズ𝐵
625
32MB
間
( 600
秒
) 575
64MB
128MB
0/8
1/8
2/8
3/8
4/8
5/8
6/8
7/8
共有辞書サイズS
 辞書の共有化によりわずかに圧縮時間が改善
 ローカル辞書生成時間が短くなるため
14
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験1-1:辞書の共有化による効果
 圧縮率の変化
 辞書サイズ 𝐷 = 220
36
圧 34
縮
ブロックサイズ𝐵
率 32
(
% 30
)
32MB
64MB
128MB
28
0/8
1/8
2/8
3/8
4/8
5/8
6/8
7/8
共有辞書サイズS
 辞書の共有化によりわずかな改善が見られた
15
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験1-2:メモリ消費量の比較
 Re-Pair-VF
 データ:englishの先頭200MB
 圧縮率 (%):30.9
 圧縮時間 (秒):62.13
 メモリ消費 (MB):2656.256
 Blocked-Re-Pair-VF
 辞書サイズ 𝐷 = 220 ,共有辞書サイズ 𝑆 = 1/2
 データ:english 全体(約2.2GB)
ブロックサイズ𝐵 (MB)
32
64
128
圧縮率(%)
33.55 31.91 30.66
圧縮時間(秒)
618.8 635.3 654.1
メモリ消費(MB)
627
1207
2358
16
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験2
 目的
 既存の圧縮手法とBlocked-Re-Pair-VFの圧縮パフォー
マンス(圧縮率,圧縮時間,伸展時間)を比較する.
 手法





Blocked-Re-Pair-VF(提案手法)
gzip
bzip2
ppmd
lzma
 データ
 大きさ約2.2GB,アルファベットサイズ239の英文テ
キストデータ( “english” from Pizza & Chili
corpus)
17
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験2:既存手法との比較
圧縮率
50
圧 40
縮 30
率
( 20
%
10
)
0
提案手法はbzip2に匹敵する圧縮率(約30%)を達成.
(このとき 𝐷 = 220 , 𝐵 = 128MB, 𝑆 = 1/2)
18
第156回 データベースシステム
研究会, 2012.12.12, 京都
実験2:既存手法との比較
圧縮時間と伸展時間
800
(2266.51)
時 600
間
400
(
秒 200
)
0
圧縮時間
伸展時間
 提案手法は,圧縮時間は遅いが,伸展時間は速い.
 伸展せずに処理を行うことを仮定すれば既存手法と同
等の有用性がある.
19
第156回 データベースシステム
研究会, 2012.12.12, 京都
まとめ
 結果
 大規模テキストに対して,VF符号による圧縮を行うた
めのアルゴリズムであるBlocked-Re-Pair-VFを提案.
 辞書の共有化によって,圧縮率が5%程度改善した.
 圧縮率をほとんど悪化させずメモリ消費量を低減.
 適切なパラメータにおいて,bzip2並の圧縮率を達成.
 今後の展望
 適切なパラメータの動的な決定法を提案.
 共有辞書の作成方法の工夫.
20