Movatterモバイル変換


[0]ホーム

URL:


47,498 views

文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)

言語処理学会第20回年次大会(2014/3)のチュートリアル講義資料です。- 要旨 -文法圧縮とは,入力テキストをよりコンパクトな文脈自由文法(CFG)に変換する圧縮法の総称である. 文法圧縮の強みは圧縮テキストを展開すること無く,検索等のテキスト処理を効率よく行える点にある. 驚くべきことにその処理速度は,元テキスト上での同じ処理を理論的に,時には実際にも凌駕する. また近年,ウェブアーカイブやログ,ゲノム配列等の大規模実データを高効率に圧縮できることで注目を集めている. しかしながら,文法圧縮についての初学者向けの解説資料はまだまだ少ない. そこで本チュートリアルでは,文法圧縮の歴史的背景から最新動向までを幅広く紹介する. 具体的には文法変換アルゴリズム,圧縮テキスト上での文字列パターン検索,文法圧縮に基づく省メモリデータ構造等の解説を行う.

Embed presentation

⽂文法圧縮⼊入⾨門:超⾼高速テキスト処理理のためのデータ圧縮⾔言語処理理学会第20回年年次⼤大会(NLP2014)チュートリアル2014年年  3⽉月  17⽇日  丸⼭山  史郎郎株式会社Preferred Infrastructure
イントロダクション言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)データ圧縮のモチベーションl  従来のデータ圧縮の目的l  データ保存領域の削減l  ネットワーク通信速度の高速化l  最近のデータ圧縮の目的l  データ処理の高速化(圧縮⽂文字列列処理理)l  圧縮したまま◯◯できるデータ構造(圧縮データ構造)データをコンパクトで扱いやすい表現に変換
データ圧縮の⼤大まかな種類l  ⾮非可逆圧縮l  ⼈人間にとって不不要な情報をそぎ落落とすl  特定のデータに特化して設計されることが多いl  主にマルチメディアデータ, ⽂文書の要約などl  可逆圧縮l  完全に元に復復元できる圧縮l  汎⽤用的な⽬目的のものが多いl  テキスト、ログなど言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)今回はこっちの話です
対象となる⽂文字列列データl  ⽂文字列列データl  テキストl  ウェブ / SNSl  システムや機械のログl  センサーデータl  ゲノム / たんぱく質言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮の枠組みl  ⽂文法圧縮の枠組みを提唱した⼈人達l  Kieffer, J. C.; Yang, E.-H. (2000),“Grammar-based codes: A new class of universal losslesssource codes”, IEEE Trans. Inform. Theory 46 (3): 737–754l  Kiefferらの前に⽂文法圧縮に基づく圧縮法(表現)を提案した研究l  Sequitur [Nevill-Manning+ ’94],l  SLP [Karpinski+ ’97],l  Greedy [Apostlico+ ’98],l  Re-Pair [Larsson+ ’99].言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮の枠組みl  目的X1→  b,X2→  a,X3→  X2X1,X14→  X13X12.Xi→  Xi-1Xi-2,l  ⽂文字列列中に暗に含まれる規則性を、⽂文脈⾃自由⽂文法(CFG)でコンパクトに表現言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)abaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababa
⽂文法圧縮の強みl  冗⻑⾧長度度の⾼高いデータに強力l  Navarro, G. (2012): “Indexing Highly Repetitive Collection”, IWOCA.l  繰り返しを多く含むようなデータの例例l  ゲノム集合、⽂文書レポジトリ、ウェブ履履歴などgzip bzip2 ppmdiRe-Pair(⽂文法圧縮)LZMA(LZ77)圧縮率率率[%] 27.70% 26.34% 24.88% 2.80% 1.46%0.00%5.00%10.00%15.00%20.00%25.00%30.00%圧縮率率率[%]出芽酵母菌36個体に対する圧縮率言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)※ 引用元 http://pizzachili.dcc.uchile.cl/repcorpus/statistics.pdf
l  圧縮⽂文字列列処理理l  圧縮データを展開せずに直接処理理する(例例えば検索索)⽂文法圧縮の強み生テキスト上での文字列処理圧縮して短くなった分、処理理速度度も⾼高速に!文法圧縮テキスト上での文字列処理言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  ⽂文法圧縮に適⽤用可能な圧縮⽂文字列列処理理アルゴリズムl  パターン照合とその変種l  [Karpinski+ ’97]; [Miyazaki+ ’97]; [Kida+ ’03]; [Cégielski+ ’06];[Lifshits ’07]; [Tiskin ’11]; [Yamamoto+ ’11]; etc.l  特徴的パターン発⾒見見l  [Inenaga+ ’12]; [Matsubara+ ’09];l  最⻑⾧長⼀一致部分列列 / 編集距離離計算l  [Tiskin ’08]; [Hermelin+ ’09, ’13]l  等価判定l  [Lifshits ’07]などなど⽂文法圧縮の強み言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮の強みl  圧縮データ構造l  ⽂文字列列、⽊木、グラフなどのデータ構造を圧縮しつつ、全体を復復元せずに直接⾼高速な操作が⾏行行えるデータ構造l  省省メモリ化によるデータ処理理の⾼高速化l  CPU/メモリのキャッシュに乗りやすいl  巨⼤大なデータでも⼀一台のマシンで処理理できる10110111011000000簡潔表現(LOUDS)言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)ポインタ表現文法圧縮で
更に小さく!
⽂文法圧縮の強みl  ⽂文法圧縮を利利⽤用した圧縮データ構造l  ランダムアクセス可能な圧縮⽂文字列列l  [Bille+ ’11]; [Maruyama+ ’13b]l  完備索索引付辞書l  [Navarro+ ’11]l  ラベル付き順序木l  [Lohrey+ ’11]l  グラフ  (ウェブデータ)l  [Claude+ ’10a, ’10b]l  キーワード辞書l  [Brisaboa+ ’11]l  圧縮接尾辞配列列l  [González+ ’07]    などなど言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
アジェンダl  ⽂文法圧縮とはl  ⽂文法変換アルゴリズムと符号化l  ⽂文法圧縮テキスト上の全⽂文検索索l  ⽂文法圧縮に基づく圧縮データ構造l  まとめ言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮とは言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
基本⽤用語l  部分⽂文字列列(substring)、接頭辞(prefix)、接尾辞(suffix)接頭辞ababa接尾辞部分文字列文字列ababababaababaaabababaababababbababababaabababaabaababababaababaa言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
基本⽤用語l  ラベル付き順序木 (Labeled Ordered Tree)X1X2 X2X3 X4 X3 X3 X4X5 X7X5 X6根ノード(Root  Node)内部ノード(Internal  Node)葉葉ノード(Leaf  Node)根ノードが決まっている→ 根付き木(Rooted Tree)各ノードがラベルを持つ→  ラベル付き⽊木(Labeled Tree)兄弟(同一の親を持つノード)に順序が付けられている→ 順序木(Ordered Tree)言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
基本⽤用語l  ⾮非巡回有向グラフ(DAG:Directed Acyclic Graph)言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)辺に向きが定義されている→ 有向グラフ閉路路あり 閉路路なし閉路路を持たない有向グラフ→  ⾮非巡回有向グラフ
基本⽤用語l  ⽂文脈⾃自由⽂文法(CFG:Context-free Grammar)l  ⽂文法 G  =  (V,  Σ,  D,  S)の例。Σ  =  {  a,  b  }V  =  {  S  }D  =  {  アルファベット⽂文字(または終端記号)の有限集合変数(または⾮非終端記号)の有限集合⽣生成規則の有限集合構⽂文⽊木(Parse Tree)S  →  a  S  b,S  →  a  b        }言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)SSS言語L(G)  =  {  anbn  |  n  ≧  1  }a ba ba bSは開始記号
⽂文法圧縮の枠組みl  目的X1→  b,X2→  a,X3→  X2X1,X14→  X13X12.Xi→  Xi-1Xi-2,l  ⽂文字列列中に暗に含まれる規則性を、⽂文脈⾃自由⽂文法(CFG)でコンパクトに表現言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)abaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaabaababaababaabaababaababaabaababaabaababaababaabaababaababa
⽂文法圧縮とはl  ⽂文字列列の各⽂文字を葉葉とした⽊木構造(ラベル付き順序⽊木)で表すa b a a a b a aa b⽂文字列列言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮とはl  ⽂文字列列の各⽂文字を葉葉とした⽊木構造(ラベル付き順序⽊木)で表す。X4X3X1 X2a b a a a b a aX1 X2X1a bX5X3⽊木構造表現言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮とはl  同じラベルを根として持つ部分木は、同じ木構造(部分文字列)を持つ。X4X3X1 X2a b a a a b a aX3X1 X2X1a bX5ラベルが同じ=部分木も同じ言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮とはl  複数個存在する同じ部分木(文字列)の情報は集約される。X4X3X1 X2a b a a a b a aX3X1 X2X1a bX5DAG表現言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮とはl  各ノードと辺は⽣生成規則で表されるX5→  X4X3X4→  X3X1X3→  X1X2X1→  a  bX2→  a  a⽣生成規則表現言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X4X3X1 X2a b a aX5
⽂文法圧縮とはl  ⽂文字列列  w  =“abaaababaa”を導出するCFG G  =  (V,  Σ,  D,  X5).V  =  {  X1,  X2,  X3,  X4,  X5  }Σ  =  {  a,  b  }D  =  {  アルファベット⽂文字の有限集合変数の有限集合⽣生成規則の有限集合X5は開始記号X5→  X4X3  }X4→  X3X1,X3→  X1X2,X1→  a  b,X2→  a  a,言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  直線的プログラム(SLP: Straight-line Program)  l  ⽣生成規則が以下の形式に制限された⽂文法圧縮の標準系l  ⼀一意な⽂文字列列を導出するCFG GはSLPへO(g)時間/領領域で変換可能.l  SLPへ変換してもCFGのサイズは⾼高々2倍にしかならない.l  規則数gに対して指数⻑⾧長 (O(2g))の長さの⽂文字列列を表現可能.26expri  :a  ∈  ΣXj  Xk  (j,  k  <  i)Xi    ∈  VX1  →  expr1,  X2  →  expr2,  …  ,  Xg  →  exprg.⽂文法圧縮とは
⽂文法圧縮とはl  ⽂文法圧縮は⼆二段階構成l  ⽂文法変換(モデル化)+符号化l  1. ⽂文法変換アルゴリズムl  ⽂文字列列wが⼊入⼒力力として与えられ、wを⼀一意に導出するようなCFG Gに変換するアルゴリズム。つまり、L(G)  =  {w}。l  2. 符号化アルゴリズムl  1.により得られた文法をコンパクトなビット列で表現するアルゴリズム⽂文法変換/逆変換符号化/復復号化abaababaabaab…0100110010101101…          …X3→  X2X1X1→  bX2→  a言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法変換アルゴリズムと符号化言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  圧縮率率率(⽂文法圧縮の場合は⽣生成される⽂文法のサイズ)l  圧縮 / 復復元処理理速度度l  圧縮 / 復復元時のメモリ消費量量l  オフライン(バッチ処理理)  か  オンライン(リアルタイム処理理)  か圧縮アルゴリズムの善し悪し言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  以下は同じ⽂文字列列を導出するCFG  G1とG2.l  Size(G)  :  ここでは⽂文法  Gの規則(変数)の数とする.⽂文法のサイズX1X2X3X1 X1X2X4a a a a ab b b a a a a ab b bX1 X2 X3 X3X4 X5X6Size(G1)  =  4 Size(G2)  =  6G2G1<言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  最⼩小CFG問題  [Charikar+  ʼ’05]l  近似率l  ⽂文法圧縮アルゴリズムの理理論論性能アルゴリズムの⽣生成した⽂文法サイズ最⼩小CFGのサイズ近似率率率  =入力:文字列w.出力:wを一意に導出する最小サイズのCFG.NP困難問題言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)⽂文法変換アルゴリズム
⽂文法変換アルゴリズムl  ⼤大きく分けて⼆二つの戦略略があるl  貪欲アルゴリズムl  平均的に良良い圧縮率率率を達成する⽬目的で設計されたアルゴリズムl  部分⽂文字列列の出現頻度度や⻑⾧長さの情報を利利⽤用するl  実⽤用性を重視l  近似アルゴリズムl  最悪のケース(どんな⼊入⼒力力⽂文字列列)でも圧縮率率率の性能が保証されているアルゴリズムl  理理論論的な興味が中⼼心言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法変換アルゴリズムl  貪欲アルゴリズムl  Bisection  /  Multilevel  Pattern  Matching  [Kieffer+  ʼ’00]l  Sequitur  [Nevill-‐‑‒Manning+  ʻ‘97]l  Re-‐‑‒Pair  [Larsson+  ʼ’99]l  LFS2  [Nakamura+  ʼ’09]l  GREEDY  [Apostlico+  ʻ‘98]l  近似アルゴリズムl  O(log  (n/g*))近似アルゴリズムl  [Charikar+,  ʼ’05];  [Rytter,  ʼ’03];  [Jez,  ʻ‘13]l  その他の近似アルゴリズムl  [Sakamoto+,  ʼ’04,  ʼ’09];  [Gagie+,  ʼ’10];  OLCA  [Maruyama+,  ʼ’12,  ʼ’13,  ʼ’14]言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
Re-Pairl  Re-Pair  (Recursive Paringアルゴリズム)l  Larsson, N. J.; Moffat, A. (2000), “Offline Dictionary-BasedCompression”, IEEE 88 (11): 1722-1732l  戦略略l  頻度度の⾼高い隣隣り合う2⽂文字(以後ペアと呼ぶ)を選択し、変数で置き換える処理理を再帰的に繰り返す。l  ⽂文法圧縮の中で⼀一番良良く利利⽤用されているl  テキストl  転置索索引 / ウェブグラフl  完備索索引付辞書  などの圧縮言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  アルゴリズムRe-Pair1.  ⽂文字列列中に出現する最頻のペアABを選択する.2.  新たな変数Xを⽤用意し,⽣生成規則X→ABを作る.3.  ⽂文字列列中の全てのペアABをXで置き換える.4.  全てのペアが1度度しか現れなくなるまで1~∼3を繰り返す.ababcdebdefabdeabcX1→abX1X1cdebdefX1deX1cX2→deX1X1cX2bX2fX1X2X1c言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
Re-Pairl  利利点l  単純な戦略略だが⾼高い圧縮率率率l  短い部分⽂文字列列の繰り返しをうまく捕らえることができるl  規則の右辺が⼆二⽂文字に制限されているため扱い易易いl  ⽋欠点l  ⾼高速に(線形時間で)動作させるためには複雑な実装が必要l  使⽤用メモリ量量が多いl  ⼊入⼒力力テキスト⻑⾧長の20倍ほど(1バイト⽂文字、4バイト整数のとき)l  Re-Pairの亜種l  Re-Merge [Wan+ ’07],l  Approximate Re-Pair [Claude+ ’10a],l  Re-Pair VF [Yoshida+ ’13]   など言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
OLCAl  OLCA  (Online-LCAアルゴリズム)l  Maruyama, S.; Sakamoto, H.; Takeda, M. (2012), “An OnlineAlgorithm for Lightweight Grammar-Based Compression”,Algorithms 5(2): 214-235.l  特徴l  O(log2  n)-近似アルゴリズムl  オンラインアルゴリズムl  テキスト中に繰り返し現れる⻑⾧長い部分⽂文字列列をうまく集約できるl  LZ77のような⽂文字列列探索索は不不要、ゆえにアルゴリズムはシンプル&軽量量言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
OLCA共通部分文字列z    a    b    r      a      k    a    d    a    b      r    a      k    a    d    a    b    r    a    zX1 X2 X3 X1 X2 X3 X1 X44l  共通⽂文字列列に対してペアの置き換えを同期させる置き換え後も共通部分⽂文字列列内で同じ⽂文字列列にさせる言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
OLCAX1 X2 X3 X4 X5 X6 X7 X8 X9 X10共通部分文字列10z    a    b    r    a      k    a    d    a    b      r    a      k    a    d    a    b    r    a    zl  左から適当に置き換えると置き換えにズレが⽣生じることがあるこのようなケースは避けたい言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  テクニックl  記号の順序関係を利利⽤用する.  l  ⽂文字列列中の極値や連続⽂文字を⽬目印とする.例) 極小⽂文字  (w[i-1]  >  w[i]  <  w[i+1])  の⽬目印X1 X2 X3 X1 X2 X3 X1 X4z    a    b    r    a    k    a    d    a    b    r    a    k    a    d    a    b    r    a    zw[i,  i+1]を置換え.順序: …  <  a  <  b  <  c  <  …  <  z  …  共通部分文字列言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)OLCA
OLCAl  アルゴリズムの動きl  置き換えを1⽂文字になるまで再帰的に繰り返す。l  ⼀一回のループで3⽂文字中の2⽂文字は必ず置き換える。ab b abaaX4X1X2X1 X1X3 X2aX2w1w2w3w4w5オフライン型
[Sakamoto+,‘04]OLCA [Maruyama+, ‘12]aaX1構⽂文⽊木の⾼高さはO(log  n).言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
OLCA0 1 2 3 4d0 1 2 3 4d0 1 2 3 4dw1w2w3aaaX1→aaX1a abab a a a bX1X2→abb X2X3→X1X1X3CFG入力文字列言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)(このスライドはアニメーションです)l  OLCAの動作
OLCAl  利利点l  実装が容易易(隣隣り合う記号の⼤大⼩小⽐比較、置き換えのためのキュー)l  メモリ領領域が出⼒力力⽂文法のサイズで抑えられるl  ⽋欠点l  実験的にはRe-Pairの⽅方が良良い圧縮率率率を達成できるl  圧縮しにくいデータについてはメモリ効率率率が悪いl  OLCAの改良良版l  FOLCA  (Fully-Online LCA)[Maruyama+ ’13]l  Lossy-FOLCA [Maruyama+ ’14]言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法の符号化l  ⽣生成規則の集合を表現するのに必要なビット数は?※簡単のためアルファベット⽂文字の種類数は無視できるほど⼩小さいと仮定言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X1→a  bX2→X1aX3→X1  X2X4→X3  X2l  単純な表現l  1規則を3つの記号で表す(左辺1記号+右辺2記号)l  3glog  gビット(gは変数の数)l  左辺を配列列のインデクスで表現l  2glog  gビットl  2glog  gビットを更更に半分にする表現→ POSLP表現a  bX1aX1  X2X3  X21234
⽂文法の符号化l  POSLP(Post-order Partial Parse Tree)表現 [Maruyama+, ’12]l  規則を⽊木構造で表し、⼆二分⽊木の括弧列列表現で符号化X1→a  bX2→X1aX3→X1  X2X4→X3  X2④Y1a③②bY2a①(  a  (  b  )  (  a  )  (  Y1  )  (  Y2  )CFG( (((())))POSLP表現bX2aX1aX2X1X4X3言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)約  glog  g  +  2gビット
⽂文法の符号化l  g  変数のSLPを表現するための理理論論的に最⼩小のビット数(情報理理論論的下限値)[Tabei+ ’13]l  glog  g  +  g  +  o(g)ビットl  POSLPの利利点l  符号化したまま各⽣生成規則にO(1)時間でアクセス可能。l  符号化列列をオンラインで元⽂文字列列へ復復元可能。l  類似した符号化アイデアl  [González+ ’07]; [Claude+ ’10b, ’12] など言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
実験l  ベンチマークテキストl  Repetitive Corpus Real. (約50 ~ 400MB)l  繰り返しを多く含むデータセット‒  ゲノム(Eschelichia_Coli, cere, para, influenza)‒  ソースコードレポジトリ(coreutil, kernel)‒  wikipedia記事の全履履歴(einstein.de.txt, einstein.en.txt)‒  英⽂文テキスト(world_leader)l  http://pizzachili.dcc.uchile.cl/repcorpus.htmll  Pizza & Chili courpus. (約200MB)l  通常のベンチマークテキスト‒  英⽂文テキスト(ENGLISH)‒  XMLレコード(XML)l  http://pizzachili.dcc.uchile.cl/texts.html言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
いろいろな圧縮法との⽐比較圧縮法 備考 使⽤用領領域Re-Pair貪欲法に基づく⽂文法圧縮法.オフライン圧縮.O(n)OLCA オンライン圧縮, POSLP表現 O(z)LZWLZ78圧縮法,辞書のリセットは⾏行行わない.O(z)gzip -9LZ77圧縮法,窓⻑⾧長 = 32KB.固定bzip2 -9Burrows-Wheeler変換ベース,⼊入⼒力力を約1MB単位に分割した圧縮.固定LZMALZ77ベースの強⼒力力な圧縮法.窓⻑⾧長 = ⼊入⼒力力⻑⾧長.O(n)z = 圧縮テキスト長, n  = テキスト長.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
実験:圧縮率率率 [%] (圧縮サイズ/⼊入⼒力力サイズ)0.005.0010.0015.0020.0025.0030.0035.0040.0045.00LCA-onlineLZWgzip -9bzip2 -9Re-PairLZMA言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)OLCA
実験:最⼤大メモリ使⽤用量量 / ⼊入⼒力力テキストサイズ024681012LCA-onlineLZWgzip -9bzip2 -9Re-PairLZMA言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)OLCA
実験:⼊入⼒力力1MBあたりの平均圧縮時間 [sec]00.511.522.533.5lca_onlineLZWgzip -9bzip -9Re-PairLZMA言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)OLCA
⽂文法圧縮テキスト上での全⽂文検索索言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
全⽂文検索索l  パターンP=“TCTCTGAATGC”を探せ!CGATCAAAATGTCCACTTGCAGATTCTACAAAAACAGTGTCTCAAAACTGCTCTATCAAAAGGAAGGTTCAACTCTGTGAGTTGAATGCACACATCACAACGAAGTTTCTGAGAATGCTTCTGTCTAGTTTTTATGTGAAGGTATTCCCGTTTCCTCTCTGAATGCACCGAAGGCCTCAAAGCGCTCCAAATATCCACCTGCAGATTCTGCAAAAAGAGAGGTTCAAAACTGCTCAATGAAAAGATACGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGAAGTTTGTCTGAATGCTTCTGTGTAGTTTTTATTTCAAGATATTTCCTTTTCCACCATAGGGCTCAAAGGGCTCCAAATATCCACTTGCAGATTCTACAAATAGAGAGATTCAAAACTCTCTGAATGCTGCTCAATGAGAAGATAAGATCAACTCTGTGAGCTGAATGCACACCTCACAAAGAAGTTTCTCAGAATGCTTCTGTGTAGTTTTTATGTGAAGATATTTTCTTTTCCACAGTTCTCTGAATGCAGGCCTCAAAGGGCTCCAAATATCCACCTGAAGATTCTGCCAAAAGAGAGATTCAAAACTGCTGATTCAAAAGATATGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGCAGTTTTCTGTGTAGTTTTTATTTGAAGATATTTCCTTTTCCACCATAGGGTGCAAAGGGTGCAAAGGGCTCCAAATATCCACTTGGAGATT言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
全⽂文検索索l  パターンP=“TCTCTGAATGC”を探せ!CGATCAAAATGTCCACTTGCAGATTCTACAAAAACAGTGTCTCAAAACTGCTCTATCAAAAGGAAGGTTCAACTCTGTGAGTTGAATGCACACATCACAACGAAGTTTCTGAGAATGCTTCTGTCTAGTTTTTATGTGAAGGTATTCCCGTTTCCTCTCTGAATGCACCGAAGGCCTCAAAGCGCTCCAAATATCCACCTGCAGATTCTGCAAAAAGAGAGGTTCAAAACTGCTCAATGAAAAGATACGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGAAGTTTGTCTGAATGCTTCTGTGTAGTTTTTATTTCAAGATATTTCCTTTTCCACCATAGGGCTCAAAGGGCTCCAAATATCCACTTGCAGATTCTACAAATAGAGAGATTCAAAACTCTCTGAATGCTGCTCAATGAGAAGATAAGATCAACTCTGTGAGCTGAATGCACACCTCACAAAGAAGTTTCTCAGAATGCTTCTGTGTAGTTTTTATGTGAAGATATTTTCTTTTCCACAGTTCTCTGAATGCAGGCCTCAAAGGGCTCCAAATATCCACCTGAAGATTCTGCCAAAAGAGAGATTCAAAACTGCTGATTCAAAAGATATGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGCAGTTTTCTGTGTAGTTTTTATTTGAAGATATTTCCTTTTCCACCATAGGGTGCAAAGGGTGCAAAGGGCTCCAAATATCCACTTGGAGATT言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
CGATCAAAATGTCCACTTGCAGATTCTACAAAAACAGTGTCTCAAAACTGCTCTATCAAAAGGAAGGTTCAACTCTGTGAGTTGAATGCACACATCACAACGAAGTTTCTGAGAATGCTTCTGTCTAGTTTTTATGTGAAGGTATTCCCGTTTCCTCTCTGAATGCACCGAAGGCCTCAAAGCGCTCCAAATATCCACCTGCAGATTCTGCAAAAAGAGAGGTTCAAAACTGCTCAATGAAAAGATACGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGAAGTTTGTCTGAATGCTTCTGTGTAGTTTTTATTTCAAGATATTTCCTTTTCCACCATAGGGCTCAAAGGGCTCCAAATATCCACTTGCAGATTCTACAAATAGAGAGATTCAAAACTCTCTGAATGCTGCTCAATGAGAAGATAAGATCAACTCTGTGAGCTGAATGCACACCTCACAAAGAAGTTTCTCAGAATGCTTCTGTGTAGTTTTTATGTGAAGATATTTTCTTTTCCACAGTTCTCTGAATGCAGGCCTCAAAGGGCTCCAAATATCCACCTGAAGATTCTGCCAAAAGAGAGATTCAAAACTGCTGATTCAAAAGATATGTTCAACTCTGTGAGTTGAATGCATACATCACAAAGCAGTTTTCTGTGTAGTTTTTATTTGAAGATATTTCCTTTTCCACCATAGGGTGCAAAGGGTGCAAAGGGCTCCAAATATCCACTTGGAGATT全⽂文検索索l  パターンP=“TCTCTGAATGC”を探せ!出現回数を調べたい出現位置を列列挙したいPに似ているパターンを検索索したい言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
全⽂文検索索l  全⽂文検索索問題l  文書(テキスト)中に含まれる全てのパターンの出現回数(位置)を漏漏れ無く報告する。l  ⽂文書列列挙問題(今回は詳しく扱わない)l  対象は⽂文書の集合l  パターンを含んでいる⽂文書番号のみを報告l  スコア(出現頻度度、tf-idfなど)の⾼高い上位  k  件の⽂文書のみを報告l  ⽂文書の傾向とクエリによっては、計算時間を⼤大幅に削減言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
検索索の種類l  照合型検索索l  検索索対象テキストを頭から順番に⾒見見ていって、⽬目的のパターンを検索索する⽅方法l  前処理理コストが低い、複数のクエリを同時実⾏行行、リアルタイムl  検索索対象テキストのサイズに⽐比例例した検索索時間l  イメージ:⽂文章読解問題で関連のありそうな単語をベタ読みで探すl  索索引型検索索l  検索索対象テキストに前処理理で索索引を構築しておくことで⾼高速な検索索を実現する⽅方法。l  検索索時間がテキストサイズに⼤大きく依存しないl  前処理理コストが⾼高い、索索引領領域が別途必要l  イメージ:英和辞典の索索引を使った単語検索索言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮パターン照合l  ⽬目的:データ圧縮による照合型検索索の⾼高速化非圧縮テキスト圧縮テキストパターン照合機械圧縮パターン照合機械圧縮で縮んだ分だけ照合時間が短くなる.⽂文 字 列列 を 制 す る 者 は 情 報 を 制 す る 。⽂文字列列を制する者は情報を制する。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
l  様々な圧縮法に対する圧縮パターン照合の研究l  連⻑⾧長符号l  [Eilam-Tzoreff+ ’88]; [Amir+ ’92, ’97];l  ハフマン符号l  [Fukamachi+ ’92]; [Miyazaki+ ’98]; [Klein+ ’01];l  LZ77系l  [Farach+ ’95]; [Gasieniec+ ‘96]; [Klein+ ’00];[Gawrychowski ’11a]; etc.l  LZ78系l  [Amir+ ’96]; [Kida+ ‘98, ’99]; [Navarro+ ’00];[Kärkkäinen+ ’00]; [Gawrychowski ’11b]; etc.l  LZ系l  [Navarro+ ’99, ’04];圧縮パターン照合言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
距離離(⾛走査⻑⾧長)は短いが⾛走る速度度(照合速度度)は遅い。⾼高速に⾛走ることが可能だが、距離離が⻑⾧長い。LZ圧縮法連長/Huffman符号などの軽い圧縮⾼高速に⾛走ることができて、かつ距離離も短い。文法圧縮圧縮パターン照合言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
テキスト:状態遷移: 0 3 3 4 51 2 4 1a b a b a b b a5l  ⽂文法圧縮に対する圧縮パターン照合アルゴリズム  [Kida+, ‘03]a0 1 2 4 5b3任意の文字-1a bパターン P=a  b  a  b  bを受理するKMPオートマトンb: goto: failure圧縮パターン照合*図は状態遷移を計算するJump関数の例.パターンの出現を報告するOutput関数は省略.  a  b    X1  X3S S  :  開始規則の右辺D  :  開始規則以外の生成規則言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)  X1  →  ab,X2  →  ba,  X3  →  X1X2D
テキスト:状態遷移: 0 3 3 4 51 2 4 1S  : a b X1 X3a b a b a b b a5l  ⽂文法圧縮に対する圧縮パターン照合アルゴリズム [Kida+, ‘03]a0 1 2 4 5b3任意の文字-1a bパターン P=a  b  a  b  bを受理するKMPオートマトンb: goto: failureX1圧縮パターン照合*図は状態遷移を計算するJump関数の例.パターンの出現を報告するOutput関数は省略.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)  a  b    X1  X3S S  :  開始規則の右辺D  :  開始規則以外の生成規則  X1  →  ab,X2  →  ba,  X3  →  X1X2D
テキスト:状態遷移: 0 3 3 4 51 2 4 1S  : a b X1 X3a b a b a b b a5l  ⽂文法圧縮に対する圧縮パターン照合アルゴリズム [Kida+, ‘03]a0 1 2 4 5b3任意の文字-1a bパターン P=a  b  a  b  bを受理するKMPオートマトンb: goto: failureO(|D|+|P|2)の前処理時間・領域X1走査時間:O(|S|+Pの出現回数)*図は状態遷移を計算するJump関数の例.パターンの出現を報告するOutput関数は省略.圧縮パターン照合言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)  a  b    X1  X3  X1  →  ab,X2  →  ba,  X3  →  X1X2SDS  :  開始規則の右辺D  :  開始規則以外の生成規則
圧縮パターン照合l  実際に⾼高速な圧縮パターン照合を実現するための問題l  前処理理コスト(オートマトンの構築時間)l  ビット処理理のオーバーヘッドl  キャッシュヒット率率率  などなどl  圧縮パターン照合アルゴリズムに特化した⽂文法圧縮の開発l  BPE (Byte-Pair-Encoding) [Shibata+ ’00].l  BPE using Byte-Huffman [Matsumoto+ ’09].l  BPEX [Maruyama+ ’10].言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮パターン照合KMPKMP on BPEKMP on BPEXBMHBMH on SESE BPE BPEX言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)l  実験結果l  検索索時間はCPU時間。I/O時間を含めるとBPEXはさらに有利利。l  SE(Stopper Encoding)[Rautio+ ’02] : BM型検索索のための符号化
圧縮索索引l  代表的な全⽂文検索索索索引l  n-グラム索索引(n-gram index)、接尾辞配列列(Suffix Array) などl  圧縮⾃自⼰己索索引(Compressed Self-Indexes) [Navarro+, ‘07]l  元の⽂文書データを陽に持たずに次の操作をサポートするデータ構造l  パターンの出現回数報告l  パターンの出現位置報告l  部分⽂文字列列復復元l  よく知られている圧縮⾃自⼰己索索引l  圧縮接尾辞配列列(CSA : Compressed Suffix Array)、FM-index、LZ78-indexなど言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮索索引l  SLPに基づく⾃自⼰己索索引 [Claude+, ’11]l  Claude, F. ; Navarro, G. (2011) : Self-Indexed Grammar-BasedCompression. Fundam. Inform. 111(3): 313-337.l  パターンP[1 .. m]が与えられた時にl  Xi  →  XjXkと整数s  (1  ≦  s  ≦  m-‐‑‒1)に対してXjが表す文字列の接尾辞にP[1  ..  s]、Xkが表す⽂文字列列の接頭辞にP[s+1  ..  m]を持つ時に、XiはPの分割点を持つ変数。l  出現回数の計算のために分割点を持つ全ての変数を列列挙する。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)Xj XkXiP[1 .. s] P[s+1 .. m]分割点
圧縮索索引l  各変数が表す文字列で辞書式ソート(逆向きに対しても同様に⾏行行う)言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)A  →  aB  →  b  C  →  c  D  →  d  R  →  rU  →  ABV  →  RA  W  →  UVX  →  CAY  →  DWZ  →  WXS  →  ZY辞書式順でソートX1  →  a  X2  →  X1X6X3  →  X2X12X4  →  X3X8X5  →  X4X10X6  →  bX7  →  c  X8  →  X7X1  X9  →  d  X10→  X9X3  X11→  r  X12→  X11X1w  =  abracadabraabcdrabraabracadabraabracaabracadabraaababraabracaabracadabrabccaddabrarra
圧縮索索引l  直⾏行行領領域探索索による分割点を持つ変数の検索X1X2X3X4X5X6X7X8X9X10X11X12aababraabracaabracadabrabccaddabrarraX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12X1 X2X8X4 X5X12X3 X4X10X5X6X2 X3X7 X8X9 X10X11 X12言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X3  →  X2X12正向き順逆向順
圧縮索索引l  検索パターン= “br”の場合、X3が”b”と”r”の分割点を持つ。X1X2X3X4X5X6X7X8X9X10X11X12aababraabracaabracadabrabccaddabrarraX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12X1 X2X8X4 X5X12X3 X4X10X5X6X2 X3X7 X8X9 X10X11 X12接頭辞“r”接尾辞“b”言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮索索引l  報告された変数の出現回数をカウントする。l  DAG表現で分割点を持つ変数から根までの到達可能なパス(逆向き)の数をカウントする。l  例)X3からX5へは2通りのパスがあるので構⽂文⽊木でのX3の出現回数は2。X5X4 X10X3 X8X2 X12X1 X6a bX11X7X9rcd言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮索索引l  パターンP[1  ..  m]の出現回数の計算時間l  パターンPの可能な分割点(m-1通り)に対して以下を実⾏行行する。l  接頭辞 / 接尾辞の範囲の計算は変数を辞書順に並べた配列列を⽤用意、変数の接頭辞 / 接尾辞を部分的に展開しながら⼆二分探索索を⾏行行う。‒  O(mlog  g  +  h)時間, hは構⽂文⽊木の最⼤大の⾼高さ。l  直⾏行行領領域探索索はウェーブレット⽊木を使って効率率率的に計算可能。‒  O(log  g  +  k)時間, k = 指定領領域に含まれる報告点数。‒  詳しくは「ウェーブレット⽊木の世界」をご参照ください。‒  http://research.preferred.jp/2013/01/wavelettree_world/l  分割点を持つ変数Xiの出現回数の計算‒  O(Xiの出現回数  ×  h)時間言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮索索引l  特徴l  出現回数の他にも位置報告/部分⽂文字列列復復元をサポート。l  任意の⽂文法圧縮テキストを索索引構造に変換可能。l  簡潔データ構造を利利⽤用することでコンパクトな領領域で実装可能。l  改良良版 [Claude+ ’12] では検索索時間が構⽂文⽊木の⾼高さに依存しない。l  応⽤用l  ゲノムデータ集合のn-‐‑‒gram索索引  [Claude+  ʼ’10c]l  バージョン管理された文書集合に対する⽂文書列列挙 [Claude+ ’13]l  その他の⽂文法圧縮に関係する索索引構造l  ESP-index [Maruyama+ ’11]l  Balanced SLP+LZ77-index [Gagie+ ’12]言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
⽂文法圧縮に基づく圧縮データ構造言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
圧縮データ構造l  圧縮データ構造(再)l  ⽂文字列列、⽊木、グラフなどのデータ構造を圧縮しつつ、全体を復復元せずに直接⾼高速な操作が⾏行行えるデータ構造l  省省メモリ化によるデータ処理理の⾼高速化l  CPU/メモリのキャッシュに乗りやすいl  巨⼤大なデータでも⼀一台のマシンで処理理できる10110111011000000簡潔表現(LOUDS)言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)ポインタ表現文法圧縮で
更に小さく!
圧縮データ構造l  ⽂文法圧縮を利利⽤用した圧縮データ構造l  ランダムアクセス可能な圧縮⽂文字列列l  [Bille+ ’11]; [Maruyama+ ’13b]l  完備索索引付辞書l  [Navarro+ ’11]l  ラベル付き順序木l  [Lohrey+ ’11]l  グラフ  (ウェブデータ)l  [Claude+ ’10a, ’10b]l  キーワード辞書l  [Brisaboa+ ’11]l  圧縮接尾辞配列列l  [González+ ’07]    などなど言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
ランダムアクセス可能な圧縮⽂文字列列l  ⽬目的l  既に圧縮されているデータの任意の1⽂文字(または部分⽂文字列列)のみを⾼高速に参照したい。l  これができるとテキスト等に限らず、データ構造を圧縮したまま扱うことができる。l  実⽤用的な研究成果l  [Brisaboa+ ’09]l  DAC: Directly Addressable Codesl  dag_vector (implemented by Okanohara, D.)l  [Kreft+ ’10]l  LZ-End, LZ-Begin言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
ランダムアクセス可能な圧縮⽂文字列列l  普通の解決策l  ⽅方法1l  予めデータを複数ブロックに分割して圧縮しておいて、各データの先頭位置を索索引として保持。l  問題点‒  細かく分割すると圧縮率率率が低下する。索索引が⼤大きくなる。‒  ⼤大きな単位で分割すると問い合わせ時間が⻑⾧長くなる。l  ⽅方法2l  復復元開始位置をサンプリングした索索引を持っておく。l  復復元開始位置さえ分かれば部分復復元できる場合に有効(BW系など)l  索索引領領域とアクセス速度度のトレードオフ。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
SLPに対するランダムアクセスl  ⼆二分⽊木の探索索を模倣した簡単な⽅方法l  各規則をランダムアクセス可能な状態で持つ。l  前処理理で変数の展開⻑⾧長を計算しておく。X11 0X11 0X11 0X11 0X11 01 1 1X2 X2X2X3 X3X4X5(13)(8)(5)(3)(2)(2)1        2          3        4          5        6        7        8        9        10    11      12      13言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)(*)簡単のためSLPからX→aの規則を除去X1  →  1  0X2  →  X1  1  X3  →  X2  X1  X4  →  X3  X2  X5  →  X4  X3(2)(3)(5)(8)(13)展開長
SLPに対するランダムアクセスl  ⼆二分⽊木の探索索を模倣した簡単な⽅方法l  開始規則から⽬目的の位置まで展開⻑⾧長を利利⽤用して部分的な復復元を⾏行行う。X1  →  1  0X2  →  X1  1  X3  →  X2  X1  X4  →  X3  X2  X5  →  X4  X3(2)(3)(5)(8)(13)X11 0X11 0X11 0X11 0X11 01 1 1X2 X2X2X3 X3X4X5(13)(5)(3)(2)(2)1        2          3        4          5        6        7        8        9        10    11      12      13w[10…12]にアクセス展開長言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)(8)(*)簡単のためSLPからX→aの規則を除去
ランダムアクセス可能な圧縮⽂文字列列l  ⽂文法圧縮の場合の問題点l  計算時間がO(構⽂文⽊木の⾼高さ)に依存するl  Re-‐‑‒Pairの場合、最悪時の⾼高さが抑えられないので問題l  OCLA[Maruyama+,  ʼ’12]が⽣生成する⽂文法は⾼高さO(log  n)で抑えられるl  バランスした構⽂文⽊木への変換アルゴリズム[Rytter  ʼ’03]l  [Bille+  ʼ’11]は、構⽂文⽊木がバランスしていなくてもO(log  n)時間で任意の⽂文字(部分⽂文字列列)を報告できるデータ構造を提案l  [Maruyama+  ʼ’13]では、POSLP上でランダムアクセスとデータの末尾追加をサポートするデータ構造を提案言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
完備索索引付辞書l  簡潔/圧縮データ構造を扱うためのキーツールl  圧縮された⽂文字列列/⽊木/グラフ/⽂文字列列索索引構造などを  直接扱うための最も基本的なデータ構造  l  以下の書籍が詳しい実装まで書かれています。  言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)“日本語入力を支える技術”
徳永拓之著、技術評論社“高速文字列解析の世界”
岡野原大輔著、岩波出版
完備索索引付辞書l  ビット⽂文字列列  B[1  ..  n],  B[i]  ∈{0,  1} に対して次の操作をサポートl  Lookupc(B, i) : B[i]を返すl  Rankc(B, i) : B[1 .. i]に含まれる c の数l  Selectc(B, i) : Bに現れる  i 番⽬目の  c の位置l  ここではSLPによる完備索索引付辞書の実現⽅方法を解説  B[1,  6]に含まれる1の数 3番目に現れる0の位置B  011101100  i    123456789Rank1  (B,  6)=4 Select0  (B,  3)=8言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
完備索索引付辞書l  SLPによる完備索索引付辞書の実現l  Lookupc(B, i) は前述のランダムアクセスと同じ。l  Selectc(B, i) / Rankc(B, i) の実現のために、展開長と各変数が表す⽂文字列列に含まれる1の数(または0の数)を前処理理で求める。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X1  →  1  0X2  →  X1  1  X3  →  X2  X1  X4  →  X3  X2  X11 0X11 0X11 01 1X2 X2X3X4展開⻑⾧長L        2        3      5        8  変数Xi      X1  X2  X3  X41の数N        1        2      3        5  
完備索索引付辞書l  Select1(B,  i)の計算l  1の数Nを参照することで、根から  i  番⽬目の1までのパスを辿る。l  辿ってきたパスよりも左側に出現する変数の展開⻑⾧長Nを参照することで対象となる1の位置を計算する。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X1  →  1  0X2  →  X1  1  X3  →  X2  X1  X4  →  X3  X2  展開⻑⾧長L        2        3      5        8  変数Xi        X1  X2    X3    X4X11 0X11 0X11 01 1X2 X2X3X41の数N        1        2      3        5  (3)(2)(1)(2)(3)Select1  (B,  3)  =  L[2]  +  1  =  4
完備索索引付辞書l  Rank1(B,  i)の計算l  Lookupと同様に展開⻑⾧長Lを使って、根からB[i]までのパスを辿る。l  辿ってきたパスよりも左側に現れる変数の1の数Nを合計し、B[1  ..  i]に含まれる1の数を計算する。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)X1  →  1  0X2  →  X1  1  X3  →  X2  X1  X4  →  X3  X2  X11 0X11 0X11 01 1X2 X2X3X4(2) (3)(5)(3)(2)Rank1  (B,  4)  =  N[2]  +  1  =  3展開⻑⾧長L        2        3      5        8  変数Xi        X1  X2    X3    X41の数N        1        2      3        5  
完備索索引付辞書l  Select0(B,  i)とRank0(B,  i)の計算l  変数Xiの0の数=L[i]  –  N[i]。l  c=1の場合と同様に計算できる。l  計算時間l  ランダムアクセス同様に構文木の⾼高さに依存l  Re-Pairによる完備索索引付辞書の実⽤用的な実装  [Navarro+ ’11]l  ⼀一般のアルファベット⽂文字に対するRank/Select操作まで拡張l  ⽂文書配列列(⽂文書列列挙問題)を効率率率よく圧縮して扱えることを実験的に⽰示した。言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
まとめ言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
まとめl  ⽂文法変換アルゴリズムl  Re-Pairが主流流、OLCAも実⽤用的l  繰り返し部分を多く含む冗⻑⾧長性の⾼高いデータに強いl  ⽂文法圧縮テキスト上でのパターン検索索l  圧縮率率率に⽐比例例した照合型検索索の⾼高速化l  ⽂文法圧縮ベースの省省スペースな索索引構造l  ⽂文法圧縮による圧縮データ構造l  簡潔データ構造などに含まれるデータ特有の冗⻑⾧長性を更更に圧縮する⽬目的で使われることが多い言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
公開ソフトウェア言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
公開ソフトウェアl  Re-Pair [Larsson+ ’99]l  http://ihome.cuhk.edu.hk/~b126594/ja/restore.htmll  https://code.google.com/p/re-pair/l  http://www.dcc.uchile.cl/~gnavarro/software/l  Re-Pairに基づくラベル付き順序⽊木の圧縮データ構造 [Lohrey+ ’11]l  https://code.google.com/p/treerepair/l  Re-Pairに基づくウェブグラフの圧縮データ構造 [Claude+ ’10b]l  http://webgraphs.recoded.cl/index.php?section=rpgraphl  OLCA [Maruyama+ ’10]l  https://code.google.com/p/lcacomp/l  Sequitur [Nevill-Manning+ ’97]l  http://www.sequitur.info/言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Amir+ ’92] "Efficient Two-Dimensional Compressed Matching", DCC.[Amir+ ’96] "Let Sleeping Files Lie: Pattern Matching in Z-Compressed Files", J. Comput. Syst.Sci.[Amir+ ’97] "Optimal Two-Dimensional Compressed Matching", J. Algorithms.[Apostlico+ ’98] “Some Theory and Practice of Greedy Off-Line Textual Substitution”, DCC.[Bille+ ’11] “Random Access to Grammar-Compressed Strings”, SODA.[Brisaboa+ ’09] "Directly Addressable Variable-Length Codes", SPIRE.[Brisaboa+ ’11] “Compressed String Dictionaries”, SEA.[Charikar+ ’05] "The Smallest Grammar Problem", IEEE Transactions on Information Theory.[Cégielski+ ’06] “Window Subsequence Problems for Compressed Texts”, CSR.[Claude+ ’10a] “Fast and Compact Web Graph Representations”, TWEB.[Claude+ ’10b] “Extended Compact Web Graph Representations”, Algorithms and Applications.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Claude+ ’10c] "Compressed Q-gram Indexing for Highly Repetitive Biological Sequences",BIBE.[Claude+ ’11] "Self-Indexed Grammar-Based Compression", Fundam. Inform.[Claude+ ’12] “Improved Grammar-Based Compressed Indexes”, SPIRE.[Claude+ ’13] "Document Listing on Versioned Documents", SPIRE.[Eilam-Tzoreff+ ’88] "Matching Patterns in Strings Subject to Multi-Linear Transformations",Theor. Comput. Sci.[Gagie+ ’10] "Grammar-Based Compression in a Streaming Model”, LATA.[Gagie+ ’12] “A Faster Grammar-Based Self-index”, LATA.[Gawrychowski ’11a] “Pattern Matching in Lempel-Ziv Compressed Strings: Fast, Simple, andDeterministic”, ESA.[Gawrychowski ’11b] “Optimal Pattern Matching in LZW Compressed Strings”, SODA.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[González+ ’07] "Compressed Text Indexes with Fast Locate", CPM.[Hermelin+ ’09] "A Unified Algorithm for Accelerating Edit-Distance Computation via Text-Compression", STACS.[Hermelin+ ’13] "Unified Compression-Based Acceleration of Edit-Distance Computation",Algorithmica.[Inenaga+ ’12] “Finding Characteristic Substrings from Compressed Texts”, Int. J. Found.Comput. Sci.[Jez ’13] “Approximation of Grammar-Based Compression via Recompression”, CPM.[Kärkkäinen+ ’00] "Approximate String Matching over Ziv-Lempel Compressed Text", CPM.[Karpinski+ ’97] “An Efficient Pattern-Matching Algorithm for Strings with Short Descriptions”,Nord. J. Comput.[Kida+ ’98] "Multiple Pattern Matching in LZW Compressed Text", DCC.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Kida+ ’99] “Shift-And Approach to Pattern Matching in LZW Compressed Text”, CPM.[Kida+ ’03] “Collage System: a Unifying Framework for Compressed Pattern Matching”, Theor.Comput. Sci.[Kieffer+ ’00] “Grammar-Based Codes: A New Class of Universal Lossless Source Codes”, IEEETrans. Inform. Theory.[Klein+ ’00] “A New Compression Method for Compressed Matching”, DCC.[Klein+ ’01] “Pattern Matching in Huffman Encoded Texts”, DCC.[Kreft+ ’10] “LZ77-like Compression with Fast Random Access”, DCC.[Larsson+ ’99] “Offline Dictionary-Based Compression”, DCC.[Lifshits ’07] “Processing Compressed Texts: A Tractability Border”, CPM[Lohrey+ ’11] "Tree Structure Compression with RePair", DCC.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Maruyama+ ’10] "Context-Sensitive Grammar Transform: Compression and Pattern Matching",IEICE Transactions.[Maruyama+ ’12] "An Online Algorithm for Lightweight Grammar-Based Compression”,Algorithms.[Maruyama+ ’13a] "ESP-Index: A Compressed Index Structure Based on Edit-SensitiveParsing”, J. Discrete Algorithms.[Maruyama+ ’13b] “Fully-Online Grammar Compression”, SPIRE.[Maruyama+ ’14] “Fully-Online Grammar Compression in Constant Space”, DCC.[Matsubara+ ’09] “Efficient algorithms to compute compressed longest common substringsand compressed palindromes”, Theor. Comput. Sci.[Matsumoto+ ’09] “A Run-Time Efficient Implementation of Compressed Pattern MatchingAutomata”, Int. J. Found. Comput. Sci.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Miyazaki+ ’97] “An Improved Pattern Matching Algorithm for Strings in Terms of Straight-LinePrograms”, CPM.[Nakamura+ ’09] “Linear-Time Text Compression by Longest-First Substitution”, Algorithms.[Navarro+ ’99] “A General Practical Approach to Pattern Matching over Ziv-Lempel CompressedText”, CPM.[Navarro+ ’04] "Practical and Flexible Pattern Matching over Ziv-Lempel Compressed Text",Journal of Discrete Algorithms.[Navarro+ ’07] "Compressed Full-Text Indexes", ACM Computing Surveys.[Navarro+ ’11] “Practical Compressed Document Retrieval”, SEA.[Navarro+ ’12] “Indexing Highly Repetitive Collection”, IWOCA.[Nevill-Manning+ ‘94] "Compression by Induction of Hierarchical Grammars”, DCC.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Nevill-Manning+ ’97] "Identifying Hierarchical Structure in Sequences: A Linear-TimeAlgorithm", J. Artif. Intell. Res.[Rautio+ ’02] “String Matching with Stopper Encoding and Code Splitting”, CPM.[Rytter ’03] “Application of Lempel-Ziv Factorization to the Approximation of Grammar-BasedCompression”, Theor. Comput. Sci.[Sakamoto+ ’04] "A Space-Saving Linear-Time Algorithm for Grammar-Based Compression",SPIRE.[Sakamoto+ ’09] "A Space-Saving Approximation Algorithm for Grammar-Based Compression"IEICE Transactions.[Shibata+ ’00] “Speeding Up Pattern Matching by Text Compression”, CIAC.[Tabei+ ’13] “A Succinct Grammar Compression”, CPM.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
参考⽂文献[Tiskin ’08] “Semi-local String Comparison: Algorithmic Techniques and Applications",Mathematics in Computer Science.[Tiskin ’11] “Towards Approximate Matching in Compressed Strings: Local SubsequenceRecognition”, CSR.[Wan+ ’07] "Block Merging for Off-line Compression", Journal of the American Society forInformation Science and Technology.[Yamamoto+ ’11] “Faster Subsequence and Don't-Care Pattern Matching on CompressedTexts”, CPM.[Yoshida+ ’13] "A Variable-length-to-fixed-length Coding Method Using a Re-Pair Algorithm",IPSJ Transactions on Databases.言語処理学会 第 20 回年次大会 チュートリアル資料 (2014年3月)
Copyright © 2006-2014Preferred Infrastructure All Right Reserved.

