技術情報

Azure レコメンデーション機能を使ってみた

Azure レコメンデーション機能を使ってみた-テンプレート使用時のエラーメッセージ
千ちゃん
千ちゃん
ECサイトにあるオススメ商品ってどうやって出してるの?
シンさん
シンさん
レコメンデーションという方法で抽出しているんだよ
シンさん
シンさん
本記事ではAzureで正式リリースされた「Recommendations Solution Template」を使ってレコメンデーション機能を紹介します

レコメンデーション機能って?

ECサイトでよく見かけるオススメ機能ですが、レコメンデーションと呼ばれる手法で分析された結果、商品と商品の関連付けを実際の履歴に基づいてルール化し表示しています。

クラウドを展開する各社も、レコメンデーションを始め各種分析サービスを提供しています。
本記事ではMS社Azureにて提供するRecommendations Solution Templateの使い方を解説します。

サンプル動画

今回はブログで解説している操作をYoutubeで紹介してます。

必要な情報

千ちゃん
千ちゃん
レコメンデーションするにはどんな情報がいるの?
シンさん
シンさん
カタログと呼ばれる商品マスタと履歴情報があれば分析できるよ!
  • カタログ:分析元となる商品のマスタ
  • 履歴:誰がいつ何を購入(閲覧)したという履歴

今回のサンプルでは、MS社が提供するデモデータを利用して解説します。

モデルのトレーニングに使うサンプルデータ
※withTimestamps フォルダ:「catalog.xlsx」と「usage1.csv」を利用

Azureレコメンドサービスの手順

Azureレコメンドサービス「Recommendations Solution Template」を使って実際に操作できるようになる手順は主に3つです。

千ちゃん
千ちゃん
Azureレコメンドサービスを使うにはどうしたらいいの?
シンさん
シンさん
手順は主に3つ。順番に説明していくね!
Azureレコメンドの3つの手順
  1. 基本サービスの申請「リソースグループ作成」
  2. 必要な情報のクラウドへのアップデート
  3. レコメンドの学習

基本サービスの申請「リソースグループ作成」

まずはAzureのサービス契約をしましょう。
※今回の記事はすでにトライアル契約もしくは正式契約していることを前提に進めていきます。

基本サービスの申請の手順
  1. Azureクラウドサービスの契約(本記事では省略)
  2. GitHub上のRecommendations Solution TemplateよりAzureへ接続
  3. デプロイ情報を入力してサービスの「購入」

GitHub上のRecommendations Solution Template
※「DeplyToAzure」ボタンをクリックします

デプロイ情報を入力してサービスの「購入」

GitHub上のRecommendations Solution TemplateよりAzureへ接続すると図のようなカスタムデプロイ画面へ移動します。
主に2つの情報を設定・確認して「購入」ボタンをクリックします。
※その他の設定はデフォルトのままで問題ないと思います。

  • サブスクリプション:Azureサービスの契約
  • リソースグループ:レコメンドサービスの配置場所
Azure レコメンデーション機能を使ってみた-カスタムデプロイ

テンプレート使用時のエラー回避方法

2019.7.3現在、Recommendations Solution Templateを使用したデプロイは前節の設定・購入ではエラーになります。
※下記ポイントに従ってテンプレートを編集します。

リソースグループのストレージ名が24文字以上で設定されるエラーになる為、固定のユニークな文字列を指定します。

Azure レコメンデーション機能を使ってみた-テンプレート使用時のエラーメッセージ

【テンプレートの編集】より「リソース」➡「storageAccountName」の値を変更します。

Azure レコメンデーション機能を使ってみた-テンプレート使用時のエラー回避設定

必要な情報のクラウドへのアップデート

カスタムデプロイが完了することでAzure側へデータを格納する領域が確保されます。
必要な情報である【カタログ】と【履歴】ファイルをリソース内新規BLOB領域にアップロードします。

必要な情報のアップデート
  1. 作成されたリソースグループへBLOB領域を作成
  2. カタログファイル・履歴ファイルのアップロード
