2012/6/21  PFI全体セミナー




  ⽂文字列列データ圧縮ことはじめ


         株式会社 Preferred Infrastructure
               岡野原  ⼤大輔




   1
アジェンダ

l    圧縮の基礎
       l  なぜ圧縮できるのか

       l  モデル化

       l  符号

l    基本的なデータ圧縮
       l  連⻑⾧長圧縮

       l  RePair

l    ⽂文法データ圧縮
l    LZ77, LZ78
l    Burrows Wheeler変換
l    最近のデータ圧縮


                          2
データ圧縮と私の関係
1992	

         データ圧縮           小5〜 nifty serve, DO++
                                                    今の興味分野の
2004	
                                              起源はデータ圧縮

         (統計的)⾃自然⾔言語処理理          大3〜

                                 未踏 & 辻井研

                                                    M1〜 未踏 & OSS

                                 圧縮全⽂文索索引
                                                    定兼先生

     機械学習/データマイニング                  簡潔データ構造

          M1〜 OSS, T-Primal
          OSS
                                                  バイオインフォマティクス
          2011〜 Jubatus
                                                  大学4年〜 バイオベンチャー
                                                  2011〜 次世代シーケンサ
圧縮の基礎




4
コンピュータが誕⽣生する以前から
データ圧縮は使われている
l    同じ情報を伝える/保存するのに、少ないデータで表す
      l  ⾷食堂にて「おばちゃん、いつもの!」

            l    送信者、受信者が同じ情報を共有している場合
            l    時間的局所性の利利⽤用


      l    モールス信号
            l    短点「トン」と⻑⾧長点「ツー」から構成される可変⻑⾧長符号
            l    最頻な「e」はトン、最稀な「q」はツーツートンツー
            l    均⼀一な符号⻑⾧長ではなく、頻度度が多い⽂文字には短い符号、頻度度が少
                  なく⽂文字には⻑⾧長い符号を利利⽤用することで全体の符号⻑⾧長を短くする




                                 5
データ圧縮は社会を⽀支える

l    データ圧縮が無ければここまで安価+⼤大量量+正確に
      画像・⾳音声・映像情報を伝えることはできなかった
      l  特に映像のデータ圧縮技術の進化は著しい

        l    FaceTimeなどTV電話が安価なインターネット網で実現可能
        l    エラー訂正, 通信技術, 配信制御技術の進化もちろんすごい
l    データが⼩小さい=⾼高速化
      l  上位の⾼高速な記憶階層(キャッシュ, メモリ)で処理理できる

      l  そのまま扱うより圧縮+復復元のコストを加えても全体は⾼高速化




                            6
データ圧縮 = モデル化 + 符号化

l    データ圧縮はモデル化と符号化の⼆二段階からなる
      l  モデル化 = データをうまく表現するモデルを⾒見見つける

      l  符号化 = モデルを利利⽤用して表現されたデータを符号で短く表す

        l    コンピュータ世界での系列列符号は⼀一般に0と1からなる⼆二値


l    この⼆二つを混同してはいけない
      l  最適なモデルが与えられたら、それを利利⽤用して最適な符号を決め

          ることはできる.しかし最適なモデルは⼀一般に分からない
データ圧縮  と  他分野との関係

l    データ圧縮を実現するにはデータを理理解する必要があり、データ
      圧縮が実現できたら機械学習, ⾔言語モデル


l    ⽣生成モデル
       l  データxを⽣生成する過程を理理解し,p(x)をうまくモデル化でき

           たら、それを利利⽤用し,圧縮率率率が⾼高いデータ圧縮を実現できる


l    ⾔言語モデル (LM)
       l  与えられた⽂文字列列が⽂文法的・⽤用法的に正しいかを当てるタスク

       l  機械翻訳・⾳音声認識識・情報検索索(LMベース)で利利⽤用される

      l    ⾔言語モデルの基礎技術は後述のPPMと呼ばれるデータ圧縮と同じ


                          8
符号

l    情報を0と1からなる系列列で表す


