マーケターもクエリ言語をやりましょう!~産業技術総合研究所 油井誠~


マーケティングメトリックス研究所ではデータ分析に関わる研究者や実務家の方々をお招きしインタビューシリーズにも取り組む運びとなりました。
当サイトにお越し下さる読者の皆様のデータ活用に少しでもお役に立てれば幸いです。

記念すべき第1回目は産業技術の幅広い分野の研究を行う国内最大級の公的研究機関である産業技術総合研究所の油井誠研究員をお迎えしてビッグデータを扱う基盤技術や機械学習についてお話を伺います。

独立行政法人産業技術総合研究所 情報技術研究部門サービスウェア研究グループ 油井 誠 様
2003年芝浦工業大学工学部卒業。奈良先端科学技術大学院大学博士前期・後期課程をそれぞれ短縮修了し2009年3月博士(工学)を取得。2003年7月IPA未踏ユース、スーパークリエータ認定。2009年日本学術振興会特別研究員 (PD 工学)、早稲田大学IT研究機構客員研究員(兼任)。2010年4月より独立行政法人産業技術総合研究所 情報技術研究部門サービスウェア研究グループ研究員、現在に至る。

[豊澤] それでは早速ですが、ご経歴についてご紹介をお願いいたします。

[油井] 学部時代から一貫してデータベース分野、とくに大規模データ処理を専門としています。
大学4年生の2002年には、XML専用のデータベースを作りました。それはXMLの木構造を表構造にマッピングして関係データベースにデータを投入した上で、XMLの木構造を辿る問合せ(XPath)を関係データベース上で効率的に処理することを可能とするものです。
木構造を辿る問合せを関係データベース上で表現するには多数のジョイン処理が必要となる点が難しいのですが、これを木の根からのパス情報や各ノードの位置の索引などを貼ることによって解決するものでした。

この研究内容でIPA(独立行政法人情報処理推進機構)の未踏ソフトウェア創造事業の(若い優秀なプログラマーを見つける)未踏ユースに応募したところ採択されて、被採択者の中でも優れたスーパークリエータ※1として選出されました。他に選出された方々も非常に個性的で志しの高い方が多くて、刺激を受けました。

その後、一般企業に就職したのですが研究のほうに戻りたくなりまして、奈良先端科学技術大学院大学に進学しました。そこでネイティブXMLデータベースの研究と、その頃出荷されていたばかりのメニーコアのプロセッサを使い、大量のトランザクションを扱える高性能データベースの研究を行っていました。
ちなみに、データベースのコア技術研究で使用していたサン・マイクロシステムズのNiagara 2は64プロセッサ搭載していまして、プロセッサ数は現在のマルチコアCPUよりずっと多い、面白いマシンです。

その後は、日本学術振興会の特別研究員に採用され早稲田大学で研究員をしていました。その間、海外派遣の制度を利用しオランダの国立情報学数学研究所に客員研究員として滞在しました。そこでは通常のデータベースよりは、分析寄りのデータウェアハウスの研究を行いました。具体的には、通常のデータベースよりも大規模なデータを複数の計算機を使って並列処理する研究をしました。

その研究を通じて分析領域に興味を持ちまして、産業技術総合研究所に移ってから、より高度な分析に取り組んでみたくなり機械学習の勉強をしていたところ、株式会社ロックオンさんとの人的ネットワークもあり、今回の共同研究がスタートしたという次第です。

[豊澤] データベースからより分析寄りと言われるデータウェアハウスについて教えて頂けますか。

[油井] データベースの中でもかなり高度な分析をやっていこうという流れがこの領域にありまして、例えばデータウェアハウスの中にSAS※2などの高度な分析機能、機械学習の機能をデータベースに押し込んでしまおうというような研究があります。
多くのデータウェアハウスベンダでこうした取り組みが進めていまして、例えばテラデータ(Teradata)社の取り組み※3やGreenplumのMADlib(madlib.net)が代表的な例です。

