写真提供:マイナビニュース

写真拡大

●Hadoop World 2015概要
IT関連記事を見ていると、ビッグデータと一括りにされたテーマより、機械学習やAI(人工知能)といった手段の話を最近は目にする事が多くなりました。そのビッグデータの記事では、Hadoop等の基盤やツールの話が中心的存在でした。そのような状況の中で、Hadoopの立場は? Hadoop Worldに参加する意味は?という疑問に答えるつもりで今回のHadoop Worldに参加してきました。

今年のHadoop Worldは昨年と同じくNew YorkのJavits Centerで開催です。例年は10月開催だったのが、少し早まり9月の開催となりました。

日程は9/28(月)〜10/1(木)までの4日間の開催で、9/28はCultivate、9/29はTraining, Tutorials &Cultivate、9/30及び10/1はKeynotes、Sessions&Trainingです。

私は9/29〜10/1まで参加しました。9/29のTutorials、9/30及び10/1のSessionsはパラレルセッションだったため、業務と密接な関係にあるData ScienceがテーマのTutorials及びSessionsを選択しました。

昨年は5,500名の参加者がありましたが、今年は6,300名を超えたそうです。日本で開催されるHadoop関連のイベントはいずれも無料なので、もし、Hadoop Worldの参加費(New Yorkまでのエコノミー往復航空券相当)がせめて半額になったら、参加者はどれぐらい増えるのだろう?と思いました。

イベントの内容は、昨年は非常にSpark周辺の話題が多く、名称もHadoop WorldよりもSpark Worldがふさわしいのでは?と思ったぐらいです。今年ももちろん、Spark関連の話題は豊富でしたが、Kuduなど新プロダクトの発表などもあり、相対的にSpark比率が昨年より下がり、Hadoop の復権を目の当たりにしました。以前に比べると、プロダクトの紹介だけでなく、その使い方や事例紹介の比率が高まっており、企業はデモ展示に力を入れています。

○Tutorials:Hard core data science

Hard core data scienceは文字通り、データサイエンスのかなり深い部分についてのTutorialでした。アカデミック側の講演者は機械学習の手法、企業側の講演者は機械学習の実装やそれを用いたシステム構成について講演されていました。

機械学習の手法ではTopic model、Submodularityに着目した最適化、Tensor Analysisといった最近の機械学習の分野(国際会議など)でホットなテーマを扱っており、非常にバランスがとれていました。Latent Dirichlet Allocation (LDA)に代表されるTopic modelは観測データの背後に有る潜在構造を仮定したモデルで、文書集合に適用した場合、単語集合(観測データ)からトピック集合(潜在構造)を学習します。学習した潜在構造が1)観測データの生成過程の説明能力を持つだけでなくだけでなく、2)観測データよりもデータ間の意味的な関係を捉え易いという特徴があり、機械学習の分野で人気のあるモデルです。そのためLDAは元々文書集合の生成過程をモデル化するため誕生しましたが、LDAを拡張したモデルが次々に提案されており、文書に留まらず、画像、ネックワーク解析やレコメンドにも使われその成果が数多く報告されています。多くの機械学習のライブラリにも含まれているので、目にした方、利用した方も多いと思います。

そのLDAの産みの親の一人でもある、David M. Blei氏が登壇しました。講演はLDAの概要の説明から始まり、その拡張モデル、そして氏が最近取り組んでいるレコメンドへの適用を想定したモデルについて紹介していました。最近の国際会議は、大規模データへの適用に向けてLDAとその拡張モデルのスケーラビリティの向上が課題になっているので、この課題に対して産みの親のアイデアをもう少し聞きたいと思いました。

Submodularity(劣モジュラ性)は最近、離散最適化(組み合わせ最適化)のアプローチとして注目されている数理的構造で、情報理論、グラフ理論などの数理科学だけでなく、経済学や心理学の社会科学でも見受けられます。講演では離散最適化の例として、スケジューリング、予算/資源/リソース配置、最短経路探索、ネットワーク設計、施設配置、都市計画などを紹介し、最適化の概要紹介が続きました。最適化問題は有限個の解の候補から最適な解を見つけるように定式化され、その解の良し悪しを評価するために用いる評価関数で、Submodularityを示すものが多く見られます。

Submodularityを利用すると精度の良い解を効率的に発見できるため、この性質に注目した研究成果の発表件数が、国際会議で増えています。この講演ではこのようなSubmodularityの性質とそれを用いた離散最適化の研究紹介が中心でした。

Tensor Analysisは多次元データの解析手法の一つです。例えば、センサデータから取得できる大量のデータ組やネットワーク構造などはTensorで表現でき、これらデータの構造圧縮や特徴抽出がTensor Analysisにより可能となります。

Tensor Analysisを大規模データに対して適用する場合、通常のアルゴリズムが扱えるデータサイズはメモリの制約を受けますが、その制約を回避するために並列化のアプローチが注目されています。

