今までの記事では、次のような内容を説明してきました。Personalizeにデータをリアルタイム登録する方法と、レシピについてこの記事では、前の記事で登録したデータと選んだレシピに基づいて、情報推薦するためのモデルを学習する方法を説明したいと思います。ソリューションを操作するソリューションは、データに対する前処理の方法や、機械学習のアルゴリズムとパラメータ(つまりレシピ)をひとまとめにした設定を作成することを指します。ソリューションの一覧を得るメソッドは、他のデータの場合と同じで、データセットグループARNを与えるだけです。post_data)end呼び出すと、最初はやはりカラのJSON配列が返ってくることでしょう。network)を採用することにしました。そのようなソリューションを作成するためのメソッドは次のようになります。post_data)endここでは、自動的に機械学習アルゴリズムを選んでくれるperformAutoMLの機能はオフにし、recipeArnでHRNNレシピを指定しています(この辺りのパラメータは引数で指定するべきですが、今回はテストのため決めうちにしました)。レシピに含まれるハイパーパラメータの値を上書きする設定をしています。ハイパーパラメータのデフォルト値や、指定できる値は次のアルゴリズムの詳細を得るメソッドで確認できます。post_data)end公式ドキュメントにもそれらの値は記載されていますが、実際の値と異なることが多い(内部でチューニングしていて、ドキュメントの更新が遅れているのかもしれません)ので、ぜひ確認することをお勧めします。指定できる値の最小値・最大値がドキュメントと実際とで異なり、そのため、ドキュメントに記載されている範囲でパラメータに極端な値を設定した実験をした時にエラーになったことがありました。引数には、レシピARNであるarn:aws:personalize:::recipe/aws-hrnnでは無く、アルゴリズムARNであるarn:aws:personalize:::algorithm/aws-hrnnを渡します。}}「sample-solution」という名前を付けてCreateSolutionを実行することで、ソリューションARNを得ることができます。"arn:aws:personalize:ap-northeast-1:123456:solution/sample-solution"}ソリューションバージョンを操作するデータを登録し、ソリューションを作成することで、機械学習アルゴリズムを実行する準備ができました。ソリューションはあくまで設定であって、学習を実行するにはソリューションバージョンを作成しなければなりません。ソリューションバージョンを作成するのは簡単で、ソリューションARNを指定するだけです。"arn:aws:personalize:ap-northeast-1:123456:solution/sample-solution/86dc1097"}これは機械学習を実行するので、とても時間がかかります。}}長めのスリープを入れて待ちましょう。JSON.parse(ret.body)['solutionVersion']end執筆者が試した時点では、この記事での設定(データはMovieLensで約10万レコード・3メガバイト、学習アルゴリズムはHRNN)で約40分ほどかかりました。statusがACTIVEになれば、学習は完了です。キャンペーンを操作するソリューションバージョンの作成は機械学習モデルを作成するだけで、まだその結果を使うことができません。機械学習結果を利用できる状態にするには、キャンペーンを作成する必要があります。公式ドキュメントでは、ソリューションバージョンをデプロイすると表現されています。キャンペーンを作成するのは簡単で、ソリューションバージョンARNを指定するだけです。post_data)endソリューションバージョンARNとキャンペーンの名前の他に、推薦情報入手のリクエストが来た場合に1秒間に処理する最低数というのを指定しなければなりません。ここでは試験的な利用のため、最小値である1を指定しています。この記事の執筆時時点で、最大値としては1秒間に500の処理ができるようです。キャンペーンの作成に成功すると、キャンペーンARNを得ることができます。Personalizeの情報推薦サービスを利用する準備が整いました。次回は、学習に使った映画情報のデータから、どのような推薦情報が得られるかを見たいと思います。