l  正整数の符号化
    l  Elias符号 (75年年!):ガンマ符号、デルタ符号、ゴロム符号

    l  ライス符号、

    l  フィボナッチ符号

l  確率率率情報が既知の場合
    l  Shannon-Fano 符号、Huffman符号

    l  算術符号, Range Code

l  組み合わせ的データ構造
      l    数え上げ符号
l    その他も

                         9
Huffman符号の逸話

1951年年 MITの情報理理論論のクラスにて:


l  Fano先⽣生「最終試験を受けるか、課題レポート出すか
              どっちか選んでください」
l  Huffman「最終試験なんてうけたくないから、
              課題レポートだします」
l  Fano先⽣生「私はShannon先⽣生とShannon-Fano符号を開発しまし
    たが、最適ではありません。最適な符号を考えてレポートしてく
    ださい」
l  Huffman「思いつかないが、Fano先⽣生が⽊木を根から葉葉に向けて作
      っているから、逆に葉葉から根に向けて作ったらいいんじゃない?」
      ⇒ これがラッキーなことに最適.Huffman符号誕⽣生!

                      10
基本的なデータ圧縮




11
連⻑⾧長圧縮
RLE: Run Length Encoding
l  繰り返し⽂文字列列を、(⽂文字、繰り返し⻑⾧長)のペアで表す
l  ヒャァァァァァァァアアアウウヴァアアアアアアアアイイイイ
           ↓
    ヒ1ャ1ァ7ア3ウ2ヴ1ァ1ア8イ4


l  ⽂文字が⼆二種類の場合は⽂文字は交互なので繰り返し⻑⾧長さだけでOK
    0000111100011 → 4432 (例例えば⽩白⿊黒画像データなど)
l  繰り返し数が少ない場合⼤大きくなってしまうので、連⻑⾧長が多い場
    合は連⻑⾧長圧縮モード、そうでない場合はそのままと切切り替える [1]
l  ⼤大抵は何らかの処理理(BWT, 基底変換)の後に使う場合が多い
      l    画像圧縮のDCT後の係数はRLEが使われる
  [1] “Adaptive Run-Length / Golomb-Rice Encoding of Quantized Generalized
  Gaussian Sources with Unknown Statistics”, H. S. Malvar DCC 06	
                                          12
RePair
l  最頻する2⽂文字を再帰的に他の⽂文字に置換し、全てが異異なる(か
    適当なところまで)繰り返し、置換ルールと置換後⽂文字列列を出⼒力力
l  うらにわにわにわにわにわにわにわとりうらうらら
                ↓にわ  を Aに変換
    うらAAAAAAAとりうらうらら
                ↓AA を Bに変換
    うらBBBAとりうらうらら
                ↓うら  を Cに変換
   CBBBAとりCCら
  (にわ, A) (AA, B) (うら, C)