Recommended

PDF
ウェーブレット木の世界
PDF
最適輸送の解き方
PDF
最適化超入門
PDF
coordinate descent 法について
PPTX
強化学習アルゴリズムPPOの解説と実験
PDF
研究効率化Tips Ver.2
PPTX
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
PDF
POMDP下での強化学習の基礎と応用
PDF
プログラミングコンテストでのデータ構造 2 ~動的木編~
PDF
強化学習の基礎的な考え方と問題の分類
PDF
平面グラフと交通ネットワークのアルゴリズム
PDF
はじめてのKrylov部分空間法
PDF
Newman アルゴリズムによるソーシャルグラフのクラスタリング
PDF
プログラミングコンテストでの乱択アルゴリズム
PPTX
クラシックな機械学習の入門  5. サポートベクターマシン
PPTX
強化学習2章
PDF
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
PDF
リクルート式 自然言語処理技術の適応事例紹介
PDF
機械学習モデルの判断根拠の説明(Ver.2)
PDF
強化学習その3
 
PDF
直交領域探索
PPTX
[DL輪読会]逆強化学習とGANs
PDF
3次元レジストレーション(PCLデモとコード付き)
PDF
[DL輪読会]近年のオフライン強化学習のまとめ —Offline Reinforcement Learning: Tutorial, Review, an...
PPTX
Curriculum Learning (関東CV勉強会)
PPTX
【DL輪読会】Scaling Laws for Neural Language Models
PPTX
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
PPTX
[DL輪読会]Pay Attention to MLPs(gMLP)
PDF
comp_pfiseminar
PDF
20170419PFNオープンハウス インターンと採用 公開用

