我正在尋找一個簡單的建議算法來實現我的Web應用程序。很像Netflix,亞馬遜等...但更簡單。我不需要博士團隊努力獲得更好的建議指標。簡單建議/推薦算法
所以說我有:
- 用戶1喜歡Object1。
- User2喜歡Object1和Object2。
我想建議User1他們也可能喜歡Object2。
我明顯可以想出一些天真的東西。我正在尋找審查和輕鬆實施的東西。
我正在尋找一個簡單的建議算法來實現我的Web應用程序。很像Netflix,亞馬遜等...但更簡單。我不需要博士團隊努力獲得更好的建議指標。簡單建議/推薦算法
所以說我有:
我想建議User1他們也可能喜歡Object2。
我明顯可以想出一些天真的東西。我正在尋找審查和輕鬆實施的東西。
還有的建議算法很多簡單和不那麼簡單的例子優良 Programming Collective Intelligence
的Pearson correlation coefficient(稍幹維基百科文章),在可以給不錯的成果。下面是Python中的一個實現以及TSQL中的另一個實現以及該算法的一個有趣的解釋。
你可能想看看Association rule learning和Apriori algorithm。背後的基本思想是,你創建的規則就像「如果用戶像Object1,而不是用戶喜歡Object2」,並檢查他們描述(你)的實際情況。在具體的例子中,這條規則將有一個支持2(像Object1這樣的兩個用戶),並且有50%的可信度(這在2個案例中有1個是正確的)。我剛剛實現了一個基本的概念驗證(實際上是我在Hadoop上的第一步),並不難做到。您也可以看看Apache Mahout - Taste。儘管我自己並沒有使用過它。
一個樣本實現我將與K最近鄰居去。 wikipedia entry很好地解釋了它,並且鏈接到參考實現。
k近鄰算法
我創建了一個建議的文章算法所使用的關鍵字(相對於「產品購買」),以確定相關性。它需要一個關鍵字,並在該關鍵字出現的所有其他文章中運行,並根據哪些文章具有最匹配的關鍵字來生成結果。
除了明顯需要緩存這些信息之外,他還有什麼地方使用類似方法有問題嗎?
+1鏈接到源代碼。這是40行Python中的Slope One(以及詳細解釋):http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/ – 2009-12-05 16:17:39