ホーム > NSSOLテック・コラム > データ分析 > KDD Cup2019 5位入賞!まだまだ新しい技術を身に付けたい。これからも技術者として挑戦を続けます。

NSSOLテック・コラム

データ分析

2019/11/20

KDD Cup2019 5位入賞!まだまだ新しい技術を身に付けたい。これからも技術者として挑戦を続けます。

世界中からデータ分析界隈の技術者が集まり能力を競う「KDD Cup」。この世界的な大会にNSSOLのフェローであり、グループ会社の金融エンジリアリング・グループ(FEG)の代表取締役社長である南 悦郎さんが初参加で5位入賞を果たしました。南さんはNSSOLでシステム研究開発センター所長を務めるなどAIを専門に活躍してきた技術者です。その南さんが闘ったKDD Cup2019とはどのようなものだったのでしょうか。

KDD Cupについて

KDD Cup初の試み データのないデータ分析の課題に参加者が困惑?

国際的なデータ分析コンペティンションであるKDD Cupに5位入賞、おめでとうございます。今年はどのような大会でしたか。

南:39か国から2800チームほど登録がありましたが、実際に競技に加わったのは1200チームで5000人程度が参加したようです。

今回は初めての試みでトラックが3つに分かれていました。
1つ目がオーソドックスなデータ分析や機械学習の課題で、出発地点から到着地点までどういう交通手段を使ったらいいか適切な交通手段を提示するもの。交通手段といってもできるだけ安いルートがいいとか、時間がかからないルートがいいなど人によっていろいろなポリシーがあります。それをその人の特性を分析して最もよい答えを返すという課題でした。

2つ目の課題がAutomated machine learning、自動機械学習の課題です。おそらく小売り業の話だと思うのですが、データベースの中のいくつかのテーブルにある個人IDどうしをぶつけてその人がサイト内でどういう動きをしたのか全体をみるというものです。実際には時間も含めるとデータを突き合わすのは非常に難しいです。それをアルゴリズムもパラメータも機械に選ばせて自動で分析させて解くというのが課題でした。この課題が一番難しかったのではないかと思います。

3つ目の課題が強化学習の問題でした。
これはどちらかというとデータ分析ではなくAIの世界。自動運転を実現するAIのように、これからの時代は自律的に判断して動くことが求められてくるのでおそらく新しくこのトラックができたのだと思います。

南さんはどの課題を選択したのですか。

南:3つ目の強化学習の問題です。
データ分析に腕に覚えがある人は1つ目か2つ目に挑戦したのでしょうが、私の専門はAIですので、昔からのAIの領域の一つ、強化学習の3つ目を選びました。

AIが専門でデータ分析の大会に参加するのはすごいですよね。3つ目の課題は具体的にはどのようなものだったのでしょうか。

南:マラリアが題材でしたが、マラリアはアフリカや東南アジア、さらには温暖化が進んでいる日本でも非常に注目されている問題です。

マラリアはハマダラ蚊が媒介して感染する病気ですので、殺虫剤を塗った蚊帳と殺虫スプレーという2つの手段でマラリア感染を防ごうとしています。そこで、コスト対効果の点で一番効果的な蚊帳とスプレーの組みあわせの割合はどういった割合か、というのが課題でした。

データが与えられて解くのですか?

南:いえ、データはありません。

データがない?

南:そう。

(笑)データがないデータ分析のルールはどういうルールなのでしょう?

南:例えば人口が1万人いて、1万人全員に蚊帳を配るなら「蚊帳100%」、配らなければ「蚊帳0%」。このようにして蚊帳とスプレーを配る割合をそれぞれ0%~100%の範囲で決めます。蚊帳とスプレーの合計は必ずしも100%である必要はなくて蚊帳0%とスプレー0%でもいい。どれだけの割合にするか、だけを決めます。

毎年2つずつ数字を決めて5年分の値を1タームでしたから、10のパラメータをひとつの塊として判定サイトに入力するとスコアが返ってきます。そのスコアをもとに次の5年のパラメータをどう決めるかを考えます。

