atmaCup#9 運営振り返り #atmaCup
みなさんこんばんは。atmaCup運営の nyk510 です。この記事では 2021/1/29~2/6にかけて開催しました atmaCup09 について運営サイドとして振り返っていければと思います。
atmaCupとは
atmaCupとは、データ解析・アルゴリズムソリューション・システム開発を行うベンチャー企業atma株式会社( https://atma.co.jp )が主催するデータコンペティションです。
参加者が会場に集まり、準備されたデータをテーマに沿って分析・予測しその精度を競っていただくイベントです。現在はCOVID-19 感染拡大を防止する観点から、基本的にオンラインで分析していただき、会場を用意する際にも十分に考慮した形での開催を行っています。今回の atmaCup#9 も完全オンラインにて行いました。
多数の企業様に協賛いただきました。
本コンペティションは、リテールAI研究会さまと共同開催であり、また多数の企業様に協賛をいただき開催の運びとなりました!
- 株式会社ロッテ
- カルビー株式会社
- キリンビール株式会社
- アサヒ飲料株式会社
- 株式会社日本アクセス
- 株式会社電通
- フクシマガリレイ株式会社
- 日清食品株式会社
- 株式会社トライアルホールディングス
- 株式会社True Data
- 日本マイクロソフト株式会社 (分析環境提供)
- Ledge AI (メディアスポンサー)
敬称略
データと課題の概要
atmaCup09ではトライアルさんの店舗で導入されているスマートショッピングカート(レジカートという愛称で呼ばれることもあります)のデータを使用しました。 スマートショッピングカートは、トライアルグループが開発をしたタブレットとバーコードリーダを搭載したセルフレジ機能つきの買い物カートのことです。これによってお客様は商品をスキャンしながら買物をすすめることができます。
詳しく知りたい方は「トライアルのスマートショッピングカート、リテールAIカメラ https://www.trial-net.co.jp/cp/mediakit_ssc_aicamera/」や 「トライアルのAIは“店頭”で進化する https://www.trial-net.co.jp/cp/mediakit_ssc_aicamera/message.html」などご覧ください。
スマートショッピングカートは、お客さん目線で見た時、自分で買物を完結させられる点がとてもユニークなデバイスですが、データという観点でも、とてもユニークなデバイスです。
一般の会計レジで集められるデータは、何を・誰が・いつ会計したかという情報で、買物の順番や買い物途中の振る舞いについての情報を得ることはむずかしいです(POSや POSにユーザーが紐付いた ID-POS などが該当します)。
一方でカートではユーザーがその場で商品をスキャンしますから、どういう順番で買ったかという順番の情報がわかります。更には「商品を一度入れたけれどキャンセルをした」イベントや、カートではタブレット上にクーポン情報を表示し利用することができますので「買物と同時にどういうクーポンを閲覧したか」というイベントなど、会計には残らない情報を知ることが可能になります。
このカートのログデータをもとにして、買物の途中までの状態から、その後にそのユーザーが特定の商品を購入するかどうかの購買予測を行っていただきました。具体的には学習期間と定めた間では完全なるログデータをお渡しし、テスト期間のデータでは特定の時刻までの購買ログのみを渡して、その後特定のカテゴリを購入するのかをカテゴリごとに予測し、カテゴリごとの AUC 平均値 (MacroAUC) で評価します。
前回との違い
リテールAIさんとの前回のコンペ atmaCup#4 https://www.guruguru.science/competitions/9 では ID-POS データに対して同様の課題設定で取り組んでいただきました。こちらと比べると
- 厳密に時間がわかっているため、厳密にある時刻の買い物カゴ状態が再現できていること
- スマートショッピングカートならではの情報(購入順番・キャンセル・クーポンのイベント)が新しく追加されていること
の2点が大きな違いです。オンラインECならいざ知らず、リアル店舗で上記のような粒度のデータを得ることはスマートショッピングカートのようなデバイスがなければ不可能です。業務ではもちろん、コンペティションでもこの粒度のデータが公開されたことは世界をみても無いのではないでしょうか。大変貴重なデータを出していただいたトライアル様には大変感謝です 🙏
課題がとけると嬉しいこと
カートの状態からユーザーがかわなさそうなものがわかればユーザーごとに何を出せばいいかを判断する際の有益な情報になります。これらの情報を使うことでよりユーザーに気に入ってもらいやすいクーポンを表示するなど、ユーザーごとの体験を洗練させてより楽しく買物をしてもらうためのファーストステップとなります。
また予測に用いられている特徴重要度などを見ることで、どの商品を買いやすい場面は何と関係しているのかといった傾向をつかむことができます。これによって、例えば別の商品との併売傾向がわかったり、クーポンをみたときの影響度合いなどを定量的に判断することができ、新しい商品開発や売り場の配置を考える際の材料として使うことが可能です。今回は特にレジカート独自の情報がありますので、ID-POSの分析以上に踏み込んで関係性を議論できます。
コンペを振り返って
たいへん多数の方々に参加いただきました!
NDAを締結する必要があるハードルがあり、かつデータもレコード数が多く、自由度が高い難しい設定でしたが、合計で 268チーム ・ 2296回の submission をして頂けました!! 多数の方々に参加・コミット頂けたこと、とてもうれしく思います。ありがとうございました!!
活発にディスカッションをしていただきました!
今回は特にデータが完全なログデータであり、よくある教師ありの枠組みを作るのが難しいデータで難易度が高くディスカッションまでやっている余裕がない〜となるのではないかなと危惧していたのですが、多数の投稿でアイディアを共有していただきました。NDAの関係で中身のことが言えないのが残念ですが、協賛企業さんに絡んだ?購買データに関するEDAが多数あったり、純粋に読んでいてとても楽しい投稿ばかりでした。
コンペ終了後にも、多数の方に自分の取り組みをまとめて公開していただきました。運営としては、データをどういうふうに見たのかという部分もとても参考になりますし参加者さん同士の振り返りの機会としてもとても有意義であると思っていますので、このようにディスカッションを使っていただいて嬉しい限りです。
そんななか nyk510賞を取られたのは hakubishin3 さんでした!! おめでとうございます🎉 *1
コンペ序盤にでたディスカッションで、データをパキっと加工するためのユーティリティクラスの作成を共有されたものでした。今回は過去に比べてとても自由度が高いデータでしたので、こちらのディスカッションのクラスを使って分析をされたかたも多くいらっしゃったのではないかと思います。こういう情報を出して頂けるのはみなさんハッピーになるので、とてもうれしいですね!
初心者向け講座を開催しました
atmaCup はデータ分析・コンペ初心者のかたの参加を歓迎していて、毎回左記の方々を対象として、初心者向け講座を開催しています。今回も nyk510 から初心者向け講座を2回に分けて開催しました。 講座#1は課題についての確認と submission の作成・#2では EDA とその情報を使った特徴量作成とその管理方法についてご紹介しました。
AzureML環境を提供しました。
「Azure使いたい枠!」として 8core32GB RAM相当のマシンが利用できる環境を提供しました。AzureMLは難しい設定を何もしなくても、セキュアな環境に jupyter notebook 環境を用意できる個人的にも推しのナイスなサービスです。Kagglerはじめとする機械学習勢は基本的にGCPを使われる方が多いと思うのですが、Azureもやれる娘であることが少しでも伝わったらよいなーと思います。*2
最終順位
最終順位は以下のようになりました! 優勝された pao さん、2nd nakama さん, 3rd senkin13 + lemming さんおめでとうございます🎉 (paoさんはなんとこれで通算3回めの優勝です、お強い…)
終盤のデッドヒートはコンペサイト「ぐるぐる」の summary tab からも確認できますので、興味ある方はごらんください。 https://www.guruguru.science/competitions/14/summary
ソリューションをみていても、予測する対象ごとに細かくモデルを分けているチーム・MLPなどのNNモデルとのアンサンブルを行なうチーム・更には transformer を使ったチームなど、多種多様なアプローチがあったことが印象的でした。
また、チームごとの予測カテゴリごとの性能を比較しても特定のカテゴリは強いモデルがいたり、反対にまんべんなく良いスコアがでているモデルがあったりと、取り組みの多様さが出力の多様さにもつながっていて、参加者さんの創意工夫が遺憾なく発揮されていたコンペティションだったように感じています。
現在私の方で結果を調査中ではありますが、面白い傾向としてすべてのモデルが正解しているデータがある一方で、全員同じように間違えているデータがあったり、反対に一部モデルだけが当てられているデータがあったりすることもわかっています。これらのデータに対応する買物ログを注意深く見ることで、なぜモデルが外しているのかの気持ちを考えて、ユーザーの買物傾向を深く知るための道具にすることが出来ないか、などを考えています。
アウトプットが多様なこともあって、上記以外にもたくさんの見方と分析の切り口があり、分析途中ですが私としても大変ワクワクしてます! 皆さん本当にありがとうございましたmm*3
振り返り会を開催しました
atmaCupでは、コンペ終了後にコンペ内容にかんしてあれこれとお話する振り返り会を毎回開催しており、今回も終了後2週間後に開催しました。
優勝された pao さんにはソリューションとコンペ中の取り組みについてのお話をしていただきました。コンペ会期中の気持ちやそのばその場で何をするかについての話はなかなか聞く機会がないですので、僕自身とても参考になりました。
またLT枠として、takapyさんに item2vec で商品を埋め込んで予測するときの手法ごとの性能の違いについてのお話をしていただきました。こちらもとても興味深い結果がでていて、聴講枠参加者さんからの質問もいくつもでて活発な議論になりました。
最後に
今回も皆さん多数参加いただきありがとうございました!
次回の atmaCup#10 も開催決定しております。こちらは初心者歓迎コンペとなっていて、#9同様に、データ分析に慣れていない方向けにデータの見方やモデルの作り方・submission作成までをフォローする初心者向けのセッションを開催予定です。今まで「コンペはハードル高いな」と思っていた方も気軽に参加いただければとてもうれしいです。
それでは、次回の atmaCup でお会いしましょう🌟