stackoverflow / digg / redditに似たレコメンデーションシステムでウェブサイトを実装するにはどうすればよいですか?つまり、ユーザーはコンテンツを送信し、Webサイトは、アイテムの人気度に応じて、ある種の「ホットネス」を計算する必要があります。フローは次のとおりです。
- ユーザーがコンテンツを送信する
- 他のユーザーがコンテンツを表示して投票します(ユーザーの90%がコンテンツのみを表示し、10%がコンテンツに積極的に賛成または反対票を投じると仮定します)
- 新しいコンテンツは継続的に送信されます
提出されたアイテムの「ホットネス」を、できればリアルタイムで計算するアルゴリズムを実装するにはどうすればよいですか?ベストプラクティスやデザインパターンはありますか?
アルゴリズムは次のことを考慮していると思います。
- アイテムが提出されたとき
- 各投票が行われたとき
- アイテムが表示されたとき
たとえば、一定の票のトリクルを取得するアイテムは常にいくらか「ホット」なままですが、最初に送信されたときに大量の投票を受け取ったアイテムは「ホットネス」リストの一番上にジャンプしますが、その後は投票として落ちます入ってくるのをやめなさい。
(MySQL + PHPを使用していますが、一般的なデザインパターンに興味があります)。