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

講義「情報知識ネットワーク特論」

N/A
N/A
Protected

Academic year: 2021

シェア "講義「情報知識ネットワーク特論」"

Copied!
24
0
0

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

全文

(1)

講義「情報知識ネットワーク特論」

~情報検索とパターン照合

第7回

Re-Pair VF符号によるデータ圧縮

― ビッグデータ時代のデータ圧縮 ―

情報理工学専攻 情報知識ネットワーク研究室 喜田拓也

2018/11/22 講義資料

(2)

今日の内容

研究背景

新しいデータ圧縮へのアプローチ

・ VF 符号+文法圧縮 Repair-VF

Adaptive LT-RePair Method : Repair-VF のオンライン化

2

(3)

20120101000000,3,5.0,1,120,644132,00008,168933376,555574333,09853,168933408, ・・・

20120101000000,3,5.0,1,110,644132,00008,168933376,555574333,09853,168933408,・・・

20120101000000,3,5.0,1,120,644132,00009,168989212,555755788,00036,168990785,・・・

・・・

ログデータ Log data

GPSログ

ライフログ

Internet SNS

・市民からの情報提供

・市民への道路情報の提供 UGCデータ User Generated Content data

・気象衛星データ

・航空写真データ

リモートセンシングデータ Remote sensing data

ビッグデータ

データの検索や解析時に再利用しやすいデータ圧縮方式の開発

高速なデータ展開 圧縮したまま検索可能 優れた圧縮性能

研究背景

(4)

新しいデータ圧縮へのアプローチ

文法圧縮

データを高度に モデル化

VF符号化

アクセスしやすい 符号系列

圧縮率とアクセシビリティの両立!

圧縮データにアクセスしやすい符号化方式として,

可変長 - 固定長符号化( VF 符号)に着目 テキストを高度にモデル化する方法として,

文法圧縮に着目

(5)

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

元のデータにおける長さの異なる部分系列に対して,

固定長の符号を割り当てる符号化方式

利点: 符号語の境界が明確で,圧縮データへのアクセスが容易 欠点: 可変長符号に比べて,圧縮率を向上させることが困難

圧縮テキスト(符号語)

固定長 可変長

入力テキスト

(情報源記号)

固定長

FF 符号

(Fixed length to Fixed length code)

FV 符号

(Fixed length to Variable length code)

可変長

VF 符号

(Variable length to Fixed length code)

VV 符号

(Variable length to Variable length code)

今の主流は VV符号

(6)

文法圧縮 [Kieffer&Yang2000]

ABDABCABCCABDABC

E → ABC F → ABDE σ → FECF

0101110011101 000011100 ・・・

入力テキスト:

文脈自由文法:

圧縮データ:

文法を符号化する

入力テキストを導出する 文脈自由文法を構築

入力テキストを,それと等価な文法に変換し,変換後の

文法を符号化するデータ圧縮法

(7)

関連研究

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符号の組み合わせ

目標: データ圧縮の効率を保ちつつ,データを復元すること なしにキーワード検索等の処理を高速に行えるデータ 圧縮の確立

(8)

Re-Pair アルゴリズム [ Larsson & Moffat 2000]

入力データ中の最頻の2文字ペア(bigram)を非終端記号に置換 し,その対応付けを生成規則として辞書に登録することを再帰的 に繰り返す

圧縮テキスト

辞書

辞書サイズ

𝑂𝑂 (𝑛𝑛)

時間で処理するには同じ

bigram

を連結リストで管理

𝑇𝑇 = a b c b a b c b c b a b c a a 𝑋𝑋 1 b a 𝑋𝑋 1 𝑋𝑋 1 b a 𝑋𝑋 1 a

𝑋𝑋 2 b 𝑋𝑋 2 𝑋𝑋 1 b 𝑋𝑋 2 a 𝑋𝑋 2 𝑋𝑋 3 𝑋𝑋 1 𝑋𝑋 3 a

𝑋𝑋 1 → bc

𝑋𝑋 2 → a 𝑋𝑋 1

𝑋𝑋 3 → b 𝑋𝑋 2

