推薦システムを構築する手順書 with azure machine learning

132
Azure Machine Learning による 推薦システム構築手順書 1 日本マイクロソフト テクニカルエバンジェリスト 大田 昌幸 : @masota0517 江田 周平 : @shumach5 安藤 祐貴 : @ycnyuki 清水 : @shimi016

Upload: masayuki-ota

Post on 07-Aug-2015

4.511 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Azure Machine Learning による推薦システム構築手順書

1

日本マイクロソフトテクニカルエバンジェリスト大田 昌幸 : @masota0517 江田 周平 : @shumach5

安藤 祐貴 : @ycnyuki清水 磨 : @shimi016

本手順書の目的・前提条件本手順を実施して得られること

Azure Machine Learning 上で、推薦システムを構築する方法を学べる

本手順で扱うモデル

各ユーザーの映画の嗜好を学習しユーザーが興味を持ちそうな映画を推薦する

参考資料

手順書内のパラメタなど詳細な解説はこちらをご参照ください (英語)

http://gallery.azureml.net/Details/3a02931f94114f47b4512dd9179b515e

参考資料2

Azure Machine Learning の基礎的な使用方法、数値予測をするための手順が

このスライド(http://www.slideshare.net/masayuki1986/azure-ml-46562993)で学べます

前提条件

Microsoft Azure のサブスクリプションが必要になりますので、無料評価版をご活用ください

http://azure.microsoft.com/ja-jp/pricing/free-trial/

2

この手順書を通して開発するもの

3

ユーザーへ映画を推薦するシステムを作成します

Azure Machine Learning

1. Azure Machine Learning へ推薦システムのテンプレートを

インポートする 2. インポートした Experiment の解説

3. Web API の公開

4. Web アプリの開発とWeb API の呼び出し

この手順書を通して開発するもの

4

ユーザーへ映画を推薦するシステムを作成します

Web アプリ完成イメージ

ユーザー ID に応じておすすめの映画を最大 5 つ提示します

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

5

この手順書を通して開発するもの

6

ユーザーへ映画を推薦するシステムを作成します

Azure Machine Learning

1. Azure Machine Learning へ推薦システムのテンプレートを

インポートする 2. インポートした Experiment の解説

3. Web API の公開

4. Web アプリの開発とWeb API の呼び出し

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

7

手順書

8

1. ブラウザで以下のページへアクセスしますhttps://manage.windowsazure.com

3. [+新規]をクリックします

2. 左のような画面が表示されます

手順書

9

2.ワークスペース名を入力します。(ユニークな名前となる必要があります。)

1. [データサービス]-[MACHINE LEARNING]-[簡易作成]

の順にクリックします。

3.データ保存領域であるストレージに任意のアカウント名を設定します。

(ユニークな名前となる必要があります。)

9

手順書

10

しばらくすると、ワークスペースの作成が完了します

ワークスペースの作成が完了し、Azure ML を使用する準備が整いました。

手順書

11

先ほど作成したワークスペースの名前の横にある [→]をクリックします。

手順書

12

[ML Studio にサインイン]をクリックします。

手順書

13

しばらくすると、ML Studioの画面が表示されます。

ML Studio へのサインインが完了し、ソリューションを開発する準備が整いました。

手順書

14

ML Studio 上で、[+ New]をクリックします。

手順書

15

検索ボックスで “movie recommendation”を検索します。

“Recommender: Movie recommendation”が表示されます。

手順書

16

“OPEN IN STUDIO”をクリックします。

手順書

17

モデルが展開されたことを確認します。

作成されたモデルは該当の箇所のモジュールが重なって表示されます。

図のように重ならないように適宜モジュールをドラッグし配置します。

手順書

18

[RUN]をクリックします。作成したモデルで学習が始まります。

実はこのままで推薦モデルを使用できるのですが、今後応用するために各モジュールの解説を行います

この手順書を通して開発するもの

19

ユーザーへ映画を推薦するシステムを作成します

Azure Machine Learning

1. Azure Machine Learning へ推薦システムのテンプレートを

インポートする 2. インポートした Experiment の解説

3. Web API の公開

4. Web アプリの開発とWeb API の呼び出し

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

20

このテンプレートの概要

21

推薦のために使用するデータ

モデルの訓練

今回はMatchbox というモジュールを使用します。このモジュールは “2 つのアイテム”,”そのアイテム間の関係”という 3 つの学習データが必要です。

今回は “人”,”映画”,”人から映画への評価”というデータを使用し、映画の推薦をします。

データの用意・編集は上記を想定して行います。

データの編集

結果の出力・評価

各モジュールで実施していること

22

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

データのインポート

23

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

24

“Movie ID”、”Movie Name” の列からなるデータセットです。

(実体は、CSVファイルです。)

データのインポート

25

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

26

“UserId”、”MovieId”、”Rating”、“TimeStamp” の列からなるデータセットです。

(実体は CSVファイルです。)

手順書

27

”Launch column selector” から“Rating”を選択します。

このモジュールではデータの列の型を変更します。

“Rating “の型が、Numeric型になっていますので、プロパティ画面のとおり設定し、

Integer型に変換します。(後述する “Matchbox”モジュールでは、

Numeric型を扱えないため、本処理を行っています。)

データのクレンジング

28

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

29

“Movie Ratings”と “IMDB Movie Titles”のデータセットを Join します。

Join の際は、画面右の Propertiesペインの通り、Inner Joinを実施します。

Join の際 ”Launch column selector” から“MovieId”を選択します。

”Launch column selector” から“MovieID”を選択します。

”Join type” から“Inner Join”を選択します。

手順書

30

Join したデータの中から使用する列を選択します。

”Launch column selector” から“UserId”、”Movie Name”、”Rating”

の列を選択します。

手順書

31

データセットから重複する行を削除します。

”Launch column selector”で、”UserId”、”Movie Name” を設定します。

”UserId”と ”Movie Name”が重複している行の一方が削除されます。

あるユーザーが同じ映画に複数回評価をしているという状況を回避できます。

学習用データ/評価用データの分割

32

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

33

“Fraction of training-onl…” を 0.75、”Fraction oftest user rati...”を 0.25 に設定します。

75 % のデータがトレーニング用データとして左のポートから出力され、25%が検証用データとして右

側のポートから出力されます。

加工したデータセットのうち、トレーニングの用データと検証用データをそれぞれ左右の

ポートから出力します。

手順書

34

ここをクリックして、[Visualize]をクリックします。

後ほど推薦された情報と比較するために、どのユーザーがどのような映画を評価しているかを

確認してみましょう。

14887というユーザーはOne Flew Over the Cuckoos Nestという映画を高く評価しています。この映画をWebで検索し、

どのような動画か調べてみましょう。

モデルの訓練

35

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

36

“Matchbox” というアルゴリズムを使用します。“Mathbox”はAzure ML の提供する推薦システム用のアルゴリズムです。

左の入力ポートから訓練データを入力し、学習させます。

“Number of traits” の数を 20 と設定します。Traits : アルゴリズム内で利用する変数の数。

“Number of recommendation Iteration” の数を10 と設定します。

Iteration : アルゴリズム内で処理を繰り返す回数。

モデルの評価

37

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

38

学習させたMatchbox モジュールを使用します。学習させた “Matchbox” モジュールと

データセットを入力とします。

”Rating Prediction”を選択することで各ユーザーの任意の映画に対する“Rating”の予測値を出力します。

過去のデータから「映画がどのくらいの評価を受けそうか」

を予測する際に活用します。

手順書

39

実データとレコメンドデータを基にMAE値(絶対平均誤差)、RMSE値 (平均二乗誤差)

を求めます。

左図に示した赤丸の箇所をクリックし、”Visualize”をクリックすることで

MAE値、RMSE値の実際の結果を確認できます。

モデルの評価

40

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

41

学習させたMatchbox のモジュールを使用します。“Matchbox” モジュールとデータセットを入力としま

す。

“From Rated Items for model”を選択することでランク付けされた映画からのみ推薦します。

“Item Recommendation”を選択することで各ユーザーへ、推薦すべき映画を予測します。

推薦する映画数の最大値を選択します。ここでは 5 つとします。

推薦する映画数の最小値を選択します。ここでは 2 とします。

手順書

42

NDCG値を求めます。(1 に近づくほど精度の高いモジュールが作成できて

いることになります。)

左図の赤丸の箇所をクリックし、”Visualize”をクリックすることで

NDCG値の実際の結果を確認できます。

データのクレンジング

43

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

44

データセットの中で重複している行を削除します。

”Launch column selector”で、”UserId”を設定します。

”UserId”が重複している場合一方を削除します。

手順書

45

データの量 (行数)を制限します。

“Partition or sample mode” を “Head” に、”Number of rows to select” を 100 と設定します。入力されたデータの頭から 100 行を取得します。

手順書

46

入力されたデータセットのうち、必要な列のみ保持します。

”Launch column selector”で、”UserId” のみ指定します。

”UserId”列のみのデータセットが作成されます。

モデルの評価

47

ユーザーの各映画に対する評価データのインポート

学習用データ/評価用データを分割する (例: 75% : 25%)

モデルの訓練(学習アルゴリズムの訓練)

データのクレンジング(不要・不正なデータの削除)

モデルの評価1ユーザーの好みの推測

映画のデータのインポート

モデルの評価2アルゴリズムの評価

モデルの評価3オススメの映画の提示

データのクレンジング(不要・不正なデータの削除)

手順書

48

学習させたMatchbox のモジュールを使用します。“Matchbox” モジュールとデータセットを入力としま

す。

“Item Recommendation”を選択します。各ユーザーに推薦すべき映画を予測します。

“From All Items”を選択します。全映画のデータから、推薦する映画を決定します。

*スライド 81 で同じモジュールを使用していますが、 81 では “From Rated Items for model”が設定されており、評価された映画からのみ推薦する

映画を決定しています。

各ユーザーに対して、推薦する映画数の最大値を選択します。

ここでは、最大 3 つとします。

手順書

49

左図の赤丸の箇所をクリックし、”Visualize”をクリックすることで各ユーザーへ推薦すべき映画の

結果を確認できます。

手順書

50

User ID, 1番推薦したいアイテム,2 番目に推薦したいアイテム…,

という順序でデータが表示されます。

この手順書を通して開発するもの

51

ユーザーへ映画を推薦するシステムを作成します

Azure Machine Learning

1. Azure Machine Learning へ推薦システムのテンプレートを

インポートする 2. インポートした Experiment の解説

3. Web API の公開

4. Web アプリの開発とWeb API の呼び出し

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

52

手順書

Web API で活用するために、学習済みの “Matchbox” を保存します。左図に示した赤丸の箇所をクリックします。

“Save as Trained Model”をクリックします。

手順

54

モジュールを任意の名前で保存します。ここでは仮に ”Sample movie Recommender”

と入力します。

右下のボタンをクリックし、モジュールを保存します。

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

55

手順書

56

ML Studio 上で、[+ New]をクリックします。

手順書

57

“Blank Experiment” を選択します。新規 Experiment が作製されます。

手順書

58

画面左の検索ボックスに“Sample Movie Recommender”

と入力し、モジュールを検索します。

手順書

59

検索結果で表示された “Sample Movie Recommender”を画面中央のスペースにドラッグ

& ドロップします。

これ以降の手順でも、”検索 + ドラッグ&ドロップ”を組み合わせて捜査を行います。

手順書

60

“Movie Ratings” のデータセットをドラッグ & ドロップします。

手順書

61

1. “Remove Duplicate Rows“ モジュールをドラッグ & ドロップで配置します。

“Movie Ratings”データセットと接続します。

2. [Launch column selector]をクリックします。

手順書

62

2. 左図のように設定を行います。

この設定を行うことで、”UserId”が重複しているデータがある場合

一方のデータを削除します。

1. [Select columns] 画面が表示されます。

手順書

63

2. “Partition or sample mode” を “Head” に、”Number of rows to select” を 100 と設定します。入力されたデータの先頭から 100 行を取得します。

1. “Partition and Sample” のモジュールをドラッグ & ドロップし、

“Remove Duplicate Rows”モジュールと接続します。

手順書

64

1.“Project Columns” のモジュールをドラッグ & ドロップします。

“Partition and Sample”モジュールと接続します。

2.”Launch column selector”で、”UserId”を設定します。

”UserId”の列のみ保持します。

手順

65

1. “Score Matchbox Recommender” のモジュールをドラッグ & ドロップします。

“Sample Movie Recommender” 、“Project Columns”モジュールと接続します。

3. “From All Items”を選択します。全映画のデータから

推薦すべきの映画を決定します。

4.各ユーザーに対して、推薦する映画数の最大値を選択します。

ここでは、最大 5 つとします。

2.“Item Recommendation”を選択します。各ユーザーに推薦すべき映画を予測します。

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

66

手順書

67

“Web service input” のモジュールをドラッグ & ドロップします。

“Score Matchbox Recommender” と接続します。

“Web Service output”のモジュールをドラッグ & ドロップします。

“Score Matchbox Recommender” と接続します。

手順書

68

“Run” をクリックします。適切に Experimentが構築されている場合

“PUBLISH WEB SERVICE” のボタンがクリックできるようになります。

手順書

69

“PUBLISH WEB SERVICE” をクリックします。

手順

70

左図のような画面が表示されていることを確認します。

手順書

71

“REQUEST/RESPONSE” をクリックします。APIの詳細・APIを操作するためのサンプルコードを

確認することができます。

手順書

72

“Test” をクリックします。このボタンから、テスト用の APIを実際に利用するこ

とができます。

手順書

73

“USERID” を1と入力します。

右下のボタンをクリックします。Test用の APIが実際にリクエストされます。

手順書

74

一定時間待機した後、結果が表示されます。JSON形式でデータが返ってきていることを確認します。

手順書後半でこのWeb ページへ戻ってくるので、ブラウザ上でこのページを閉じないでください。(新しいページは新規タブで表示してください。)

この手順書を通して開発するもの

75

ユーザーへ映画を推薦するシステムを作成します

Azure Machine Learning

1. Azure Machine Learning へ推薦システムのテンプレートを

インポートする 2. インポートした Experiment の解説

3. Web API の公開

4. Web アプリの開発とWeb API の呼び出し

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Web アプリの作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

76

手順書

77

1. ブラウザで以下のページへアクセスしますhttps://manage.windowsazure.com

※ML Studio の画面は後ほど参照するため、この画面は別タブで表示させてください。

3. [+新規]をクリックします

2. 左のような画面が表示されます

手順書

78

2. URLを入力します。(ユニークなURLとなる必要があります。)

1. [コンピューティング]-[WEBアプリ]-[簡易作成]

の順にクリックします。

3. “新しい App Service プランの作成”を選択します。

5. WEBアプリの作成をクリックします。

4. “日本(西)”を選択します。

手順書

79

しばらくすると、Web アプリの作成が完了します

実際にブラウザから動作を見てみましょう[参照]をクリックします。

手順書

80

新しいタブが開き、左図のような画面が表示されたら、

Web アプリは正常に動作しています。

このセクションの手順は完了です。

このままではただの綺麗なページなので、Azure ML で公開した API へアクセスするためのプログラムをこのWebアプリへ展開していきます。

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

81

手順書

82

Azure ML の API へアクセスするために「、これから作成済みのサンプルアプリケーションを

GitHub からインポートします

GitHub はオンラインのソースコード置き場です。

この矢印をクリックします。

手順書

83

ソースコードをインポートするために、[ソース管理からのデプロイの設定]を

クリックします。

左図のようなページが表示されます。

手順書

84

画面を下にスクロースし、[外部レポジトリ]を選択します。

この矢印をクリックします。

[ソースコードの位置]画面が表示されます。

手順書

85

ここをクリックします。

[発行の設定]画面が表示されます。

[レポジトリのURL]に下記URL を入力します。入力間違えに気を付けてください。

https://github.com/NT-D/AzureML_Recommend_Sample

手順書

86

左のような画面が表示されます。30秒ほど経過すると次の画面に遷移します。

手順書

87

左のような画面が表示されればインポートは完了です。

実際にブラウザから動作を見てみましょう[参照]をクリックします。

手順書

88

左のような画面が表示されます。

先ほどの手順で表示した青いWebページが表示される場合があります。その場合には [F5]キーなどを何度か押し、

画面を読み込みなおしてください。

この部分を使うと Azure ML の API を呼び出せますが、今のままでは動きません。

Azure ML API の URL, Keyは人によって異なるので、それを指定してあげる必要があるためです。

これから、それぞれの URL, Key を設定していきます。

手順書

89

Azure の管理画面に戻ります。

[構成]をクリックします。

手順書

90

[構成]画面が表示されます。

手順書

91

画面を下にスクロールし、[アプリケーション設定]の箇所を確認します。

私の作成したサンプルアプリは、ここに入力された値を使用します。

API の URL や Key など、Web サイトを訪問したユーザーから隠したい情報を記載する際に [アプリケーション設定]は便利

なので、今後活用してみてください。

手順書

92

左側の[キー]の部分に以下 2つの値を入れます。アプリ内でも “apiUrl”,”apiKey” という名前で識別するようにしています。

• apiUrl• apiKey

大文字・小文字の違いに気を付けてください。次に、Azure ML API の url, keyを確認します。

手順書

93

ここに API keyが表示されるので、コピーします。

※私の API key は隠しています。

Azure ML の APIページを表示します。

手順書

94

apiKeyの値に、コピーしてきた文字列を貼り付けます。次に URL にも同じ操作を行います。

※大切な情報なので資料では塗りつぶしています。

手順書

95

Azure ML の APIページを表示します。

[REQUEST/RESPONSE]をクリックします。

手順書

96

APIの詳細な解説ページが表示されます。

ここに書かれている URL をコピーします。

※大切な情報なので資料では塗りつぶしています。

手順書

97

apiUrlの値に、コピーしてきた文字列を貼り付けます。※大切な情報なので資料では塗りつぶしています。

手順書

98

[保存]ボタンをクリックして設定を保存します。これで Azure ML の API を正常に呼び出せるよう

になりました。

このままでも動作するのですが、みなさんのWeb サイトが多くの人にアクセスされたときに活躍する Azure の機能を学びます。

手順書

99

画面を上にスクロールし、この画面を表示させます。

[スケール]をクリックします。

手順書

100

[スケール]画面が表示されます。この画面ではWeb アプリのパワーや台数を

簡単に変更できます。

[STANDARD]をクリックします。

手順書

101

左のように画面が変わります。

この部分を変更していきます。

手順書

102

試しに、インスタンスサイズを “L”に変更してみましょう。

また、インスタンス数を “2”に変更してみましょう。

[保存]ボタンをクリックします。たったこれだけの操作で、

Web アプリのパワーと数を増やせました。

手順書の流れ

1. ML Studio へ推薦システムのExperimentをインポートする手順の解説

2. インポート後の Experiment の解説

3. Web API の公開方法の解説

3-1. 学習したモデルの保存

3-2. Web API 公開用の Experiment の作成

3-3. API として公開

4. Web アプリケーションからの API 呼び出し

4-1. Azure Web Apps の作成

4-2. GitHub からアプリケーションのインポート・Web Apps 設定

4-3. アプリケーションから API 呼び出し

103

手順書

104

[参照]をクリックし、Web アプリを表示させます。

手順書

105

この部分を操作していきます。

左の画面が表示されます。

手順書

106

上図のようにテキストボックスに任意のユーザーID を入力後、[ML API 呼び出し]ボタンをクリックすると、

下図のようにユーザーにお勧めの映画が表示されます。

※時間がかかることもあります。※今回は 14887 のユーザーで試しました。

The Shawshank Redemption とはどのような映画かをWeb で調べ、このユーザーが高く評価していた One Flew Over the Cuckoos Nest と比較し

てみてください。

手順書

手順は以上で終了です。

お疲れ様でした!!

107

参考資料

• Azure ML のチュートリアルやビデオが紹介されているページがこちらまずは勉強してみたいという方はご活用ください。https://studio.azureml.net/

• 推薦システム以外にも様々なシステムをインポートできます。もっと触ってみたいという方はご活用ください。http://gallery.azureml.net/

108

Microsoft Azure SQL Database とAzure Machine Learning の連携

109

本手順書の目的

本手順書の目的

Web サイトのバックエンドで利用されることがある SQL Database と

Azure Machine Learning を連携させる手順を通して、

実運用環境で推薦システムを組むための基礎を学びます。

本手順書を通して得られること

Azure SQL Database のインスタンス作成方法

SQL Database と Azure Machine Learning の連携方法

(もともと CSV でインポートしていたデータを SQL データベース経由でインポートする手順を紹介します。)

110

手順書の流れ

1. SQL Database インスタンスの作成

2. SQL Database へサンプルデータのインポート

3. SQL Database と ML Studio の連携

111

手順書の流れ

1. SQL Database インスタンスの作成

2. SQL Database へサンプルデータのインポート

3. SQL Database と ML Studio の連携

112

手順書

113

1. ブラウザで以下のページへアクセスしますhttps://manage.windowsazure.com

3. [+新規]をクリックします

2. 左のような画面が表示されます

手順書

114

1. [データサービス]-[SQL データベース]-[カスタム作成]をクリックします。

手順書

115

1. 任意の名前を設定します。ここでは例として、”testDB”としています。

2. [Web]もしくは [BUSINESS]を選択します。

この後利用するWeb 上のクエリ発行画面を使用するためです。

[BASIC]などはWeb 上のクエリ発行画面は使用できません。

3. “新しい SQL データベースサーバー” を選択します。

4. ここをクリックし、データベースを作成します。

手順書

116

1. 任意のログイン名、パスワードを入力します。

2. “日本 (西)”を選択します。

3. ここをクリックします。

手順書

117

1. しばらくすると、SQL データベースのインスタンスが完成します。

ここまでの手順で、データを保存し、ML Studio と連携するための

DB が完成しました。

手順書の流れ

1. SQL Database インスタンスの作成

2. SQL Database へサンプルデータのインポート

3. SQL Database と ML Studio の連携

118

手順書

119

1. 先ほど作成したSQL データベースのインスタンスを選択します。

2. インスタンスを選択後、[管理]をクリックします。

手順書

120

1. 現在作業している PC からDB を操作するためにファイアウォールルールを変更する旨が表示されますので、[はい]をクリックします。

手順書

121

1. ファイアウォールの設定が完了した旨が表示されます。

DB 管理画面を開くために、[はい] をクリックします。

SQL Azure の構築

122

1. ユーザー名・パスワードを入力します。

この画面の操作は Chrome 以外のブラウザで行ってください。

2. [ログオン]をクリックします。

手順書

123

1. 左のような画面が表示されます。

2. [新しいクエリ]をクリックします。

手順書

124

1. クエリの編集画面が表示されます。

2. 下記 URL へアクセスし、テキストファイル内のサンプルクエリをコピーします

http://1drv.ms/1QeqNjm

手順書

125

1. 左図のようにクエリを貼り付けたうえで、[実行]ボタンをクリックします。

クエリを張り付けても[実行]ボタンがグレーアウトしている場合には [Ctrl+A]キーなどでクエリ全体を

選択してみてください。

手順書

126

1. エラーが表示されず、このような文字が出力されれば成功です。

手順書の流れ

1. SQL Database インスタンスの作成

2. SQL Database へサンプルデータのインポート

3. SQL Database と ML Studio の連携

127

手順書

128

ML Studioの画面へログインします。

先ほど作成した Experimentをクリックし、Experiment の画面を表示させます。

手順書

129

1. “IMDB Movie Titles” データセットを右クリックし、[Delete]を選択します。

このデータセットが削除されます。

手順書

130

1. [Reader]モジュールを検索し、ドラック&ドロップして挿入します。

[Reader] と [Join]モジュールを接続します。

手順書

131

1. [Data source]を “Azure SQL Database”と設定したうえで、ご自身の DB の設定を

入力します。

2. 以下のように、該当テーブルの全件を全て取得するクエリを記載します。select * from titles

3. [RUN] をクリックします。実行の結果、SQL データベースを使う場合もアイテムが推薦されていることを確認します。

手順書

手順は以上で終了です。

お疲れ様でした!!

132