[豊澤] 統計解析やデータマイニングのパッケージソフトを別途用意するのではなくて、データウェアハウスの中で分析や機械学習による予測まで行ってしまうということなんですね。

[油井] 分析の度にデータの出し入れを行うのはデータ量が莫大になると時間のロスや負荷が発生するので、データが存在するところで分析を行った方が効率的だという考えです。
テラバイト級のデータの分析を行った場合を考えて頂ければ想像が付くと思いますが、データベースとアプリケーション間でデータを出し入れするだけでも一苦労です。データベース内での分析技術はIn-database Analyticsと呼ばれておりますが、データベース分野の研究的にも注目されています。

[豊澤] 油井さんの場合はデータベースからより分析に近いデータウェアハウスを経て、さらに分析そのものにも興味が移られたということでしょうか。

[油井] そうですね。研究は4~5年のライフサイクルである程度は移っていかなければなりません。そんな中で次の研究内容を探していた時に、株式会社ロックオンさんとの共同研究の話がありまして、これまでの研究成果を活かしながら新たに機械学習分野の研究を深められそうだということで進めてきました。

[豊澤] 少し話題を変えまして、前回のマメ研記事でも私見を述べさせて頂いたのですが、昨今のビッグデータブームに対して一言頂けますでしょうか。

[油井] ブーム的な所は確かにあると思いますが、このブームに乗って実際に巨大なデータを分析していこうと動き出していることは確かでしょう。そういった巨大なデータに対して既存のソフトウェアをそのまま適用するとうまくいかないところもあるので、関連する分野の進化が必要なことも確かです。
そこからビジネスに繋がっていくかというところはまだわかりませんが、いくつかの企業はうまくいくでしょうし、ビッグデータを扱う研究開発が研究者として求められていると実感しています。

[豊澤] 油井さんのところにも関連技術について問い合わせ等は入っているのでしょうか。

[油井] ビッグデータという訳ではないのですが、機械学習に関連して開発したソフトウェア(Hivemall※4)については割と良い反応を頂いています。Hadoop上で分析を行っているデータサイエンティストの方々からもレスポンスを頂いています。

[豊澤] どういった企業の方々が多かったのでしょうか。

[油井] 大手ポータルサイトの方やソーシャルネットワーキング系の方ですね。彼らが保有しているデータ量は莫大であり、データの取り扱いや分析のためにはかなりの研究開発が必要です。
そういった流れの中で大学や研究所の研究者も大量なデータ処理を対象としているのは事実ですね。特に科学技術例えばサテライト(人工衛星)のリモートセンサーデータもビジネスデータと比較して同程度かそれ以上に巨大なので、分析の対象になっていたりしますよ。

[豊澤] 衛星のデータですか!?もう少しお聞かせください。

[油井] 例えばスローン財団がサポートしているDigital Sky Survey(通称SDSS)※5という取組みがあります。
宇宙は研究するのにはちょうどいいといいますか、ビジネス要素がない、つまり利権やプライバシの問題が絡まないので全てデータを公開して自由にやっていいというところで、巨大な公開データから赤方偏移※6などを発見するといった取り組みが行われています。
一般に公開して宇宙に興味のある一市民の方がサテライトのデータベースから面白い結果を得たという事例もあるくらいです。

[豊澤] ありがとうございます。続いて、油井さんの研究分野で最先端のトピックには何があるでしょうか?

[油井] 今は機械学習を研究のテーマとしていますのでこの分野で面白いトピックとしてはDeep Learning※7というのが話題になっています。昔流行したニューラルネットワーク(Neural Network)の進化系です。

ニューラルネットワークは人間の神経回路を模倣して脳機能の一部を計算機上でシミュレートし、例えば物体の認識を機械上でも可能とするものです。以前は扱う段数を多くしてノードを増やしてしまうと収束に時間がかかる問題や(学習データに過剰にフィッティングしてしまう)過学習といった技術的な問題がありました。

