新たに2名がKaggle「Grandmaster」に!GOの“Kaggler”たちの挑戦の日々を振り返る
機械学習やデータサイエンスに携わるエンジニアたちのプラットフォーム「Kaggle」。GOのAI技術開発部にも複数の“Kaggler”が在籍しており、日々行われているデータ分析コンペティションに参加しています。
直近では「Kaggle Stanford Ribonanza RNA Folding」に参加したチームが、4位に入賞し、金メダルを獲得。すでにGrandmasterのAI技術開発部 副部長・内田 祐介に加え、新たに立松 郁也、福井 尚卿がGrandmasterの称号を獲得しました。
今回は開発本部 AI技術開発部 データサイエンスグループ マネージャーの松井 健一が3名にインタビューし、彼らのチャレンジを振り返ります。
Grandmasterの称号獲得に寄せて
松井:まずはGrandmaster(以下、GM)昇格おめでとうございます。福井さん、立松さん、GMになった感想を聞かせてください。
福井:「自分はここまでできるんだ」という自己肯定感が生まれました。正直、これまではデータサイエンスに対してあまり自信がなかったのですが、Kaggleは客観的に自分の実力がわかるので。
立松:達成感というよりも、「あれ、もうGMだっけ?」という感覚です。正直、GMになるまでKaggleをやるとは思っていなかったので。Kaggleを始めた当初はGMは雲の上の人というイメージでしたが、いざなってみたら少なくとも自分はそこまでの実力をつけられた実感はないので、引き続きコンペを頑張りたいと思います。
松井:福井さんと立松さんにとって、内田さんはどのような存在ですか。
福井:私は入社前は金メダルを1枚しか持っていないただのMasterでしたが、内田さんはその頃からGMだったので、“雲の上の存在”でした。今、一緒に仕事したりKaggleに出たりできているのはすごくありがたいです。かなり参考にさせてもらってます。
立松:KaggleのGMとしての実力は間違いないですし、さらに「どうすればサービスがよくなるか」という視点も持っていますからね。最強の存在です(笑)。
松井:改めて、Kaggleを始めたきっかけを教えてください。
福井:私は大学時代に友人から誘われたことがきっかけです。情報系の学科でデータサイエンスや機械学習の研究室にいたので、勉強の足しになると思って始めました。
立松:僕は大学院で「組合せ最適化」という研究をしており、その中で「世界中の研究者が同じ問題を解いて精度を競う」ことの面白さを知りました。そんな中、技術領域はやや異なるものの、似たようなことができるKaggleというプラットフォームがあることを知り、興味を持ったのがきっかけです。
松井:ぜひ内田さんも。
内田:きっかけは、DeNAに所属していたころに業務時間を使ったKaggleへの参加を認めるKaggle社内ランク制度ができたことです。私自身は制度の対象外だったのですが、ちょうどそのタイミングで私の研究テーマであった画像検索に関するコンペが始まったのでチャレンジしてみたという経緯です。
松井:Kaggleの好きなところや面白さを感じる部分はどこですか?
福井:世界中から集まってくるレベルの高いデータサイエンティストたちと知見を共有しつつ、一緒に競い合って、さらに自分の立ち位置が見えてくることがとても面白いです。特に私は深層学習が好きなので、問題を解くときに有効活用できたり、工夫して精度を上げられたり、これまでにないような使い方ができたりして、いい成績を出せると嬉しいですね。
立松:Kaggleは提出するとすぐにスコアが計算されて順位表に反映されるので、オンラインゲームのようにのめり込んでしまいます。またKaggleでは知見をオープンにする文化があるので参加しているだけで学びも多いですし。自分はデータをしっかりみて、特性を活かして、モデルへの入力を工夫したり、追加でデータを持ってきたりするようなコンペが好きですね。
内田:「こうやったらうまくいくかな」と思ったものがうまくいくと興奮しますね。ゲーム感覚に近いというか。ただ、体力や精神力を削るプロセスはなかなかハードなので、シンプルなアイデアだけで勝てそうなコンペもワクワクしますね(笑)。
社内でコンペのチームを組む魅力とは
松井:なぜ3人でチームを組むことになったのでしょうか。
内田:その前のコンペは私と福井さんでやっていたのですが、福井さんがGMリーチになり、立松さんもGMリーチだったので、「これは一緒にGMじゃない?」という……どこまで本気だったかはわかりませんが、ノリで「やるか」と。
立松:正直、最初はGMを目指すつもりはなかったですね(笑)。
松井:チームを組んでからコンペを始めたということですね。
内田:そうですね。なんとなくはやっていたのですが、サブミッションまではしていない状況でした。
松井:社内でチームを組んで、よかったことはありますか。
福井:やはり気軽に相談しやすいことは大きかったですね。時間帯ごとの忙しさや業務の状況などもなんとなく把握はできているので、ペースは合わせやすかったように思います。
立松:仕事では内田さんがリーダーで僕がメンバー的なポジションなのですが、Kaggleではフラットになるのが新鮮でしたね。福井さんとは仕事での関わりがなかったので、コミュニケーションの機会ができて楽しかったです。
内田:その人のモデルがあってもなくても順位が変わらない状況を「ウェイトゼロ」と呼ぶのですが、もともとの信頼関係があるのでそうなりにくい。逆に、福井さんがガンガン進めている様子が伝わってくるので「このままじゃウェイトゼロになる」というプレッシャーがありましたね(笑)。あとは、Slackなどのツールが普段の業務と同じで、クラウドの社内リソースも使いやすい。そのあたりで相談をしなくていいのは楽でした。
松井:印象的なエピソードはありますか?
福井:二人と同じようなことをしているのに、私だけ全然精度が上がらなくて焦った記憶があります(笑)。
内田:いろいろ実験するなかで細かい差分が精度の違いにつながることがわかったので、結果として上位にいく鍵にもなりましたよね。
松井:個々人で違うやり方を検討できるのもチームを組むメリットですよね。
立松:僕は最初は結構ゆるく「知見を溜めましょう」という感覚だったのですが、気づいたら福井さんが金メダル圏内に入って、「頑張らないと!」というモードになりました(笑)。
内田:私も同じで、休日に家族とディズニーランドへ行っていたのですが、福井さんの奮闘ぶりをみて「ウェイトゼロになる!」と待ち時間にスマホで訓練のログを見ていました。見たところで何か変わるわけではないのに(笑)。
松井:そういう意味ではご家族の協力もあるわけですね。
内田:私の家族はむしろプレッシャーをかけてきますね。「え?まだ10位なの?」とか(笑)。
松井:ご家族も詳しくなってきているわけですね。
Kaggleを始めたばかりの頃の自分へ
松井:Kaggleを始めたばかりの自分にアドバイスするとしたら、どのようなことを言いますか。
福井:Kaggleを始めたばかりの頃は結果を出すというよりも論文で学んだ手法を試すことをモチベーションにしていました。それはそれでいいのですが、「もっと過去コンペの解法を再現したり、手を動かして地道にスコアを上げていったり……を、ちゃんとやっておけばよかった」と思うことはあります。
松井:もっとスコア重視というか。
福井:そうですね。論文を参考にするにしても過去コンペの解法と組み合わせたらもっといいスコアが出ることがわかってきたので。
立松:僕は最初の1〜2年は金メダルにこだわってしまったがゆえに最後までコンペをやりきれなかったことがありました。「今回は見込みがないから、もういいや。また別のコンペをやるか」と(笑)。
もちろんメダルも大事だけど、最後までやり切らないと実力がつかないんですよね。やり切ってからでないと、上位の解法を見ても学びにならないので。まずは最後までやり切ることを優先してほしいですね。
内田:立松さんの話に近いですが、「短期チャレンジはダサいのでやめろ」と言いたいです。短期チャレンジとは、締切まで1〜3週間になってから「やるぞ」みたいなやつです。
昔は「短期で追い込んで、そこそこの結果がカッコいい」と思っていたのですが、ちゃんと取り組んで金メダルを狙うほうがいいので。やはり1〜2か月はしっかり時間をかけるべきですね。
松井:時間をかけると得られるものも違いますか?
内田:短期だと付け焼き刃的で中途半端なアプローチになってしまうので、「急がば回れ」でじっくりやっていくべきです。あとはコンペの評価指標をちゃんと評価しておくこと。私はつい「後でやればいいや」と思いがちな部分ですが、必ず最初にやるべきです。
仮説を立てる。実験結果を分析に、次につなげる
松井:Kaggleでいい成績をとるコツがあれば、教えてください。
福井:身も蓋もない話なのですが、金メダル圏内を目指すなら銀メダルレベルのソリューションを持ち寄ってチームマージすることではないでしょうか。
もう少し一般的な話だと、自分がやった結果を分析・考察して、次の実験につなげていくことが大事だと感じています。私自身はメモ帳にうまくいったものと失敗したものを書き出して、次のアイデアにつなげていますね。
立松:自分も同じですね。やはり仮説を持って実験をすることは大事です。特にモデルが予測に失敗したサンプルを自分の目で確認して、原因の仮説を立てていくことは多くのコンペで有効な手法だと思います。
松井:内田さんはどうですか。
内田:戦略という意味では、終了2ヶ月前ぐらいからディスカッションとコードは全部見るくらいの気持ちで、先人の知恵をすべて得ることです。その上である程度のレベルにまで上げて、チームマージする。
大事なのは、とにかく全部やることです。そのために選択肢を持っておくことが大切です。とはいえ現実的には全部はできないので、可能性が高そうなものや意味がありそうなものから順番にやっていって、コスパ良くやっていく流れですね。
松井:アイデアの源泉は?
福井:自分の場合は過去コンペの解法やこれまでに読んだ論文、あとはX(旧:Twitter)で流れてきた勉強会資料などですね。
立松:僕もだいたいはKaggleの過去のコンペですね。一見違うタスクのコンペでも、例えば評価指標が一緒だったら参考にできるみたいな場合があるので、幅広く見ています。
内田:私はそのあたりが苦手なので、自分の直感に頼ることが多いですね。自分の考えたアプローチでやりたいところもあるので。ただ、3人で金メダルを獲ったコンペは経験のない分野だったので、過去のソリューションを参考にしました。
松井:Kaggleで心が折れたことはありますか。
福井:私はないですね。Kaggleを始めて五年くらい経ちますが、忙しくて中断していた時期以外は常に参加する気持ちでいます。
立松:心が折れたというほどではないですが、ダメージを受けたのがベンガル語の手書き文字を認識するコンペですね。パブリックリーダーボードではあと少しで金メダルの順位だったのですが、プライベートリーダーボードでは全然ダメでメダル圏外になってしまって。
かつ上位の解法を見たら自分たちが本質とは全くかけ離れていることをやっていたことがわかって「この数ヶ月何をしていたんだろう」と絶望を感じました。学びにはなりましたが、終了直後は心にきましたね。
内田:心が折れたとは少し意味合いが違うかもしれませんが、途中で諦めたコンペはあります。上位に入る確信が得られるまでサブミットしなかったら、「これはうまくいかないな」という状態が続いてしまって、最終的にやる気が失われてしまった。逆にサブミットするとやる気が出ることもあるんですよね。早めにサブミットすることは重要だと思います。
Kaggleでのチャレンジがもたらすもの
松井:GOのAI技術開発部という環境はいかがですか?
福井:社内全体に通じる部分ですが、コンペの結果や学びを共有できてワイワイ議論できるのは魅力的です。自分はディスカッションの時間が一番楽しいですね。
立松:同じですね。あとはコンピュータリソース。クラウドサーバなど個人で数十万円支払うのはハードルが高いので、支援してもらえるのはかなり助かっています。本質的なところに集中できますからね。
松井:Kaggleで取り組んだことが日々の業務に活きることはありますか?
福井:コンペそのものはもちろんですが、仮説を立てて実験して結果を分析して次につなげるという能力が役に立っています。
直近の仕事として、実験の適切な評価指標を考えたのですが、「Kaggleだったらこういう評価指標やこういう評価の仕方があって〜」「どういうところに着目すればいいのか」などを思い出しながら、実行できました。
立松:自分も役に立つと思います。特に僕はデータサイエンスの専門性をほぼ全てKaggleを通じて身に付けたと言っても過言ではないので。
内田:少し違う切り口だと、業務だと新しいチャレンジへのハードルは高くなりますが、先にKaggleで慣れ親しんだものであればスムーズに取り入れられます。しかも、実践の場ですからね。Kaggleでのチャレンジを業務として応用できるのは魅力的です。
あと、Kaggleをやる人はコードを書くのも速いと思っていて。PDCAを素早く回していく力が身につくのではないでしょうか。
福井:他にはデータセットをつくるところですね。そもそもどういうデータを集めるか、学習用と検証用のデータをどのように分けるか……など、実用性を考えながらデータを集めることはKaggleの経験が活きていると思います。
立松:少し違う領域だと、プロダクトの評価指標の策定に関しても知識や経験が活きているところですね。Kaggleに参加すると多様な評価指標の特性を学ぶことができるので、その知見は実務でも役に立っています。
内田:評価指標はすごく重要で。プロダクトのユーザー側からの見え方と機械学習の評価指標との間にギャップがあることが多く、とはいえ答えもないので、いろいろなデータや指標の特性を知っていることは今後も武器になっていくと感じています。
松井:改めて、Kaggleでの経験が業務にきちんと活きていることがわかりましたし、何より楽しみながらチャレンジしているのがすごく素敵ですね。今日は興味深い話をありがとうございました!
※掲載内容は2024年3月時点の情報です。
■採用情報
GO株式会社では、共に働く仲間を募集中です。
興味がある方は、お気軽にご連絡ください!