• 検索結果がありません。

透過的データアクセスを実現する新しいデータ圧縮法

N/A
N/A
Protected

Academic year: 2021

シェア "透過的データアクセスを実現する新しいデータ圧縮法"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

2013年度 ERATO秋のWS

ブロック間の辞書共有による

Re-Pairアルゴリズムの

大規模テキスト圧縮への適用

北海道大学大学院情報科学研究科 コンピュータサイエンス専攻

喜田拓也

1 2013/09/13 登別温泉 第一滝本館 本館会議室

(2)

2

研究の背景と目的

・気象衛星データ ・航空写真データ Internet SNS ・市民からの情報提供 ・市民への道路情報の提供 GPSログ・ライフログデータ GPS ・GPSログ ・ライフログ

UGC(User Generated Content)データ

リモートセンシングデータ オープン・スマート・フェデレーション・ アーキテクチャ 多種多様で大量なストリームデータを取り扱わなければならない RDBに格納して索引付けするほど個々のデータは重要ではないし,重複も多い データ検索やデータ解析時に再利用しやすいデータ圧縮方式の開発 クラウド Big Data

(3)

∗ 元のデータにおける長さの異なる部分系列に対して, 固定長の符号を割り当てる符号化方式 ∗ 利点: 符号語の境界が明確なので,圧縮データへの アクセスが容易 ∗ 欠点: 可変長符号に比べて,圧縮率を向上させることが 難しい 3

可変長

-固定長符号化(VF符号)

文法圧縮

データを高度に モデル化

VF符号化

アクセスしやすい 符号系列 圧縮率とアクセシビリティの両立!

(4)

VF符号について

∗ 今の主流の圧縮法は,ほぼVV符号 ∗ VF符号は符号語が固定長で,圧縮率を上げにくい ∗ 既存の手法で実用的に使われているものは皆無 圧縮テキスト(符号語) 固定長 可変長 入力テキスト (情報源記号) 固定長

FF符号

(Fixed length to Fixed length code) (Fixed length to

FV符号

Variable length code)

可変長

VF符号

(Variable length to Fixed length code)

VV符号

(Variable length to Variable length code)

ハフマン 符号など

(5)

∗ 既存手法の問題点: 既存手法は,データ量の削減効率 のみに主眼が置かれているため,データの再利用には 必ず復元の手間がかかる.

5

関連研究

Amir & Benson ‘92 Kida et al.’98, ’99, ’00

Kieffer & Yang ‘00 Larsson & Moffat ‘99

Brisaboa et al. ’03, ‘10 Kida ’09, ‘10 Tunstall ‘67

Klein & Shapira ‘08

Yoshida & Kida ‘12

圧縮照合処理の幕開け 実用的な圧縮照合法 Dence coding系データ圧縮 Re-Pair:超高圧縮 文法圧縮の幕開け 可変長-固定長符号の始祖 Suffix treeを用いたVF符号 効率よいSTVF符号 文法圧縮とVF符号の組み合わせ ∗ 独自技術: テキストデータにおいて,データ圧縮の効率 を保ちつつ,データを復元することなしにキーワード検索 等の処理を高速に行えるデータ圧縮技術を持つ.

(6)

Grammar-based compression

ABDABCABCCABDABC E → ABC F → ABDE FECF 0101110011101 000011100・・・ Input text Grammar Compressed text

Encode the grammar

Construct a (context free) grammar that generates

(7)

Replace most frequent bigram into a new symbol

Re-pair algorithm

dictionary

D → AA

E → DA

F → EB

G → CF

Encode with

variable length code

(a Huffman variation) 7

(8)

sum: bits

(

2s+ n

)

log

(

s + Σ

)

AADAEBCFGEFFIGHI EIKJBCEFICEK

s

n s + 2

The number of sort of symbols: s + Σ

We need bits for each symbol. log

(

s + Σ

)

Compressed sequence: Dict. D → AA E → DA G → CF F → EB H → GE I → FF K → HI J → IG EIKJBCEFICEK

