【R-plus+番外編】Kaggle Grandmaster対談インタビュー(後編) 

R-plus+の番外編としてお届けしている、小嵜さん×山口さんの対談インタビュー後編です。
前編はこちら

小嵜さんと山口さんは、Kaggle Grandmasterとして数々の優秀な成績を収められていますが、そんなお二人のKaggleエピソードを知りたい人も多いと思います。
ということで、後編ではKaggleのお話を中心にお伺いしていきます!

*****************************

インタビュー後半では、Kaggleについて深堀していきたいと思います。
まず、お二人がKaggleを始めたきっかけは何だったのでしょうか?

小嵜:私がKaggleに登録したのは大学院生の時で、時期は2011年〜2012年頃だったと思います。
研究のためにいろんなアルゴリズムを使って実験したくても、それを試すためのデータがなくて、とにかくデータに飢えていた時期でした。
そんな時にKaggleの存在を知り、これに登録すれば企業や団体のいろんなデータが見れると思って始めることにしました。

世間ではビッグデータへの関心が増え、2011年〜2012年頃にはオープンデータ活用の機運も高まり始めた時期でした。Kaggleは、それとほぼ同時期に誕生したプラットフォームでした。
その頃、私はデータマイニングの学術関連のメーリングリストに登録していたのですが、そこに流れてきたメールでKaggleの存在を知って登録しました。
今は違うと思うんですけど、その時のKaggleの登録メールの送り主はKaggle創始者のAnthony Goldbloomになっていて、今でもそのメールが手元に残っています。

山口:私は企業でインターン生をしている時、大学の知り合いがKaggleに取り組んでいる話を聞いて、腕試しと思って参加し始めました。当時は若気の至りで自分を過大評価していたこともあり、参加すれば勝てるだろうと思っていたんですが、現実はそう甘くなかったです。(笑)

Kaggleのコンペで優秀な成績を収めているお二人ですが、そこに辿り着くまでの道のりでは苦労も多かったのでしょうか。

小嵜:そうですね、最初は全然コンペで勝てなかったです。私はKaggleが創設された次の年くらいに登録しましたが、その時はDiscussionも今ほど揃っていない状態でした。コンペで戦うための道具すらない状態でしたね。

でも、思い出すと懐かしいです。まだこなれていないライブラリとか、当時はランダムフォレストのモジュールが最強だったりとか……。PyTorchがなかった時はTheanoやC++でコーディングしたりして、エンジニアリングで結構頑張ってた時代ですね。

山口:そういう話、めちゃくちゃ面白いです。今では当たり前のように使われている技術や知見が、当時は整っていなかったんですね。

小嵜:ずっと前のKaggleのDiscussionを見ると、同じ課題に対して今とは違うアプローチが試されていたりするので、たまに覗いてみると面白いですよ。

なるほど。過去のDiscussionを見ると、技術発展の歴史が辿れるわけですね。
山口さんは、いかがですか?

山口:先ほど話した通り、私も最初はコンペでなかなか勝てなかったです。徐々にコツを掴んで、社会人になってすぐの頃にKaggle Masterになりましたが、そこからKaggle Grandmasterになるまでのハードルはすごく高く感じました。
Kaggle Grandmasterになるためのスキルアップだったり、どれくらいの成績を収める必要があるのかとか、その解像度が上がるにつれて「このままじゃKaggle Grandmasterになれない」と思ったこともあります。

その不安はどうやって乗り越えたのですか?

山口:社内でいろんな人とチームを組んで学びを得ながら、金メダルを獲得して徐々に自信をつけていきました。特にコンペで3枚目の金メダルを取った時のことはよく覚えています。
解法を考えている時に「この方法、上位の人も試してるんじゃないかな?」と思いついて、それをチームにも呼びかけて試したら一気に順位が上がったんです。それをきっかけにチームの士気が一気に高まって、みんなが積極的に作業に取り組んでくれるようになりました。
自分も、押せ押せ!ムードでチームを鼓舞しながら、良い空気感を作り出せたと思います。
結果的に、そのコンペでは3位になりました。

