AIビジネスのレシピ:AIビジネスを成功に導くアルゴリズムマネージャAIビジネスのレシピ:AIビジネスを成功に導くアルゴリズムマネージャ2017-12-13|AIビジネス,非技術者向けscouty代表の島田です。〜機械学習の技術選定とマネジメントについて〜」という発表を記事化したものです。showwinに代理登壇してもらいました)今回は、scoutyで実際にAIを用いたアルゴリズム開発を例に、「AIビジネスを成功に導くにはどうすればよいか」という問の下、アルゴリズムのプロダクトマーケットフィットの確認のほか、事前リサーチやアルゴリズムの仕様決定や技術選定を行なう「アルゴリズムマネージャ」という役割とその必要性について説明します。画像は、主にイベントのスライドから抜粋したものになります。本記事でいうAIおよび人工知能という言葉は、人工知能分野に含まれる研究や技術のことを指します。分野を含む広い領域がこれに該当します。AIビジネスというのは、事業のコア課題の解決の手法として上記でいうAIを利用しているビジネスのことを指します。アルゴリズムマネージャが必要かまず、本題に入る前に伝えたいことは、AI分野の研究とAIビジネスは全く別物だということです。AI分野の中でも特に機械学習分野の研究では、一般に新しい手法を使って既存手法よりも高い数値を叩き出すことが大きな目標となっています。そのためエンジニアとしては、少し精度を改善しただけで悦に浸りたくなります(実際、こういった瞬間はとても嬉しいものです):しかし、ビジネスの世界では精度の向上が必ずしも事業上のKGIの向上に繋がるとは限りません。実際、上のようなタイプのエンジニアよりも、現実として見かけるのは次のようなエンジニアです:自分もエンジニアなのでよくわかりますが、エンジニアはHOWにこだわる生き物です。問題をどうスマートに、どうエレガントに(そして時には派手な手法を使って)解決することができるかに関心を払います。ビジネスの最大の違いは、顧客がいることです。ルールベース(人工無能)だろうが人工知能だろうが、顧客の課題を解決できなければビジネスでは意味が無いのです。エンジニアに丸投げしても、良いAIビジネスは生まれません。この業界で蔓延しているひとつの大きな誤解は、「優秀な機械学習エンジニアがいればAIビジネスはうまくいく」という考え方でしょう。それでは、ビジネスを一番良くわかっているCEOに聞いてみましょう:やはりダメでした。以前より「何でもかんでもディープラーニングを使えばいいわけじゃない」という考え方は浸透してきたものの、依然としてこれに近いことを言っている経営者やマネージャは多いものです。良いAIビジネスを作るためには、技術とビジネスの間に立つ人が必要なのです。正しい問いはどのようなものになるのでしょうか。それは次のようなものです:つまり、アルゴリズムがプロダクトマーケットフィットしているか(つまり、顧客が求めているか)を検証することがもっとも重要なのです。これを行なう人を、scoutyではアルゴリズムマネージャと呼んでいます。アルゴリズムマネージャはいわばアルゴリズムのプロダクトマネージャです。一般的なCTOの仕事とは守備範囲が異なりますが、多くの組織ではCTOが似たような役割を兼任していることが多いでしょう。「顧客が必要としているの?」と問うこと自体はたとえ非技術者でもセンスがあればCEOでもできることですが、アルゴリズムを実際に顧客が必要とするものにすることは、技術的知識が無いとできません。次のセクションで、実際にアルゴリズムマネージャどんな仕事をするのか見てみましょう。アルゴリズムマネージャの仕事scoutyは、2017年11月8日に転職可能性予測アルゴリズムのβ版を発表しました。この転職可能性予測アルゴリズムの開発を例にとり、アルゴリズムマネージャの実際の仕事を次の各項目に整理しました。各項目で用いられている図は、説明用に作成されたものなので、実際のアルゴリズム開発で用いられたものとは異なります。システムダイナミクスマップの構築システムダイナミクスマップは、「アルゴリズムの精度が1%上がると、ビジネスKGIがどのくらい伸びるのか?」ということを規定します。図中では、ビジネスKGIとKPI、アルゴリズムのメトリクスを抜き出し、正の因果関係がある要素ごとに矢印を張り、それぞれの強度を矢印の太さで表しています。scoutyの転職可能性予測(退職率予測)アルゴリズムでの例は次のようになります。このマップを描く際のコツは、マップを右(ゴール)から描くということです。売上を最大化しようとした結果実は機械学習がいらなかった、ということもあるので、ビジネス成果にこだわるのであればソリューションドリブン(解決策・アルゴリズムから考える)なやり方よりも、課題やゴールから出発したほうが有効でしょう。このマップを正確に持つために、アルゴリズムマネージャは日々顧客のところに行ったり、現場の人と喋ったり、開発以外のことをしなければいけません。メトリクス定義と評価アルゴリズムは、改善のPDCAを回すにあたって評価することが必須になります。そこで、評価の指標となるメトリクスを定義します。メトリクスは一般にアルゴリズムの精度に近いものをとりますが、一口に精度といっても、Precision、Recall、F値、平均二乗誤差などいろいろな指標があるので、そのどれを使って評価を行なうかを定義します。次の画像は、scoutyの転職可能性予測(退職率予測)アルゴリズムにおける評価軸の一例です。メトリクスとして定めると良いでしょう。マップを見ながらKGIに結びつくものを決定します。最初から完璧なversion1はありません。最初から完璧なものを作るよりも、どのようなマイルストーンをどういうスケジュールで達成していくかというロードマップを構築することが重要となります。次のようなスケジューリングが考えられます:これは短期的なスケジュールの例ですが、次にどのような条件が揃えば次のバージョンがリリースできるのか等、長期的なロードマップを作ることも重要です。レベル」のような形で各アルゴリズムをレベル分けし、それぞれがどのフェーズにいるかを確認できるシートを作っています。フェーズごとに求められるエンジニアや技術の種類が全く異なるので、アルゴリズムがどのフェーズにいるかを常に把握しておく必要があります。ロードマップやスケジュールに精度を含めるかに関しては、議論の余地があります。精度を含めても、単純に機械学習系のタスクは「〜〜をすると◯%上がる」といった単純な世界ではないので、結局設定した精度に達しない(そのための施策もわからない)、ということになり無意味なスケジュールとなってしまいます。リリースをしない」といった判断は可能かもしれませんが、「△ヶ月後に◯%まで伸ばす」というスケジュールはナンセンスなものになりがちです。したがって、「いつまでに◯◯を行なう」という施策ベースでスケジュールを立てるほうが現実的かもしれません。事前リサーチ事前リサーチをすることで、アルゴリズム開発の後工程が数倍楽になります。事前リサーチをする主な目的は、「仮説を事前検証することで実装工数を減らすこと」と言って良いでしょう。実際のアルゴリズムを実装しながら、「あれも効果ない、これも効果ない」などとやっていては、工数がかさみます。Notebookで雑でもいいので特徴量ごとに転職年数分布の有意差が出そうかを実験してまとめていました。実際にリサーチを行ってまとめる人はアルゴリズムマネージャでなくても構いません(scoutyでもリサーチ業務はインターンが担当)が、リサーチ項目を決めたり仮設を立てたりする部分はアルゴリズムマネージャが率先してやるべきでしょう。転職可能性予測アルゴリズムでは、「使用プログラミング言語ごとに勤務年数分布が変わるんじゃないか?」という仮説が出たので、実際のアルゴリズムに組み込む前に雑に集計を採りプロットをしました。結果、グラフは以下のようになり(横軸が勤務年数、縦軸が割合)、大きな差が無いことが確認できたので、アルゴリズムに取り込むことは止めました。下記のようにグラフごとに分布の差があることが確認できます。実装するエンジニアとのディスカッションを通じて行われるべきですが、可能な選択肢のリサーチやそれぞれのメリット・デメリットの整理などはアルゴリズムマネージャが中心となってやるべきタスクとなります。技術選定の基準は様々ですが、自分は以下の4つの基準を用いることが多いという印象です。(広告業界だと実行速度といった指標も入れるべきなので、ここはケースバイケースです)もちろん、手法インプットとアウトプットが解きたい課題にフィットしているということが前提となります。学習データ量によっても手法ごとにパフォーマンス違う(少なくてもそこそこの精度が出る手法も、一定精度出すまでにかなりのデータがいる手法もある)ので、そういった点も考慮して手法を選定できればベストでしょう。ビジネスでは必要なデータが貯まるまでに時間もかかったりもするので、「いついつまでに◯◯という手法を使い、その後は△△を使った実装に着手する」といったロードマップと合わせて検討するのが良いでしょう。新しいアルゴリズムを作ると、それに伴い実際のビジネスのオペレーションが変化します。何かを自動化するアルゴリズムだとしたら、人手が不要になるので、その後の人の采配や、自動化した部分をどう運用していくかを考えなければいけません。転職可能性予測アルゴリズムの例では、「ラベル付けされた転職可能性で絞り込む」作業が顧客に発生するので、カスタマーサポートチームにその工程のサポートを加える必要がありました。アルゴリズムの開発に常にオペレーションの変化が発生するとは限りませんが、発生する場合は、アルゴリズムマネージャが率先してビジネス側の担当者とオペレーションを設計し、運用していかなければなりません。アルゴリズムの保守の部分もアルゴリズムマネージャが担わなければいけません。データが変遷するとアルゴリズムの中身も変えなければいけないので、運用の型作りも作らなければいけません。以上をふまえて、アルゴリズムマネージャにとって必要なスキルセットは以下のようなものとなるでしょう。知識が無いから、実装が苦手だからマネージャになるわけではありません。アルゴリズムマネージャがミスをすると、ビジネス上結果につながらないことを工数をかけて実行するといったことが発生するなど経営的にも大きなロスになるので、むしろ一番経験がある人がやるべきでしょう。scoutyでは、アルゴリズムマネージャを募集しています。データサイエンティストという職業はここ数年で浸透しましたが、アルゴリズムマネージャないしそれに類する役割は未だ必要性や仕事内容が認知されていませんし、仕事内容も曖昧なままです。scoutyでは、アルゴリズムマネージャの仕事をこなすと同時に、他社にも活かせる一般的な型やフローを構築し、それを世の中に発信していける人材を探しています。内容は再度外部のイベントで発表予定です。