More Related Content

PDF
ウェーブレット木の世界
PDF
最適輸送の解き方
PDF
最適化超入門
PDF
coordinate descent 法について
PPTX
強化学習アルゴリズムPPOの解説と実験
PDF
研究効率化Tips Ver.2
PPTX
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
PDF
POMDP下での強化学習の基礎と応用
ウェーブレット木の世界
最適輸送の解き方
最適化超入門
coordinate descent 法について
強化学習アルゴリズムPPOの解説と実験
研究効率化Tips Ver.2
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
POMDP下での強化学習の基礎と応用

What's hot

PDF
プログラミングコンテストでのデータ構造 2 ~動的木編~
PDF
強化学習の基礎的な考え方と問題の分類
PDF
平面グラフと交通ネットワークのアルゴリズム
PDF
はじめてのKrylov部分空間法
PDF
Newman アルゴリズムによるソーシャルグラフのクラスタリング
PDF
プログラミングコンテストでの乱択アルゴリズム
PPTX
クラシックな機械学習の入門  5. サポートベクターマシン
PPTX
強化学習2章
PDF
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
PDF
リクルート式 自然言語処理技術の適応事例紹介
PDF
機械学習モデルの判断根拠の説明(Ver.2)
PDF
強化学習その3
 
PDF
直交領域探索
PPTX
[DL輪読会]逆強化学習とGANs
PDF
3次元レジストレーション(PCLデモとコード付き)
PDF
[DL輪読会]近年のオフライン強化学習のまとめ —Offline Reinforcement Learning: Tutorial, Review, an...
PPTX
Curriculum Learning (関東CV勉強会)
PPTX
【DL輪読会】Scaling Laws for Neural Language Models
PPTX
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
PPTX
[DL輪読会]Pay Attention to MLPs(gMLP)
プログラミングコンテストでのデータ構造 2 ~動的木編~
強化学習の基礎的な考え方と問題の分類
平面グラフと交通ネットワークのアルゴリズム
はじめてのKrylov部分空間法
Newman アルゴリズムによるソーシャルグラフのクラスタリング
プログラミングコンテストでの乱択アルゴリズム
クラシックな機械学習の入門  5. サポートベクターマシン
強化学習2章
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
リクルート式 自然言語処理技術の適応事例紹介
機械学習モデルの判断根拠の説明(Ver.2)
強化学習その3
 
