2010-12-20 69 views
4

簡單的項目到項目推薦系統是衆所周知的並且經常實施。一個例子是Slope One algorithm。如果用戶還沒有評分很多項目,這很好,但是一旦他們有了,我想提供更細緻的建議。我們以音樂推薦系統爲例,因爲它們很受歡迎。如果用戶正在觀看莫扎特的作品,可以給出另一首莫扎特作品或貝多芬的建議。但是,如果用戶對古典音樂進行了很多評分,我們可能能夠在這些項目之間進行關聯,並看到用戶不喜歡人聲或某些樂器。我假設這將是一個由兩部分組成的過程,第一部分是找出每個用戶的評分之間的相關性,第二部分是從這些額外的數據構建推薦矩陣。所以問題是,它們是否可以用於這些步驟的任何開源實現或論文?除了項目之間的建議

回答

0

有兩種技術,我能想到的:

  • 列車使用Backpropagation或它的繼任者之一的前饋人工神經網絡(例如反彈傳播)。
  • 使用version space learning。這從關於用戶喜歡什麼的最一般和最具體的假設開始,並且在集成新示例時將其縮小。您可以使用術語層次結構來描述概念。這些方法

共同特點是:

  1. 您需要爲 每個用戶不同的功能。當 搜索建議時,這非常規則 出有效的數據庫查詢。
  2. 該功能可在用戶投票選擇項目時即時更新 。
  3. 尺寸沿着要劃分 輸入數據(例如具有人聲,節拍 每分鐘,音階, 無論)是到 質量分類的非常關鍵的。

請注意,這些建議來自基於知識的系統和人工神經網絡的大學課程,而不是來自實踐經驗。

2

口味可能有一些有用的東西。它移動到亨利馬烏項目:

http://taste.sourceforge.net/

一般情況下,這個想法是,給定用戶過去的喜好,要預測什麼,他們會選擇一個和推薦。您構建了一個機器學習模型,其中輸入是用戶過去選擇的內容以及每個選擇的屬性。輸出是他們將要選擇的項目。您可以通過阻止他們的一些選擇來創建培訓數據,並使用他們的歷史記錄來預測您保留的數據。

您可以使用許多不同的機器學習模型。決策樹很常見。

+0

是的,你想現在下載http://mahout.apache.org。 – 2010-12-23 22:50:00

1

一個答案是,任何推薦系統應該有一些你描述的屬性。最初,建議不是很好,而且都在這個地方。在學習口味時,建議將來自用戶喜歡的區域。

但是,您描述的協作過濾過程根本上不是試圖解決您正在嘗試解決的問題。它基於用戶的評分,並且兩首歌曲的評分也不相同,因爲它們是相似的歌曲 - 它們的評價類似,只是因爲類似的人喜歡它們。

你真正需要的是定義你的歌曲歌曲相似度的概念。它是基於歌曲的聲音?作曲家?因爲聽起來這個概念實際上並不基於評分。這是你試圖解決的問題的80%。

我認爲你真正回答的問題是,哪些項目與給定項目最相似?鑑於您的物品相似性,這是一個比推薦更容易的問題。

Mahout可以幫助所有這些事情,除了基於其音頻的歌曲相似度 - 或者至少爲您的解決方案提供開始和框架。