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 の復権を目の当たりにしました。以前に比べると、プロダクトの紹介だけでなく、その使い方や事例紹介の比率が高まっており、企業はデモ展示に力を入れています。

Javits Centerの内部

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)では?と勝手に予想します。