アマゾンウェブサービスジャパン(以下、AWSジャパン)は10月29日、同社が提供するマネージドな機械学習サービス「Amazon Personalize」と「Amazon Forecast」に関する報道陣向けの説明会を行いました。いずれのサービスともに、昨年11月の「AWS re:Invent 2018」で発表されたもので、すでに東京リージョンでも一般提供が開始されています。
この2つのマネージドサービスは、AWSの親会社であるAmazon.comが20年間に渡って小売事業者として培ってきたテクノロジやノウハウが投入されており、マシンラーニングの知識や経験をもたない一般的なビジネスユーザでも簡単に利用できることから、企業規模を問わずに急速に国内でも導入が進んでいるサービスでもあります。本稿ではAWSジャパン 技術統括本部 レディネス&テックソリューション本部 本部長 / プリンシパルソリューションアーキテクト 瀧澤与一氏による説明内容をもとに、レコメンデーションと予測という領域にそれぞれ特化したこの2つのサービスの特徴を紹介していきます。
AWSジャパン 瀧澤与一氏
AWSの機械学習サービススタック
個々のサービスの前に、瀧澤氏は「AWSの機械学習サービススタック」について、以下のように大きく3つに分類して説明しています。
AIサービス
機械学習の深いスキルなしに、機械学習をアプリケーションに組み込めるサービス。全部で10種類のマネージドサービスが提供されており、PersonalizeやForecastもここに含まれる
MLサービス
機械学習のモデルを高速に開発/学習/デプロイできるサービス。フルマネージドサービスの「Amazon SageMaker」が含まれる
MLフレームワーク&インフラストラクチャ
TensorFlow、Apache MXNet、PyTorchなどの機械学習フレームワークと、機械学習に適したインスタンス(GPUやFPGA含む)を豊富なラインナップから選ぶことができる
AWSが提供する機械学習スタック。もっとも人気の高いSageMakerは開発者やデータサイエンティストを対象にしたマシンラーニングのプラットフォームサービスとして位置づけられている。今回紹介するPersonalizeやForecastなどユーザ側がデータを用意するだけでOKのマネージドサービスはAIサービスという括り
"AI(Artificial Intelligence)"と"ML(Machine Learning)"の使い分けはあいまいな部分も見られるのですが、ユーザ側は学習データのみをCSVなどで用意し、モデルのトレーニングはマネージドサービス側が行ってくれるのが「AIサービス」であるのに対し、データサイエンティストや開発者がEC2などのインフラ管理を最小限に留めながらモデルのトレーニングからデプロイまでを行えるのが「MLサービス」 、MLサービスのコアとなるインフラや学習環境が「MLフレームワーク&インフラストラクチャ」としているのがAWSにおける機械学習スタックの定義のようです。
今回紹介されたPersonalizeとForecastはユーザ側が学習データ(履歴データなど)のみを用意し、あとはサービス側でアルゴリズムの選択やモデルのトレーニング、デプロイまでを自動でやってくれるフルマネージドな「AIサービス」で、開発者向けのSageMaker(MLサービス)よりも導入の敷居が低く、誰もが使える機械学習サービスであることが大きな特徴です。
Amazon Personalize
Amazon.comを開くと、これまでの購入履歴にもとづいた「人気の商品とあなたへのおすすめ」や「こちらもおすすめ」「 この商品を買った人はこんな商品も買っています」など、たくさんのレコメンデーションが表示されます。Amazon PersonalizeはAmazon.comが長年に渡って品質を向上させてきたこのレコメンデーション機能をAWSユーザに提供するサービスで、ECサイト運営者などに適しています。
瀧澤氏はレコメンデーションエンジンとしてのAmazon Personalizeが解決する課題として以下の4点を挙げています。
リアルタイム性 …エンドユーザの行動をリアルタイムにレコメンドへ反映
コールドスタート対応 …新規アイテムや新規ユーザなど、過去の履歴情報が少ない場合でも適切なレコメンドが実現
人気に偏り過ぎない(ポピュラリティトラップ) …人気のアイテムだけを推薦するのではなくエンドユーザ個人の好みを反映
スケーラビリティ …数千の商品/エンドユーザへのスケーラビリティ
サイトをよく訪れる"常連"はもちろんのこと、新規ユーザに対しても個人の嗜好と市場の人気のバランスを考慮した適切なおすすめ商品を表示し、商品やユーザが増えるほどに性能を高めていく―まさにAmazon.comがレコメンデーションに費やしてきた成果をそのまま解放したサービスだといえます。なお、Amazon Personalizeにおけるリアルタイムデータの読み込みは現時点ではオプション扱いとなっています。
Amazon Personalizeのパイプライン構成例。AWSの各種サービスとの連携のしやすさも特徴のひとつ
Amazon Personalizeの利用の流れは非常にシンプルです。ユーザ(ECサイト運営者など)がAmazon S3などにCSV形式で保存したエンドユーザの行動履歴データやユーザアイテム属性データをAmazon Personalizeに渡すと、以下の処理が実行されます。
データの読み込み
データの検査
特徴の認識
アルゴリズムの選択
ハイパーパラメータの選択
モデルの学習
モデルの最適化
モデルの保存
デプロイとモデルのホスト
リアルタイムキャッシュの作成
Amazon Personalizeの利用の流れ。ユーザが用意するものは行動履歴データとアイテム属性をひもづけたCSVデータ。リアルタイムデータはオプションサービスとなっている
ユーザがPAmazon Personalizeに渡すデータには「どのエンドユーザ(USER_ID)が、いつ(TIMESTAMP) 、どのアイテム(ITEM_ID)を閲覧したか」がわかるようにCDV形式で保存されている必要がありますが、逆にいえばその条件さえクリアしていれば、あとはすべてAmazon Personalizeが処理してくれます。また、レコメンデーションの種類によって異なるアルゴリズム(レシピ)の選択やハイパーパラメータの調整に関しても、AutoMLを有効にすることで事前定義されたレシピからの選択が可能です(独自アルゴリズムの追加も可能) 。あとの作業はカスタマイズドに生成されたレコメンデーションAPIをLambdaやAPI Gatewayなどを使ってECサイトに組み込むだけとなります。
Amazon Personalizeではアルゴリズムを「レシピ」と呼んでおり、アイテムの推薦やリスト並べ替えなどに適したレシピが事前定義されている。レシピの選択もハイパーパラメータの調整もAutoMLに任せれば自動で行われる
Amazon Forecast
Amazon Personalizeと同様、Amazon ForecastもAmazon.comの開発/研究をもとに生まれたサービスですが、時系列データにもとづいた需要予測というどの業界でも求められるニーズを対象にしているため、Amazon Personalizeよりも広いユーザ層や用途にリーチできるサービスといえます。
需要予測には、季節性や周期性、国や地域ごとの違い、価格変動性、購買履歴のないアイテムの存在などさまざまな項目が複雑に絡むため、予測のシナリオを組むことが難しいとされており、Amazon.comにおいても難易度が高い課題でした。瀧澤氏はAmazon Forecastが誕生した背景として、Amazon.comが初期(2007年ごろ)に導入した最初の予測モデル「SQRF(Sparse Quantile Random Forecast) 」は多くの改善をもたらしたものの、関連商品の需要履歴を用いて精度を向上させることができなかった過去を紹介しています。
ここでAmazon.comが取ったのは深層学習を取り入れるというアプローチで、2015年に導入したところ、需要予測の正確度が15倍に向上、圧倒的な性能差を見せたとしています。この深層学習を用いた予測により、現在のAmazon.comでは「グローバルで毎日4億以上の商品需要、1万を超える郵便番号での需要予測、12以上の出荷方法でフルフィルメント(商品受注から配送までの全業務) 」 ( 瀧澤氏)というスケーラビリティを実現しているそうです。
Amazonでは需要予測で高い精度を出せなかったが、2015年に深層学習を取り入れたことで15倍の向上が見られたという
この深層学習による予測技術をもとにしたフルマネージドサービスがAmazon Forecastです。使い方はAmazon Personalizeと同様、履歴データと関連データをAmazon Forecastに渡し、モデルを選択(またはAutoMLで自動選択)することでトレーニングを開始、最適化された予測APIが生成され、デプロイされます。
Amazon Forecastの処理の流れ
説明会にはAmazon Forecastを導入した国内ユーザ企業として、オンラインプログラミング学習サービス「Aidemy」を提供するアイデミー AI統括執行役員 竹原大智氏が登壇し、同社におけるユースケースを紹介していました。
アイデミー 竹原大智氏
AidemyはWeb上でプログラミングの演習サービスを提供しており、サービスはAWS上で構築されています。ユーザはAidemyの演習画面にコードを入力し、実行ボタンをクリックしてコードを提出するとAWS上のRUNサーバにコードが送られ、実行結果が返されます。その際、演習回数が多くなるとRUNサーバの負荷が大きくなってしまうため、効率的なサーバ運用のためには演習回数の予測が必要でした。
Aidemyにおける演習回数予測の流れ。演習回数が増えるとRUNサーバへの負荷が大きくなるため、効率的な需要予測を行う必要性があったという。Forecastを知る前は、SageMakerでの構築も検討していたとのこと
「通常は大きめのリソース(EC2インスタンス)をRUNサーバに用意しているが、需要(演習回数)に応じて用意するリソースを動的に変更できればコストの最適化が図れると考えた」( 竹原氏)という理由からAmazon Forecastの導入に踏み切ったアイデミーですが、その効果は予想以上だったといいます。竹原氏は「CSVファイルを用意するだけで簡単にGUIモデルが構築でき、エンジニアやデータサイエンティストのような専門職ではないユーザでも容易に使え、サービスの利用料金も安く抑えられる。また、AWSの他のサービス(AWS SDK for Pythonなど)とも連携しやすく、すでにAWSのユーザであればよりメリットが大きい」とAmazon Forecastを高く評価しています。
アイデミーにおけるAmazon Forecastによる演習回数予測の全体像。データを入力すると、P10、P50、P90の3つの異なる分位数で確率的予測が行われる。アイデミーでは演習回数が予測値を大きく上回るとサービスが正常動作しなくなるリスクがあるためP90を採用している。そうしたリスクがすくなく、コスト削減でより効果を出したければP10やP50でもよい
Forecast導入前と後では「体感だが、コストが90%くらい削減できている」( 竹原氏)とのこと。これはAmazon Forecastの出す予測値が実測値に近い結果を返していることをあらわしているといえます。
Amazon PersonalizeもAmazon Forecastも、Amazon.comで開発されてきたAI技術をベースにしたマネージドサービスですが、もともと、AWSクラウドという存在がAmazon.comという世界最大級のeコマース事業者を支えるために誕生した事実を考えれば、今後もこうしたAmazonのノウハウが詰まったサービスが(機械学習に限らず)いくつも提供されるのは間違いないでしょう。今回紹介したサービスはともに、専門スキルをもたないユーザでも使える点が特徴ですが、単に使いやすいだけでなく、竹原氏のようにデータサイエンスのエキスパートも納得する精度の高さがマネージドサービスとしてリーズナブルに提供されているところも大きなポイントだといえます。
また、大量のデータを必要とする機械学習では、データの移行作業がボトルネックになりがちですが、S3やRedshift、Amazon RDSなどAWSのクラウドサービスにデータを置いているユーザであれば、こうしたフルマネージドなAIサービスはより使いやすくなります。今年も12月2日からAWS最大の年次カンファレンス「AWS re:Invent 2019」がラスベガスで開催されますが、機械学習関連でも新しいアナウンスが期待されます。