直交領域探索
[DL輪読会]逆強化学習とGANs
3次元レジストレーション(PCLデモとコード付き)
[DL輪読会]近年のオフライン強化学習のまとめ —Offline Reinforcement Learning: Tutorial, Review, an...
Curriculum Learning (関東CV勉強会)
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
[DL輪読会]Pay Attention to MLPs(gMLP)

Viewers also liked

PDF
comp_pfiseminar
PDF
20170419PFNオープンハウス インターンと採用 公開用
PDF
IPAB2017 深層学習を使った新薬の探索から創造へ
PDF
Introduction to Chainer
PDF
20170419PFNオープンハウス リサーチャーの仕事_公開用
PDF
Lecture univ.tokyo 2017_okanohara
PDF
Chainer OpenPOWER developer congress HandsON 20170522_ota
PDF
Gatsby kaken-2017-pfn okanohara
PDF
Deep Learning Lab: DIMo & Chainer
PDF
20171024 DLLab#04_PFN_Hiroshi Maruyama
comp_pfiseminar
20170419PFNオープンハウス インターンと採用 公開用
IPAB2017 深層学習を使った新薬の探索から創造へ
Introduction to Chainer
20170419PFNオープンハウス リサーチャーの仕事_公開用
Lecture univ.tokyo 2017_okanohara
Chainer OpenPOWER developer congress HandsON 20170522_ota
Gatsby kaken-2017-pfn okanohara
Deep Learning Lab: DIMo & Chainer
20171024 DLLab#04_PFN_Hiroshi Maruyama

