Prediction.ioっていうのは機械学習をするオープンソースサーバーです。機械学習をまったく分かってない私でもうまく使えるくらい簡単だから助かります。
なにができるのかって言うと、個別のユーザーが見た商品からおすすめ商品のリストを作るとか、関連商品リストとか、あるいは評価や人気などでランキングを作るとか。そして私はそれでButaiの関連聖地を作ってみた。
Prediction.ioサーバーの構造は大体こんな感じ:
Events --> [Event server] --(train + deploy)--> [Engine] --> Prediction
http://docs.prediction.io/datacollection/eventapi/
pio eventserver
を実行すれば、イベントサーバーが起動されます。
送信って言ってもただのリクエストですから、SDKなくても簡単に送信できます。
まあでもSDKがあるなら使うほうが便利ですね、公式SDKはPHP/Python/Ruby/Javaしかないけど、ButaiはCoffeeScriptで書かれたから、非公式のpredictionio-driverを使いました。
http://docs.prediction.io/deploy/
テンプレートを選んでエンジンを勉強させる。テンプレートにはアルゴリズムが付いてます、Butaiで使ったのはSimilar productですけど、ランキングとか作りたいなら別のテンプレートを選べばいいです。
基本的な場合はそれだけで動くはずだけど、もっと高級の機能が欲しいければ自分でそのテンプレートを改修するしかないです。
あとはpio build; pio train; pio deploy
で勉強させてデプロイをする。
テンプレートごとに予測エンジンに送るリクエストのフォーマットが違うけど、私が使ったSimilar productだとこんな感じのjsonを送ります。
{ "items": ["p1"], "categories":["a1"], "num": 4 }
聖地1に似てる他の聖地を四つ貰う意味です、a1って言うのは作品の番号で、この場合は偽物語です。もちろん、複数の聖地と複数の作品を同時に検索することもできます、むしろそっちのほうがエンジンの本当の力を発揮できる気がします…
というわけで、機械学習をまったくわからない私でも使えるくらい簡単だからみんなも興味があったら使ってみよう。