レポート

世界最大のeコマース事業者の精度とノウハウをお手軽に ―AWSのAIサービス「Amazon Personalize」「Amazon Forecast」

この記事を読むのに必要な時間:およそ 3 分

アマゾンウェブサービスジャパン(以下,AWSジャパン)は10月29日,同社が提供するマネージドな機械学習サービス「Amazon Personalize」「Amazon Forecast」に関する報道陣向けの説明会を行いました。いずれのサービスともに,昨年11月の「AWS re:Invent 2018」で発表されたもので,すでに東京リージョンでも一般提供が開始されています。

この2つのマネージドサービスは,AWSの親会社であるAmazon.comが20年間に渡って小売事業者として培ってきたテクノロジやノウハウが投入されており,マシンラーニングの知識や経験をもたない一般的なビジネスユーザでも簡単に利用できることから,企業規模を問わずに急速に国内でも導入が進んでいるサービスでもあります。本稿ではAWSジャパン 技術統括本部 レディネス&テックソリューション本部 本部長 / プリンシパルソリューションアーキテクト 瀧澤与一氏による説明内容をもとに,レコメンデーションと予測という領域にそれぞれ特化したこの2つのサービスの特徴を紹介していきます。

AWSジャパン 瀧澤与一氏

AWSジャパン 瀧澤与一氏

AWSの機械学習サービススタック

個々のサービスの前に,瀧澤氏は「AWSの機械学習サービススタック」について,以下のように大きく3つに分類して説明しています。

AIサービス
機械学習の深いスキルなしに,機械学習をアプリケーションに組み込めるサービス。全部で10種類のマネージドサービスが提供されており,PersonalizeやForecastもここに含まれる
MLサービス
機械学習のモデルを高速に開発/学習/デプロイできるサービス。フルマネージドサービスの「Amazon SageMaker」が含まれる
MLフレームワーク&インフラストラクチャ
TensorFlow,Apache MXNet,PyTorchなどの機械学習フレームワークと,機械学習に適したインスタンス(GPUやFPGA含む)を豊富なラインナップから選ぶことができる

AWSが提供する機械学習スタック。もっとも人気の高いSageMakerは開発者やデータサイエンティストを対象にしたマシンラーニングのプラットフォームサービスとして位置づけられている。今回紹介するPersonalizeやForecastなどユーザ側がデータを用意するだけでOKのマネージドサービスはAIサービスという括り

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のパイプライン構成例。AWSの各種サービスとの連携のしやすさも特徴のひとつ

Amazon Personalizeの利用の流れは非常にシンプルです。ユーザ(ECサイト運営者など)がAmazon S3などにCSV形式で保存したエンドユーザの行動履歴データやユーザアイテム属性データをAmazon Personalizeに渡すと,以下の処理が実行されます。

  1. データの読み込み
  2. データの検査
  3. 特徴の認識
  4. アルゴリズムの選択
  5. ハイパーパラメータの選択
  6. モデルの学習
  7. モデルの最適化
  8. モデルの保存
  9. デプロイとモデルのホスト
  10. リアルタイムキャッシュの作成

Amazon Personalizeの利用の流れ。ユーザが用意するものは行動履歴データとアイテム属性をひもづけたCSVデータ。リアルタイムデータはオプションサービスとなっている

Amazon Personalizeの利用の流れ。ユーザが用意するものは行動履歴データとアイテム属性をひもづけたCSVデータ。リアルタイムデータはオプションサービスとなっている

ユーザがPAmazon Personalizeに渡すデータには「どのエンドユーザ(USER_ID)が,いつ(TIMESTAMP⁠⁠,どのアイテム(ITEM_ID)を閲覧したか」がわかるようにCDV形式で保存されている必要がありますが,逆にいえばその条件さえクリアしていれば,あとはすべてAmazon Personalizeが処理してくれます。また,レコメンデーションの種類によって異なるアルゴリズム(レシピ)の選択やハイパーパラメータの調整に関しても,AutoMLを有効にすることで事前定義されたレシピからの選択が可能です(独自アルゴリズムの追加も可能⁠⁠。あとの作業はカスタマイズドに生成されたレコメンデーションAPIをLambdaやAPI Gatewayなどを使ってECサイトに組み込むだけとなります。

Amazon Personalizeではアルゴリズムを「レシピ」と呼んでおり,アイテムの推薦やリスト並べ替えなどに適したレシピが事前定義されている。レシピの選択もハイパーパラメータの調整もAutoMLに任せれば自動で行われる

Amazon Personalizeではアルゴリズムを「レシピ」と呼んでおり,アイテムの推薦やリスト並べ替えなどに適したレシピが事前定義されている。レシピの選択もハイパーパラメータの調整もAutoMLに任せれば自動で行われる

著者プロフィール

五味明子(ごみあきこ)

IT系の出版社で編集者としてキャリアを積んだ後,2011年からフリーランスライターに。フィールドワークはオープンソースやクラウドコンピューティング,データアナリティクスなどエンタープライズITが中心。海外カンファレンス取材多め。Blog 「G3 Enterprise」やTwitter(@g3akk),Facebookで日々IT情報を発信中。

北海道札幌市出身/東京都立大学経済学部卒。