l     実⽤用的にはうまくいくので昔から使われていたが、最近はいろい
       ろ証明[1]が出たり、簡潔データ構造の圧縮[2]に使われている

      [1] “Re-pair Achieves High-order Entropy”, 13	
 Navarro+, DCC 08]
                                                  [G.
      [2] “Practical Compressed Document Retrieval”, [G. Navarro+, SEA 11]
⽂文法圧縮

l  圧縮対象⽂文字列列のみを⽣生成するCFGルールを求めて圧縮
     l  ルール集合が元の⽂文字列列より短く記述できれば圧縮可能

     l  実は先程のRePairは⽂文法圧縮の⼀一種

l  CFGルールの求め⽅方で様々な⼿手法が存在
     l  最適なCFGルールを⾒見見つけるのはNP困難.近似解の世界で頑張る

     l  オンライン, ルール作業領領域のみで構築 [Maruyama+, CCP 11]


                         ….	
                     A → ba
           D         E          D     F	
         B → pa
                                                  C → ma
   文法のみを保存	
                                                  D → AA
                                                  E → BB
       A       A B       B A    A   C       C	
   F → CC
                                                  … 	
      b a b a p a p a b a b a m a m a	
                                    14
LZ法

l  最も有名なデータ圧縮で最も使われているデータ圧縮
    l  何らかでお世話になったはず, ZIP LHA, GIF PNG 他多数利利⽤用
                                  ,     ,
l  Lempel と  Ziv が 77年年, 78年年と⽴立立て続けに提案
    l  77年年に提案されたのがLZ77, 78年年に提案されたのがLZ78

l  モデルが未知である⽂文字列列でも圧縮できる⼿手法として提案
    l  正確には⽂文字列列⽣生成源のk次エントロピーに漸近するか

    l  LZ77法に対する証明ができなかったのでLZ78法で証明

    l  後にLZ77法でも証明される

l  その後、現実的な符号が登場                   Lempel先生
 Ziv先生




                           15
LZ法これだけは知っといて

l  最適性の証明は⾯面⽩白いが、説明しきれないので分かる⼈人だけ
l  ⼊入⼒力力系列列  X = x1x2…xn を分割しフレーズ列列  Y = y1y2…ymを得る
    X = [x1x2x3][x4x5][x6x7x8][x9x10]

              y1   y2   y3   y4	

l  この時、フレーズ列列のフレーズ  {yi}i=1…m が全て異異なるならば、
    c=|Y|とした時、clog2 c はXの情報源のエントロピーに漸近する
     l  clog2c は各フレーズをそのまま格納したサイズ

     l  Xのk次経験エントロピーでも成り⽴立立つ

l  LZ78は⼊入⼒力力系列列を全て異異なるフレーズ列列に分解する⼀一⼿手法
      l    LZ77のエントロピー漸近性の証明は別⼿手法
l    この証明はLZ以外のデータ構造のサイズ評価にも使われる

                                    16
LZ77

l  データを先頭から順番に次のように符号化していく.
l  現在位置から始まる記号列列が、過去に出現していれば、
    l  (出現相対位置,  ⼀一致⻑⾧長, 次の不不⼀一致⽂文字)のtripleで置き換える

    l  していなければ空の⼀一致と次の不不⼀一致⽂文字で表す

    l  ⼊入⼒力力系列列を全て異異なるフレーズに分解していることに注意




あかさかさかすでかささすで。
あかさ[かさか]すで[かさ]さ[すで]。
(*, *, あ)(*, *, か) (*, *, さ)
(-2, 3,す) (*, *,で) (-5, 2,さ) (-5, 2, 。)


                                  17
実⽤用的LZ77

l    前述⼿手法は理理論論的にはエントロピーに漸近するがオーバーヘッド
      が多いので実際には次のように処理理される場合が多い
l    ⼀一致があったかどうかを記録した後に、⼀一致情報、不不⼀一致記号出⼒力力
       l  LZSSがこの⽅方法を利利⽤用し、LHAやZIPなど殆どがこの⽅方法を採⽤用

l    ⼀一致⽂文字列列は直近の滑滑⾛走窓中の候補だけから探す.
       l  探す⽅方法は、ハッシュ、Trieなど様々

l    ⼀一致⻑⾧長、相対位置はElias符号で符号化
       l  同じ⽂文字列列は近い場所で繰り返される、⼀一致⻑⾧長は殆ど短い

       l  ⼀一度度⼀一致した⽂文字列列はキャッシュしておきそれを利利⽤用 c.f. LZMA

l    不不⼀一致が連続した場合は読み⾶飛ばして⾼高速化 c.f. snappy




                           18
LZ78

l    読み込みながら辞書(Trie)を作り、不不⼀一致⽂文字を最後に⾜足す

  123456789AB
  あかさかさかすでかささ

        あ           さ                      あ           で
                        あ              さ
            か               か                 か さ
        1           3                  3   1       3       8
                2       1
                            さ 2              さ 2 す
                            4              さ   4   6

                                           9

l    全て異異なるフレーズに分解していることに注意
      l  トライの保存はフレーズ⻑⾧長がcの時、c log cであり、エントロピー


                                19
Burrows Wheeler変換  (BWT)

l  ⽂文字列列に対する可逆変換で⽂文字列列を”圧縮しやすく”変換する
     l  BWTはその後、データ圧縮のみならず全⽂文索索引、テキストマイニ

         ングなど⾮非常に多く使われるようになる
     l  圧縮ソフト bzip2, アライメントソフト  bwa

l  ⼿手法も⾯面⽩白いが話すには時間が⾜足りません。その周辺の話も⾯面⽩白
    いのでそちらをします




                    20
BWTのBとWの話

 l    1978年年頃にWheelerが思いついたが「こんな当たり前のことは論論
       ⽂文にするまでもない」と書いていなかった
        l  その後、Burrowsさんがこれ⾯面⽩白いので書きましょうと説得して

            1984年年にDECの技術論論⽂文として公開される  
         l    データ圧縮の学会(DCC)では落落ちてたが、Dr. Dobbs articleで
               拾拾われてそこから徐々に有名になる
 l  Wheelerは世界で初めてコンピュータ科学の博⼠士号をとり、その
     あと、B. Stroustrup (C++の作者), M. Burrowsなど数多くの優
     秀な研究者を育てた
 l  BurrowsはCubbyなどで有名なシステム屋


 l    彼らが最初に提案した圧縮⼿手法が、その後理理論論的最適と⽰示される
このへんの話は

                                  21	
http://people.unipmn.it/manzini/papers/foreword_bwt.pdf
BWTを1分で説明

l  ⼊入⼒力力テキスト  S = s1s2s3…sn
l  各⽂文字を、それに後続する⽂文字をキーとして辞書式順序でソート
     l  s1 のキーは  s2s3s4…sn

     l  s2 のキーは  s3s3s4…sn



l  S = abracadabra  →  BWT(S) = ardrcaaaabb
l  BWTはSの⻑⾧長さの線形時間で求めることが可能
     l  接尾辞配列列経由(最速)で or 直接変換(省省スペース)

     l  逆変換も線形時間で構築可能



l    BWT(S)はSに⽐比べて圧縮しやすい
       l  後続している⽂文字が似ているなら、その⽂文字も似ている


                          22
最近のデータ圧縮

l    透過的データ圧縮
l    簡潔データ構造
l    データ処理理向けデータ圧縮
      l  ⽂文字列列マッチングや各種統計量量が元のデータより⾼高速に処理理可能

l    特定データ専⾨門のデータ圧縮
      l  構造付, 型付データ (=JSON ?)

      l  ゲノム配列列 from 次世代シーケンサ

      l  センサデータ

l    映像はまだまだ伸びる
      l  H264からH265(7640 x 4320サポート)へ

      l    中でやっているのはリアルタイムでの⾼高度度な画像予測


                          23
最近のデータ圧縮(続)

l    ビッグデータ解析向け
      l  MapReduceのShuffle Phaseの時のデータ量量を⼩小さくしよう

      l  Jubatusのmix時のモデル交換量量を⼩小さくしよう



l    センサデータでの圧縮
      l  センサデータを集めるデバイスは安くなったが通信コストが⾼高い

      l  端末で圧縮、中継点で圧縮

      l  端末間の冗⻑⾧長性を加味したデータ圧縮

      l  c.f. Compressed Sensing




                            24
お⾦金金になる圧縮

l    思いつくのを並べてみました


l  Disaster Recovery
     l  同じデータを遠く離離れたところでコピーをとっておく.そこで圧縮

l  クラウド・ストレージ
     l  今後多くのデータをクラウドに置く様になった時に、クラウドに

         置くコスト(通信費、維持費)を減らすことができる
     l  次世代シーケンサ・センサデータ・ログデータ

l  ビッグデータ解析向け


l    特許ライセンスは厳しいか
      l  いまや、多くのメディアはクロスライセンス


                      25
まとめ

l  データ圧縮は古くて新しい
    l  古くから使われ続ける技術もあれば、新しいデータ向けのデータ

        圧縮も次々と⽣生まれている
    l  いろいろな分野と関連:機械学習、データマイニング、⾃自然⾔言語

        処理理、信号処理理、通信、バイオインフォマティクス、
l  情報源
    l  ⽂文字列列データ圧縮:DCC, CPM, SEA, SODA, ALENEX, ICALP ESA,
                                                     ,
    l  http://compression.ru/ (ロシア語だけど)

    l  http://mattmahoney.net/dc/ Matt Mahoney



l    私も⽂文字列列解析本をそのうち出します! :)
      l  データ圧縮・簡潔データ構造・全⽂文索索引・テキストマイニング


                            26

