atma-inc__blog

atma株式会社の公式ブログです。

#7 CA x #atmaCup atma社員の参加記録

はじめまして、atma社員の木原です。

(誰?となった方は私の簡単な自己紹介は 弊社HP にありますので、よかったらご覧ください!)

私はatmaに入社する前から、atmaCupに参加していたかなりのatmaCup好きです。

本記事は弊社が開催しているデータコンペティション#7 CA x atmaCup」に一般参加者として参加してみましたので、その感想などを書いていきたいと思います。

f:id:atma_inc:20201127132752p:plain
データコンペティション atmaCup は時間が短く実際に集まる(オンラインでの振り返り回など)のが特徴です。

もちろん、他の参加者の方と同様に私はatmaCupが始まるまで課題やデータについては全く知らない状態で参加しています。

内容としては、まだatmaCupに参加されたことない方がatmaCupでどんなことをやっているのかというイメージを少しでも持っていただけるように書いていきたいと思います。

atmaCupの概要

まず、初めに少しだけatmaCupの概要を説明させていただきます。

atmaCupは毎回様々な法人・企業様とコラボをさせていただきコラボをしていただいた企業様からデータを提供していただくことで、そのデータを参加者の皆様に分析していただき、その分析スキルを競い合っていただくイベントになります。

参加者の方の順位は、コンペティションごとに定められた評価指標によってデータ分析の精度にスコアを付けることで決定しています。

この形式は海外の有名なデータコンペティションサイト「Kaggle」と、非常に似た形式であるため、データ分析に興味のある方にとっては馴染みやすい形式になっていると思います。

分析するデータに関しては、提供していただくデータによっては画像データや時系列データなどが含まれていることもあります。

また、扱うデータの分野がビジネスであったり、科学であったりコンペティションごとに異なり、毎回違った発想でデータを分析していく必要があるなどの楽しみもあります。

一方で、分析に使用するために提供していただくデータにはコラボ先の企業様が収集した貴重なデータも多く、基本的にはデータに関してはatmaCupの参加者内でのみしか議論や言及をしてはいけないことになっています。

そのため、atmaCupに参加されたことがない方にとってはどんなコンペティションなのか情報が伝わりにくくなっているのではないかと思っています。

ただ、コンペティション内では、データ分析に関する有益な情報が多く公開されているので、参加経験の無い方はまずは1度試しにぜひ参加していただきたいと考えています。

f:id:atma_inc:20201127132912p:plain
サイエンス系のものから、リテール(小売)業界など様々な分野から出題されています。NDAのハードルはありますがリアルのデータを使って実際の課題に近い問題が多いのも特徴です。

今回のコンペティションについて

f:id:atma_inc:20201127132034p:plain

今回は開催期間が11/15(日) ~ 11/21(土)と約1週間あり、開会式から閉会式まで全てオンラインで実施されました。

