Archive for 2月, 2009

みなさんはアマゾンでお買い物したことありますか?

お買い物をしたことのある人なら、「この商品を買った人はこんな商品も買っています」 を見たことがあるのではないでしょうか。

アマゾンの「おすすめ機能」がそれです。実は私はこれにまんまとはまるタイプです。 だからついつい薦められたものを買ってしまいます。 このお薦めの仕組みは「協調フィルタリング」といいます。

たとえば私が 夏目漱石の「坊ちゃん」 を買うとします。するとアマゾンは私に「我輩は猫である」を薦めてくれます。 夏目漱石の「坊ちゃん」を買った人は、「我輩は猫である」も買っていますよと教えてくれます。

夏目漱石は他に「三四郎」や「こころ」も書いています。にもかかわらず、なぜか「我輩は猫である」を一番に推薦してくれます。それはあたかも 「坊ちゃんを買った人は我輩は猫であるも面白いと言っていますよ。一緒に買わなくていいんですか?」 と言われているかのようです。

夏目漱石

我輩は猫である

ではなぜ「坊ちゃん」を買った人に対して「我輩は猫である」を一番に薦めてくれるのでしょうか。

それは「坊ちゃん」を買った人が下した評価の中で「我輩は猫である」の評価が一番高かったから です。本当はもうちょっと複雑な仕組み(アルゴリズム)ですが、基本はこんなところです。

この仕組みを“協調フィルタリング”と言います。 この協調フィルタリングの利点は、「本人も知らなかった物」を知ることにあります。データマイニングと呼ばれるデータ解析の技法に似ていますが、もう少しシンプルです。

最初にこの協調フィルタリングを作ったのはパロアルト研究所(WindowsとMacの元を生み出したところ)ですが、実際に使えるものとしてネット上で動かしたのはアマゾンです。実はアマゾンは凄いことをけっこうやっているんです。(アフィリエイト考えたのもアマゾンさんです) たしかにアマゾンは当初より「我々は本屋ではなくテクノロジー企業だ。」を標榜していました。それを地で行った感じです。

さて、このとても面白い協調フィルタリング。火鉢屋でも使えないかなと思いました。 ただうちは商品点数も限られるし、火鉢は火鉢でしかないのであまり効果は発揮できないと思います。ただ実装できれば楽しそうです。

このような難しいものはとても自分では作れません。どこぞの優秀な人が作り上げ、公開してはいないかと思い探してみました。

そうしたらなんと、それっぽいものがありました。 名前はコラボレイティブ・フィルタリング・エンジン、略してCOFE。 なかなか粋ですな。

COFE

まだまだバージョンは0.4ですので、作られて間もない感じです。

Coolaborative Filtering Engin

Java1.4をサポートしていればプラットフォームは選ばないようでうす。あとはMySQLが入っていればOKと。 つまりマックのBSDでApacheでもWindowsのIISでもOKということですね。こんど火鉢屋のシステム担当に検証してもらおうかな。

まだ日本語でこのシステム動かした人を知りませんが、もし自分はテストしたよ。という方がいたらご一報ください。 楽しみにしています。

& Drupalも使ってみたくなった。