見出し画像

SIGNOTE09 コンペティションを成功へ導く、AIの社会実装技術の追求

SIGNATEの#オープン社内報『#SIGNOTE』第9弾は、Data Consulting Group
の青井さんです。青井さんといえば、SIGNATE一のコンペマスター!
改めてコンペティションについて教えていただきました。

「SIGNATE Competition」とは
データを活用したアルゴリズムの開発をコンテスト形式で行うデータサイエンスプラットフォームです。各専門領域のトッププレイヤーが参加し、投稿される多数のアルゴリズムを比較して成果物を調達できます。
現在コンペティション参加者数は8.4万人を超え、SIGNATE上で投稿されたアルゴリズムは60万件以上となりました。企業のみならず、政府・自治体、研究機関においてもご利用いただいており、「アルゴリズム調達」「人材採用」「社員育成」「企業ブランディング」など、コンペティションを活用した課題解決が広がっています。

はじめに

 お疲れ様です。Data Consulting Groupの青井です。まずはじめに、本記事ではクライアント(主催者)から依頼を受け、コンペティションの開催に至るまで、開催中と開催後に事務局側でどのように進めているかを紹介したいと思います。コンペティションの裏側ではどのようなことが起こっているのか、どのようなことを考えているかなど、その要がつかめればと思っているので、最近入社してコンペティション開催時の裏側が気になっている方の参考になれば幸いです。

課題の洗い出し

 まずコンペティションの開催の目的は大きく分けて二つあり、AIの開発、AIの開発や運用ができる人材の発掘と教育です。

 AIの開発が目的の場合、クライアントが抱えている課題がそもそも何なのかを洗い出します。その課題を解決するためにどのようなAIを開発すればより効果的に解決できるのか、そもそもAIを用いることが課題解決のための最適解かどうかなどを確認します。ここは特に重要な部分で、実際に弊社で扱ってきたケースではすでにクリアになっている場合が多いのですが、開発するAIの要件がある程度固まっている状態が理想です。
 人材の発掘と教育が目的の場合は、クライアントが抱えている課題を解決できる人材を発掘・育成するためにどのような内容をコンペティションの問題として出すかを考えます。課題を解決できる人材を発掘・育成して、実際にクライアント企業でAIの開発・運用を行い、課題解決に貢献することが最終的なゴールとなります。
 いずれにしてもクライアントが抱えている課題の解決が最終的な目的であり、コンペティションとして最適な問題設定となるようにクライアントとともに重点的にすり合わせを行います。