Calculate this value for each substitution to store the size of dictionary that gives the highest compression ratio.

(9)

Dictionary D → AA E → DA G → CF F → EB H → GE I → FF K → HI J → IG

Compressed sequence:

EIKJBCEFICEK

AADAEBCF EFFGEFFFFFFGBCEFFFCEGEFF

Compressed sequence by the best dictionary:

EFFGEFFFFFFGBCEFFFCEGEFF

expand this part

9

(10)

Re-Pair-VF[Yoshida&Kida2013]

0 10 20 30 40 50 60 70 80 dazai.utf.txt dblp2003.xml gbhtg119 reuters21578 Co m pr es sio n ratio ( % ) Re-Pair-VF best Re-Pair-VF Re-Pair Tunstall STVF gzip よく知られたgzipという圧縮ツールよりも圧縮率が良い

(11)

11

新聞記事

(reuters21578)上の検索速度

0 50 100 150 200 0 10 20 30 40 50 Thr oug hp ut ( M B /s ec) Pattern length Re-pair-VF best Tunstall gzip

(12)

Text

CompText

Dictionary

Re-Pair-VF:

O(n)だがオフライン的

GBを超える テキストには 適用が難しい

Re-Pair-VF の問題点

(13)

Text Re-Pair-VF 13

Dic1

Comp1

Dic2

Comp2

Dic3

Comp3

Dic4

Comp4 出力される辞書の一部が同じエントリを持ってしまう. (予備実験では,各ブロックで30%程度の2-gramの重複を確認)

対策1:テキストのブロック化

Text4 Text3 Text2 Text1

(14)

対策2:辞書の共有化

- Re-Use

Text4 Text3 Text2 Text1 Local Dic1 Comp1 Replace Text2’ Local Dic2 Comp2 Re-Pair-VF Text3’ Local Dic3 Comp3 Re-Pair-VF Text1’ Shared DIC Re-Pair-VF 以下同様

(15)

Text1 Text2 Text3 Text4 𝐵 Re-Pair Shared DIC 𝑆

Re-Use (1stBlock)

(16)

Text1 Text2 Text3 Text4 𝐵 𝑐 Re-Pair Shared DIC 𝐶

Sampling & Merge

𝑆

(17)

Text1 𝑐 Re-Pair Shared DIC 𝐶

Sampling & Merge

𝑆

(18)

∗ 注目ブロックが変わる度に自動的に辞書を更新 有用なルールを抽出 ERATO合宿 Text1 Text2 DIC1 Comp1 SDIC2 Replace Text2’ Local Dic2 Comp2 Re-Pair-VF Re-Pair-VF 以降繰り返し

Adaptive-Dictionary-Sharing (ADS)

(19)

∗ 辞書の更新(Extraction)フェイズ 𝐷𝑛: 辞書エントリを格納する配列,𝐿: エントリ数,𝑙: 符号語長,𝑡: 閾値 ERATO合宿 DIC 𝒏 Re-Pair-VF ・・・ A→ab B→Aa C→cB X→Dy Y→zH Z→KY ・・・ ock 𝑛 − 1 𝐷𝑛[0] 𝐷𝑛[1] 𝐷𝑛[2] ・・・ 𝐷𝑛[𝐿 − 2] 𝐷𝑛[𝐿 − 1] 𝐷𝑛[𝐿] (𝐿 = 2𝑙)

Check the numbers

Block 𝑛 Block 𝑛 + 1 ・・・

Entry’s State: Previous

①前ブロックで構築した辞書の各ルールの, 次ブロックにおける出現数を調べる.

(20)

ERATO合宿 DIC 𝒏 Re-Pair-VF A→ab B→Aa C→cB X→Dy Y→zH Z→KY ・・・ 𝐷𝑛[0] 𝐷𝑛[1] 𝐷𝑛[2] ・・・ 𝐷𝑛[𝐿 − 2] 𝐷𝑛[𝐿 − 1] 𝐷𝑛[𝐿] (𝐿 = 2𝑙) A→ab B→Aa NULL X→Dy NULL NULL ・・・ SDIC 𝒏+1 Share Share Share Discard Discard Discard ・・・

