リアルタイム分析ソフト「Jubatus」とは?|デジ・ステーション|J-Net21[中小企業ビジネス支援サイト]本文とサイドメニューへジャンプするためのナビゲーションスキップです。デジ・ステーションデジ・ステーションのトップページにもどるリアルタイム分析ソフト「Jubatus」とは?日々進歩するIT技術は、ともすると取り残されてしまいそうな勢いで進化の速度を高めています。そこでキーマンズネット編集部がお届けするのが「5分でわかる最新キーワード解説」。このコーナーを読めば、最新IT事情がスラスラ読み解けるようになることうけあい。忙しいアナタもサラっと読めてタメになる、そんなコーナーを目指します。今回のテーマは、ビッグデータをリアルタイムに分析するオープンソースソフトウェア「Jubatus(ユバタス)」。ビッグデータと言えばMapReduceやHadoop、データベースアプライアンスやインメモリデータベースと海外発の製品ばかりが話題になる昨今ですが、このソフトウェアは純日本産。これから海外の開発者なども含むコミュニティで磨きがかけられることになる、新しいソフトウェアです。ビッグデータ処理の1つの最先端を覗いてみましょう。プラットフォーム研究所と株式会社プリファードインフラストラクチャーが共同開発した、大量データのリアルタイム分析のためのオープンソースソフトウェアだ。昨年10月に公開された。Jubatusの新しさ“5分前のテレビ番組の内容に合わせてECサイトのレコメンド内容を変更する”、“ネットワーク障害の予兆を監視し、発見したら即座にネットワーク経路を切り替える”。そんなことを可能にする基盤技術が、ビッグデータのリアルタイム分析だ。Hadoopは分散データの処理が得意だがリアルタイム処理には弱いオープンソースでビッグデータを対象とするソフトウェアといえばHadoopの存在がまず思いつく。昨年来いくつもの適用事例が公開され、ビッグデータの話題の中心になったHadoopには関連ソフトウェアが各種登場しており、機械学習のためのソフトウェアであるMahoutと組み合わせると、大量データを自動的に分類し、高度な解析に用いることができる。越えられていない壁がある。それが「リアルタイム処理」だ。Hadoopの基本はバッチ処理。高速とはいえ、結果が出るまでに少なくとも数分から数時間の待ち時間が必要な場合が多い。分散データ処理、リアルタイム性、深い解析を実現するJubatusこの弱点を解消し、水平分散しているデータを発生から順次リアルタイム処理して、しかも深く解析できるのがJubatusだ。これまで、「大量データの分散処理」、「深い解析」、「リアルタイム処理」の3つのポイントを全部備えたソフトウェアはなかった。Jubatusはこの3ポイントを1つのソフトウェアで全部備えているところが新しい。Jubatusは大量データから答えを推測リアルタイム処理やデータの分散処理はイメージしやすいが、「深い解析」とは何だろう。非定型データも分析の対象にする。「特徴ベクトル」の抽出と重み付け(キーとバリューへの変換)Jubatusは次に、データを分野に依存せずに抽象化して、「特徴ベクトル」に変換する。変換することにより、分類/回帰分析、クラスタ分析、構造分析といった様々な分析手法や理論を適用できるようになる。図2の上部に見るように、Jubatusは例えば非定型な文章から特徴を抽出し、重み付けをして、キーとバリューのペアの集合からなる特徴ベクトルへと変換する。その特徴ベクトルを分析処理して、例えば「この文章はIT関連に分類できる」というような予測を行う。同図の下部では、入力データは画像だ。画像からもいくつかの特徴を切り出して、特徴ベクトルへの変換を行うことが可能だ。この特徴ベクトルを元に、この画像は「女性である」と推定することができる。資料提供:プリファードインフラストラクチャーオンライン機械学習で大規模データから確実性の高い結果を出力このような分類は、少し前までは人間でなければできなかったことだ。これを機械で可能にするために、「機械学習」と呼ばれる技術が使われている。機械学習にも、バッチ処理的に「1度に答えを覚え込ませる」方法があるが、Jubatusの場合は、「答えを1つずつ覚えこませ、その学習結果は瞬時に次の分類に反映される」方式をとる。これをオンライン機械学習機能といい、入力が増えるに従って自動的に正確性が上がる仕組みになっている。分散サーバで「リアルタイム処理」が可能な理由Hadoopのようにまとめて1度に分析するのではなく、Jubatusのサーバは入力された分をリアルタイムに処理していく。学習結果はそれぞれのサーバで異なることになるので、適度な時間間隔でサーバ同士が中間結果を交換して平準化する。このとき全サーバで待ち合わせて交換するのではなく、各サーバの処理をできるだけ邪魔しないように行うのが1つの特徴だ。厳密に言えば、結果の精度は全サーバで揃わない。それでも並列に大量の処理を行いながら学習を行うことで、短時間に正確性を向上させることが可能になる。Jubatusで何ができるのかでは、Jubatusで何ができるのか。誕生間もないJubatusには紹介できる事例がないが、例えば次のような領域での利用が期待されている。ソーシャルメディア分析ソーシャルメディアは代表的なビッグデータ。ソーシャルメディアのデータをJubatusにそのまま流し込めば、すぐに発言者の男女の区別、年齢、職業などの属性に基づいた分類ができる。分析ツールやサービスがあるが、既存のものはバッチ処理を行うので、急激な話題の変化には追随できず、固定化した話題を検索することになる場合が多い。リアルタイムに自動分析できれば、常に最新の話題を捕捉し、それに対する次の行動をすばやくとることができる。マーケティングには便利な道具になりそうだ。レコメンデーションECサイトでは最新のニュースや話題によってタイムリーな商品レコメンドを行うことが大事。販売情報の分析や、マスメディアの記事や放送の分析、ソーシャルメディア分析などの結果を利用して、よりすばやく顧客の関心に対応したレコメンデーションにつなげることができる。ネットワークトラフィックの分析ネットワーク機器が出力するログは大量すぎてこれまでは分析せずに捨ててしまうことが多かった。大量データをリアルタイム分析できれば、ログデータを保持しなくても分析ができることになる。大きなストレージが必要なくなり、低コストに、すばやく分析結果が手に入る。その結果をそのまま制御に結びつけることも可能になる。1分後にネットワークに何が起きるかが予測できる。アクセスが集中して問題が起きそうなセグメントがあれば、その部分だけQoSの設定を変えたり、障害が起きそうならその部分を迂回する経路を自動的に選択したりするなどといった運用が可能になるかもしれない。OpenFlowのように経路制御が自由にできるネットワークと組み合わせると、ネットワーク運用管理が自動化できる可能性がある。データセンタの消費電力の予測データセンタで消費電力を予測しようとすると、電力量測定ができるPDUなどのモジュールを新たに設置する必要がある。機械学習ができるJubatusなら、新規モジュールは一部のサーバ用だけでよい。そこで測定した消費電力から全体の消費電力量を推計することができるからだ。測定していないサーバについてはネットワークを流れるパケットの量などと消費電力との相関を見て推測する。うまくいけば、その結果を元に空調設備を適切に調整して、よりきめ細かい省エネ化を図ることもできよう。JubatusのこれからNTTとプリファードインフラストラクチャー社が中心になって、Jubatusコミュニティが活動を始めている。これまでのところ、国内外の開発者約70名がソースコードをダウンロードしている。バージョンはやっと0.20になったところで、内部仕様はほぼ固まったものの、まだまだこれから変化もありそうだ。大手企業の製品への適用の準備は始まっており、今年夏以降には具体的な事例が登場するかもしれない。開発用のリソースは、開発者用のコミュニティサイトである「github」で公開されている。「jubatus」で検索してダウンロードも可能だ。ドキュメントは専用サイトにあり、関連情報はブログに掲載されている。ついて研究を重ねてきており、Hadoopの活用にも早くから取り組んできた人たちだ。JubatusはHadoopの良さも弱点も知っているメンバーだからこそ発想できたソフトウェアだと言えるだろう。Jubatusの適用領域はHadoopとは異なると思われる。ビッグデータの領域で、今後は両者が補完しあうことができよう。新しいビジネスやサービスが生まれることに期待したい。2012年4月4日掲載分5分でわかる最新キーワード解説一覧5分でわかる最新キーワード解説|初級ネットワーク講座|図解でわかるIT。