Similar to 文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)

PDF
形態素解析の過去・現在・未来
PDF
深層学習時代の自然言語処理
PDF
言語資源と付き合う
PDF
黒い目の大きな女の子:構文から意味へ
PDF
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
PPT
言語処理系入門€2
PDF
文法誤り訂正モデルは訂正に必要な文法を学習しているか(NLP2021)
PDF
鬱くしい日本語のための形態素解析入門
PDF
NLP若手の回 ACL2012参加報告
PDF
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
PDF
さくさくテキストマイニング入門セッション
PPT
言語処理系入門€8
PPT
言語処理系入門€5
PDF
Segmenting Sponteneous Japanese using MDL principle
PPTX
Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices
PPT
言語処理系入門€10
PDF
Kuroda NLP17 slides on Parallel Simulated Error Correction method
PDF
Kuroda & Hasebe NLP15 slides on Pattern Lattice Model
PDF
第三回さくさくテキストマイニング勉強会 入門セッション
DOCX
サンプル文書1(.doc file) - 東京女子大学HOME - 東京女子大学
 
形態素解析の過去・現在・未来
深層学習時代の自然言語処理
言語資源と付き合う
黒い目の大きな女の子:構文から意味へ
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
言語処理系入門€2
文法誤り訂正モデルは訂正に必要な文法を学習しているか(NLP2021)
鬱くしい日本語のための形態素解析入門
NLP若手の回 ACL2012参加報告
アルゴリズムのお勉強 アルゴリズムとデータ構造 [素数・文字列探索・簡単なソート]
さくさくテキストマイニング入門セッション
言語処理系入門€8
言語処理系入門€5
Segmenting Sponteneous Japanese using MDL principle
Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices
言語処理系入門€10
Kuroda NLP17 slides on Parallel Simulated Error Correction method
Kuroda & Hasebe NLP15 slides on Pattern Lattice Model
第三回さくさくテキストマイニング勉強会 入門セッション
サンプル文書1(.doc file) - 東京女子大学HOME - 東京女子大学
 

文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)


[8]ページ先頭

©2009-2025 Movatter.jp