ock 𝑛 − 1 Block 𝑛 Block 𝑛 + 1 ・・・

②出現数が閾値𝒕以上のルール を次ブロックの辞書のエント リとして引き継ぎ, 𝒕未満のルールを破棄.

ADSの辞書更新アルゴリズム

∗ 辞書の更新(Extraction)フェイズ 𝐷𝑛: 辞書エントリを格納する配列,𝐿: エントリ数,𝑙: 符号語長,𝑡: 閾値

(21)

ERATO合宿 21 DIC 𝒏 Re-Pair-VF A→ab B→Aa C→cB X→Dy Y→zH Z→KY ・・・ 𝐷𝑛[0] 𝐷𝑛[1] 𝐷𝑛[2] ・・・ 𝐷𝑛[𝐿 − 2] 𝐷𝑛[𝐿 − 1] 𝐷𝑛[𝐿] (𝐿 = 2𝑙) A→ab B→Aa NULL X→Dy NULL NULL ・・・ SDIC 𝒏+1 Share Share Share Discard Discard Discard ・・・

ock 𝑛 − 1 Block 𝑛 Block 𝑛 + 1 ・・・

Replace

Text 𝑛 + 1

Shared

Entry’s State: Previous

③引き継いだルールで 次ブロックの置き換えを行い, 半圧縮テキストを得る.

ADSの辞書更新アルゴリズム

∗ 辞書の更新(Extraction)フェイズ 𝐷𝑛: 辞書エントリを格納する配列,𝐿: エントリ数,𝑙: 符号語長,𝑡: 閾値

(22)

ERATO合宿 DIC 𝒏 Re-Pair-VF A→ab B→Aa C→cB X→Dy Y→zH Z→KY ・・・ 𝐷𝑛[0] 𝐷𝑛[1] 𝐷𝑛[2] ・・・ 𝐷𝑛[𝐿 − 2] 𝐷𝑛[𝐿 − 1] 𝐷𝑛[𝐿] (𝐿 = 2𝑙) A→ab B→Aa C→AA X→Dy Y→XK Z→GY ・・・ SDIC 𝒏+1 Share Share Share Discard Discard Discard ・・・

ock 𝑛 − 1 Block 𝑛 Block 𝑛 + 1 ・・・

Replace Text 𝑛 + 1 Re-Pair-VF And so on… ④再度圧縮し, 新たに生成したルールを 辞書の空きエントリへ格納

ADSの辞書更新アルゴリズム

∗ 辞書の更新(Extraction)フェイズ 𝐷𝑛: 辞書エントリを格納する配列,𝐿: エントリ数,𝑙: 符号語長,𝑡: 閾値

(23)

環境

∗ CPU: 3.6 GHz Intel Xenon processor

∗ Memory: 32GB ∗ Language: C

テキスト

𝑃𝑃𝑃𝑃𝑃 & 𝐶𝐶𝑃𝑙𝑙𝑃 𝑐𝑐𝑐𝑐𝑐𝑐*より入手した,𝑒𝑛𝑒𝑙𝑃𝑐𝐶 (英文), 𝑑𝑑𝑙𝑐. 𝑥𝑥𝑙 (XML), 𝑑𝑛𝑃 (DNA配列), 𝑐𝑐𝑐𝑡𝑒𝑃𝑛 (タンパク質配列) を組み合わせた,以下の自作テキストを用いた. ∗ 𝑒𝑛𝑒𝑙𝑃𝑐𝐶: 2GBの英文テキスト. ∗ 𝑐𝑐𝑛𝑐𝑃𝑡: 𝑒𝑛𝑒𝑙𝑃𝑐𝐶, 𝑑𝑑𝑙𝑐. 𝑥𝑥𝑙, 𝑑𝑛𝑃を繋げて2GBとしたテキスト. 𝑐𝐶𝑃𝑐𝑐: 𝑒𝑛𝑒𝑙𝑃𝑐𝐶, 𝑑𝑑𝑙𝑐. 𝑥𝑥𝑙, 𝑑𝑛𝑃, 𝑐𝑐𝑐𝑡𝑒𝑃𝑛を128MBずつ交互に繋 げて,2GBとしたテキスト.