関連研究として、大規模行列の取り扱いの問題では、PCA(Principle Component Analysis)などを分散環境で実行する方法が提案されています。これに似た方法をTensorにも適用できないか?というのがこの講演者のアプローチでした。Tensor Analysisは音声認識の分野でも有名なHidden Markov Model(HMM)やNeural networkにも適用が期待できます。機械学習の並列化処理にとって、メモリ内で繰り返し処理を実行するSparkは現時点で理想的なフレームワークの一つであり、New York Times(30万文書、1億単語)を使った実験で、HadoopのMap-Reduceで4時間かかった処理時間を26分と大幅に短縮したとの報告がありました。 大規模行列の並列計算は最近話題のDeep learningにも関わっており、 別の講演者からSpark上でのNeural network training及びDeep learningの実行についての講演もありました。ユーザ視点からすると、機械学習にはどのような手法があり、どのように使えるのかがイメージしやすいと思いましたが、サイエンティスト視点からするともっと最新の技術について深掘りして欲しいと思われたかもしれません。後者の方はこの分野の国際会議でさらに調査すると必要な情報が得られると思います。

企業側からは、Facebookの講演者は機械学習のプラットフォームの紹介とそのデモ、Microsoft Researchの講演者は三人居て、大規模ネットワーク分析の取り組み、クラウドソーシング、高次元データの取り扱いについてそれぞれ講演されました。このようにディープなテーマをHadoop Worldで扱っても会場は立ち見が出るほどの盛況で、参加者の数だけでなく興味の対象の広がりも感じました。今年のKDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining)ではClouderaが協賛したり、同じくClouderaの Amr Awadallah氏が講演されたりと、機械学習の世界とHadoopの世界は関係が深くなっています。

私自身の現在の仕事に直接関係することも多く、非常に興味深いTutorialでした。個人的には企業側の講演で、これまで工夫した点や既存のツールの改善点などの話がもう少しあっても良かったのではと思いました。

昨年のこのTutorialではJon Kleinberg氏が講演し、今年はDavid M. Blei氏、来年は・・・Michael Jordan氏 (AMPLab)では?と勝手に予想します。

●Keynote&Session
キーノートでは企業のFounder、 VP、CIO、 Fellowの方が自社の取り組みあるいは自社製品の紹介が中心でした。企業の場合、Keynoteは自社の社員や関係者が講演するSessionへの誘導となっているケースが多いです。アカデミック側から心理学や社会学のバックグランドを持つ研究者がその立場からビッグデータについて講演されていました。

Tutorial/Sessionはパラレルで開催されため、参加者の興味や対象は絞られますが、Keynoteはシングルで最も多くの参加者を集め、かつ講演者の持ち時間が5〜20分と非常に短いため、個々のテーマについて掘り下げるよりは、現在のトレンドやメッセージのインプットの場になります。テーマとしては半数以上が機械学習を何らかの形で取り上げていました。機械学習の応用事例というと半分、いやそれ以上の高い確率でレコメンドばかりでしたが、今年はそれ以外のコンシュマー向けのサービスも今年は増えていました。特に、Microsoft社の画像からそこに写った人の年齢を当てるというデモへの反響が大きかったです。

ヘルスケアの事例では、分析環境を病院や研究機関に導入し、病気診断や予測に用いられている話がありました。全体的なトレンドとしては、クラウドの利用とリアルタイム処理です。秘匿性の高さでは世界有数と思われるCIAや、秘匿性の高さでは劣るかもしれませんが、データ量では世界有数と思われるNetFlixもオンプレミスでなくクラウド上でデータ分析処理を行っているそうです。

最新の技術やトレンドに触れる機会もありますが、「人類が増えすぎたデータをクラウドに蓄積させるようになって、既に半世紀が過ぎていた。クラウドは人類の第二の頭脳となり、データはそこで・・・」と未来を連想する機会もあるのがKeynoteの良いところです。

製品はCloudera社からの新プロダクトであるKudoの発表の反響が大きかったように思いました。KudoはHadoopのストレージであるHDFSやHBaseのギャップを埋めるプロダクトとして紹介されています。その後のKudoのセッションは部屋に人が入りきれないほどの盛況で、参加者の関心の高さを伺えました。また各製品はほぼ共通してIoT(Internet of things)のデータの標準的なフォーマットであるJSON、かつリアルタイム処理への対応が進んでいることが伺えました。

他のSessionで紹介されたCloudera社から既に発表されていたIbisも興味深いプロジェクトでした。IbisはPythonでSparkを実行できるAPIです。これでPythonの使い手にとっては、PySpark(Sparkを実行できるPython API)以外の選択肢が増えたことになります。

○企業ブース

企業ブースは、スポンサー企業のブースが並び、一度足を踏み入れると、積極的に呼びかけられ、大学のサークルの新人勧誘を思い起こさせます。企業ブースはスケジュールの合間のBreakを利用して回ることになると思いますが、Session終了後にも回る時間が取れます。それでも足りなければ昼食時間を削り、その時間を確保すると言う選択肢もあります。とはいっても約200社もブースがあるので、あらかじめ見るべきブースを絞っておいた方が、効率的に情報収集が出来ます。

