2011-11-22 25 views
1

可能重複:
Where can I learn about recommendation systems?如何寫一個推薦的物品系統?

我在網站如何推薦文章和用戶對我來說,基於我「喜歡」,我跟着,我投一直有興趣up/vote down。

而且它也可以推薦的項目,當我瀏覽一個項目,「相關文章」,「誰喜歡這篇文章的人也喜歡...」

我需要一些文章和圖片來教我如何實現這樣的一個系統。非常感謝。

更新:

我得到了一個關鍵詞 「斜率一個」

+0

我覺得「奇異值分解」可能是一個相關的關鍵字。 –

回答

3

維基百科的文章,Recommender system,是一個良好的開端。此外,這Recommendation engine博客文章有一些很好的信息和插圖。

最簡單的方法是一個使用「人誰喜歡這篇文章也喜歡...」的做法。如果您跟蹤每個用戶的文章評分,並且記錄誰喜歡哪些文章,那麼您就有推薦系統的基礎。

例如,假設您正在查看文章A.系統可以查找它的索引誰喜歡文章A.從該列表中的每個用戶,它可以創建由每一個用戶喜歡的所有文章的列表誰文章A.很有可能會有重疊(也就是說,一些文章被多個人喜歡)。您的算法會記錄每篇文章有多少喜歡,然後顯示得票最多的前N個。

這個簡單的系統是出奇的有效在很多情況下,但並不完美。你會發現,特別受歡迎的文章占主導地位,即使它們與您正在查看的文章無關。有許多方法可以防止巨大受歡迎的文章佔據主導地位。一種方法是對文章的分數使用浮點數。您不需要爲每個「喜歡」的分數加1,而是添加1/sqrt(users_number_of_likes)。這樣誰喜歡,比方說,100項條款用戶,只會給1/10指向任何個人物品,但誰喜歡只有四篇文章,用戶將給予1/2點到每個。雖然這聽起來並不「公平」,但它確實傾向於削弱非常受歡迎但無關的項目的影響。

正如我所說的,這是最簡單的方法。如果您正在尋找「相關」的文章,而不是基於用戶輸入,那麼您必須爲每篇文章分配關鍵字,或者您需要某種方式來檢查文章並提取相關關鍵字。

有很多方法可以做你希望做什麼。您選擇哪一個取決於數據的性質,無論您是否在進行協作過濾,您希望花費多少時間開發它,以及您希望得到的結果有多好。