これを20回(100年分)繰り返して、その中で一番いい成績がスコアになります。これを更に10回繰り返して出た点数が自分の点数になる、そういったルールでした。

シンプルなルールですが、どのあたりが難しかったですか。

南:情報が上記以外まったく与えられていないことです。評価を下すシミュレータも完全にブラックボックスでした。さらにはマラリア防止に関する知識も使ってはいけません。数字だけの勝負です。

更に1タームを試したら、それまで得た知識はすべて破棄するルールでした。つまり、蚊帳とスプレーの2つの数字×5年間×20年の200のパラメータの中で、ベストな対策方法を学び、かつ結果を出さなくてはならない。現在主流のビッグデータから行うデータ分析とは大きく異なるもので、学習の仕方をいかに短期間で学べるか、まさに強化学習の力量が試される課題でした。

そのような中、どのように闘ったのでしょうか。

南:最初は手探りです。とりあえず縦軸と横軸それぞれ10個ずつのマス目で区切って100のマス目を作ってどの辺にいいスコアが出るかを探りました。そうするとこの辺がいいというのはだいたいわかってきます。次にその近辺をもっと細かく切って調べました。

本当に手探りですね。

南:そうです。ただ、ある時急に分布ががらっと変わった時があって、せっかく積み上げた知識がガラガラと崩れたときもありました。地道に調べてこの辺がいいのかと思ってその領域に狭めていくと実はこっちだよと。返ってくるスコアに何かコメントが書かれていたらわかりやすいのですが、そういうものは一切ないですし。

推測するしかないですね。

南:そう、でも世の中ってそういうことが多いじゃないですか。入社試験とか昇格試験とかに合格しても結局何がよかったのか教えてもらえない。人生ってそういうことばかりで学習していくのではないでしょうか。

なるほど!深いですね。
ところで、このマラリアの課題にはどれくらいのチームが参加したのですか。

南:246チームで最終的に提出できたのが30チームですね。3つの課題の中で一番少ないと思います。ルールがよくわからないところがありみんな混乱して、どんどん脱落していきました。AI屋からしたらよく見る課題でしたが、データ分析屋からすると異種格闘技みたいな感じだったと思います。

(笑)南さんは一人で闘ったのですよね?

南:はい、私一人です。

個人で闘えるのですね。

南:データが全くないわけですから個人でも問題なく参加できました。他の2つの課題はガチなデータ分析なのでチームの中で作業を分担して、いろいろな手法を使ってパワーのある計算機をガンガン回しながら解かないとならないはずですが。

課題を解くポイントは生物の進化にも関係?

南さんはAIがご専門とのことですが、KDD Cupに初挑戦しようとしたときにちょうどAIのテーマにあたったのですね。

南:そうですね。運がいいですね。

AI分野のご経歴は?

南:第二次AIブームの終わりごろ、AIの「冬の時代」の始まりの頃に入社して、システム研究開発センターに配属されて最初に研究したのがAIで製鉄所の設備故障診断のエキスパートシステムを開発したことでした。その後米国のスタンフォード大学で2年間ほどAIを学びました。AIの冬の時代は20年ほど続きましたが、2011年ごろに上向きの兆しを感じて深層学習に取り組み始めて今に至ります。

(参照)漫画「奮闘の軌跡」シス研発展の道のり(第一話 ソフト開発の研究所をつくろう)

設備故障診断システムは今も使われているのですか。

南:もう使っていないです。人間が知識をAIに教えないとならないので知識がだんだん古くなってきて、今までと違う故障がでてきたりすると、またいちから知識を教えないとならなくなってしまいます。結局、この頃のAIシステムは知識のメンテナンスが大変だということで何年か経つと使われなくなってしまいます。これが知識ベースによる第二次AIブームの問題点でした。

第三次ブームでは問題点はクリアされたのでしょうか。

