3

我想完全理解項目到項目的亞馬遜的算法,以將其應用到我的系統來推薦用戶可能喜歡的項目,匹配用戶喜歡的以前的項目。項目到項目的亞馬遜協同過濾

到目前爲止,我已閱讀這些:Amazon paperitem-to-item presentationitem-based algorithms。我還發現這question,但之後我只是更困惑。

我可以告訴的是,我需要按照下面的步驟獲得推薦的項目清單:

  1. 有我的數據與喜歡的用戶(我已經設置喜歡的項目設置= 1不喜歡= 0)。
  2. 使用Pearson Correlation Score(這是如何完成的?我找到了公式,但是有沒有任何例子?)。
  3. 那我該怎麼辦?

所以我就這個問題:

  1. 哪些項目對項目和基於項目的過濾之間的區別是什麼?兩種算法都一樣嗎?
  2. 用喜不喜歡替換排名得分是否正確?
  3. 使用item-to-item算法是否正確,還有其他更適合我的情況?

任何有關這個主題的信息將不勝感激。

回答

3

偉大的問題。

想想你的數據。你可能有一元(消費或空),二元(喜歡和不喜歡),三元(喜歡,不喜歡,未知/ null)或連續(空和一些數字刻度),或者甚至序數(空和一些序數刻度) 。不同的算法對不同的數據類型效果更好。

項目項目協作過濾(也稱爲基於項目)最適合數字或有序範圍。如果您只有一元,二元或三元數據,那麼使用關聯規則挖掘等數據挖掘算法可能會更好。

給定一個用戶矩陣和他們對項目的評分,可以計算出每個項目與其他項目的相似度。矩陣操作和計算內置於許多庫中:例如,在Python中嘗試scipy和numpy。您可以迭代項目並使用內置的矩陣計算來完成https://en.wikipedia.org/wiki/Cosine_similarity中的大部分工作。或者下載一個像Mahout或Lenskit這樣的框架,爲你做到這一點。

現在您已經爲每個項目的每個項目的相似度矩陣,您可能想爲用戶U建議項目。因此,請查看她的項目歷史記錄。對於每個歷史項目I,對於數據集標識中的每個項目,將I與ID的相似性添加到候選項目分數列表中。當您瀏覽所有歷史項目時,按降序對候選項目列表進行排序,並推薦最高項目。

要回答剩下的問題:連續的或有序的尺度會給你最好的協作過濾結果。如果你有更好的數據,不要使用「喜歡」與「不喜歡」的比例。

矩陣分解算法運行良好,如果您沒有很多用戶,並且您的評分矩陣中沒有很多更新,也可以使用用戶 - 用戶協同過濾。首先嚐試項目項目:這是一個很好的多用途推薦算法。

相關問題