Asial Blog

Recruit! Asialで一緒に働きませんか?

PHPで使えるレコメンドエンジン

カテゴリ :
バックエンド(プログラミング)
タグ :
Tech
PHP
皆さん、こんばんは。笹亀です。

先日、MacBookProの13インチでRetinaディスプレイを搭載したとっても魅力的なモデルが発表されました。
自分のMacBookProが13インチでもう3年くらい使用しているので、買い替えたいと悩んでます。
PCはエンジニアの商売道具ですから、多少のわがまましても購入してもバチはあたらないかと思ってます^^;

本日はレコメンドエンジンについてご紹介したいと思います。
主にPHPで利用できるという目線で使ったことがあるもの、使ったことがないものの両方をご紹介します。
レコメンドというのはよく「この商品を買った人はこの商品も買ってます」とか見受けるかと思いますが、商品などをおすすめするような機能のことを言います。
ただ、一般的に無料(オープンソース)で提供されている独自のロジックにより複雑な計算などをさせてレコメンド機能を実装したい場合などにはあまりむかない場合もございます。
今回ご紹介するレコメンドエンジンもレコメンドとして提供するシンプルな機能として提供することを想定しております。
 ※レコメンドエンジンの機能を使いこなせれば、複雑なレコメンドも可能かもしれません(私は使いこなすというレベルには至っておりません・・・)

それではいくつか実際にご紹介していきたいと思います。

■Cicindela
livedoorさんが作成したレコメンドエンジンでPerl + MySQL (memory engine) による高速な動作が売りです。
タグやカテゴリなどを考慮しており、複数の独自アルゴリズムを組み合わせてアクセスログを追跡してレコメンデーションを生成するといったことも行えます。
先ほどの所感で記載させていただいた通り、使いこなすことができれば複雑なレコメンドや様々な要求にも柔軟に対応できます。
参照:http://labs.edge.jp/cicindela/

私自身もCicindelaは利用したことがございます。現在も弊社のサービスでトレイン・トレイン(http://traintrain.jp)でも他のブログへの閲覧誘導の際に利用しています。
実際にWebAPIを利用してレコメンドデータの登録・取得をおこなっております。


■vogoo
PHPのスクリプトからrequireして使うタイプのPHPライブラリのようです。
MySQL以外にもドライバーが用意されていることから他のDBでも利用可能かと思います。
ただ、2005年に作成されたもので、開発はすでに終了しておりメンテなども行わておらず、PHP5では動作しない可能性が高い。
ここでは紹介だけにしておきます。
参照:http://sourceforge.net/projects/vogoo/



■OpenSlopeOne
Vogooを基に新しく作成したとの記載があり、vogooのようにPHPスクリプトからrequireして使用することができます。
違う点はスクリプトを見た感じPHP5のクラスの書き方がされていることからPHP5でも動作すると思います。
vogooもOpenSlopeOneもドキュメントがとても不足しているというかありません。
参照:http://code.google.com/p/openslopeone/



他にもレコメンドエンジンはいくつもあると思います。
ロジックを考えて実装するのもよいですが、シンプルなものであれば手軽に用意されているエンジンを利用するとWeb開発の効率化につながるのではないでしょうか。
この中ではライブドアさんが使っていたCicindelaがよさそうです。
他にも皆様のお薦めのレコメンドエンジンがございましたら、是非教えてください!