itemKNN發展史----推薦系統的三篇重要的論文解讀
本文用到的符號標識
1、Item-based CF
基本過程:
- 計算相似度矩陣
- Cosine相似度
- 皮爾遜相似系數
- 參數聚合進行推薦
根據用戶項目交互矩陣 \(A\) 計算相似度矩陣 \(W\):
這樣,用戶對整個項目列表的偏好值可以如下計算:
\[{ {\tilde a_i}^T}={ a_i^T} \times W \]
例如,對於 j 號物品,用戶的偏好值如此計算:
\[{ {\tilde a_{(u,j)}}}=\sum_{i\in { a_u^T}}{ { a_{(u,i)}}}W_{(i,j)} \]
由於交互矩陣 \(A\) 的稀疏性,矩陣 \(W\) 也應該是稀疏的。
2、SLIM: Sparse Linear Methods for Top-N Recommender Systems
- 現有的兩種推薦系統
- 基於鄰居的協同過濾(代表,item-based CF)
【特點】:能快速生成推薦,推薦質量不高,沒有從數據中學習。 - 基於模型的方法(代表,矩陣分解 MF 模型)
【特點】:模型訓練慢,推薦質量高。
- 基於鄰居的協同過濾(代表,item-based CF)
相比於以上兩種方法,SLIM 既高效,推薦質量又高。
2. SLIM 關鍵思想
- 保留 item-KNN 的稀疏矩陣 \(W\) 的特點。
- 通過從 \(A\) 中自學習矩陣 \(W\) 來提高推薦性能。
3. 學習過程
\[L(\cdot) =\frac{1}{2} ||A-AW||_F^2+\frac{\beta}{2} ||W||_F^2+\lambda||W||_1 $$$$ {subject\ \ to\ \ }W\geq0, {diag}(W)=0 \]
其中:
- \({diag} = 0\) 約束同一項目與自己的相似度不加入計算。
- \(l1\) 正則化約束使得矩陣$ W $稀疏
- 弗羅貝尼烏斯范數類似於矩陣的平方,用來防止數據過擬合
可以看到,實際上這個過程是可以並行執行的。
SLIM 的 paper 中使用了坐標下降和軟閾值的方法來實現問題的求解。
使用特征選擇可以減少 SLIM 的計算量。文章中使用了item-KNN 的方式選擇了與待估項目相似度靠前的作為特征選擇方式。
3、FISM:Factor item Similarity Models for Top-N Recommender Systems
論文主要完成了以下四個工作:
- 將基於項目的隱因子的方法擴展到 top-N 問題,這使得它們能夠有效地處理稀疏數據集;
- 使用結構方程建模方法評估基於項目的隱因子方法。
- 同時使用均方誤差和排名誤差來評估該模型
- 觀察各種參數的影響,因為與偏置,鄰居協議和引起模型的稀疏性有關。
- 相關工作
- SLIM
- NSVD(rating prediction)
\[\hat r_{ui}=b_u+b_i+\sum_{j\in \mathbb{R}_u^+} {p}_j q_i^T \]擴展了item-kNN,學習item之間的相似度。使用每個項目的隱因子內積作為相似度。
- SVD++
- 動機與模型比較
- 傳統的 item-KNN 包括 SLIM 對交互矩陣 \(A\) 的處理按行或列獨立,因此,如果兩個 item 都沒有評價記錄,則這兩個處理方法都會將兩個 item 的相似度置為 0 ,這是不合理的。
- MF 模型考慮到了這個問題,但是它的效果不如 SLIM。
與 NSVD 和 SVD++ 比較:
- FISM 解決 Top-N;SVD 解決 rating prediction
- FISM 采用基於結構方程建模的回歸方法。
- 評估某個 item 時,不使用用戶對於該 item 的評分信息。
P.S. 這影響了相似度矩陣對角線元素對評估的影響,FISM評估時去掉了對角線元素,而SVD等保留了,這使得隱因子很大的情況下FISM表現得比 SVD 好