為什麼非消極性對於協同過濾/推薦系統很重要?
在我見過的所有依賴矩陣分解的現代推薦系統中,對用戶電影矩陣執行非負矩陣分解。我可以理解為什麼非消極性對於可解釋性和/或如果您想要稀疏因素很重要。但是,如果您只關心預測性能,例如在 netflix 大獎賽中,為什麼要施加非負性限制呢?這似乎比在分解中也允許負值更糟糕。
本文是在協同過濾中使用非負矩陣分解的一個被高度引用的例子。
我不是推薦系統方面的專家,但據我了解,這個問題的前提是錯誤的。
非否定性對於協同過濾並不那麼重要。
BellKor 團隊於 2009 年獲得了Netflix 獎。這是描述他們算法的論文:The BellKor 2008 Solution to the Netflix Prize。很容易看出,他們使用基於 SVD 的方法:
KDD 2008 論文 [4] 中列出了我們在 2008 年取得進展的基礎。[…] 在論文 [4] 中,我們詳細描述了三個因子模型。第一個是簡單的 SVD […] 第二個模型 […] 我們將此模型稱為“非對稱 SVD”。最後,更準確的因子模型,被命名為“SVD++” […]
另請參閱同一團隊的這篇更流行的文章 推薦系統的矩陣分解技術。他們談論了很多關於 SVD,但根本沒有提到 NNMF。
另請參閱這篇受歡迎的博客文章Netflix 更新:從 2006 年開始在家裡嘗試這個,也解釋了 SVD 的想法。
當然你是對的,還有一些關於使用 NNMF 進行協同過濾的工作。那麼什麼更有效,SVD 或 NNMF?我不知道,但這是2012 年協作過濾算法比較研究的結論:
基於矩陣分解的方法通常具有最高的準確度。具體來說,正則化 SVD、PMF 及其變體在 MAE 和 RMSE 方面表現最好,除了在非常稀疏的情況下,NMF 表現最好。