Contants
レコメンデーション機能って?
ECサイトでよく見かけるオススメ機能ですが、レコメンデーションと呼ばれる手法で分析された結果、商品と商品の関連付けを実際の履歴に基づいてルール化し表示しています。
対象者にとって価値があると思われるコンテンツ(商品や情報)をより個別的に提示すること
クラウドを展開する各社も、レコメンデーションを始め各種分析サービスを提供しています。
本記事ではMS社Azureにて提供するRecommendations Solution Templateの使い方を解説します。
MS社クラウドAzureの正式版のレコメンデーションサービス。Microsoft Cognitive Services で提供されていた Recommendations API が2018年2月15日に正式に廃止され、Recommendations Solution Template が正式提供されています。
サンプル動画
今回はブログで解説している操作をYoutubeで紹介してます。
必要な情報
- カタログ:分析元となる商品のマスタ
- 履歴:誰がいつ何を購入(閲覧)したという履歴
今回のサンプルでは、MS社が提供するデモデータを利用して解説します。
モデルのトレーニングに使うサンプルデータ
※withTimestamps フォルダ:「catalog.xlsx」と「usage1.csv」を利用
Azureレコメンドサービスの手順
Azureレコメンドサービス「Recommendations Solution Template」を使って実際に操作できるようになる手順は主に3つです。
- 基本サービスの申請「リソースグループ作成」
- 必要な情報のクラウドへのアップデート
- レコメンドの学習
基本サービスの申請「リソースグループ作成」
まずはAzureのサービス契約をしましょう。
※今回の記事はすでにトライアル契約もしくは正式契約していることを前提に進めていきます。
- Azureクラウドサービスの契約(本記事では省略)
- GitHub上のRecommendations Solution TemplateよりAzureへ接続
- デプロイ情報を入力してサービスの「購入」
GitHub上のRecommendations Solution Template
※「DeplyToAzure」ボタンをクリックします
デプロイ情報を入力してサービスの「購入」
GitHub上のRecommendations Solution TemplateよりAzureへ接続すると図のようなカスタムデプロイ画面へ移動します。
主に2つの情報を設定・確認して「購入」ボタンをクリックします。
※その他の設定はデフォルトのままで問題ないと思います。
- サブスクリプション:Azureサービスの契約
- リソースグループ:レコメンドサービスの配置場所
テンプレート使用時のエラー回避方法
2019.7.3現在、Recommendations Solution Templateを使用したデプロイは前節の設定・購入ではエラーになります。
※下記ポイントに従ってテンプレートを編集します。
リソースグループのストレージ名が24文字以上で設定されるエラーになる為、固定のユニークな文字列を指定します。
【テンプレートの編集】より「リソース」➡「storageAccountName」の値を変更します。
必要な情報のクラウドへのアップデート
カスタムデプロイが完了することでAzure側へデータを格納する領域が確保されます。
必要な情報である【カタログ】と【履歴】ファイルをリソース内新規BLOB領域にアップロードします。
- 作成されたリソースグループへBLOB領域を作成
- カタログファイル・履歴ファイルのアップロード
作成されたリソースグループへBLOB領域を作成
作成されたリソースグループの「概要」ペインから、ストレージ領域を選択しBLOB領域を作成します。
今回は「inputfiles」という名前のBLOG領域を作ります。
カタログファイル・履歴ファイルのアップロード
作成されたBLOB領域にアップロードボタンより準備していたカタログファイル、履歴ファイルをそれぞれアップロードします。
履歴ファイルは複数のファイルに分割される可能性がある為、フォルダを作成し階層を分けてアップロードします。
レコメンドの学習
【カタログ】と【履歴】ファイルのアップロードが完了したら実際にAIに学習をさせます。
学習方法はすでにAzure側で設定されているので、前節でのファイルの位置を指定して「学習(TRAIN)」ボタンをクリックします。
学習をさせるサイトは下記の2つがあります。
今回のサンプルではrecommendationsUIを使った方法を解説します。
- recommendationsUIを使う
- Swaggerを使う
recommendationsUIへ移動する
recommendationsUIが提供されているサイトの確認方法を紹介します。
Azureのリソースグループ内にサイトURLが記載されており、ログインする為の管理者キーも取得できます。
下記手順にてrecommendationsUIへ移動します。
■「デプロイ」➡「Microsoft-Templete」へ移動
■「出力」➡各種タグ情報の確認
■「recommendationsUI」サイトへ移動➡「adminPrimaryKey」の入力➡ログイン完了
レコメンデーション学習をさせる
recommendationsUIへ移動できると、実際の学習モデルを作成することができます。
下記手順にて新しい学習モデルを作成します。
■「TRAIN NEW MODEL」をクリック
■「CREATE NEW MODEL」画面にて必要情報を指定して「TRAIN」をクリック
- Description:モデルの名前
- BlobContainerName:BLOBのコンテナ名(inputfiles)
- Usage Folder:履歴のフォルダ名(trainUsage)
TRAINでモデル作成した後、学習にしばらくかかります。
モデル一覧のステータスは次のように変化します
「Created」➡「InProcess(学習中)」➡「Completed(完了)」
作成したモデルを使う
今回はrecommendationsUIサイトにてモデル一覧の「Score」ボタンにより実際のモデルのレコメンデーションを確認できます。
Scoreは重みづけで、実際のレコメンドの関連度を表します。
数値が大きいほど関連性が高いと判断します。
※Score0のものは抽出数になるまで、任意の商品を抽出するようになっています。
- Item Ids:現在の品番
- Number of Recommendations:レコメンドする数(初期値:10)
参考サイト
Azure Recommendations Solution Template を使ってみる【id:TonyTonyKun】
まとめ
大手クラウドサービス各社のAI系サービスは今後もますます充実したものになっていくと思います。
機会学習そのものの環境及びロジックの構築は、膨大な作業と時間がかかります。
手軽で拡充しやすりサービスの利用も検討していきたいものです。
今後もAI系サービスの記事を発信していきたいと思います。