自分の英語力を試す良い機会でもありますが、関連製品、例えばBI/BAツールを横並びで比較することも出来ます。日本ではあまり紹介されていない製品でも、開発のスタッフから技術的な話を聞けたり、営業からはどんなお客に選ばれているか、そしてその理由を聞くことができます。領域が広い分、自分で仮説なり目的を持ち調査しないと必要な情報は得られませんし、逆に、目的意識がはっきりしていれば、インプットだけでなく自身の仮説を検証するアウトプットの場にもなり、出展企業のノベリティやT-shirt以上のものが得られます。

私はBI/BAツールや機械学習のツールやプロジェクトを中心に回ってきました。多くがHadoop/Spark連携を謳っていました。実際には連携の度合いがまちまちで、そこはセールストークを鵜呑みにせず、実際に操作させてもらって確認しました。

●機械学習:Inside/outside Hadoop World
ビッグデータ関連技術の多くは米国発であるため、最新のプロダクトや技術は日本では導入事例が無い=日本で知っている人が少ないという状況なので、Hadoop Worldは情報収集や交換の貴重な場です。特に機械学習系のライブラリやプロジェクトは乱立?気味で、今後も増加傾向が続くのは間違いないでしょう。Mahoutに始まり、scikit-learn、Hivemall、SAMOA、MLib、GLaphLab等々。

じゃあ、どれを使えばいいのか?という話になると思います。当分はどのライブラリというか、分析によりライブラリを使い分ける事になるかと思います。種類が豊富なライブラリは魅力的ですが、プログラム全体の品質が保証されていない、あるいは、現時点で目的とする分析に合った実装になっていない場合があります。

例えば、大規模なグラフデータを処理する場合、多くのプロダクト及びその上のライブラリはこれらのデータを分割し処理を行っています。この分割の仕方より、グラフが持つ頂点や辺に偏りが生じると、分散処理した結果の集約に時間が掛かります。このデータ分割の問題は、サンプルプログラムにあるワードカウントを使った方の中には経験済みの方も要るでしょう。

ワードカウントでは、処理対象の文書集合の中で特定のワードの頻度が高い場合、そのワードを担当したノードの処理時間が処理全体の時間を左右します。機械学習の処理の内容によりデータフロー、データ構造、アルゴリズムの並列化等々が異なり、その違いに着目した多くのアルゴリズムや実装方法が報告され、一部はライブラリとしても公開されています。

こういったHadoopのエコシステムを含むApacheのプロジェクト以外では、米国の大学(例えばCarnegie Mellon University)を中心に研究成果やそのコードが次々に公開されている動きがあります。その一例として、機械学習のフレームワークのコンパクト化が進められています。Sparkの登場により処理のリアルタイム化に近づきましたが、マシンの台数、一台あたりに要望されるスペック(特にメモリ)も上がり、処理コスト(分析用途に適したサーバの一台の一時間当たり1$との試算も出ています)の増大が課題となってきています。その課題に対し、「より少ないマシン構成で同じ処理を出来ないか?」というアプローチが始まっています。

Sparkも元はUniversity of California, Berkeleyから始まりました。Hadoop+Sparkのカバーする領域は広がっていますが、その外の世界も当然広がっており、今後も何が起きていくのかも目が離せません。

○まとめ

今回の参加で、Hadoopはビッグデータの基盤として浸透し、その関連プロダクトが次々に誕生していることを再認識しました。最初の疑問の答えとしては、「Hadoopは今でも重要な基盤として存在している」であり、Hadoop Worldに参加する意義は、「周辺のエコシステムを含めた情報を比較しつつ効率的に収集できるところにある」と思います。「量が質を生む」というのはビッグデータの話だけでなく、そのような機会に巡り合えるHadoop Worldも一緒だと実感しました。

来年もHadoop Worldは9月下旬に開催される予定です。まだまだハリケーンがやってくる時期ですし、Indian summerと呼ぶには早いと思いますが、日中は暖かくて過ごし易いです。でも建物の中は冷房が利いているので、防寒対策をお忘れなく。

最後になりますが、今回の出張でお世話になった方々、特に出張中に社内のHadoop/Sparkのお世話をしてくれた皆様にこの場を借りて御礼申し上げます

川前徳章(かわまえ のりあき)
工学博士、NTTコムウェア研究開発部 勤務。専門は情報検索、統計的機械学習、マーケティングサイエンス。現在は時系列データからの因果関係抽出・予測及びその最適化の研究と開発に従事。東京大学大学院情報学環 客員研究員。
関連記事:ビッグデータとHadoop

川前徳章(かわまえ のりあき)
工学博士、NTTコムウェア研究開発部 勤務。専門は情報検索、統計的機械学習、マーケティングサイエンス。現在は時系列データからの因果関係抽出・予測及びその最適化の研究と開発に従事。東京大学大学院情報学環 客員研究員。
関連記事:ビッグデータとHadoop

(川前徳章)