AI開発の新たな手法「データ分析コンペティション」とは?
こんにちは。NishikaのCTOを務めております松田と申します。
弊社サービスの中でも、幹となるサービスは
データ分析コンペティションです。
それって何?何が良いの?という疑問をお持ちのビジネスパーソンの皆様
向けに、本記事でご紹介したいと思います。
データ分析コンペティションとは?
データ分析コンペティションを一言で説明すると、
数百名以上のデータサイエンティストがAIモデルの精度を競い合い、
最も精度の高かったモデルを賞金と引き換えにホスト企業が受け取る
ものです。
具体的には、以下の3ステップで行われます。
実はこのデータ分析コンペという仕組み、アメリカではごく当たり前に活用されています。
皆様の中には、データ分析コンペという言葉は耳慣れなくとも、Kaggleという名前は聞かれたことのある方もいらっしゃるかもしれません。
Kaggleは2010年から運営されている世界最大のデータ分析コンペプラットフォームで、2017年に米Googleによって買収されています。
Kaggleはユーザー数を公開していませんが、2017時点で登録ユーザーが100万人を超えたと発表したこともあるようです。
アメリカにはKaggle以外にも複数のプラットフォームが存在し、つい先日、Facebookがホストとなり賞金総額5万ドルのコンペ「有害な"ミーム"検出AIの開発」を開催したDriven Dataなどがあります。
このようにアメリカでは、データ分析コンペは機械学習モデルの開発手法の1つとして当たり前に活用される存在となっています。
どんなタスクがコンペのテーマになる?
では、具体的にどんなタスクがコンペのテーマになるのでしょうか?
これはある意味一言で言うのは難しいのですが、
機械学習が取り扱えるタスクは全てコンペのテーマになると言えます。
機械学習が取り扱えるタスクとは何か?をもう少し噛み砕くと、
「こういう状態のときに」「こうだった(こうなった)」というInput-Outputのデータが蓄積されていれば、全て機械学習の適用対象になります。(注:簡単のため、教師あり学習と呼ばれるタスクのイメージでお伝えしています)
Input-Outputは遍く全ての活動において発生するものですから、データが蓄積されてさえいれば、機械学習の適用対象になることになります。
具体例を見ると、弊社では昨年11月末のサービスリリース以降、
月1回程度のペースで以下のコンペティションを開催してきました。
レコメンドエンジンの開発もあれば、自然言語処理もあれば、画像処理もある、、、といった形で、扱うテーマは本当に多岐に渡っているのが分かるかと思います。
アメリカの事例も参考にすると、今後は、大きく分けて以下8つのタスクがコンペのテーマになっていくだろうと考えています。
コンペをやるメリットは?
コンペによるAI開発は、他のAI開発手法に比べてどのようなメリットがあるのでしょうか?
ここでいう他のAI開発手法とは、汎用的なソリューション(クラウドサービス含む)の導入であったり、AIベンダーによる受託開発を指しています。
我々は、主に以下3点のメリットがあると考えています。
- 最高精度のAIモデルが得られる
- 最先端のAIモデルが得られる
- モデル開発の過程でデータに関する様々な知見が得られる
最高精度のAIモデルが得られる
コンペはその性質上、「精度が高いことのみが正義である」という思想のもとでモデル開発がなされていきます。
精度を高められるのであればどのような手法も歓迎であることから、一人ないし少人数による開発よりも、ほぼ確実に精度の高いAIモデルを得ることができます。
最先端のAIモデルが得られる
これまたコンペの性質上、精度を上げるためにあらゆる試行がされる中で、過去に無かったアプローチがとられ、それが後のスタンダードとなっていくことがあります。
例えば、皆様「ニューラルネットワーク」という言葉を聞いたことがあるのではないでしょうか?
これは機械学習モデルの構築手法の1つですが、テーブルデータ(エクセルで読み込むような表形式のデータ)を対象としたタスクでは、実はニューラルネットワークよりも圧倒的に高い頻度で使われている手法があることをご存知でしょうか?
これはGradient Boosting Decision Tree, GBDTと呼ばれる手法ですが、
GBDTの中でも特に著名かつよく使われている手法に、LightGBMというものがあります。
LightGBMは2016年に発表された手法で、当時GBDTの手法としては後発であったのですが、Kaggleの多くのコンペで高い精度を実現し続けたことから市民権を得、今やテーブルデータに対するモデリングで圧倒的な使用頻度を誇る現状があります。
つまり、データ分析コンペを通じてスタンダードとなっていった経緯があります。
他にも最近では、画像分類のタスクでありながら、GANという画像生成の技術を使って学習データを水増しした手法で1位を勝ち取り、アプローチの独創性から他の参加者を大いに感心させた例もありました。
1:1の関係で開発案件を受託しているときにはなかなか試せないような新しい手法も、コンペではなんとしても勝つという強い目的意識と、ある種の気やすさも相まって実験的な試行がなされていきます。
このようなコンペの特徴は、特に「できるかどうか分からない」ような先進的なテーマにおいて、威力を発揮し得ます。
モデル開発の過程でデータに関する様々な知見が得られる
コンペのホストにとっての主な最終成果物は、入賞者のソースコードおよびモデルですが、そのような「結果」だけでなく「過程」にも価値があります。
モデル開発の重要な工程の1つに、「どの値とどの値をどう組み合わせたら予測に有効か」を探索する、特徴量エンジニアリングと呼ばれる工程があります。
テーブルデータを扱ったコンペでは、この特徴量エンジニアリングの工程で有用な特徴量を発見できるかが勝敗に直結するケースが多々あり、データサイエンティストが心血を注ぐところでもありますが、
この工程で見つかった「有用な特徴量」自体が、長きにわたりモデルの性能を高く保ち続けるために役立つ知見となります。
コンペの「副産物」という言い方はおそらく不適切で、とても重要性の高い知見が得られると言えます。
他のAI開発手法との比較
以上の観点をまとめ、ざっくりと他のAI開発手法とのメリデメ比較を行うと、以下の通りです。
それぞれの手法に良さがありますが、「精度の高いモデルをコストを抑えながら開発したい」というニーズには、コンペはとてもよくあてはまります。
コンペをやる上での懸念点は?
一方で、コンペによる開発には懸念点も存在します。
我々が多くのお客様と会話させていただいてきた中で、
最もよく聞かれる懸念点は以下2点でした。
- データ公開は情報保護の観点で不安
- モデル開発後の運用が不安
データ公開は情報保護の観点で不安
コンペはその性質上、多くのコンペ参加者の方にデータを公開することになります。
もちろん、コンペで公開するデータでは個人情報は必ず削除しますし、コンペ参加者には目的外の(この場合コンペ以外の)用途にデータを利用することを制限する規約に同意していただきますが、それでも一定の不安は拭いきれない、という声は聞かれます。
結論から言えば、コンペにおいてその不安を完全に一掃することはできません。
しかし、コンペによる開発の長所を生かしつつ、情報保護の不安を解消するために、我々が大切にしている2つのアプローチがあります。
- 具体的に何が不安なのかの言語化
- データ加工技術による対策
具体的に何が不安なのかの言語化
データ公開に対する不安は当然理解できる中で、具体的にどのようなリスクがあるのか、言語化することを大切にしています。
例えば、公開を検討しているデータから、氏名やマイナンバーなど、個人を特定できる情報を除いたとしましょう。
さあこれで問題ない、公開に踏み切りましょう!
と一足飛びになるかというと、なんとなくの不安が残っている場合もあるかと思います。
この「なんとなく」が具体的に何なのか、言語化することを大切にしています。そうでないと、データを公開する・しないの判断がいつまでも宙に浮いてしまうことになるからです。
例えば上記の不安を言語化すると、「年齢や性別、居住エリアなど諸々の情報を組み合わせると、この人がAさんなのではないか?と特定できる可能性が高いのではないか?」という不安であったりします。
(こうして言語化することで、根拠のない不安などではなく、プライバシー保護の観点からきっちり対策すべき不安であることが分かります)
本記事の主題はコンペのご紹介ですので、プライバシー保護とは具体的に何なのかについては、別稿で詳述することにします。
データ加工技術による対策
例えば、ある商品群の需要予測がコンペのテーマで、手元に商品の価格情報があったとします。
しかし、とある事情で価格情報を公開したくない(注:先に述べたように、公開したくない理由を「なんとなく」で済ませないことが重要です。この場合、競合に価格情報を知られたくない、などが考えられます)とします。
ここで、価格情報を公開しないという選択をするのは簡単ですが、果たして本当にそれで良いでしょうか。
直感的にも、価格情報は需要に大きく影響があり、予測モデルにも取り込むべき変数のような気がしないでしょうか。
このようなケースでは、折衷案として、データ加工を行なった上での公開を検討します。
つまり「200円, 1000円, 5000円」という生の情報を公開するのではなく、「~999円, 1000~4999円, 5000~9999円」という価格帯の情報に加工してから公開することを検討します。
このような価格帯の区切り方が、モデルの精度向上においてベストの区切り方かどうかは、正直なところ事前には分かりません。
しかし、データの分布などから一定の妥当性が与えられる区切り方を見出すことはできます。
ホスト企業がお持ちの各専門領域の知識と、弊社によるデータ分析結果を踏まえて、「データ公開への不安に対処しながら」「有用な情報をできるだけ残して公開する」方法を探っていくことが大切だと考えています。
モデル開発後の運用が不安
次に多く聞かれる声は、コンペの結果最高精度のモデルができることは分かるが、納品してもらった後の運用が自社でできるか不安だ、という声です。
これも理解できる不安で、機械学習モデルの構築はとても華やかな世界で注目されがちな工程ですが、それと同等以上に「どのように日々運用していくか」の工程の重要性は大きいものです。
これについては、以下2つのアプローチでフォローしています。
- 成果物の提出形式の規定
- 弊社およびパートナー企業による機械学習モデルの運用体制構築のご支援
成果物の提出形式の規定
弊社では、コンペ入賞者の成果物の提出形式について、ガイドラインを設けています。
ソースコードおよびモデルだけでなく、それらの取り扱いに関するドキュメント、ソリューションに対する様々な考察もご提出いただくようご依頼をしています。
これらの情報があることで、ソースコードとにらめっこして運用を考えていくだけでなく、モデルの特徴を鑑みた運用方法を考えていくことが可能になります。
コンペは業務ではなく、参加者の皆様のご関心をいただいてはじめて参加いただけるものなので、成果物に対する一定以上の要求は困難ではあります。
しかし、これまでの弊社の経験上、コンペで入賞されるような優秀なデータサイエンティストの皆様は、成果物も可読性の高い、質の高いものを提出いただける場合がほとんどです。
弊社およびパートナー企業による機械学習モデルの運用体制構築のご支援
入賞者に質の高い成果物をご提出いただいたとしても、実際にソースコードの実行やモデルによる処理を行なっていくのはホスト企業様です。
機械学習の運用と呼ばれるフェーズは、従来のシステムの運用とはかなり異なる勘所に注意していく必要があります。
典型的な論点の1つに、機械学習モデルの再学習のさせ方があります。
機械学習モデルは新たなデータの追加に応じて再学習することが通常ですが、再学習の頻度はどの程度が良いと思われますか?
データは蓄積しておいて、1週間に1度再学習すれば十分でしょうか?
あるいは新たなデータが追加される度に再学習すべきでしょうか?
この問いには、機械学習モデルを使おうとしているユースケースにおける再学習の重要性と、運用体制面で現実的に実現可能なレベルの両方を鑑みて、答えを出す必要があります。
弊社はパートナー企業の協力も得つつ、機械学習の運用体制構築にあたり重要な点のコンサルティング、および実装をご支援させていただきます。
おわりに
以上、簡単ではありますがデータ分析コンペのご紹介でした。
コンペの良さ、使い所について、少しでもお伝えできたようなら幸いです。
私の次稿では、弊社にとってのベンチマークである米Kaggleがどのような歴史を辿って成長してきたのか、定量的な分析結果も交えながらご紹介したいと思います。
告知
弊社では、データ活用・AI導入に関するお悩みのご相談を無償でお伺いさせていただいております。
Nishikaのソリューションはデータ分析コンペティションですが、ソリューションをコンペに限定せず、課題解決の方向性をお示しするところまでご支援させていただきます。
定期的にpeatix上で無料相談会を開催させていただいている他、info@nishika.com 宛に直接メールをお送りいただいても結構です。
ご相談内容に応じて、データ活用・AI導入のコンサルティングや実装の経験が豊富な者の中で、適切な担当がご相談を伺います。
お気軽にご連絡ください!