データについてはサイバーエージェント AI事業本部 (https://cyberagent.ai/) 様とコラボしており、データ分析の課題は「広告経由のCV予測」でした。

あるユーザーが広告が表示されてから、その広告経由でCVが発生するかどうかを予測する二値分類のデータ分析で、データはテーブルデータのみでした。

また、予想したいCVの発生はデータ全体の中では頻度が少ないデータとなっている不均衡な二値分類となっていました。

そのため、評価指標はPR-AUCが用いられており、いかに数少ないCVの発生を的確に予想できるかが重要な課題となります。

私のコンペティションの流れと感想

参加者によってatmaCupの参加の仕方は大きく異なると思いますが、ここではatmaCupでどんなことをやっているのかを少しでもイメージしていただけるように、一例として私の参加の仕方を振り返ってみたいと思います。

  • 日曜日(初日)
    • 開会式に参加して、課題とデータを確認
    • 広告に関する知識が全く無かったため、データ分析の前に広告について調べる(CVが何かも知らない状態)
    • この段階ではまだコードは書いていない
    • とにかくデータの量が多くて、びっくりしていた
  • 月曜日
    • 初心者講座#1を元にベースとなるコードを作成
    • ディスカッションの内容に全て目を通す (ディスカッションとは参加者の方が自由にデータについての議論を投稿することができる場です)
    • 最初のサブミッション (サブミッションとは今のデータ分析の精度が評価指標に基づいてどの程度のscoreがつくのかを確認する方法です。また、このスコアによってatmaCup中の暫定順位が決められます)
    • データの量が多く、計算にとても時間がかかるので効率が良い方法がないかを探し始める
  • 火曜日
    • 初心者講座#2を視聴
    • ディスカッションの内容などを参考に自分なりに特徴量をどんどん作っていく
  • 水曜日 ~ 木曜日
    • 常にディスカッションには目を通して、良い方法がないかを検討
    • スコアが上がりそうな方法を思いついたものからどんどん試していく
    • 計算時間を短縮する方法が思いつけなかったため、寝る前や仕事中に計算するように調整
  • 金曜日 ~ 土曜日 (最終日)
    • 最後のラストスパートとして、考えていたアイディアを一通り試してみる
    • 土曜日は予定があり、アイディアが一旦尽きたので実質的には金曜日の深夜で作業終了

といった流れでした。

今回のatmaCupは、第一印象としては「データの量が多い」と「広告の仕組みがよくわからない」からのスタートでしたが、広告の仕組みについては異分野のことを能動的に調べるきっかけとなり、広告について理解が深まったことはとても良かったと思います。

広告について調べている間はずっと何かアイディアとして使える情報は無いかを考えながら調べていたため、とても集中して取り組むことが出来て有意義でした。

データの量が多かったことについては最後まで計算に時間を取られてしまいずっと頭を悩ませていましたが、atmaCup終了後のディスカッションなどを見ると、他の参加者の方々がどのように工夫をして大量のデータを処理していたかなどを知ることが出来て、とても勉強になりました。

今まであまり考えていなかったのですが、いかに少ないリソースで効率的に大量のデータを処理するということも現実的にはとても重要なことだなと気づくことができました。

総じて、なかなか濃い1週間を過ごせたのかなと感じています。 一緒に参加していた参加者の方々、いろいろな学びをありがとうございました。

atmaCupのススメ

最後に私の思っているatmaCupのオススメしたいところをお伝えして終わろうかと思います。

まず、私が個人的に思っているatmaCupにぜひ参加していただきたいと思っている対象者は

  • numpyやpandasなどのpythonの基本的なライブラリを使ったことがある
  • kaggleのコンペに少し参加したことがある(タイタニックを含む)

のような比較的データ分析を始めて日が浅い方々です。(ちなみに私もこの対象に含まれます)

atmaCupでは、このようなデータ分析の初学者の方にとって、とても良い環境が整っているのではないかと感じています。

私としては、下記の3つが特に初学者にとって嬉しいなと感じた理由になります。

1.全て日本語

当然といえば、当然なのですがatmaCupは全て日本語です。

データ分析を始めたてであれば、分からないことが非常に多くあると思いますが、 そのような状態でkaggleなどの海外のコンペサイトなどを利用すると英語も理解する必要が出てきてしまい余分な労力がかかりやすく、データ分析を学ぶためのハードルが高くなってしまいやすいです。

そのため、データ分析以外のことにはできるだけ労力がかからないようにすることが大事だと思いますが、その点では全て日本語で運営しているatmaCupはうってつけです。

2.初心者向けの講座

atmaCup開催中の期間には、弊社のデータサイエンティストの山口による初心者向けの講座があります。

この講座では山口がYoutubeを使用して、その時の課題やデータに沿って、どのようなデータ分析を行えば良いかの基本的な内容を解説してくれるものです。 また、基本的なデータ分析の後にはどのような視点でよりデータ分析の精度を上げていくことができるのかなども解説しています。

さらに、講座で解説に使用したコードは全員に公開されるので、参加者が自分の手元で実際にコードを触りながらカスタマイズしていくことができるため、 まだ不慣れな人であってもデータ分析の要所を掴むには最適となっています。

3.ディスカッション

atmaCupは比較的短い期間(1週間以内程度)での開催が多いため、参加者の方々は開催中は非常に熱心に取り組んでいただく方が多いです。

そのおかげもあり、短い期間ながらに多くのディスカッションが投稿され、様々なデータ分析の知見を学ぶことが出来ます。

このディスカッションは本当に学ぶことが多く、勉強になります。

自分が今分析している課題に対して、リアルタイムでどんどんディスカッションが投稿されていくので、他の参加者の方がどういった視点でデータを見ているのか、 どういう分析方法を試そうとしているのかなど自分の考えと照らし合わせて見ることで、今までになかった新しい視点でデータを見ることができるようになると思います。

以上、私が思うatmaCupをオススメしたい理由でした。

それでは、次のatmaCupでまた会いましょう!