類似ユーザをレコメンドする際のシステム設計について
例を挙げて説明します。
たとえば、A,B,Cという3ユーザがいて、それぞれじゃんけんでグーチョキパーを出す確率が、
A: 20 30 50
B: 60 20 20
C: 20 40 40
だとします。(数字は%で、トータルは100%固定)
この場合、AとBよりAとCのほうが似た手を出すといえると思うので、
Cというユーザをレコメンドしたいです。
これを毎回計算すると、計算量が多く速度が出ないのではと懸念しています。
ユーザごとの類似度を事前に計算しておき、別テーブルに格納するなどは思いつくのですが、
他によい手法等ありましたら教えて頂きたいです。
ポイントとしては、
- トータルの値は固定で、カラム数も決まっている(今回でいうと、グーチョキパーを集計すると100%)
- 機能としては類似ユーザをレコメンドするのみ
- ユーザ数は1万人ほど
という感じです。
動作サーバはまだ決めていないので、スペックは出せません。
言語としてはPythonかRubyで、Webサービスを考えています。
よろしくお願いします。