Fire Engine

消防士→ITエンジニア→研究者

企業研究者の立場からKaggleに取り組む意義を考えた

先日,Kaggleで初めてコンペに挑戦し,その振り返りをブログに書きました. 現在,企業で研究者として働いている私は,Kaggleのコンペに取り組むことは非常に学びが多く,自身の研究活動にも良い貢献をするだろうと確信しました. 私自身Kaggleに取り組むまでKaggleと研究に繋がりを見いだせておらず,実際にコンペに取り組むことでその繋がりが見えてきました. まだ1コンペしか参加経験がないビギナーではありますが,私が考えている研究者としてKaggleに取り組む意義について現時点の考えをまとめたいと思います.

自分の立場について

Kaggleへの取り組みが研究に良い貢献をするかどうかは,研究の分野や内容に依存すると思うので,私の立場をはっきりさせておきます. 私は現在,インターネットインフラサービスを提供するさくらインターネット株式会社の組織内研究所であるさくらインターネット研究所で研究員として働いています. 私は,自分たちのドメインにおける課題の中で人間の手や簡単なルールベースのアルゴリズムでは解決が難しい課題に対して,機械学習を適用して解決する研究に取り組んでいます. したがって,私は機械学習の理論の研究をしているわけではなく,機械学習を応用して研究を行っている立場です.

機械学習を応用する研究

機械学習を課題解決の手段として用いる研究は,多くの分野で増えていると思います. 私が参加した2020年11月開催のIBIS2020の発表の中でも,農業・土木工学・機械設計など様々な分野に機械学習が応用されていました. 私の分野においても例外でなく,2020年に開催されたクラウドコンピューティング技術に関する国際会議であるIEEE CLOUD 2020において,機械学習をはじめとした数理的アプローチで課題解決を行っている研究が多数発表されていました.

我々の研究所ではこういった流れに取り残されず研究を行っていくためにも,研究の問題設定を行うドメイン知識や経験が豊富な研究員と,その課題を機械学習統計学を駆使して解決する研究員で役割分担をしてチームとして研究を行う取り組みを積極的に行っています.以下はその役割分担について,同僚の松本さん発表資料から抜粋したものです.

f:id:hirotsuru314:20210114111528p:plain

Kaggleを知って危機感を覚えた

前述のような自分たちのドメインにおける課題に対して機械学習を適用する研究において,機械学習を用いた問題解決力が研究に直結することは明らかです. 一方,私がKaggleの存在を知ってから,公開されている過去コンペの解法についての発表資料をいくつか読んでみると,その中の多く解法が私が知らない,もしくは名前だけ知っているけど理論や使い方もわからない手法を用いていました.(例を挙げると,LightGBM・BERT・Metric Learningなどなど) 私はこのことに非常に危機感を覚えました.というのも,もし研究における問題設定がうまくできていたとしても,問題解決力が不足していて,実用上有効な精度が出せないと研究が進まないといったことが起きると思います. 例えば,我々の分野においてWebシステムの異常検知という問題設定をした場合,その検知精度が60%であったとしたら,実用性があまりにも低いので,どれだけ素晴らしい問題設定や提案をしたとしても研究として成立しないと思います. 世界中のデータサイエンティストが精度を競い合うKaggleにおいて頻出のモデルやアルゴリズムをキャッチアップできていない今の自分の力ではそういった問題が頻繁に起きるのではないかと思いました.

Kaggleを通じて問題解決力を高める

そこで,Kaggleを通じて機械学習を用いた問題解決力を高めることは,自分の研究活動において有効だと考えました. Kaggleで得られる知識や経験はいろいろありますが,私が特に研究に直結すると思ったのは以下の3点です.

1.最新かつ実用的な手法のキャッチアップ

Kaggleでは枯れた技術のみが使われているわけではなく,最新の研究や論文の成果がどんどん実践で使われています.逆に言うと,state-of-the-artを追わないと勝てないのかもしれません.このため,コンペに参戦することや参戦後に上位解法を学ぶことで,数年以内に提案されたような新しい手法をキャッチアップできると思いました. さらに,新しいだけでなく,Kaggleのコンペで実データに適用されて,精度が検証されていることが非常に有用だと思いました. 手法の提案論文では,(査読の段階で取り除かれることも多いと思いますが)提案に有利な評価であったり,実用的でない擬似データを用いた評価であることが多いです.それがKaggleで実戦投入されて,論文とは異なる実データで精度や実用性が検証されていることには非常に価値があると思いました.

2.実装力

Kaggleのコンペの中でも「Code Competition」と呼ばれるコンペでは,与えられたNotebook環境で成果物をSubmitする必要があるため,メモリの制限やコードの実行時間に制約が課されます.これにより,省メモリかつ高速な実行コードを書く力要求されます. また,前述のような最新の手法の中にはライブラリが公開されていないものもあるため,時には論文を読みながら自分で実装する力も必要になると思います.

3.データの捉え方

Kaggleでは様々な種類のデータ・問題設定でコンペが開催されるため,継続的に参加することで幅広いデータの捉え方を学べると思いました. これは自分たちの手持ちのデータだけを分析していてはなかなか得られない経験なので,非常に有用だと思います.

また,これらの習得できる力を踏まえた問題解決力が,コンペの順位,メダル,称号などを通して客観的な指標として評価できることも魅力の一つだと思います.Kaggleで学べることはまだあると思いますが,上記の3つだけでも,どれも自分の研究にも必要な力であるので,私は研究に必要な機械学習を用いた問題解決力の習得・維持のためにKaggleに継続的に取り組んでいきたいと考えました.
ここまでが企業研究者の立場である私がKaggleに取り組んでいこうと思う主な理由なのですが,Kaggleでコンペに取り組むことが直接研究の業績に繋がるような事例もあるようなのでまとめました.

Kaggleの成果が直接的に研究業績に繋がる事例

ここからは,Kaggleのコンペで上位入賞するような場合に限った話ですのでハードルは高いです.事例を以下の3点にまとめました.

1.Kaggleの解法を論文としてまとめる

  • 「PLAsTiCC Astronomical Classification」というコンペの優勝者が書いた論文がジャーナルに採択

    iopscience.iop.org

  • Kaggleの過去コンペの結果をまとめたようなジャーナル論文もある

    www.sciencedirect.com

2.コンペで入賞して学会で発表する

  • 私が前回参加した「Riiid! Answer Correctness Prediction」では上位入賞者は「AAAI-2021 Workshop on AI Education」で発表できる.

  • 国際学会が主催しているコンペもある.例えば,IEEEが主催した「IEEE-CIS Fraud Detection」で上位入賞者はIEEE CIS Conferenceで発表できる.

3.コンペで入賞してプレスリリースを出す

多くの企業がKaggleのコンペで上位入賞した場合,以下のようにプレスリリースを出しているようです.

www.nssol.nipponsteel.com

www.jri.co.jp

さいごに

私は自分の研究を進めていく上で必要な機械学習を用いた問題解決力の習得・維持のためにKaggleに継続的に取り組んでいきたいと考えています.いずれはコンペで上位入賞できるような力をつけ,Kaggleの成果自体が研究業績になるようにしていきたいと思います.このブログが私と同じような立場や危機感を持っている方々の参考になれば嬉しいです.Kaggleやっていきましょう!