山口さんのひらめきと雰囲気づくりがみんなのモチベーションアップに繋がって、結果に結びついたんですね

山口:チームを組み、みんなで手を動かすことで、こんなにも大きな成果を生み出せるんだと実感しました。その感覚が掴めてから、一時期はコンペに参加するたびに金メダルを取っていた気がします。

小嵜:今の山口さんの話、ものすごく共感します。チームで参加する時、メンバーのモチベーションコントロールはすごく重要で、同時に難しいことでもあるんですよね。
みんなのモチベーションが低いとなかなか頑張れないし、それがお互い顕著に伝わっちゃうので。
それもあって、私の場合はコンペが終わる1〜2週間前にチームを組むことが多いです。
その時点で順位がある程度高ければ、モチベーションの面でも不安が少ないと思っています。

山口:私は逆に、最初からチームを組むことが多いです。その上で雰囲気づくりを大事にしていて、
「自分は死ぬ覚悟でやるんで、あなたたちは好きにしてください。やりたくなったら一緒に頑張ろう!」っていうスタンスなんですよね。(笑)
ただ、ありがたいことにその熱量が一致する人がついてきてくれたので、結果を残せてきました。
チームの組み方にはそれぞれスタイルがあるので、小嵜さんの組み方も正攻法の一つだと思います。

    

Kaggleは機械学習コンペティションの最高峰

お二人にとって、Kaggleの魅力とは何ですか?

小嵜:いろいろありますが、ゲーム感覚で熱中できる点は魅力の一つです。
私はもともと勝負ごとが好きなので、Kaggleの前は「ICPC(国際大学対抗プログラミングコンテスト)」や「ICFP Programming Contest」などの競技プログラミングコンテストに参加していました。
余談ですが「ICFP Programming Contest」は72時間という過酷な制限時間内に問題を解くというコンテストで、大抵はチームを組んで寝る間も惜しみつつ頑張るんですけど、当時それに一人で出ていました。(笑)
勝負ごとに熱中したいという性格が、Kaggleにどハマりした理由の根底にあると思います。

山口:私も小嵜さんと同じく、Kaggleは勝負の世界で熱中できるところが良いです。
それ以外で魅力に感じている部分は、最新の実用に耐え得るAI技術を、手を動かしながら学ベる最適な場であることです。
自分の中で、Kaggleで使われる技術は、今の人類が持っている機械学習技術の最高峰だと思っています。
毎日、無数の論文が世の中に出て、それらの技術が試されては死んでいく中、Kaggleではその技術が生き残るのか、あるいは死んでいくのかが一番試される場所です。

なるほど。世界中から優秀な技術者が集まるKaggleという場で結果を出してきた技術は、優れた技術として後世にも残っていくんですね。

小嵜:山口さんの言う通り、Kaggleは技術が淘汰される場でもあります。
例えば、約10年前にSegNetとU-Netの論文が同じ年に出てきた時、技術者の中で「どちらを使えばいいの?」という議論が生まれましたが、その時にKagglerの多くはU-Netを選択しました。結果的に、現在はU-Netが多くの場面で使われています。

Kaggleでのコンペをきっかけに、技術の革命や時代の変化を感じることもあります。
同じくU-Netの話なのですが、2015年に開催された「Diabetic Retinopathy Detection」という眼球の毛細血管のセグメンテーションを行うコンペでは、「こんなに精密なセグメンテーションが可能になるのか!」と感動しました。
それまでの技術は、精密にセグメンテーションをすることが難しかったと思います。このコンペで一気にクオリティが上がったと感じ取ることができ、「これからはセグメンテーションの時代が来る!」と思いましたね。

コンペで勝つ鍵は、勝っている人の思考を再現すること

現在はKaggle Grandmasterとしてご活躍されているお二人ですが、コンペで勝つために意識して取り組んでこられたことは何ですか?