コンペティションの問題設計

 解決したい課題がクリアになり、開発したいAIの要件がある程度固まったらコンペティション用の問題設計に落とし込みます。一般的にAIは何らかの入力に対して出力を得る数学的な計算式となっているのですが、具体的にどのような情報を入力してどのような対象を当てに行くのかを決めます。例えばある月のある商品の売り上げを予測するAIを開発したいのであれば、前月の売り上げや天気、取り扱っている店舗などの情報を入力として、売上数量を当てる問題となり、画像データに対して犬が映っているのか猫が映っているのかを予測するAIを開発したいのであれば、画像データが入力となり、犬か猫かの種別を表すラベルを当てる問題となります。

 解きたい問題が具体化したら、予測精度の評価方法を決めます。例えば商品の売り上げ予測の場合は実績値を正解として、AIが出した予測値との誤差を評価し、小さいほど精度が高いとし、犬か猫かを当てる画像認識の場合は正解のラベルに対してAIが出した予測値の正解率を評価し、大きいほど精度が高いとします。このように、問題の性質に応じて適切な評価方法を決めます。コンペティションの参加者が理解しやすく、解法の方向性を決めやすいようにあまり複雑にせず、なるべくシンプルになるようにも注意します。また実際の運用時を考え、実行時間や実行環境も考慮に入れることもあります。実行時にAIが入力情報を受け取ってから予測値を出すまでの時間や使用メモリに制限を加えて、想定される運用時の状況をなるべく再現します。弊社ではこの機能をランタイムと呼び、最近特に使用する機会が増えています。運用時のパフォーマンスを適切に評価できるかということと、参加者にとっての取り組みやすさのバランスを考えることがコンペティションにおける評価方法を決めるうえで重要で難しい部分です。

 問題とその評価方法が決まったら、実際にコンペティションで使用するためのデータを作成します。基本的にはAIが学習するための学習用データとその精度を評価するための評価用データの2種類を作成します。クライアントがすでにデータを保有している場合はそれらを加工して作成しますが、ない場合は新しく作成したり、一般的に公開されているデータを使用することもあります。作成したデータは外部に公開するため、必要に応じて匿名化の処理を施します。例えば個人名などが含まれている場合はランダムな文字列にする、人の顔や車のナンバープレートが映っている画像データに対してはモザイク処理を行うなどの処理を行います。
 評価用データに関しては入力情報として使われるデータと、精度を評価する際の正解データに分けます。入力情報として使われるデータは参加者に公開するデータとなりますが、ランタイム機能を使う場合は弊社のサーバーに保存して非公開とします。そうすることで入力情報を目で見て確認して正解がすぐにわかる、または一般的に公開されているデータの場合は、手入力などにより正解を作成するチート行為を防ぐことができます。また、単純に評価用データそのものを非公開にしたい場合などにも有効となります。そして正解データはさらに、暫定評価用と最終評価用に分けます。暫定評価用はコンペティション開催中に表示される評価結果に、最終評価用はコンペティション終了後に表示される評価結果に使用され、最終的な順位は最終評価用の結果によって決まります。これは、特定のデータセットに対してのみ精度がよいものが勝つことを防ぐための仕組みです。

 そして、コンペティションにおけるルールを決めます。参加時や終了後などにおける禁止事項や許容事項を記述したものになりますが、人が目視で導いた予測結果を出す、実行時に人による手動操作が入るなどのチート行為を禁止する他にコンペティションで配布されるデータ以外の外部データの利用の可否や使用メモリ、ファイルサイズなど実行環境時の条件などを取り決めます。一般的に開発要件などに紐づいた内容を含む形となります。また、参加者の満足度に関わるものとして、参加者が分析した結果や実装したプログラムなどを一般公開することを許容するかどうかという問題があります。参加者にとって自分の力をアピールしたり、他の参加者の解法を参考にすることで自身のスキル向上のために公開したい気持ちを一般的に強く持っています。コンペティションの開催目的が開発の場合、クライアントが入賞アルゴリズムを運用する可能性があるため、一般公開を認めないケースがどうしても多くなってしまいますが、クライアントに相談し、何とか認める方向に進めます。
 問題設計は基本的にはクライアントの課題解決のために最適化しますが、コンペティションの盛り上がりも重視していて、これまでに参加者から寄せられた意見を取り入れて、コンペティションサイトのUIUXなどの機能改善やデータの内容、評価方法に一ひねり加えることもあります。
 
 弊社で過去開催したコンペティション(https://signate.jp/competitions/)を見て、今までどのような背景でどのような問題に対してどのようなデータを用いてどのような精度評価をしているか、よろしければ参考にしてみてください。

いよいよコンペティション開始!

 問題設計とデータやルールが確定したら、いよいよコンペティションの開催です。内容をコンペティションサイトに反映し、開始時にメーリングリストやTwitterなどのSNSでPR、参加者を誘致します。

 コンペティションの参加者は自身が作成した何らかのファイルをコンペティションサイトに投稿します。投稿するファイルの種類は大きく分けて、与えられている評価用データに対する予測結果ファイルと、予測結果ファイルを得るためのプログラム一式をまとめたファイルの2種類あり、後者はランタイム機能を使用するコンペティションで用意するものです。ランタイム機能を使用するコンペティションは、評価用データに対する予測結果を得るためのプログラムを、規定された形式に従って実装する必要があるため手間や難易度も高く、一般的に投稿回数や参加者が少なくなる傾向にあります。コンペティション開催の目的が人材の発掘やクライアントのブランディングである場合は参加者をより多くしたほうがよいので、ランタイム機能はあえて使わない判断をすることもあり、また投稿回数イコールAI開発の試行錯誤の回数という前提の下で試行回数を最大化するためにも同様に使わないことがあります。つまり、ランタイム機能は実際のAI開発にとっては最適な場合が多いと思われますが、コンペティションにおける参加者の最大化など別の視点で考えるとデメリットになることがあり、コンペティションの開催目的を踏まえ検討する必要があります。

 開催中はフォーラムと呼ばれる参加者が自由に書き込める掲示板があり、事務局に対する問い合わせや参加者同士のコミュニケーションが可能です。参加された方からデータの分析結果やベースラインとなる実装などを書き込んでいただき、参加者同士の学び、共有の場としてコンペティションの盛り上がりにつながることを期待しています。また、書き込まれた当該コンペティションに対する意見は必ず確認し、今後の機能改善の参考として役立てています。参加者数や投稿者数とリーダーボードのスコアは常にモニタリングし、必要に応じて投稿に至るまでのチュートリアルを作成して公開、追加のPR施策を行うこともあります。その他にも、スコアがあまりにも良すぎるなどの不審な投稿がないか確認するなど、参加される皆様が気持ちよく取り組めるように、コンペティションが終了するまで細心の注意を払って運営を行っています。
 コンペティションが終了したら入賞候補者の方に実装したプログラムなどを提出していただき、ルールに従っているか、スコアを再現できるかどうか検収を行い、最終的な順位を確定させます。最近では、参加者の満足度や参加者とクライアントとの交流の機会として、表彰式を開催し入賞者の解法を聞く機会を設けることがあります。最後に全体の結果をクライアントに報告して終了となります。

コンペティションマスターとして

 これまでシンプルなテーブルデータを扱ったものから画像データを扱ったもの、そしてシミュレータを用いた最適化を扱ったものまで様々な形のコンペティションの設計と運営に関わってきました。クライアントと参加者の両方にとって満足のいく形を実現することは難しく、技術的なことも含めてAIの社会実装に関して常に世の中の動きを追いつつ、自分自身が誰よりも詳しくあり続けなくてはいけないと常に感じています。
 クライアントが求めていることが何なのかを意識しつつ参加者がやりやすいと思えるプラットフォーム作りを進めて、クライアントと参加者が両方ハッピーになれるようなコンペティションをどんどん開催してAIコンペティション界隈をもっと盛り上げていきたいと思います。
 以上で終わりです。最後まで読んでいただきありがとうございました。


青井さんの仕事に向き合う姿勢は、SIGNATEが掲げている「Mission, Vision, Values」を体現しています。
本日は、そこから「Values【大切にする価値観】」をご紹介します。

Values【大切にする価値観】
・本質に向き合うそもそもの目的は何か?
前提を疑い、高い視座で、本質に向き合おう。

・仕事は作品
みんなが驚く結果、その手あったか、常識を超える成果を目指そう。
仕事は作品であり、後世に残る、誇れるものであれ。

・みんなのために
みんなにとって、よりよい世界につながる価値を作ろう。自ら行動し周囲を巻き込み実現に貢献しよう。

SIGNATEで働いてみませんか?

代表齊藤の想い、SIGNATEのミッションについて共感していただける方と
一緒に社会課題に挑戦していきたいと思っています。

SIGNATEでは一緒に会社を成長させる仲間を募集しています!
1. 国内最大規模のAI・データ人材会員基盤を運営
2. 取引先は日本を代表する大手企業・国や行政機関
3. 東大IPCデジタルHDの支援下でIPOを目指す
4. ミドルステージスタートアップ
5. 信託型ストック・オプション制度あり
6. 完全リモートスタイル(WeWork KANDA SQUAREオフィス利用可能)
詳しくはこちらをご覧ください!

DX、人的資本開示、リスキリングの追い風の中、AI・データ人材関連のビジネスを展開

この記事が参加している募集

オープン社内報