(9)

Re-Pair-VF : Re-Pair +固定長符号化

出力サイズ:

2𝑠𝑠 + 𝑛𝑛 ⌈log(𝑠𝑠 + |Σ|)⌉

ビット

AADAEBCFGEFFIGHI EIKJBCEFICEK

𝑠𝑠

𝑛𝑛

記号の種類数

𝑠𝑠 + |Σ|

->各記号は

log 𝑠𝑠 + Σ

ビットで 符号化できる

圧縮テキスト:

辞書

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

EIKJBCEFICEK

バイグラムの置き換えを実行して新しい 記号を辞書に登録するたびにこの出力 サイズを計算する.そして,最もサイズが 小さくなる時点を記憶する.

2𝑠𝑠 + 𝑛𝑛

(10)

Re-Pair-VF : Re-Pair +固定長符号化

圧縮テキスト:

E F F G E F F F F G B C E F F F C E G E F F

この部分を展開する 辞書

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

E IKJ BCEF I CE K

最適な辞書で圧縮した テキスト:

A A D A E B C F E F F G E F F F F G B C E F F F C E G E F F

(11)

Re-Pair-VF[Yoshida&Kida2013]

0 10 20 30 40 50 60 70 80

dazai.utf.txt dblp2003.xml gbhtg119 reuters21578

Compression ratio (%)

Re-Pair-VF best Re-Pair-VF Re-Pair Tunstall STVF gzip

よく知られたgzipという圧縮ツールよりも圧縮率が良い

(12)

新聞記事 (reuters21578) 上の検索速度

0 50 100 150 200

0 10 20 30 40 50

Throughput (MB/sec)

Pattern length

Re-pair-VF best Tunstall

gzip

Throughput = Original text length Pattern matching time

Repair-VF 上の照合は gzip に対する照合よりも高速!

(13)

Repair-VF の課題

Repair-VF [Yoshida & Kida 2013]

優れた文法圧縮である

Re-Pair [Larsson & Moffat 2000]

と 固定長符号の組み合わせによる圧縮方式

優れた圧縮性能とアクセスの容易さを両立

データ入力長

𝑛𝑛

に対し,圧縮時の計算・領域計算量は

𝑂𝑂 𝑛𝑛

実際に,元データの10倍以上のメモリが必要

データは一括してメモリ上にロードし,オフライン的に処理

大規模データに対しても適用させたい

GB

以上のデータを一括して処理できない!

(14)

関連研究

Blocked-Repair-VF [Sekine ら 2013, 2014]

入力データをある長さのブロックに区切って

Re-Pair

を実行 ブロック間での辞書の一部を共有し,圧縮率と圧縮速度の バランスを取る

事前に適切なパラメータ設定が必要

FOLCA [Maruyama ら 2013]

形式文法

(SLP)

を生成して圧縮する文法圧縮の一つ

入力テキストの文字集合にのみ依存した文法を構築

(LCA)

辞書サイズを抑え,省メモリかつオンラインに動作

圧縮率は

Re-Pair

と比較してやや劣る

Re-Pair の文法変換は困難

(15)

Re-Pair をオンラインにするのはなぜ難しい?

たとえ,置き換えのための生成規則の集合(辞書)があらかじめ 与えられていたとしても,逐次に置き換えを実行するためには,

最悪時に入力データ長分のバッファが必要になる

𝑋𝑋 1 → ba 𝑋𝑋 2 → c𝑋𝑋 1 𝑋𝑋 3 → d𝑋𝑋 2

𝑋𝑋 25 → z𝑋𝑋 24 𝑋𝑋

1

𝑋𝑋

2

a 𝑋𝑋

3

𝑋𝑋

25

b c

d

… y

z

𝑋𝑋

3

現時点で辞書に登録が無い部分でも,将来的にはまとまる可能性がある

(16)

構文木の高さ と left-tallなバイグラム

ℎ 𝜎𝜎 = 0 ℎ 𝑋𝑋

1

= 1 ℎ 𝑋𝑋

2

= 2 ℎ 𝑋𝑋

3

= 3