comp_pfiseminar

  • 1.
    2012/6/21  PFI全体セミナー ⽂文字列列データ圧縮ことはじめ 株式会社 Preferred Infrastructure 岡野原  ⼤大輔 1
  • 2.
    アジェンダ l  圧縮の基礎 l  なぜ圧縮できるのか l  モデル化 l  符号 l  基本的なデータ圧縮 l  連⻑⾧長圧縮 l  RePair l  ⽂文法データ圧縮 l  LZ77, LZ78 l  Burrows Wheeler変換 l  最近のデータ圧縮 2
  • 3.
    データ圧縮と私の関係 1992 データ圧縮 小5〜 nifty serve, DO++ 今の興味分野の 2004 起源はデータ圧縮 (統計的)⾃自然⾔言語処理理 大3〜
 未踏 & 辻井研 M1〜 未踏 & OSS
 圧縮全⽂文索索引 定兼先生 機械学習/データマイニング 簡潔データ構造 M1〜 OSS, T-Primal
 OSS バイオインフォマティクス 2011〜 Jubatus 大学4年〜 バイオベンチャー 2011〜 次世代シーケンサ
  • 4.
  • 5.
    コンピュータが誕⽣生する以前から データ圧縮は使われている l  同じ情報を伝える/保存するのに、少ないデータで表す l  ⾷食堂にて「おばちゃん、いつもの!」 l  送信者、受信者が同じ情報を共有している場合 l  時間的局所性の利利⽤用 l  モールス信号 l  短点「トン」と⻑⾧長点「ツー」から構成される可変⻑⾧長符号 l  最頻な「e」はトン、最稀な「q」はツーツートンツー l  均⼀一な符号⻑⾧長ではなく、頻度度が多い⽂文字には短い符号、頻度度が少 なく⽂文字には⻑⾧長い符号を利利⽤用することで全体の符号⻑⾧長を短くする 5
  • 6.
    データ圧縮は社会を⽀支える l  データ圧縮が無ければここまで安価+⼤大量量+正確に 画像・⾳音声・映像情報を伝えることはできなかった l  特に映像のデータ圧縮技術の進化は著しい l  FaceTimeなどTV電話が安価なインターネット網で実現可能 l  エラー訂正, 通信技術, 配信制御技術の進化もちろんすごい l  データが⼩小さい=⾼高速化 l  上位の⾼高速な記憶階層(キャッシュ, メモリ)で処理理できる l  そのまま扱うより圧縮+復復元のコストを加えても全体は⾼高速化 6
  • 7.
    データ圧縮 = モデル化+ 符号化 l  データ圧縮はモデル化と符号化の⼆二段階からなる l  モデル化 = データをうまく表現するモデルを⾒見見つける l  符号化 = モデルを利利⽤用して表現されたデータを符号で短く表す l  コンピュータ世界での系列列符号は⼀一般に0と1からなる⼆二値 l  この⼆二つを混同してはいけない l  最適なモデルが与えられたら、それを利利⽤用して最適な符号を決め ることはできる.しかし最適なモデルは⼀一般に分からない
  • 8.
    データ圧縮  と  他分野との関係 l  データ圧縮を実現するにはデータを理理解する必要があり、データ 圧縮が実現できたら機械学習, ⾔言語モデル l  ⽣生成モデル l  データxを⽣生成する過程を理理解し,p(x)をうまくモデル化でき たら、それを利利⽤用し,圧縮率率率が⾼高いデータ圧縮を実現できる l  ⾔言語モデル (LM) l  与えられた⽂文字列列が⽂文法的・⽤用法的に正しいかを当てるタスク l  機械翻訳・⾳音声認識識・情報検索索(LMベース)で利利⽤用される l  ⾔言語モデルの基礎技術は後述のPPMと呼ばれるデータ圧縮と同じ 8
  • 9.
    符号 l  情報を0と1からなる系列列で表す l  正整数の符号化 l  Elias符号 (75年年!):ガンマ符号、デルタ符号、ゴロム符号 l  ライス符号、 l  フィボナッチ符号 l  確率率率情報が既知の場合 l  Shannon-Fano 符号、Huffman符号 l  算術符号, Range Code l  組み合わせ的データ構造 l  数え上げ符号 l  その他も 9
  • 10.
    Huffman符号の逸話 1951年年 MITの情報理理論論のクラスにて: l  Fano先⽣生「最終試験を受けるか、課題レポート出すか           どっちか選んでください」 l  Huffman「最終試験なんてうけたくないから、           課題レポートだします」 l  Fano先⽣生「私はShannon先⽣生とShannon-Fano符号を開発しまし たが、最適ではありません。最適な符号を考えてレポートしてく ださい」 l  Huffman「思いつかないが、Fano先⽣生が⽊木を根から葉葉に向けて作 っているから、逆に葉葉から根に向けて作ったらいいんじゃない?」 ⇒ これがラッキーなことに最適.Huffman符号誕⽣生! 10
  • 11.
  • 12.
    連⻑⾧長圧縮 RLE: Run LengthEncoding l  繰り返し⽂文字列列を、(⽂文字、繰り返し⻑⾧長)のペアで表す l  ヒャァァァァァァァアアアウウヴァアアアアアアアアイイイイ ↓ ヒ1ャ1ァ7ア3ウ2ヴ1ァ1ア8イ4 l  ⽂文字が⼆二種類の場合は⽂文字は交互なので繰り返し⻑⾧長さだけでOK 0000111100011 → 4432 (例例えば⽩白⿊黒画像データなど) l  繰り返し数が少ない場合⼤大きくなってしまうので、連⻑⾧長が多い場 合は連⻑⾧長圧縮モード、そうでない場合はそのままと切切り替える [1] l  ⼤大抵は何らかの処理理(BWT, 基底変換)の後に使う場合が多い l  画像圧縮のDCT後の係数はRLEが使われる [1] “Adaptive Run-Length / Golomb-Rice Encoding of Quantized Generalized Gaussian Sources with Unknown Statistics”, H. S. Malvar DCC 06 12
  • 13.
    RePair l  最頻する2⽂文字を再帰的に他の⽂文字に置換し、全てが異異なる(か 適当なところまで)繰り返し、置換ルールと置換後⽂文字列列を出⼒力力 l  うらにわにわにわにわにわにわにわとりうらうらら ↓にわ  を Aに変換 うらAAAAAAAとりうらうらら             ↓AA を Bに変換 うらBBBAとりうらうらら ↓うら  を Cに変換 CBBBAとりCCら   (にわ, A) (AA, B) (うら, C) l  実⽤用的にはうまくいくので昔から使われていたが、最近はいろい ろ証明[1]が出たり、簡潔データ構造の圧縮[2]に使われている [1] “Re-pair Achieves High-order Entropy”, 13 Navarro+, DCC 08] [G. [2] “Practical Compressed Document Retrieval”, [G. Navarro+, SEA 11]
  • 14.
    ⽂文法圧縮 l  圧縮対象⽂文字列列のみを⽣生成するCFGルールを求めて圧縮 l  ルール集合が元の⽂文字列列より短く記述できれば圧縮可能 l  実は先程のRePairは⽂文法圧縮の⼀一種 l  CFGルールの求め⽅方で様々な⼿手法が存在 l  最適なCFGルールを⾒見見つけるのはNP困難.近似解の世界で頑張る l  オンライン, ルール作業領領域のみで構築 [Maruyama+, CCP 11] …. A → ba D E D F B → pa C → ma 文法のみを保存 D → AA E → BB A A B B A A C C F → CC … b a b a p a p a b a b a m a m a 14
  • 15.
    LZ法 l  最も有名なデータ圧縮で最も使われているデータ圧縮 l  何らかでお世話になったはず, ZIP LHA, GIF PNG 他多数利利⽤用 , , l  Lempel と  Ziv が 77年年, 78年年と⽴立立て続けに提案 l  77年年に提案されたのがLZ77, 78年年に提案されたのがLZ78 l  モデルが未知である⽂文字列列でも圧縮できる⼿手法として提案 l  正確には⽂文字列列⽣生成源のk次エントロピーに漸近するか l  LZ77法に対する証明ができなかったのでLZ78法で証明 l  後にLZ77法でも証明される l  その後、現実的な符号が登場 Lempel先生 Ziv先生 15
  • 16.
    LZ法これだけは知っといて l  最適性の証明は⾯面⽩白いが、説明しきれないので分かる⼈人だけ l  ⼊入⼒力力系列列 X = x1x2…xn を分割しフレーズ列列  Y = y1y2…ymを得る X = [x1x2x3][x4x5][x6x7x8][x9x10] y1 y2 y3 y4 l  この時、フレーズ列列のフレーズ  {yi}i=1…m が全て異異なるならば、 c=|Y|とした時、clog2 c はXの情報源のエントロピーに漸近する l  clog2c は各フレーズをそのまま格納したサイズ l  Xのk次経験エントロピーでも成り⽴立立つ l  LZ78は⼊入⼒力力系列列を全て異異なるフレーズ列列に分解する⼀一⼿手法 l  LZ77のエントロピー漸近性の証明は別⼿手法 l  この証明はLZ以外のデータ構造のサイズ評価にも使われる 16
  • 17.
    LZ77 l  データを先頭から順番に次のように符号化していく. l  現在位置から始まる記号列列が、過去に出現していれば、 l  (出現相対位置,  ⼀一致⻑⾧長, 次の不不⼀一致⽂文字)のtripleで置き換える l  していなければ空の⼀一致と次の不不⼀一致⽂文字で表す l  ⼊入⼒力力系列列を全て異異なるフレーズに分解していることに注意 あかさかさかすでかささすで。 あかさ[かさか]すで[かさ]さ[すで]。 (*, *, あ)(*, *, か) (*, *, さ) (-2, 3,す) (*, *,で) (-5, 2,さ) (-5, 2, 。) 17
  • 18.
    実⽤用的LZ77 l  前述⼿手法は理理論論的にはエントロピーに漸近するがオーバーヘッド が多いので実際には次のように処理理される場合が多い l  ⼀一致があったかどうかを記録した後に、⼀一致情報、不不⼀一致記号出⼒力力 l  LZSSがこの⽅方法を利利⽤用し、LHAやZIPなど殆どがこの⽅方法を採⽤用 l  ⼀一致⽂文字列列は直近の滑滑⾛走窓中の候補だけから探す. l  探す⽅方法は、ハッシュ、Trieなど様々 l  ⼀一致⻑⾧長、相対位置はElias符号で符号化 l  同じ⽂文字列列は近い場所で繰り返される、⼀一致⻑⾧長は殆ど短い l  ⼀一度度⼀一致した⽂文字列列はキャッシュしておきそれを利利⽤用 c.f. LZMA l  不不⼀一致が連続した場合は読み⾶飛ばして⾼高速化 c.f. snappy 18
  • 19.
    LZ78 l  読み込みながら辞書(Trie)を作り、不不⼀一致⽂文字を最後に⾜足す 123456789AB あかさかさかすでかささ あ さ あ で あ さ か か か さ 1 3 3 1 3 8 2 1 さ 2 さ 2 す 4 さ 4 6 9 l  全て異異なるフレーズに分解していることに注意 l  トライの保存はフレーズ⻑⾧長がcの時、c log cであり、エントロピー 19
  • 20.
    Burrows Wheeler変換  (BWT) l ⽂文字列列に対する可逆変換で⽂文字列列を”圧縮しやすく”変換する l  BWTはその後、データ圧縮のみならず全⽂文索索引、テキストマイニ ングなど⾮非常に多く使われるようになる l  圧縮ソフト bzip2, アライメントソフト  bwa l  ⼿手法も⾯面⽩白いが話すには時間が⾜足りません。その周辺の話も⾯面⽩白 いのでそちらをします 20
  • 21.
    BWTのBとWの話 l  1978年年頃にWheelerが思いついたが「こんな当たり前のことは論論 ⽂文にするまでもない」と書いていなかった l  その後、Burrowsさんがこれ⾯面⽩白いので書きましょうと説得して 1984年年にDECの技術論論⽂文として公開される   l  データ圧縮の学会(DCC)では落落ちてたが、Dr. Dobbs articleで 拾拾われてそこから徐々に有名になる l  Wheelerは世界で初めてコンピュータ科学の博⼠士号をとり、その あと、B. Stroustrup (C++の作者), M. Burrowsなど数多くの優 秀な研究者を育てた l  BurrowsはCubbyなどで有名なシステム屋 l  彼らが最初に提案した圧縮⼿手法が、その後理理論論的最適と⽰示される このへんの話は
 21 http://people.unipmn.it/manzini/papers/foreword_bwt.pdf
  • 22.
    BWTを1分で説明 l  ⼊入⼒力力テキスト  S= s1s2s3…sn l  各⽂文字を、それに後続する⽂文字をキーとして辞書式順序でソート l  s1 のキーは  s2s3s4…sn l  s2 のキーは  s3s3s4…sn l  S = abracadabra  →  BWT(S) = ardrcaaaabb l  BWTはSの⻑⾧長さの線形時間で求めることが可能 l  接尾辞配列列経由(最速)で or 直接変換(省省スペース) l  逆変換も線形時間で構築可能 l  BWT(S)はSに⽐比べて圧縮しやすい l  後続している⽂文字が似ているなら、その⽂文字も似ている 22
  • 23.
    最近のデータ圧縮 l  透過的データ圧縮 l  簡潔データ構造 l  データ処理理向けデータ圧縮 l  ⽂文字列列マッチングや各種統計量量が元のデータより⾼高速に処理理可能 l  特定データ専⾨門のデータ圧縮 l  構造付, 型付データ (=JSON ?) l  ゲノム配列列 from 次世代シーケンサ l  センサデータ l  映像はまだまだ伸びる l  H264からH265(7640 x 4320サポート)へ l  中でやっているのはリアルタイムでの⾼高度度な画像予測 23
  • 24.
    最近のデータ圧縮(続) l  ビッグデータ解析向け l  MapReduceのShuffle Phaseの時のデータ量量を⼩小さくしよう l  Jubatusのmix時のモデル交換量量を⼩小さくしよう l  センサデータでの圧縮 l  センサデータを集めるデバイスは安くなったが通信コストが⾼高い l  端末で圧縮、中継点で圧縮 l  端末間の冗⻑⾧長性を加味したデータ圧縮 l  c.f. Compressed Sensing 24
  • 25.
    お⾦金金になる圧縮 l  思いつくのを並べてみました l  Disaster Recovery l  同じデータを遠く離離れたところでコピーをとっておく.そこで圧縮 l  クラウド・ストレージ l  今後多くのデータをクラウドに置く様になった時に、クラウドに 置くコスト(通信費、維持費)を減らすことができる l  次世代シーケンサ・センサデータ・ログデータ l  ビッグデータ解析向け l  特許ライセンスは厳しいか l  いまや、多くのメディアはクロスライセンス 25
  • 26.
    まとめ l  データ圧縮は古くて新しい l  古くから使われ続ける技術もあれば、新しいデータ向けのデータ 圧縮も次々と⽣生まれている l  いろいろな分野と関連:機械学習、データマイニング、⾃自然⾔言語 処理理、信号処理理、通信、バイオインフォマティクス、 l  情報源 l  ⽂文字列列データ圧縮:DCC, CPM, SEA, SODA, ALENEX, ICALP ESA, , l  http://compression.ru/ (ロシア語だけど) l  http://mattmahoney.net/dc/ Matt Mahoney l  私も⽂文字列列解析本をそのうち出します! :) l  データ圧縮・簡潔データ構造・全⽂文索索引・テキストマイニング 26