Recommendations APIの作成
Azure上から作成します。 新規から検索窓に「Recommend」と入力します。
すると、Recommendations APIが一番上に表示されますので、選択して作成ボタンを押します。
名前、サブスクリプション、場所(米国西部のみ)、価格レベル、リソースグループを設定します。
最後にサービス改善の為にMSが情報を利用する事に同意するチェックを入れた後で、作成を押します。
これでRecommendations APIが作成されます。
Recommendations APIを実行してみる
Recommendations APIを作ったところで、早速APIを動かしてみましょう。
Recommendations APIを使ったサンプルがGitHubに用意されています。
こちらをダウンロードしましょう。
https://github.com/microsoft/Cognitive-Recommendations-Windows
このサンプルでは、レコメンドに使用される学習データのファイルの取得、 ビルド、そしてRecommendationまでが一連の処理の中で行われるようになっています。
ダウンロードしたら、\Cognitive-Recommendations-Windows\Sample\RecommendationsSample.slnをクリックして、 ソリューションを開きます。
開きましたら、SampleApp.csを開き、37行目のアカウントキーに先程作成したRecommendations APIのキーを入れましょう。
尚、Recommendations APIのキーは、Azure上からRecommendations APIを選択し、Keyメニューを開くと記載されています。
キーを入れたら、早速実行をしましょう。 ダイアログが表れて、処理が始まります。
このデモでは、実行すると、モデルを作成し、/Sample/Resources/配下のファイルを取得してビルドを実行します。
実行時間は大体30分程度で、ここでモデルID、ビルドIDが生成されます。
また、モデルとビルドの生成が完了したら、今度はそのままレコメンド処理が走ります。
APIで簡単にレコメンド
このサンプルについてもう少し詳しくお話ししましょう。
このサンプルでは、2種類のレコメンデーションを実施します。
・Item to Item (I2I)のレコメンデーション
・User to Item(U2I)のレコメンデーション
では、このレコメンドをどの処理を行っているかというと、SampleApp.csの206行目のGetRecommendationsSingleRequestメソッドで行われています。
ここでは、RecommendationsApiWrapperクラスと、モデルID、ビルドIDを引数として渡します。
尚、RecommendationsApiWrapperクラスは、RecommendationsApiWrapper.csに記載されています。
肝心のAPIの呼び出しはどこで行っているかというと、212行目と、232行目です。
212行目のGetRecommendationメソッドではアイテムIDを渡し、 232行目のGetUserRecommendationsメソッドではユーザーIDを渡しています。
この両方ともRecommendationsApiWrapperクラスのメソッドです。
ではでは、RecommendationsApiWrapper.csを覗いてみましょう。
342行目からが、I2Iのレコメンドを行うGetRecommendationの定義です。
uriの生成で、RecommendationsAPIのURLに、モデルIDとアイテムIDを渡しています。
一方、377行目からのU2Iのレコメンドを行うGetUserRecommendationsでは、アイテムIDの代わりに、ユーザーIDを渡しています。
渡すパラメータの違いで、I2I、U2Iかを制御しているのです。 後の処理はどちらも同じです。
最後に
いかがでしたでしょうか。
レコメンドもAPIで手軽にできるようになっています。
サンプルはすぐに試せるので、興味がある方は試してみてください。