小嵜:私の場合は、勝っている人間の思考を自分も再現できるようにすることです。
コンペの上位成績者が公開しているSolutionやDiscussionを見て「なんでこの考えに至ったんだろう?」をまず考え、自分も同じことができるように頑張っていました。
コンペに勝つための方法は、自分の頭で思いつかないと負けちゃうので、それができるように頭の中でシミュレーションすることを意識してきました。

山口:私も、強い人とチームを組んだ時に「この人の真似をすればいいんだ」と思って、強い人が考えることを自然に自分もできるように頑張っていました。それができるようになってから、ある程度勝てるようになってきたと思います。
この考え方は、Kaggleを始める前から意識していました。昔の話ですが大学受験の時に数学の解説を読みながら、自分が解けなかった時は「なんで思いつかなかったのか?」をずっと考えていました。
この答えを自分の頭で自然に導き出すためには、自分に何が足りないんだろう?を追求していったら数学が解けるようになって、それができてから受験は無双状態でした。

Kaggleにおいては、上位成績者のsolutionを見て「どうしたらこの発想が自然と降ってくるようになるのか」「自然に降ってくるには自分に何が足りないんだろう」を考えることが重要ですね。
ある意味、粘着質でいることが大事です。常に「勝ちたい」「勝つにはどうすればいいか」の気持ちがないと繋がらないので。

小嵜:そして、その発想が自分に降ってこなかった時に悔しい思いをします……。

山口:たしかに。(笑)ただ、今ではそういうことがあっても「自然に出てくるもんじゃないよな」とか「運が悪かったんだ」って、いい意味で諦める気持ちも持てるようになってきました。

小嵜:あと、Kaggleは考える時間がめちゃくちゃ大事です。考えて考えて、他人が思いつくような発見をすべて見つけることが、成果につながります。
これを一つでも取りこぼすと負けてしまうのですが、自分はよく取りこぼします。(笑)
他の人が思いつかないアイデアを自分が思いつけば勝てることも稀にあるので、それが思いつくようにたくさん考えることですね。

Kagglerが集まるイベントでみんな言っていますが、怠けて勝てる簡単な戦いはほとんどないです。
自分以外のみんなも同じくらいがむしゃらに頑張っている。だからこそ、たくさんの時間を費やして考え抜いて、多くのアイディアを試すことが重要です。

たくさんの考えやアイデアを試す中で、それが煮詰まった時はどうしていますか?

小嵜:私の場合は結構、お風呂に入る時間を大事にしていますね。
スマートフォンを持ち込んでいろいろ調べたり、シャワーを浴びている時にふと新しい考えを思いつくことがあります。
大学院生の時も、ずっと研究室にいて頭が疲れてきたら、一度シャワーを浴びに学生寮に戻って、それからまた研究室で作業を再開していました。

山口:お風呂、めっちゃわかります!髪を洗ったりシャワーを浴びてたら「あ、そういえば」って思いついて、お風呂から上がってすぐにそのアイデアを検証することもあります。

お二人のすごさの秘訣に「お風呂に入る」という技があったとは(笑)
いい感じに思考がリセットされるのかもしれないですね。

小嵜:なぜかお風呂で思いつくんですよねー。

山口:「お風呂でアイデアが思いつく」は、研究者あるあるかもしれません。

     

では次に、これまでで印象に残っているコンペを教えてください。

小嵜:私は「Passenger Screening Algorithm Challenge」というコンペです。アメリカの空港における入国検査時に、麻薬や禁止物品を持っていないかどうかを自動検出するアルゴリズムを開発するという内容でした。国の根幹に関わる入国管理と紐づく、社会的インパクトの大きい内容だったので印象に残っています。
あと、このコンペでは人のボディスキャンの3Dデータが提供されたのですが、普通は3Dスキャンの会社に入社するか、そういう会社と取引しないと見れない貴重なデータで技術検証ができるなんて、エキサイティングなコンペだなと思いましたね。

