皆さん、こんにちは。 エクストリームデザインの遠藤と申します。
最近注目していたDataRobotのハンズオンが開催されたので、参加してきました。
なかなか熱かったので、レポートしてみたいと思います。
DataRobotとは?
世界中のデータサイエンティストが腕を競うKaggleの上位ランカーを何人も雇い、その知見を集結して予測モデル作成を自動化させたプロダクトです。
極論すると、データを与えると自動で機械学習のアルゴリズムをパラメータを変えながら何十種類も検証し、アンサンブルすることも合わせて結果を出力。予測モデルはAPIでそのまま利用可能。ここまで早ければ数時間。精度は過去のKaggleでトップクラスになる場合も、、といった感じとのことです。
なんだか夢の様な話ですが、以下でもう少し詳しくみていきたいと思います。
会場でのユーザーの声
DataRobot社はリクルートと事業提携したこともあり、既にユーザーになっている方も会場にいらっしゃいました。そこで上がっていた声としては、「今まで数週間かかっていたようなモデル作成が数時間で終わることもあった」「しかし最初のデータ整備は大変」とのこと。
さすがのDataRobotも前処理の自動化まではできていないようです。前処理に関しては詳しい説明があったので、まとめてみます。
前処理について
基本的な処理は行えるようですが、モデル作成の凄さ加減に比べると、どうしても見劣りしてしまうようです。
聞いた範囲では、欠損値を社外秘のアルゴリズムを使って埋めたり、データの比を取ったり、テキストでしたらNgramなどは対応しているようです。また、使えなさそうな変数は自動で弾いたり、重要と思われる変数を出したりもできるよう。
基本的なところはやっているので、問題によっては前処理なしで突っ込んでもそれなりの結果は出すとのことでした。
基本的な統計分析や、可視化などが自動で行われる機能もかなり充実しているので、解析者はこの画面を見ながら、前処理や特徴量抽出などを行っていけるようです。
モデル作成について
RやPythonなどで書かれているオープンソースのアルゴリズムを自動でパラメータチューニングしながらいくつも試し、予測モデルを作成します。デフォルトでは30ほどのアルゴリズムを検証するようです。結果はアンサンブルさせることもできるとのこと。
オープンソースを利用しているのでアルゴリズムはこまめにアップデートされ、また自前のアルゴリズムを使うこともできるようです。
データのサンプリングも考慮しながらやっているようで、データが少ない場合は注意を促したり、これ以上あっても精度が上がらないといった指摘ももらえるようです。
モデル作成には、フルオート、セミオート、マニュアルがあり、どこまで自動化させるかも選べるとのことでした。
その他細かい話としては、現在対応してるのは、二値分類と回帰。時系列、多値分類、はもうすぐ対応。レコメンドはβ公開中。テキストも入力として使える。日本語も現在対応を進めている。データサイズの上限は現在1.5G。近々10G対応。などがありました。
実際にDataRobotで作ったモデルの精度としては、「ドメイン知識ある人に負けることはあるが、結構勝てもする」くらいとのこと。これは、作成時間が圧倒的に短縮されているところがポイントです。極端な例だとは思いますが、2時間で作ったモデルがKaggleの過去の課題で1位になるような実績を出したこともあるとのことでした。
作成したモデルの利用について
作成したモデルはそのままAPIとして利用可能とのことです。サーバは自前で用意することも可能ですが、モデルの中身はブラックボックスになるようです。
スケールアウト対応などはまだこれかららしく、急にユーザーが増える可能性のあるサービスにはまだ使いにくいかもしれません。
個人的感想
PRのためのハンズオンというところを差し引いても、大変刺激的でした。
C言語などで機械学習を実装していた時代と比べると、最近のオープンソース化の流れでだいぶ敷居が下がったと感じていましたが、モデル選択とチューニングの自動化が進むことで、機械学習はますます誰でも使える時代に突入していきそうです。
モデル作成のコストが下がった現場で何が起こったかという話で印象深かったのが「空いた時間で色々な部署や現場の人と話すようになった」というエピソードでした。
DataRobotもドメイン知識が豊富なエキスパートにはまだなかなか勝てないようで、ビジネスの知識を十分に身につけた分析者が予測モデル作成機と協業することで、よりよいモデルを作成するようになっていくのかもしれません。
予測モデル作成のコストが十分下がった世界で何が起こるのかを考えるのは、なかなかおもしろそうです。