AD-TECH
Lab BLOG
RCO アドテクLab ブログ

新人エンジニア主催でISUCONに機械学習の要素を取り入れた新しいタイプのコンテストを開催しました

2019/02/01kano_hideaki

このエントリーをはてなブックマークに追加

みなさん、こんにちは! (大きな声) 2018年4月より新卒でRCOに入社した鹿野です。 去る1月23-25日に、新人エンジニア8名 (japlj、後、翁、鹿野、桑原、柴田、松田、若月) が中心となってPIGICONという新しいタイプのコンテストをリクルートグループ横断で開催しました。本記事ではこのPIGICONについてご紹介いたします!

PIGICONとは

PIGICONを簡単にまとめると以下の様になります。

  • Programming and Intelligence: Greatest Improvement CONtestの略だよ
  • ISUCON (Webサーバ最適化コンペ) に機械学習の要素を取り入れた新しいタイプのコンペだよ

今回は、リクルートグループ各社から合計17チームに参加していただきました!

どんな問題を出題したか

やあ、私はピギネイターです。有名な生体高分子を思い浮かべて。
機械学習がどれでも当てて見せよう。機械学習は何でもお見通しさ。

今回のPIGICONでは、「アキネイター」から着想を得て「最初はレコードの特徴量が隠されていて、質問によって好きな特徴量を教えてもらうことができる」という問題設定を考えました。そして、この設定の下で「ユーザへの質問を繰り返しながら生体高分子に関する多クラス分類問題の予測を行うAPIサーバ “piginator” を実装せよ」 という問題を出題しました。ここで、学習などに用いることができる訓練用データ (特徴量は11コ、ラベルは30通り) は与えられます。さらに、以下の3つを採点対象とすることで、高速かつ高精度なAPIサーバを実装できたときのみ高得点となるようにしました。

  • ユーザへの質問回数 (少ないほど良い)
  • 予測精度 (高いほど良い)
  • 予測を返すまでの処理時間 (短いほど良い)

今回の設定では、以下のような三すくみの関係が生じています。

  • 処理時間を短くしようとする (モデル複雑度を下げようとする) と、予測精度が落ちる
  • 予測精度を上げようとすると、質問回数が多くなる
  • 質問回数を下げようとする (モデル複雑度を上げようとする) と、処理時間が長くなる

従って、スコアを最大限に伸ばすためには既存のWeb・機械学習ツールをただ使うだけではなく、PIGICONに最適な手法を自ら考えてそれを時間内に実装する力が必要です。

オススメポインツ

PIGICONで求められるスキルのうち、従来のコンテストとは大きく異なるものが2つあります。

  • ISUCONのように参考実装を改良するのではなく、問題の仕様に従って1から実装する能力が求められる
  • Kaggleのように予測精度の向上だけを目指すのではなく、特徴量の選定、前処理・予測処理時間の短縮、回答順番なども考慮する必要がある

Webと機械学習の双方において深い理解が求められる、まさに「知の総合格闘技」だと言えます。

コンテストの様子

コンテストは以下のようなスケジュールで行われました。

  • 1日目の12時に問題とデータの情報 (特徴量の説明など) を公開
  • 2日目の12時に訓練用データの配布及び採点可能に
  • 3日目の16時に締め切り

また、提出したコードに対する得点はリアルタイムに順位表に反映され、自分の順位を知ることができます。 ただし、コンテスト中の順位表はテスト用データに対する得点で最終順位とは関係のない参考値であって、 最終順位は別の最終評価用データのみによって決まります。

採点開始から1時間半後

どのチームも問題と仕様の理解を進めている中、
さっそく「team_yonagurt」が頭一つ抜け、好調なスタートを切りました!

実況

採点開始から7時間半後

どのチームも順調にスコアを伸ばすものの、
依然として「team_yonagurt」の独走が続いています!

実況

コンテスト3日目のお昼ごろ

「卍池田組卍」が現時点での最高得点を叩き出しています!
非常に活気が良くなり、白熱した戦いの様子が伺えます!

実況

気になる最終結果の前に…


広告:We Are Hiring!

RCOアドテク部では優秀なエンジニアを募集しています。
こちらからご応募ください。お待ちしております!

集合写真


結果発表

いよいよお待ちかねの結果発表です!
第3位から順に発表いたします!

それでは、第3位は…ドコドコドコ…┗(^o^;)┓ ジャン!

第3位

「卍池田組卍」です!おめでとうございます 🎉
このチームは予測精度 (画像中の平均精度ロス、小さい方が良い) が非常に高いのが特徴的でした!

続いて第2位は…ドコドコドコ…┏(;^o^)┛ ジャン!

第2位

「team_yonagurt」です!おめでとうございます 🎉🎉
このチームは予測精度と実行時間のバランスの取り方が非常に良かったです!

さあ栄えある第1位は…ドコドコドコ…┗(^o^)┛…┏(^o^)┓ ジャン!

第1位

「すか2をどうかよろしく頼みます」です!本当におめでとうございます 🎉🎉🎉
このチームは運営も驚愕の非常に特徴的なスゴイ解き方をしていました!

ロジックに関しては、機械学習で広く用いられているscikit-learn等のライブラリを一切用いずに、今回のデータセットに対応したアドホックな予測ロジックを独自に作り上げていました。APIサーバはCrystalというプログラミング言語で実装されており、非常に速い実行時間を実現していました。

まさに、予測精度だけでなく実行時間も問われるPIGICONならではといえる解答でした!

結果一覧

TOP10の最終結果は以下の通りになりました!(ちなみに「PIGICON運営」は運営による参考スコアです💪) 運営チームを除くと予測精度が1位の「卍池田組卍」であっても、総合順位では第3位になってしまいます。知識の活用と探索のバランスを取りつつ処理時間の高速化が要求されるコンテストの性質が如実に反映された最終結果となりました!

打ち上げと解説

コンテスト終了後には打ち上げと解説を開催し、寿司🍣やピザ🍕が振る舞われました!

まとめ

  • コンテスト期間内で採点回数は794回にも上りましたが、運営の実装起因によるサーバーエラーは一切ありませんでした!
  • 参加者からは問題のクオリティやコンテストシステムの安定性についてご好評をいただきました
  • 作問、ポータルサイト作成、ベンチマーカー作成、インフラ管理、運営を全て新人だけでやりました

最後に

RCOアドテク部では寿司🍣の写真を撮り忘れない優秀なエンジニアを募集しています。
こちらからご応募ください。お待ちしております!

TAGS :

#イベント