atmaCup#4 二転三転
はじめに
atmaCupでカメラマン兼バリスタ兼運営をやっている@yukiです。
弊社のイベンター@TanakaMidnightさんが一通り報告記事
を書いてくれたので私が何でこんなブログを書いているのか自分でも若干解らないでいますが、違う観点から報告記事をということだったので少しカジュアル目に裏話的なことも入れてお届けしてまいります。
初の1週間開催
今回は3月1日~8日と初の1週間使ってのatmaCupでした。 参加された方はなぜ1週間だったのかなんとなく感じられていると思いますが主に2点あります。
- 解析データのボリューム
今回のコンペは解析のお題のボリュームがかなりありました。 多くの協賛企業にお力をお借りし、課題設定をしていくうちに1日で解析するのは少し厳しいデータ量となっていきました。
- 運営提供のクラウドのみでの解析
データの機密保持の懸念と、要求されるマシンスペックが主な理由で、スポンサーの日本マイクロソフト株式会社様から分析環境をご提供いただきました。
ただ、慣れない環境で解析をしていただくことになると、やはり今まで通り1日開催だと全員が競い合うところまでの時間が足りない可能性がありました。
コンペの満足度の観点としても今回は期間を広く持ったほうが良さそうということで初日と最終日を会場に集まっていただき、間の期間も解析していただけるようなコンペを開催することになりました。
急ピッチの準備
今回は前回開催から約1ヶ月弱しか間隔がない中での開催でした。 これがかなり運営的には大変なポイントでした。
- #0から#1 (5月上旬 - 8月上旬) 3ヶ月
- #1から#2 (8月上旬 - 11月下旬) 4ヶ月弱
- #2から#3 (11月下旬 - 1月下旬) 2ヶ月弱
いつもだと開催1ヶ月前ぐらいに開催告知を実施するような形がメインだったのですが、 今回は準備だなんだかんだと時間がかかり、開催の半月前公開になりました。 遠方からご参加の方には大変ご迷惑をおかけしました。orz
また公開直前に大阪会場開催が決定しました。 今回はもともと東京会場のみでの開催予定でしたが、前回の#3で2会場同時開催が大きな問題なく実施できたことや、参加者の方からの反響も大きかったことから、急遽大阪にも会場を持つことが決定しました。
#1でもご協力いただいた、OCA大阪デザイン&IT専門学校様のおかげで、なんとか当日の会場も確保し、無事情報公開することができました。
OCA大阪デザイン&IT専門学校様、本当にありがとうございました。
コロナ襲来
やっとの思いで無事公開・開催告知をしたのですが、ここでアイツがやってきます。
そう皆さんも頭を悩まされているであろうコロナです。 展示会などの大きなイベントが中止や延期になっている中、今回のatmaCupの規模感(会場の来場予定者:50名程度)ではなんとか開催できるかと思っておりましたが、atmaCup直前の28日全国の小中高へ臨時休校要請が出されました。 この状況で本当に開催して大丈夫なのか、様々な議論を直前に実施した末、オンライン参加を推奨する形で 開催するというかなりいつもと雰囲気の違うatmaCupとなりました。
私は1日目の大阪会場でスタッフをしていたのですが、想定していた以上にオフライン参加の方は少なく、ほっとするやら悲しいやら複雑な気分でした。 データコンペ自体はこのような中でも多くの方にご参加いただき、 盛り上がっていたようで、よかったです。
ご参加いただいた皆様本当にありがとうございました。
メダルについて
今回のメダルも前回のコンペと同様 共同開催をさせていただきましたリテールAI研究会様のアイコン入りの特別製を作成しております。 またアイコン以外にも特別製の箇所がございます。入賞者の方はぜひ見つけてみてください。※発送は3月下旬ごろを予定しております。
長くなりましたが、ドタバタとトラブルに見舞われながらも、なんとか開催できた#4の開催記録でした。
Next atmaCup
次回の準備も着々と進めております。 情報開示に乞うご期待!
いつも 突然の情報公開でご迷惑をかけているというお声も伺いましたので、次回開催時は申し込み受付開始前に告知を実施した後のイベントページ公開となる予定です。
@nyk510のアカウントを通知していただいている方もいらっしゃるとのことでしたが、そこまでしなくても公平に申し込めるよう準備の方進めさせていただきます。
今後ともよろしくお願いします。
atmaCup#4 開催レポート #atmaCup
はじめに
atmaCup、今回で5回目となりました。
今回は前回と同様、東京と大阪同時開催に加え、
コロナウイルスの影響もあり初のオンライン参加可での開催となりました。
参加者のレポ
参加者側の感想などはこちらをチェックください。
kabayan55.hatenablog.com nonbiri-tereka.hatenablog.com py2k4.hatenablog.com 皆様、レポありがとうございます。
一般社団法人リテールAI研究会様 との共同開催
今回は一般社団法人リテールAI研究会様 との共同開催となりました。
さらに、分析環境としてAzureを無償で提供いただきました!!
協賛企業様(順不同・敬称略)
- 株式会社ロッテ
- カルビー株式会社
- キリンビール株式会社
- コカ・コーラカスタマーマーケティング株式会社
- サントリーフーズ株式会社
- 株式会社True Data (データ提供)
- 日本マイクロソフト株式会社 (分析環境提供)
コンペ中のお菓子、ドリンクなど差し入れをいただきました、ありがとうございます!!
初日
東京会場は前回と引き続きサイバーエージェント様の会場をお借りしました。 cyberagent.ai
大阪会場はOCA大阪デザイン&IT専門学校様の会場をお借りしました。 www.oca.ac.jp
スタッフはマスクをして参加。
Zoom & YoutubeLiveで配信
今回、東京会場、大阪会場、オンライン参加の3パターンの参加方法がありましたので、
東京と大阪の会場間はZoomで、
オフライン参加の方はその模様をYoutubeLiveで視聴という形となりました。
(イメージ図)
2~6日目
2~6日は各自オンラインで分析を行いました。
初心者向け講座
初心者向け講座もZoomで配信。
最終日
最終日は東京会場、大阪会場で終日集まって分析。(オンライン参加の方もOK!)
朝一でnyk510のベースライン更新。 いきなりの5位!!
大阪会場ではどよめきが(笑)
ラストスパートで皆さん集中されています!!
最終日も協賛企業様から差し入れが、ありがとうございます!!
結果発表
結果は、
1位: paoさん
2位: hmdhmdさん
3位: nekoumeiさん
でした!
1位のpaoさんは前々回の優勝者、圧巻の優勝でした!!
atmaCup#4の結果は、、、
— atma株式会社 (@atma_inc) March 8, 2020
1位: paoさん @pppaaaooo
2位: hmdhmdさん @hmd_kaggle
3位: nekoumeiさん @nekoumei
でした!おめでとうございます!!!https://t.co/4QhQpF2RQ3#atmaCup
atmaCtp優勝しました!ShakeDownしなかった!! #atmaCup pic.twitter.com/YYoudxlGEe
— pao (@pppaaaooo) March 8, 2020
まとめ
東京会場 大阪会場
今回はコロナウイルスの影響もあり、急遽オンライン開催や会場変更などあり参加者の方々にはご不便、ご面倒をおかけしました。
次回以降はより一層運営に力を入れ、ストレス無く開催できるように努力いたしますので、ご助力いただければ幸いです。
Next atmaCup
もちろん次回も開催予定があります!!
近日中に何らかの発表させていただけると思いますので、Twiiterやconnpassのページをチェックして楽しみにお待ち下さい!!
atmaCup#3 CA×atmaCup開催レポート #atmaCup #CA_atmaCup
はじめに
レポートの公開までお時間がかかってしまい申し訳ありませんでした。
2020/1/25(土)にサイバーエージェントAI事業部様とコラボして開催させていただいたatmaCup#3 CA×atmaCupが無事終了しました。
本記事では、当日の模様など写真を元にまとめてみました。
atmaCup初の東京大阪の2会場同時開催となり、定員を大きく上回る130人以上にお申し込みをいただきました。
当日は、大阪会場37名 東京会場60名にご参加いただき、
Kaggle Grand Master3名を筆頭に半数以上がKaggle Expert以上というKaggleでも成績を残されている実力者ぞろいの大会となりました。
会場の様子(東京)
東京会場は、サイバーエージェント様の渋谷スクランブルスクエアにて行いました。
会場の様子(大阪)
大阪会場は、梅田の会議室で行いました。
開会
弊社nyk_gotoよりオープニング。
本日のデータの説明などが行われました。
コンペ開始
コンペが開始されました。 皆さん集中して解析しています。
こだわりのコーヒー提供
今回も、弊社の社員兼カメラマン兼バリスタの下村がハンドドリップ、フレンチプレス、エアロプレスなどさまざまな方法で抽出したコーヒーを提供しました。
初心者向け講座vol.1 はじめてのSubmission
弊社nyk_gotoより初心者向け講座の1回目が行われました。
お昼ごはん
Submissionして一段落ついた方からお昼ごはんタイム
支給されたお昼ご飯 #atmaCup pic.twitter.com/ZyQqo1ilvC
— もーぐり (@tellmoogry) January 25, 2020
初心者向け講座vol.2
弊社nyk_gotoより初心者向け講座の2回目が行われました。
大詰め
デッドラインまであと1時間、チームマージも締め切り皆さんの集中力もピークに。
コンペ終了
18:00にコンペが終了しました。 みなさん緊張から開放されゆったりされていました。
終了時点のPublicでは、
1位: 完全に理解したチーム(hakubishinさん & takuokoさん)
2位:e-toppoさん
3位: Jackさん
でした。
結果発表
今回は東京と大阪同時開催の為、東京と大阪を中継で繋ぎ発表しました!
結果はなんと!!
1位: Publicから、+1shake upしたe-toppoさん。
2位: Publicから、+3shake upしたnyanpさん。
3位: Publicから、+6shake upしたpaoさん。
でした。
懇親会
東京、大阪かかわらず、至る所で今回の解法について議論がされていました。
まとめ
今回、東京と大阪の同時開催という、難しい環境の中で無事コンペが終了できましたのも、参加いただいた皆様のご協力及び、
データ及び会場のご提供を頂きましたサイバーエージェント様のおかげです、遅くなりましたが改めてお礼申し上げます。
次回も予定しておりますので今回ご参加いただいた方も、今回でご興味を持って頂いた方も是非ご参加お待ちしております!!
atmaCup#2開催レポート(運営編) #atmaCup
はじめに
11/23(金)にatmaCupの3回目となるatmaCup#2を開催し、無事終了しました。
本記事では、当日の模様など写真を元にまとめてみました。
今回は総勢39人にご参加いただき、Kaggle Grand Master2名を筆頭にKaggleでも成績を残されている実力者ぞろいの大会となりました。
参加者のレポ
参加いただいた方で当日のレポを書いていただけた方もいらっしゃいましたので、こちらも合わせてチェックください。
takapyさんのブログ
paoさんのブログ
弊社インターンの植田君の記事
会場の様子
今回会場はパソナテックさんのお洒落な会場をお貸しいただきました。 広々とした会場で皆様不自由無く解析できたかと思います。
開会
弊社nyk_gotoよりオープニング。
本日のデータの説明などが行われました。
また、#0と#1の優勝者に物理メダルが付与されました。
コンペ開始
コンペが開始されました。 皆さん集中して解析しています。
こだわりのコーヒー提供
弊社の社員兼カメラマン兼バリスタの下村がハンドドリップ、フレンチプレス、エアロプレスなどさまざまな方法で抽出したコーヒーを提供しました。
初心者向け講座vol.1 はじめてのSubmission
弊社nyk_gotoより初心者向け講座の1回目が行われました。
お昼ごはん
Submissionして一段落ついた方からお昼ごはんタイム
ランチスポンサーのiPlugさんよりお弁当の提供です。
初心者向け講座vol.2 lightGBMによるmodelとsubmitの作成
弊社nyk_gotoより初心者向け講座の2回目が行われました。 lightGBMによるmodelとsubmitの作成について講座がありました。
常に変動する順位
#1では常にtakuokoさんがトップを走り続けていましたが、今回は上位が見るたびに変動があり、 誰が優勝してもおかしくない展開に!
現在の順位、先程まで1位をキープしていたtakuokoさんを抜いて、kurupical monnu osciiartさんチームが1位になりました! #atmaCup pic.twitter.com/7MHkDEb6ce
— atma株式会社 (@atma_inc) 2019年11月23日
現在の順位、またしてもチームが1位になりました!
— atma株式会社 (@atma_inc) 2019年11月23日
熾烈な争いが巻き起こってます!!#atmaCup pic.twitter.com/Hs7AUwVT4D
AutoMLは今回振るわず10位あたりをうろうろしてます。
ついにきました!
— atma株式会社 (@atma_inc) 2019年11月23日
AutoMLおじさん!!10位!!
#atmaCup pic.twitter.com/f8gMnKOdyX
大詰め
デッドラインまであと1時間、チームマージも締め切り皆さんの集中力もピークに。
コンペ終了
18:00にコンペが終了しました。 みなさん緊張から開放されゆったりされていました。 このタイミングでのPublic1位は弊社インターンを含むチームが1位でした。
結果発表
結果はなんと!!
1位: Publicから、+3shake upしたpaoさん。
2位: Publicから、+5shake upしたjackさん。
3位: Publicから、-1shake downしたkurupicalさん、monnuさん、osciiartさんチーム。
でした。
最終順位はこちらです!!
— atma株式会社 (@atma_inc) 2019年11月23日
優勝は+3 shakeupした @pppaaaooo さんでした!! #atmaCup pic.twitter.com/KCjeZv6MrH
PublicとPrivateの差に騒然となる中、
1〜3位まで方に賞金とメダルが、
nyk_goto賞(もっとも多くDiscussionでいいねをもらった方)に賞金が授与されました。
懇親会
同会場で懇親会が行われました、今回ランチスポンサーしていただいたiPlugの宮﨑さんの乾杯の音頭とともに懇親会が始まりました。
至る所で今回の解法について議論がされていました。
Kaggle本サイン会も!?
結果はpublic 5位 / private 6位でした!運営の皆様, 今回も素敵な大会をありがとうございました😊第1回よりはできることも増えて, 少しは成長した気がします。しっかり復習して, Kaggle days tokyoにつなげたいです!
— いのいち (@inoichan) 2019年11月23日
そして, Kaggle本にサインもらえました😆これからも頑張ります💪#atmaCup pic.twitter.com/GGrH2MTjH8
Kaggle本、物理で持ってくればよかった〜😭(サイン会始まってる)
— takapy | たかぱい (@takapy0210) 2019年11月23日
サインもらった! pic.twitter.com/QA9UKYeSJL
— ニューヨーカーGOTO (@nyker_goto) 2019年11月23日
その後有志の方々で2次会や麻雀会?など大阪の夜の街に消えていきました。
#atmaCup Public2位→Private3位(僕が最後いらんこと
— くるぴー (@kurupical) 2019年11月23日
しなかったら2位。。)で入賞できた。
関東のつよつよな人が関西に沢山来てくれてお話もできて、2次会の麻雀もできて、とても楽しかったです。開催ありがとうございました!\(^o^)/
まとめ
次回は年明けまでに開催情報を公開できるように絶賛調整中です。 ご期待ください。
atmaCup#2 インターン生参加記録 #atmaCup
はじめに
はじめまして、atmaでインターンをしている植田 (@tellmoogry)と申します
今回のatmaCup#2では一般参加者として参加させていただきました
本記事は1参加者目線からみたコンペの参加記事となります
コンペ概要
今回のタスクは"睡眠データをもとにその人の睡眠の質を予測する"というものでした。
データはユーザーごとにtrain, testで連続した時系列データが与えられました。
目的変数はユーザーが入力した[1,2,3]の3段階で与えられ、値が小さいほどその人の睡眠の質が低いことを表します。
評価指標はRMSEでした。*1
public, private*2の中身については事前に以下のような説明がありました。
private/public は時系列によって分割されています。具体的には特定のユーザーに対してもっとも新しいデータを private / 次に新しいデータを public としています。 private / public の割合は 1:1 です。
要するに特定のユーザーaについてtrainには10/1~10/15のデータ、testには10/16~10/19までのデータがあったときに
10/16, 10/17がpublic、10/18, 10/19がprivateといった感じです。
その他に与えられたカラムとしては
・ユーザー情報:性別や年齢、会社など、睡眠に関するアンケート内容
・睡眠情報:いつ寝ていつ起きたか、アプリの中で計算された睡眠の質など
また上記のアンケート結果はユーザーに紐づけられた別テーブルの欠損が多いデータでした。
タスクが睡眠という全員に馴染みのあるものなので、自分が普段寝るときのお気持ちを上手く特徴量に表すことや、与えられた特徴量がアプリの内部で算出された独特なものも多かったので、アプリに対する理解(=カラムへの理解)を深めるということが求められました
10:30~18:00までの7時間という短い時間の中でデータへの理解を深めるか、特徴量を沢山作るかの時間配分もひとつ勝負のポイントだったのではないかと思います。
コンペ中に取り組んだこと
特徴量
・睡眠の質に関わる特徴量(睡眠時間など)について前日との差分
・アンケート結果のうち数値系の特徴追加
・カテゴリや、連続データをカテゴリ化したものに対してgroupbyして統計量
・月日をsin, cosに変換
・金土日祝日フラグ
・count encoding
・データのクリーニング
・userごとのtarget encoding
・理想睡眠時間と実際との差分
バリデーション
user_idでstratified
モデル
・メインのLGBM
・stacking用の random forest
結果
昼の15時ごろの時点で2~3位あたりをうろちょろしていて、当時順位の近かった@e-toppoさんとマージをして2人のモデルを混ぜたら1位に浮上しました。(当時2人のモデルの相関が0.8程度だったらしく、goodマージでした)
そこから主にe-toppoさんの力でコンペ終盤までスコアを伸ばしながら1~2位を維持することができ、終了時は1位で終えることができました。
shake downする前に記念ツイート #atmaCup pic.twitter.com/ozeUTy0Chs
— もーぐり (@tellmoogry) November 23, 2019
が、結果は最後shakedownしてPublic 1st / Private 4thでした。
賞金でポケモン買いたかったです...
結果を聞くと上位の方が作成していた、ユーザーのtarget平均からの差分を予測する問題に変えることが重要だったみたいです
(結局targetはユーザーが入力した値であってある意味当てにならない。ユーザーの中で相対的な睡眠の良し悪しを予測する方が良い。という理解をしています。)
アプリを使う人の気持ちからの仮説検証面で取り組みが弱かったのが最後の敗因に感じました。
参加して良かった点
・強者と直接話せる
今回も前回に引き続き、GrandMasterの方々をはじめとしたkaggleで結果を残している本当に強い人たちが数多く参加していました。
そういった人たちとオフラインで机を並べて戦える上に、終了後はどの特徴が効いたか効かなかったか、その特徴量を作るに至った理由のような、solutionには書かれないような試行錯誤の過程をコンペが終わったその場で議論できて1日とは思えないほど濃い時間を過ごせて学びが多かったです。
やさしい解説
これまでのatmaCup同様今回も毎回初学者に向けて@nyker_gotoによる特徴量作成からLGBMの学習まで一連の流れについて、ハンズオン形式での解説がありました。Kaggle Masterにある程度気軽に質問できる場があるのは初学者のスタートダッシュにとても良いと思います!僕はインターン生になる前からこれまでのatmaCupに全て参加していて、最初は初学者として参加していましたが参加するたびに成長を感じるので、ぜひ初学者の人にもおすすめしたいと思います!
他にもatmaCupで知り合った人と一緒にkaggleに参加したり、勉強会に参加したりと色んなキッカケになる場かなと思いますので次回以降もぜひ皆さんに参加していただきたいと思います! それでは次回atmaCup#3でお会いしましょう!!
AutoML Tablesを使ってKagglerを倒せなかった話 #atmaCup
はじめに
弊社が主催するデータコンペのatmaCupに、
普段はサーバーサイドエンジニアで機械学習ほぼ未経験の私が、
AutoML Tablesを使って参加し、
数多のKaggler犇めく中で31チーム中8位になりました。
本記事はAutoML Tablesを実際のデータコンペに投入してみた結果と感想です。
結論
- AutoML Tablesはかなりの運ゲー
- 1時間程でそれなりの結果が出るAutoML Tablesはすごい
- AutoML TablesよりKagglerはすごい
概要
対象者
本記事の対象者は、機械学習初心者の方や、AutoML Tablesって聞いたことあるけど実際どうなの?という方向けです。
自己紹介
atma株式会社でサーバーサイド及びフロントエンドエンジニアをしている田中です。
機械学習はほぼ未経験です。
最近はFirebase+Vue.jsを使用したアプリケーションをよく作っています。
atmaCupとは?
atmaCupとは、データ解析・アルゴリズムソリューション・システム開発を行うベンチャー企業 、atma株式会社が主催するオンサイトデータコンペティションです。
実際に参加者が会場に集まりチームでデータ解析を実施し、得た学びを共有します。
今回は、2回目(https://atma.connpass.com/event/138332/)の開催で、
Kaggle MasterやGrandMasterも参戦し、関西では過去最大のオンサイトコンペとなりました。
コンペの内容については細かくは言えないのですが、時系列データの予測を行いました。
AutoML Tablesとは?
AutoML Tablesとは、Google社が提供している教師付きの学習サービスです。
構造化データを使用して、機械学習モデルが新しいデータについて予測を行うようトレーニングします。
2019年8月現時点ではベータ版です。
もっと詳しく知りたい方は初心者ガイド(https://cloud.google.com/automl-tables/docs/beginners-guide?hl=ja)がわかりやすいと思います。
本題
AutoML Tablesはかなりの運ゲー
今回のデータコンペでは計5回、AutoML Tablesでトレーニングしました。
結果として毎回かなりCV値がブレていました。
実際に結果を見ていただくのがわかりやすいかと思います。
本コンペの評価指標は「MSLE」で、AutoML Tablesは「MSLE」が選べないので「RMSLE」を評価指標としています。
*1
この結果より、かなりブレていることがわかります。
さらに、AutoML Tables上のCVとコンペサイト上のLBの値が乖離していました。
LBは「MSLE」なのでRoot取らないと行けないのでちょっと分かりづらいですが、
明らかに数値が異なります、CV上の値がそのまま出れば余裕で1位でした。(笑)
過学習が発生していると考えられます。
なお、かかった金額は、
トレーニングデータの行数が1万件だったので、トレーニング時間は最小の1ノード時間で終わり、1回約2,000円でした。
(大体10万行までは1~3ノード時間で終わります。)
5回実行したので約1万円です。
裏で動いているマシン数などから考えると安いのですが、かなり結果にブレがあると結構ショックを受けます。
ソシャゲの10連ガチャを回してる気分になります。(笑)
1時間程でそれなりの結果が出るAutoML Tablesはすごい
ただ、運ゲーといえども、やっぱり92台のマシンが並列で処理するのは強いです。(いわゆる札束で殴るスタイル)
さすがにKagglerでも1時間では敵わないので、超短期決戦では勝てると思います。
また、解析の目安、リークのチェックに向いてるのではないかと思います。
AutoML TablesよりKagglerはすごい
AutoMLはチューニングのし所がほぼ無く、これ以上のスコアを出すにはガチャを回すかのようにトレーニングを回すしかありません。
今回の結果を見るに、1日あればKagglerに追い抜かれてしまい、その後どんどんKagglerはスコアを上げて行けます。
つまり、やっぱりKagglerはすごい。
まとめ
AutoML Tablesは現状ではKagglerを倒すことは難しかったです。
ただし、現状はまだベータ版で今後も性能が向上していくことが予想されます。
継続的にAutoML Tablesを試していき、その成長を見守っていきます。
また、次回のオンサイトデータコンペの開催も予定されており、私もAutoML Tablesで参加する予定です。
以下、connpassの「メンバーになる」をクリックすることでイベント開催時にメールが届きます。
https://atma.connpass.com/
AutoML Tablesを倒してみたい!というKagglerの皆様の参加をお待ちしています!!
*1:「RMSLE」は「MSLE」にRootついてるだけなので評価は同じになります。