𝜎𝜎 ∈ {a, b, c}

バイグラム

𝑎𝑎

𝑙𝑙

𝑎𝑎

𝑟𝑟 について,

ℎ 𝑎𝑎

𝑙𝑙

≥ ℎ 𝑎𝑎

𝑟𝑟 を満たすならば,

𝑎𝑎

𝑙𝑙

𝑎𝑎

𝑟𝑟

left-tall

であると定義する.

left-tall

の定義

𝑋𝑋

1

→ bc 𝑋𝑋

2

→ 𝑋𝑋

1

a 𝑋𝑋

3

→ b𝑋𝑋

2

構文木

𝑋𝑋

1

a c

c b

b b

𝑋𝑋

1

𝑋𝑋

2

a c b

left-tall

辞書

非終端記号

𝑋𝑋

に対する構文木の高さを

ℎ(𝑋𝑋 )

とする

(便宜的に終端記号

𝑎𝑎

に対しては

ℎ(𝑎𝑎) = 0

とする)

left-tall

left-tall

でない

(17)

LT-Repair (left-tall-Repair)

入力データ中の l

eft-tall

なバイグラムの中で最も頻度が高いバイ グラムを非終端記号へ再帰的に置換する

ℎ a < ℎ 𝑋𝑋1 より,

a𝑋𝑋1left-tallでない

𝑇𝑇 = a b c b a b c b c b a b c a

圧縮テキスト

𝑋𝑋 1 → bc 𝑋𝑋 2 → ba 𝑋𝑋 3 → 𝑋𝑋 1 𝑋𝑋 2 𝑋𝑋 4 → 𝑋𝑋 3 𝑋𝑋 1

辞書

a 𝑋𝑋 1 b a 𝑋𝑋 1 𝑋𝑋 1 b a 𝑋𝑋 1 a

a𝑋𝑋 4 𝑋𝑋 4 a

a 𝑋𝑋 3 𝑋𝑋 1 𝑋𝑋 3 𝑋𝑋 1 a a 𝑋𝑋 1 𝑋𝑋 2 𝑋𝑋 1 𝑋𝑋 1 𝑋𝑋 2 𝑋𝑋 1 a

left-tall条件

(18)

オンライン置換アルゴリズム (ORA)

辞書は与えられるものとする

入力データを先頭から逐次に読み出しながら,

LT-Repair

と同じ文法 変換を実行する

辞書中の

bigram

left-tall

であることを利用する バッファ上に1文字ずつデータを読み込みながら,

置換か出力が確定できる部分を再帰的に決定する

バッファ上で置換可能な

bigram

の決定は,区間最小クエリ

RMQ

)を解決することで行える

→ 𝑂𝑂 𝑛𝑛 log �ℎ

時間

, 𝑂𝑂 𝑔𝑔

領域

𝑛𝑛:入力長,�ℎ:非終端記号の構文木の高さの最大,𝑔𝑔:辞書サイズ)

確定するための 条件を見出した

output

1文字詰込

input text

置換確定ならば置換 出力確定ならば

追い出す バッファ

(19)

Adaptive LT-RePair Method (ALT)

長さ

𝑚𝑚

のバッファ分だけ入力データの先頭を取り出し,

LT-RePair

ORA

を交互に実行する

Head1′

Head1 Rest1

Head2 Rest2

Head2′

ORA

LT-RePair LT-RePair

ORA

圧縮しながら 詰め込む

Input

追加

𝑚𝑚

Dic1

Dic1’

Dic1

Dic1′

𝑚𝑚

(20)

Input Text

ALTアルゴリズム全体像

ブロックを適用的に伸長することで,バッファ長

𝑚𝑚

よりも実質的に 長いテキストを

1

つのブロックとして圧縮

Dic1*

ORA 𝑚𝑚

Head

Comp1

𝑚𝑚

Dic2*

Head

Comp2

𝑚𝑚

Dic3*

Head

Comp3 LT-RePair

ORA LT-RePair

ORA LT-RePair

1ブロック目 2ブロック目 3ブロック目

(21)

ALTアルゴリズムの時間計算量