山口:今、小嵜さんが話しているコンペを調べたら、賞金50万ドルもあったんですね。過去にこんなに夢のあるコンペも開催されていたとは……。

小嵜:たしかに、かなり高額な賞金でも話題を呼んだコンペかもしれません。(笑)

山口:私が印象に残っているコンペを1つ挙げるとすれば、前職の同僚との参加で初めて優勝した「Happywhale – Whale and Dolphin Identification」です。
画像と画像に紐づけられたIDをもとに、クジラとイルカの個体識別を行うコンペでした。
Leaderboardを見ると有名なKagglerの名前がたくさん並んでいて、錚々たる名前に今でもすごかったなと思い出します。なんといってもタスクが難しくて、試していることがみんな違ったり、solutionも十人十色でした。Ristのメンバーと優勝争いをしたり、最終submissionは締切の1分を切っていたりと、いろんな意味で思い出深いコンペです。

当時コンペを主催した「Happy Whale」のサイトを見ると、クジラの個体を識別してその生息地を特定するシステムを見ることができます。多分自分たちがコンペで開発したモデルが使われているのでは?と思うので、作ったものが実際に活用されているシーンを見ると嬉しくなります。

小嵜:コンペの成果が別の活動に繋がることは嬉しいですよね。私も、優勝した「Google Landmark Retrieval 2019」というコンペでそれを実感できたエピソードがあります。
当時、コンペでの成果や手法を論文にして、CVPR(※3)でも発表したんです。簡単に言うと「ノイジーなデータセットをクリーニングすることで、いい結果が出せる」といった内容でした。
その数年後にMetaが「DINOv2」という大規模基盤モデルを出して、それに使われたデータセット一覧の中に自分の作ったクリーニングしたデータセットが含まれていることを見つけたんです。その時はDINOv2の一端に関われたことへの驚きや嬉しさがありました。

※3 CVPR:Computer Vision and Pattern Recognition Conference 。コンピュータービジョンの国際会議。

            

インタビューの前編でも一部お伺いしましたが、改めて、Kaggleで得た経験が仕事のどんな部分に活かされると思いますか?

山口:Kaggleのコンペでは、最新の技術や論文の内容が使われていて、実用に耐え得るかどうかが繰り返し試されています。つまり、コンペで使われる手法はそのドメインにおいて現時点では最高性能であることが期待できます。そういう観点で考えると、業務で機械学習の技術を適用したり、課題設定をする時に「今の技術ではどんなことが実現可能なのか?」が、Kaggleをしていると解像度高く判断できる側面があると思っています。

小嵜:山口さんと別の観点でいくと、仕事への取り組み方に関してもKaggleを通じて学んだ部分がたくさんあります。例えば、コンペで順位を落とさない対策の一つとして、初歩的なミスを繰り返さないとか、ミスを予測する力が必要になってきます。これって当たり前だけど重要なことで、仕事においても同じ考え方が言えると思います。

    

今日は貴重な話をたくさんお聞かせいただき、ありがとうございました。
最後に「仕事での目標」「Kaggleでの目標」をそれぞれ教えてください。

小嵜: 仕事での目標は、数多くの事業者にとって欠かせない存在となるような成果物を生み出すことです。
Kaggleの目標は、なるべく多くのコンテストで優勝して、価値のある貢献をしたいです。

山口:私の仕事での目標は、会社の成長と発展に貢献することです。これを実現するためには、一人一人の技術力が高いRistのメンバーがよりチームとして熱量を持ち、目標に向かっていくことが大事だと考えています。
Kaggleでの目標は、Kaggle Rankings(※4)の更新と、金メダルを合計で20枚獲得することです!

※4 Kaggle Rankings:コンペの実績によって決まるKagglerのランキング。

今回のR-plus+番外編は、小嵜さん、山口さんの特別対談インタビューをお届けしました。
お二人の仕事に対する誠実な想いやKaggleへの情熱を改めて感じる内容となりました。
これからのご活躍にも期待しています!