南:データを与えて学習しなおせば知識をアップデートできる機械学習がAIの中心になりました。

ただ、このデータは人間が用意しなければなりません。最近ではアルゴリズムやパラメータを自分で選ぶ自動学習や、メタ学習といってAI自身が置かれた環境からデータを集めてアルゴリズムもパラメータも自分で決めて変えていくという技術が出てき始めています。

そういう観点からKDD Cupにもマラリアのような課題が加わったのですね。

南:そうでしょうね。画期的なことだったと思います。
このメタ学習は実は生物の進化にも関係しているんですよ。

どういうことでしょうか。

南:まず前提となる考え方をお話しすると、何かを探すとき、例えばおいしいものを食べに行こうとなったときに、入ってみたお店がおいしかったらまた行こうと思いますよね。これを「活用(exploitation)」といいます。でもずっとそこばかりに行くのは飽きるからもっと「探検(exploration)」しようと考える。つまり膨大なものに対して一部を見ただけで満足しますか、それともいっぱい見ますかという問題で、この2つをどういう割合で行うかがポイントになります。

生物でいうと、例えば芋虫は同じ場所でずっと葉っぱを食べ続けますがこれがexploitationで、ある時さなぎになって蝶になってどこかに飛んで行ってしまう。これがexploration。サルも群れから出ていく。我々もずっと同じところにいるとなんとなく出ていきたくなりますよね。

我々生き物のDNAに刷り込まれていて無意識のうちにデータ分析をしているということですね。

南:それが最適化のアルゴリズムなんです。そうやらないと生き残ってこられなかったのでしょう。こうしてexploitationとexplorationの割合がうまくいったものだけが生き残って進化してきたということだと思います。

これは会社の経営もそうで、どれくらい研究開発に投資してどれくらい既存の事業に投資するかなど、いろんなところに出てくる話です。

なるほど。そういわれるとそうですね。

これから仲間になるデータサイエンティストたちを驚かせたかった

このexploitationとexplorationがマラリアの課題を解くカギだったのですね。

南:そう。マラリアの問題でいくと例えば50・50としたらうまくいったから、その後も50・50でやろうとなる。でも、もしかしたら80・80の方がうまくいくかもしれないし、80・20だったらもっといい結果が得られるかもしれない。さらに言うと80・20を繰り返せばもっといい結果になるかもしれないということです。

今回の大会はメタ学習に活きますか?

南:本当はもっとマラリアの問題を解く方法としていろんな手法があるんです。マラリアの問題のようなものはバンディット問題というのですが、これを解くためのベイズ最適化とか、ガウシアンプロセスなど、そういった手法を使って粛々と解くってこともあります。今回は10個とデータの点数が少なかったので大掛かりなことはあまり役に立たないだろうと思って使いませんでしたが。本来はそういう手法を使いこなす技術を身に付けておかなければならないと思っていますし、やるつもりです。

南さんは最終的にAIで何をめざしたいですか?

南:ヒトを解明したいですね。ヒトって不思議じゃないですか。なんでこんなものができたんだろうって。

そうですね。ぜひ解明してください!ところで、南さんはなぜKDD Cupに挑戦しようと思ったのですか。

南:実は私は今年の6月にFEGの社長に就任したばかりです。FEGはデータ分析を生業にしている会社で、社員の多くがデータサイエンティストです。彼らは2009年に単独で、2015年にはNSSOLとの連合チームで、KDD Cupで2位をとっているような優秀なメンバーです。

だから社長になるにあたってデータ分析のことは何も知りませんというのはちょっとまずいかなと思って、KDD Cupの成績を手土産代わりに持っていこうと考えました。みんなの驚く顔も見てみたかったですし。なので問題が面白いかどうかよりも、勝つことしか考えてなくて、挑戦者たちがどんどん戦線離脱していく中で私はじっと耐えていました。そうすればライバルが減っていくから(笑)

(笑)でも、見事に5位入賞でいい手土産ができましたね。今日は楽しいお話をありがとうございました。

関連する記事