世界でたった162人しかいないKaggle Grandmastersのうち、貴重な日本人の2人をお招きして開かれたパネルディスカッションでの質疑応答を、余すことなく書き起こした。Grandmasterになるまでの経緯から、データサイエンティストとしての働き方までが分かる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
一般社団法人データサイエンティスト協会主催のイベント「6thシンポジウム」が2019年10月17日に開催された。
そのセッションの一つでは、Kaggle(カグル、後述)というデータ分析コンペティションに関するパネルディスカッション(主に質疑応答)が行われた。本稿ではその内容を余すことなく紹介する。以下はセッション内容を独自に書き起こしたものである。
ディスカッションの雰囲気が出るように、本稿は会話調で記述する(以下、敬称略)。
石原
モデレーターを務める石原です。まずは私から、阪田さん、小野寺さんの順に自己紹介をしていきます。
私は、日本経済新聞社の内製エンジニア組織でデータサイエンティストとして働いています(参考:「HACK The Nikkei」)。
Kaggleについては、最高位のGrandmaster(グランドマスター、後述)ではなく、その次のMaster(マスター)の称号を取得しています(参考:「u++ | Kaggle」)。
阪田
パナソニックに2012年に入社してからもう7〜8年間ほど勤めており、社内で機械学習を応用した業務改善や、機械学習による機能の製品への搭載、社内研修での講師担当など、データサイエンスに関するさまざまな業務に携わっています。また、機械学習に関してアカデミックな基礎研究も平行して取り組んでいます。
Kaggleについては、趣味で2014年2月から参加しており、今年2019年6月にGrandmasterの称号を取得しました(参考:「Jack (Japan) | Kaggle」)。また、今月、共著で『Kaggleで勝つデータ分析の技術』という書籍を出版し、大変好評を得ているので、ぜひ皆さんもお手に取ってみてください。
Kaggleでは、各コンペ(=コンペティション)においてトップ10ぐらいの成績を出すと、それぞれでゴールドメダルが取得できます。そのゴールドメダルを5回取得すると、晴れてGrandmasterの称号が得られます。私の場合は、3位に2回、4位に1回、5位に1回、9位に1回なり、この5個のゴールドメダルでGrandmasterになりました。ちなみにKaggleには、チームを組んでコンペに参加することもできますが、私はこだわりがあってソロ(1人)で参加しています。
小野寺
金融エンジニアリング・グループという会社で2014年12月に入社し、先輩社員からKaggleというコンペの存在について聞いたことからKaggleを始めました。それから2年ぐらいたってYahoo! JAPAN(ヤフー)に転職し、その翌年にDeNA(ディー・エヌ・エー)に入社しました。
Kaggleについては、私もGrandmasterです(参考:「ONODERA | Kaggle」)。私の場合は、Jackさん(=阪田)と違って、ほとんどチームで参加しています。優勝したことはありませんが、準優勝ばかりしています。準優勝なら任せてください(会場:笑)。
石原 自己紹介、ありがとうございました。今回のパネルディスカッションでは、日本でも数少ないGrandmasterを持つお二方に私から質問していきます。会場の参加者の大半は、Kaggleをしているわけではないようですので、ディスカッションに入る前にあらためてKaggleについて簡単に紹介しておきます。
既に少し話が出てきたように、Kaggleとは、機械学習のコンペが幾つも現在進行形で開かれているプラットフォームです。その流れは、DeNAの方のセッション資料から引用した図5にうまくまとめられています。
各コンペでは、スポンサーが問題を提出し、各チーム(もしくはソロ:個人)がそのコンペに参加します。コンペの期間は約2〜3カ月で、その開催期間中に参加者は何度もモデルを作成して提出します。最終的に、コンピューターによる自動採点が行われ、モデルの順位が確定します。10位までに入るとゴールドメダルがもらえます。ゴールドメダルを1個集めるとMaster、5個でGrandmasterになれるという仕組みになっていることは、説明済みですね。
世界中からデータサイエンティストが参加しているので、ゴールドメダルを1個取るのも大変な中、5個も取るのはスゴイことです。実際に、Kaggleの全参加者ランキングのページ「Kaggle Rankings」を見ると、参加者が約12万人(Kaggle登録者は2017年6月時点で100万人以上)もいる中で、Grandmasterは世界でたった162人しかいません(図6)。そのうちの2人が、今回パネラーとして登壇しているということになります。
ここからは質疑応答の形で進めていきます(以下、本稿で「見だし」になっている質問文は、モデレーターの発言とする)。
阪田 学生時代では、データサイエンスに全く縁がありませんでした。社会人として会社に入って初めて、仕事で機械学習を扱うようになりました。
仕事の中で「Kaggleというコンペがある」というのを職場の後輩から教えてもらって、「面白そうだな」と思い、まずはやってみることにしました。そうしたら、最初からそれなりに良い成績が出たので、「これは実際に面白いな」と思い、それからずっと果敢にチャレンジをし続けているうちに今に至る、という感じですね。
小野寺 先ほども話した会社「金融エンジニアリング・グループ」で、先輩に「Kaggleというコンペがあるよ」と参加を勧められて、試しに参加してみたら、そのまま、面白さにはまってしまったというのが、きっかけです。
金融エンジニアリング・グループでは、KDD(Knowledge Discovery and Data Mining)学会が毎年開催するデータ分析のコンペ「KDD Cup」に、新人教育の一環として新入社員全員が参加して、「データ分析とは何ぞや」を学ぶ場がありました。そこで少し練習してみたら準優勝しました。「それが自分の準優勝ストーリーの始まりかな」と思っていますが、KDD Cup準優勝をきっかけに「もしかしたら自分は才能があるのかな」と思ってしまって、今に至る感じです。
阪田 1つでも上の順位を取ること。私は負けず嫌いな性格なので、最初は機械学習の知識が全くなかったわけですが、何とかしてでも上を目指したかったです。そういう意気込みでチャレンジする精神は、Kaggleに向く資質かもしれません。
小野寺 私も「上を目指したい」という負けず嫌いな気持ちがあり、特に“偉そう”にしている専門家たちを、コンペで打ち負かしたいと思っていました(会場:笑)。
大学時代は経済学専攻でしたので、私も機械学習に特化した勉強をしてきたわけではありません。しかし、特徴量エンジニアリングのスキルが人より優れているようで、その点を突破口としてコンペでは勝っていけています。「おれは専門家だぞ」とあぐらをかいている人たちを打ち負かせれば楽しいですよね。
石原 幅広い専門知識のある/なしではなく、「スコア」という形で実践力が見えるところに、Kaggleの面白さがありますね。
阪田 Kaggleは、理論を知っているだけでは、良い順位を取れません。実際に手を動かさなければ気付くことができないノウハウ、つまり体系化が難しいノウハウが実践時にはたくさんあるからです。実際に手を動かしてKaggleのコンペにチャレンジしてみると、教科書を使って勉強する知識/理論と、実践で得られる経験/ノウハウには違いがあることに気付くと思います。
ちなみにKaggle Masterの石原さん(モデレーター)は、理論と実践で違いを感じますか?
石原 私の場合は、大学時代に機械学習を学び、社会人になって時間に余裕ができてから(約1年半前から)Kaggleにチャレンジするようになりました。理論はきちんと勉強しているので、例えばサポートベクターマシン(SVM)が機械学習のツールとして有名であることは知っていましたが、実際のKaggleではあまり使われていないことなどに気付きました。他にも、「ニューラルネットワークが必ずしも向かないデータ解析もあるのだな」など、Kaggleから学ぶことは多いと感じています。
阪田 そうですね。大学では、数ある手法を満遍なく学べますが、実践で使う手法は絞られてくると思います。「こういう場面では、こういう手法を使う」というノウハウは、大学や教科書では学べないことです。そういう「実体験に基づいて学べる」というのが、Kaggleの大きな利点の一つだと思います。
小野寺 2017年1月ごろにMasterを取得しました。そのころはまだKaggleの認知度が今ほど高くなく、しかもゴールドメダルを取得したコンペの内容が機械学習ではなく最適化の問題だったため、あまり胸は張れていませんでした。その6カ月後、「食料品販売のECサイトで再注文される商品を推測する」という機械学習問題のコンペにおいて、ソロで準優勝できてからようやく、「機械学習で自分の実力が示せたかな」という達成感を得ましたね。
阪田 私がMasterを取得したのは、2016年くらいのことです。その当時は、1人で細々とKaggleを楽しんでいましたので、反響もなかったです。今は多くのKaggle仲間とつながるようになって、お互いに勉強し合えるコミュニティーの一員になれたので、(達成感や反響も大きくなり)良かったと思っています。
小野寺 私の場合、バックグランドとなる数学力があまりなく、強いて例を挙げると「二次関数の頂点」なら分かるレベルでした(会場:笑)。機械学習では最終的に数学を使う必要が出てくるので、その点はソロでコンペに参加する上で確かに大変に感じたところでした。しかし、たとえ数学力がなかったとしても、“自分が見つけた手法”を使うなどすれば一応は勝っていけるという事例を、世の中に示せたのではないかと思います。
そもそも私の場合は、既に話したようにチームでの参戦が多く、その際に数学力のある人とチームを組んだ経験がソロでも生かせました。だからチームを組む場合、私のように「特徴量エンジニアリングが得意だけれども、数学力はない」というのであれば、数学力のある人と組むと相性が良いと思います。そうすればお互いに勉強しつつ、Kaggleでの実践力が増していくと思います。
阪田 ソロで参戦すると、自分そのものの真の実力が戦績として如実に目の前にたたきつけられます。そうやって、妥協できないように自分を追い込む、というこだわりがあり、これまでソロ参加を貫いています。また、ソロであれば、自分の余暇をフルに使って、自分のペースでKaggleに参加できる、というメリットもあります。
ただし、チーム参加には「お互いに勉強しながら成長できるメリットがある」と感じています。「ソロでGrandmasterになる」という大きな目標が達成できたので、今後は、チームを組んで機械学習のプロジェクトやKaggleなどに参加したいとも思っています。
阪田 最近、Kaggle熱が世の中で高まってきていることも追い風になって、例えば社内報のトップに写真が載ったりしたので、社内の多くの人に私のことを知ってもらえました。また、それがきっかけで、「データサイエンスでこの問題を解決できないか」などの相談も多くされるようになりました。Grandmasterになったことは、私のキャリアにとって大きな意味を持っていると感じています。
小野寺 私もJackさんと大体同じですが、特に私の場合は、国内よりも海外からの反応が若干大きかったように感じています。私の場合、Kaggle Discussionという掲示板で、機械学習の問題の解法や特徴の書き方などをシェアするなどしていたので、それを見ていた世界中のKaggle仲間たちから祝福されることもありました。もちろん、国内や社内、身内の人からも祝ってもらえてうれしかったのですが、それよりも情報発信して世の中に影響を与えられる方がもっとうれしいと感じています。
阪田 製造業に勤めているので、製造工場でのデータ分析、具体的には製造時に一定数不良が出るので、その原因をデータから解析して特定する業務に携わっています。ただし、不良の原因がデータに表れているかどうかは、実際にデータを見てみないと分からないことが多く、必ずしも成功するわけではありません。
これまでの事例では、メンテナンスのタイミングを最適化したり、製造現場では原因が不明だった不良を、センサーデータなどから発見したりするのに、機械学習が役立ちました。実際に機械学習を業務に応用するに当たっては、Kaggleで使っている最新の手法が役立つ場合もありますが、大半は古典的な手法で間に合います。「どういう場面では、どういう手法を使えばよいのか」という目利きの力は、Kaggleの参加経験で養われたと思っていて、Kaggleは今の仕事を遂行する上で大きな助けとなっています。
小野寺 DeNA社内では、機械学習の業務に直接携わって手を動かす仕事をしているわけではなく、事業部のお悩み相談に乗るなどのコンサル的な仕事をしています。具体的には、機械学習の問題に落とし込むところまでを担当していて、例えば「機械学習で解く問題は、どう設計すればよいか?」「KPIとして何を設定すればよいか?」というところに時間をかけています。
ちなみに先月はインターンのメンターもしました。社内の発表会で、自分が担当していたインターンが「準優勝」しました(会場:笑)。
Copyright© Digital Advantage Corp. All Rights Reserved.