Azure レコメンデーション機能を使ってみた-カスタムデプロイが完了イメージ

作成されたリソースグループへBLOB領域を作成

作成されたリソースグループの「概要」ペインから、ストレージ領域を選択しBLOB領域を作成します。
今回は「inputfiles」という名前のBLOG領域を作ります。

Azure レコメンデーション機能を使ってみた-BLOG領域イメージ

カタログファイル・履歴ファイルのアップロード

作成されたBLOB領域にアップロードボタンより準備していたカタログファイル、履歴ファイルをそれぞれアップロードします。

Azure レコメンデーション機能を使ってみた-アップロード階層イメージ

履歴ファイルは複数のファイルに分割される可能性がある為、フォルダを作成し階層を分けてアップロードします。

Azure レコメンデーション機能を使ってみた-カスタムデプロイが完了イメージ

レコメンドの学習

【カタログ】と【履歴】ファイルのアップロードが完了したら実際にAIに学習をさせます。
学習方法はすでにAzure側で設定されているので、前節でのファイルの位置を指定して「学習(TRAIN)」ボタンをクリックします。

学習をさせるサイトは下記の2つがあります。
今回のサンプルではrecommendationsUIを使った方法を解説します。

  • recommendationsUIを使う
  • Swaggerを使う

recommendationsUIへ移動する

recommendationsUIが提供されているサイトの確認方法を紹介します。
Azureのリソースグループ内にサイトURLが記載されており、ログインする為の管理者キーも取得できます。
下記手順にてrecommendationsUIへ移動します。

■「デプロイ」➡「Microsoft-Templete」へ移動
Azure レコメンデーション機能を使ってみた-「デプロイ」➡「Microsoft-Templete」へ移動

■「出力」➡各種タグ情報の確認
Azure レコメンデーション機能を使ってみた-■「出力」➡各種タグ情報の確認

■「recommendationsUI」サイトへ移動➡「adminPrimaryKey」の入力➡ログイン完了
Azure レコメンデーション機能を使ってみた-■「recommendationsUI」サイトへ移動➡「adminPrimaryKey」の入力➡ログイン完了

レコメンデーション学習をさせる

recommendationsUIへ移動できると、実際の学習モデルを作成することができます。
下記手順にて新しい学習モデルを作成します。

■「TRAIN NEW MODEL」をクリック
Azure レコメンデーション機能を使ってみた-「TRAIN NEW MODEL」をクリック

■「CREATE NEW MODEL」画面にて必要情報を指定して「TRAIN」をクリック

  1. Description:モデルの名前
  2. BlobContainerName:BLOBのコンテナ名(inputfiles)
  3. Usage Folder:履歴のフォルダ名(trainUsage)
Azure レコメンデーション機能を使ってみた-「TRAIN NEW MODEL」をクリック

TRAINでモデル作成した後、学習にしばらくかかります。
モデル一覧のステータスは次のように変化します
「Created」➡「InProcess(学習中)」➡「Completed(完了)」

作成したモデルを使う

今回はrecommendationsUIサイトにてモデル一覧の「Score」ボタンにより実際のモデルのレコメンデーションを確認できます。
Scoreは重みづけで、実際のレコメンドの関連度を表します。
数値が大きいほど関連性が高いと判断します。
※Score0のものは抽出数になるまで、任意の商品を抽出するようになっています。

  1. Item Ids:現在の品番
  2. Number of Recommendations:レコメンドする数(初期値:10)
Azure レコメンデーション機能を使ってみた-作成したモデルを使う

参考サイト


Azure Recommendations Solution Template を使ってみる
【id:TonyTonyKun】

まとめ

大手クラウドサービス各社のAI系サービスは今後もますます充実したものになっていくと思います。

機会学習そのものの環境及びロジックの構築は、膨大な作業と時間がかかります。

手軽で拡充しやすりサービスの利用も検討していきたいものです。

今後もAI系サービスの記事を発信していきたいと思います。