Dropoutと呼ばれる過学習を抑える仕組みや、複数のマシンの並列処理を行ったりするなど、これまで解決できなかった点でブレイクスルーがあったと注目されています。また、GoogleやFacebookが積極的に取り組んでいると聞いています。

他ではIBMが取り組んでいるワトソン※8がクイズ王に勝つとか、自動車の自動運転にも関連しますね。2030年までには機械学習を用いた自動運転が普及し、少なくとも高速道路については自動運転で制御できるようになるとの話も出ています。

[豊澤] データを扱う基盤の技術的なトピックについてはいかがでしょうか。

[油井] MapReduceは既に発表から10年近く経つので、今後どのように進化・変貌していくか注目しています※9。基盤をHadoop上で動くデータウェアハウスであるHiveについても高速化しようと研究開発に取り組んでいる方々もいます。クラウデラ社(Cloudera)はインパラ(Impala)※10として製品化していますね。これはHiveで行われるのと同様のデータウェアハウス処理を高速化してリアルタイムでの解析を可能にするものです。

[豊澤] リアルタイムに大量データを扱い分析までやってしまうということなんですね。

[油井] 例えば今やっているHiveのクエリが60秒以上かかっていたとして、これが3秒で結果が返ってきたとしたら分析の試行回数を増やすことができますよね。つまり、インタラクティブに結果を求められれば、空いた時間で分析内容を深めることができます。

[豊澤] なるほど。油井さんが取り組まれた研究について伺えますか。

[油井] 最近ですと、データベースとHadoopのシステムで機械学習を実行する研究を行いました※11。株式会社ロックオンさんとの共同研究でも使用している私が開発したHivemallはHadoopとHive上で学習を行うのですが、バッチ処理的な学習だけでなくトランザクション的な、つまりデータがアップデートされた時に機械学習のパラメーターも更新していく、リアルタイム予測に使えることが可能になる技術です。まとめると、Hadoop上のバッチ処理で学習したモデルをデータベースに移送して、データベースが更新されるたびにモデルの更新も随時行っていくということです。

[豊澤] つまりHadoop上のバッチ処理では全数データで比較的安定したパラメーターの推定を行った後で、データベースの更新にも対応して新しいデータにもフィッティングしていくということですね。

[油井] そうですね。リアルタイムで予測をできるということで、最新のユーザー行動や新たな広告キャンペーンにも瞬時に対応できるようになります。例えば一時間ごとのバッチ処理では不可能なことも可能になります。

[豊澤] バッチ処理の部分を取り払って、リアルタイムタイム処理を行っているデータベースだけで完結することは不可能なのでしょうか?

[油井] それには少し難しい問題があります。機械学習は同じデータでも順序を変えて何度か入力して学習させる必要があります。そうしないと入ってきたデータの入力順序にモデルが大きく依存してしまいます。オンラインでリアルタイムにモデルの更新を行う場合は一回だけしかデータを読ませないことが多いと思うのですが、それだと学習モデルがうまく収束するかわかりません。

[豊澤] 新しく入ってきたデータだけで学習してしまうと、モデルの精度が悪くパラメーターも安定していない。しかしながら新しいデータは使いたい、と。これは技術的にはなんと呼ばれるものなのでしょうか?

[油井] 技術体系としてはオンライン学習と呼ばれているものの一種になると思いますが、私が取り組んでいるものはハイブリッド学習と呼んでいます。データベースを用いたオンライン学習とHadoop上でのバッチ学習を組み合わせることから、ハイブリッド学習と命名しました。他にオンライン学習を行うソフトウェアとしては、Jubatas※12というNTTとPFIが取り組んでいるものもあります。これは国内で有名ですね。

[豊澤] 今回の共同研究でも活用している油井さんのHivemallはどのような特徴がありますか。

[油井] Hadoop/Hiveとの親和性が高いのが特徴です。現在、Hivemallは回帰分析とクラス分類に注力して開発を行っています。2012年に発表されたばかりの論文の成果を取り入れるなど最先端のアルゴリズムを搭載しているのも売りになります。

[豊澤] より具体的に教えて頂けますか。