手法

∗ ADS (proposed method)

∗ Re-Use(1stBlock,Head,Random)

∗ Others (bzip2, gzip, lzma)

実験

(24)

100 200 300 400 500 600 700 1 5 10 50 100 500 1000 5000 D at a siz e ( M B ) Threshold total text dictionary

閾値

𝑡を変化させたときの圧縮データサイズ

∗ Input text: 𝑐𝑒𝑟𝑒𝑐𝑐𝑒, 𝐵 =128MB, 𝑙 =19bit,

∗ 圧縮率は𝑡が小さくなるほど改善.

𝑡が小さくなるほど辞書サイズ減.

(25)

実験

Re-USEとの比較:圧縮率

ADSは

𝑒𝑛𝑒𝑙𝑃𝑐𝐶と𝑐𝑐𝑛𝑐𝑃𝑡において最も良い圧縮率

を達成した.

Methods/Texts english concat chaos Re-Use (1stBlock) 30.84 28.25 36.14 Re-Use (Head) 30.19 28.20 35.47 Re-Use (Random) 30.46 28.14 35.38

(26)

実験

Re-USEとの比較:圧縮時間

ADSはHeadおよびRandomよりも高速.

Methods/Texts english concat chaos Re-Use (1st-Block) 587.71 488.41 516.53 Re-Use (Head) 620.50 517.48 547.39 Re-Use (Random) 623.70 523.00 554.81

(27)

実験

∗ 既存手法との比較 手法 圧縮率 (%) 圧縮時間 (sec)展開時間 (sec) ADS 27.23 494.71 33.80 Re-Merge 22.66 7907.85 51.18 gzip -1 38.91 33.22 16.47 gzip -9 32.42 360.55 13.55 bzip2 -1 28.76 156.23 60.07 bzip2 -9 25.18 169.23 65.27 lzma -1 34.68 134.20 42.81 lzma -9 21.56 1994.18 23.32

(28)

∗ データ検索やデータ解析時に再利用しやすいデータ圧縮 方式としてVF符号化に着目し,文法圧縮と組み合わせた 圧縮率の良いデータ圧縮法を実現した ∗ ブロック間で辞書を共有化する手法(Re-Use)を提案 ∗ 共有する辞書を適応的に変化させる手法(ADS)を提案 ∗ 高速なキーワード検索が行えることに加え,部分的な展 開や,修正を加えたうえでの再圧縮などが容易に行える 今後の課題: ∗ 圧縮時間の改善 ∗ センサデータ,トラジェクトリデータ等への対応 ∗ 原テキストでの位置を指定した高速なデータ参照の実現

まとめ

参照

関連したドキュメント

警告 当リレーは高電圧大電流仕様のため、記載の接点電

断面が変化する個所には伸縮継目を設けるとともに、斜面部においては、継目部受け台とすべり止め

The main purpose of this talk is to prove the unique existence of global in time solutions to (1) for the initial data in scaling critical spaces, and study the asymptotics of

Koike, Refined pointwise estimates for the solutions to the one-dimensional barotropic compressible Navier–Stokes equations: An application to the analysis of the long-time behavior

古物営業法第5条第1項第6号に規定する文字・番号・記号 その他の符号(ホームページのURL)

本品は、シリンダー容積 2,254

直流電圧に重畳した交流電圧では、交流電圧のみの実効値を測定する ACV-Ach ファンクショ

特別高圧 高圧 低圧(電力)