2011年1月28日金曜日

レコメンドシステムの設計と実装

いや、本当に作ってみようというわけじゃないですけど。
Googleが映画のレコメンド的なサービスをしている会社を買収したとかいう話もあって、私が考えるまでもなく、こういったサービスがどんどん日々生まれつつありますね。

何度も同じようなことを書いてますが、なぜこういったものがあるべきか、という動機が問題なのです。ビジネスで現れるサービスは、たいていソーシャルなもので、同じ趣味の人たちが集まる場を提供するといったものが多いです。しかし、私は自分がいちおうクリエータ側にいるつもりなので、クリエータに対する最も信用おける評価システムが出来ないかと考えるのです。
クリエータの評価はどうしても、相反する二つの極端なものさししか機能しません。一つはレコードや楽譜の売り上げ、もう一つは専門家による評価です。しかし、どちらも嘘っぽい。一番売れてる曲が一番音楽的価値が高いとは思えないし、評論家のお勧めはマニアックすぎる。
なるべく多くの人が感想を言い合って、歴史で淘汰されるスピードよりも圧倒的な速さで明瞭な評価が確立出来るのではないかと期待しているのです。

しかし、そのためには評価者の単なる多数決ではいけません。それでは売り上げと同じになってしまいます。なので、見る目がある人の意見を強めにするか、直接評価する人を一般の人が評価するような、間接評価の仕組みがいると思っています。
例えば、ある作品をシンプルに五つ星で評価するとします。星三つなら普通。五つならとても良い、一つならダメダメ、という感じです。
批評家の評価レベルが五段階(LevelA/B/C/D/E)あるとすると、最上位のLevelAの人は100人分の得票を持っている、といったように個人の持ち点が増えるようにします。ある作品の評価は、全ての持ち分を足して平均化した星の数、ということになります。
��持ち点の増え方は、もっと強い傾斜を付けても良いかもしれません)

そうすると、次にLevelAからEまでの五段階はどう決めるか、という仕様を考えなければなりません。
まず、五段階の人数配分比率をまず決めます。もちろん、最上位になるほど比率は少なくなります。私のイメージでは、1:10:100:1000:10000 みたいに桁が一つ違うくらいでいいと思ってます。
前回書いたように、評論家に対して「参考になった!」ポイントを与え、これが多いほど高いレベルに行ける、というようにします。ただし、ポイントの単純加算だと長くやっている人ほど得になるし、上位メンバーが固定化するので、数ヶ月単位でポイントはクリアするようにしても良いかもしれません。

こういった仕組みは、独自にサイトを作ってもそう簡単には人は集まらないし、うまく行かないと思います。Web APIみたいにして、サイトに対するサービスのような形にしたほうが将来的には希望があるかもしれません。
まあ、いずれにしてもこの記事は単なるアイデアで、私がこれからやろうとしているわけでは無いのですが、誰かやってみたいという人がいたら応援くらいはしますよ!

0 件のコメント:

コメントを投稿