あるブロックで実質的に読み込むテキスト長を

𝑙𝑙

とする このブロック内での

LT-RePair

の処理に

𝑂𝑂 𝑙𝑙

時間

全ブロックの

LT-RePair

の処理に

𝑂𝑂 𝑛𝑛

時間

このブロック内での

ORA

の処理に

𝑂𝑂 𝑙𝑙 − 𝑚𝑚 log ℎ

時間

はブロック内の非終端記号の構文木の高さの最大

全ブロックの

ORA

の処理に

𝑂𝑂 𝑛𝑛 log �ℎ

時間

�ℎ

は全ブロックでの非終端記号の構文木の高さの最大

したがって,提案手法の時間計算量は

𝑂𝑂 𝑛𝑛 log �ℎ

(22)

ALTアルゴリズムの領域計算量

LT-RePair

はテキスト長

𝑛𝑛

に対して

𝑂𝑂 𝑛𝑛 + 𝑏𝑏 = 𝑂𝑂 𝑛𝑛

領域

𝑏𝑏

は出現する

bigram

の種類数(全

bigram

の頻度カウントにメモリを消費する)

ブロック内の

LT-RePair

は,

𝑏𝑏

𝑚𝑚

で抑えられず

𝑂𝑂 𝑚𝑚 + 𝑏𝑏

領域かかる 各ブロックでの

ORA

𝑂𝑂 𝑔𝑔

領域

𝑔𝑔

は各ブロックで最終的にできる辞書サイズ

ブロック切り替え時,前のブロックで使用した領域は解放するとして,

領域計算量は

𝑂𝑂 𝑚𝑚 + �𝑏𝑏 + �𝑔𝑔 = 𝑂𝑂 𝑚𝑚 + �𝑏𝑏

�𝑏𝑏

は各ブロックでの出現したバイグラムの種類数のうちの最大

�𝑔𝑔

は各ブロックでの辞書サイズのうちの最大

(23)

実験結果 (英文テキスト2GB)

Eng2GB

圧縮率

(%)

圧縮

時間

(s)

展開 時間

(s)

メモリ

(MB)

ブロック

�𝒉𝒉 𝑔𝑔

Re-Pair NA NA NA

FOLCA 37.2 601 52.4 6398

LZD NA NA NA NA

提案手法

(1MB) 42.8 667 53.4 198 334 39 1373137

提案手法

(5MB) 41.0 768 45.2 532 58 41 3186999

提案手法(10MB) 40.6 837 38.9 942 28 49 4440561

(24)

まとめ

Re-Pair

に基づく省メモリで動作可能な圧縮法を実現した

オフラインな

LT-Repair

とオンラインな

ORA

を組み合わせることで,

適応的にブロック長を伸長する

計算機実験により,実際に

GB

クラスのデータに対しても省メモリで 動作することを実証した

圧縮時 時間 領域

Re-Pair 𝑂𝑂 𝑛𝑛 𝑂𝑂 𝑛𝑛

提案手法

𝑂𝑂 𝑛𝑛 𝑙𝑙𝑙𝑙𝑔𝑔 �ℎ 𝑂𝑂 𝑚𝑚 + �𝑏𝑏

𝑛𝑛:入力データ長,𝑚𝑚:初期ブロック長

�ℎ:全ブロックでの非終端記号の構文 木の高さの最大

�𝑏𝑏:各ブロックでの出現したbigramの 種類数のうちの最大

今後の課題

固定長符号化や辞書共有の導入,および展開ルーチンの改良 高速な圧縮データ解析の実装

参照

関連したドキュメント

小 肥出 章隆

臨脈講義︐

In this paper, the method is applied into quantized feedback control systems and the performance of quantizers with subtractive dither is analyzed.. One of the analyzed quantizer

講義の目標.

、コメント1点、あとは、期末の小 論文で 70 点とします(「全て持ち込 み可」の小論文式で、①最も印象に 残った講義の要約 10 点、②最も印象 に残った Q&amp;R 要約

[r]

区分 授業科目の名称 講義等の内容 備考.. 文 化

授業科目の名称 講義等の内容 備考