[油井] 例えば回帰ですとロジスティック回帰(Logistic Regression)は当然搭載していますが、加えてGoogleのGmailにも使われていると言われるパッシブアグレッシブ(Passive-Aggressive)や2011年に発表されたAROW(Adaptive Regularization of Weights vectors)の回帰版が使用できます。

クラス分類ではSCW(Soft Confidence-Weighted learning)がオンライン学習では現在最も優れていると言われていますが、これをHivemallでもサポートしています。

SCWのベースとなるCW(Confidence-Weighted)についてですが、簡単に言うと低頻度に出現するデータの重みについては自信がないとみなしてモデル更新時に大きくモデルを更新し、高頻度に出現するデータの重みは自信があるとみなしてモデルの重みを小さく更新するといったデータの出現頻度に応じたフィッティングを行います。SCWはCWの汎化性能(学習に用いていない未知のデータに対して識別を行った際の性能)を更に高めたものです※13。

[豊澤] つまりSCWはノイズや未知のデータに対してロバスト(頑健)であるということですね。最後に、読者の皆様に一言お願いいたします。

[油井] Rをはじめとして様々な分析ツールが存在していますし、グラフィカルユーザインターフェース(GUI)を備える分析ソフトウェアもありますが、GUIベースのツールに特化したスキルを身に付けるのであればクエリ言語を覚える方が結局のところ効率的かもしれません。
AWSのAmazon Elastic MapReduce※14上でもHiveを動かすことができるので、大量データであっても対応が可能になります。Amazon Elastic MapReduceでは、私が開発したHivemallも動きますから、是非試して頂ければと思います。

■油井さんのご経歴
http://staff.aist.go.jp/m.yui/

■油井さんオススメ書籍
「バンディットアルゴリズムによる最適化手法」 / John Myles White
http://www.oreilly.co.jp/books/9784873116273/
http://qiita.com/yuku_t/items/6844aac6008911401b19
https://support.google.com/analytics/answer/2844870?hl=ja
A/Bテストは常識かと思いますが、最近では多椀バンディッドという
アルゴリズムが広告の最適化に使われだしていますので、広告業界のエンジニアの
方にお勧めです。ページ数は少ないエンジニア向けの本ですが、実コード例が豊富なので参考になると思います。

※1. 未踏ユース,スーパークリエイタ
http://www.ipa.go.jp/files/000025316.pdf
http://www.ipa.go.jp/jinzai/mitou/talent_index.html
※2.SAS Japan
http://www.sas.com/offices/asiapacific/japan/
※3. Teradata in database analytics/sas
http://teradata-j.com/partner/sas/index.html
※4.Hivemall
https://github.com/myui/hivemall
※5.Sloan Digital Sky Survey
http://www.sdss.org/
※6.赤方偏移(Wikipedia)
http://ja.wikipedia.org/wiki/%E8%B5%A4%E6%96%B9%E5%81%8F%E7%A7%BB
※7.Deep Learning
http://wired.jp/2012/07/06/google-recognizes-kittens/
http://research.preferred.jp/2012/11/deep-learning/
※8.IBM ワトソン
http://www-06.ibm.com/ibm/jp/lead/ideasfromibm/watson/
※9. 日々進化するHadoop。これまでのおさらいと最近の動向
http://www.publickey1.jp/blog/12/hadoop_3.html
※10.Cloudera, Impala
http://www.cloudera.co.jp/blog/cloudera-impala-real-time-queries-in-apache-hadoop-for-real.html
※11. DB-hadoop(逐次/バッチ)ハイブリッドな学習
http://www.slideshare.net/myui/bigdata2013myui
※12.Jubatas
http://jubat.us/ja/
※13.AROW, SCWの紹介、論文のリンクがあるサイト
http://kazoo04.hatenablog.com/entry/2012/12/20/000000
※14.amazon EMR
http://aws.amazon.com/jp/elasticmapreduce/


※インタビューにおける発言は個人の見解であり、所属する組織の公式見解ではありません。