1. 程式人生 > >開源推薦系統Librec中recommender模組演算法瞭解——cf模組

開源推薦系統Librec中recommender模組演算法瞭解——cf模組

1.      k近鄰(k-NearestNeighbor)演算法介紹及在推薦系統中的應用

https://zhuanlan.zhihu.com/p/25994179
k近鄰(k-NearestNeighbor)演算法是一種基本分類和迴歸方法。分類問題的k近鄰法即給定一個訓練資料集,
對新的輸入例項,在訓練資料集中找到與該例項最鄰近的K個例項,
這K個例項的多數屬於某個類,就把該輸入例項分類到這個類中。(這就類似於現實生活中少數服從多數的思想)
演算法注意點:K值選取(過小容易過擬合,過大大大降低預測準確率),特徵歸一化

https://www.jianshu.com/p/33dbf9906ff2


KNN演算法步驟為:
1、計算測試物件到訓練集中每個物件的距離
2、按照距離的遠近排序
3、選取與當前測試物件最近的k的訓練物件,作為該測試物件的鄰居
4、統計這k個鄰居的類別頻率
5、k個鄰居里頻率最高的類別,即為測試物件的類別

KNN監督學習的過程
1、歸一化資料樣本集
2、劃分樣本集為訓練集和測試集
3、以訓練集為演算法參考系,測試集來測試演算法
4、計算預測樣品標籤和真實樣品標籤的比值來評估演算法的準確率
5、調節不同的引數找到最優演算法引數

KNN演算法的優缺點
1、優點非常簡單的分類演算法沒有之一,人性化,易於理解,易於實現適合處理多分類問題,比如推薦使用者
2、缺點屬於懶惰演算法,時間複雜度較高,因為需要計算未知樣本到所有已知樣本的距離樣本平衡度依賴高,當出現極端情況樣本不平衡時,分類絕對會出現偏差可解釋性差,無法給出類似決策樹那樣的規則向量的維度越高,歐式距離的區分能力就越弱。

cf模組裡相關演算法:

ItemKNNRecommenderUserKNNRecommender

 

2.      矩陣分解技術在推薦系統中的應用及相關演算法

論文:2009-Matrix Factorization Techniques for Recommender Systems

可參考文章:https://zhuanlan.zhihu.com/p/27502172

cf模組裡相關演算法:
BiasedMFRecommender:添加了使用者物品偏置項的矩陣分解模型。

SVDPlusPlusRecommender:SVD++模型:加了使用者專案偏置項,和使用者的隱式反饋資訊的改進的BiasSVD模型。

PMFRecommender

 演算法相關論文:
2008-Probabilistic Matrix Factorization
Improving regularized singular value decomposition for collaborative filtering

可參考文章: https://blog.csdn.net/shenxiaolu1984/article/details/50372909
利用代數中SVD方法對矩陣進行分解。奇異值分解首先需要對評分矩陣進行補全,比如用全域性平均值或使用者、物品平均值進行補全。然後對補全之後的矩陣進行SVD分解從而將高維評分矩陣分解成低維的U,I矩陣。但是這種方法有兩個問題:一是補全後的矩陣是一個稠密矩陣,儲存需要很大空間。二是SVD計算複雜度很高。

 

BPMFRecommender
演算法相關論文:
Bayesian Probabilistic Matrix Factorization using Markov Chain Monte Carlo

BPMF(Bayesian Probabilistic Matrix Factorization)演算法可參考文章 https://blog.csdn.net/shenxiaolu1984/article/details/50405659

MF PMF BPMF演算法理解可參考文章 : https://blog.csdn.net/shulixu/article/details/75349138
PMF是從概率生成過程的角度來解釋user和item的隱式特徵矩陣,SVD是從優化目標出發,如何確定user和item的隱式特徵矩陣會使得損失最少。

 

3.      基於排序學習的推薦方法中Pair-wise在推薦系統中的應用及相關演算法

基於排序學習的推薦方法主要分為三大類,分別是Point-wise,Pair-wise和List-wise(對三種排序方法的介紹):
http://www.cnblogs.com/kemaswill/archive/2013/06/01/3109497.html
http://baogege.info/2014/10/19/learning-to-rank-for-recommender-system/

 

Pairwise類演算法的一種:Bayesian Personalized Ranking (BPR)
BPR是基於矩陣分解的一種排序演算法,但是和funkSVD之類的演算法比,它不是做全域性的評分優化,而是針對每一個使用者自己的商品喜好分別做排序優化。因此在迭代優化的思路上完全不同。同時對於訓練集的要求也是不一樣的,funkSVD只需要使用者物品對應評分資料二元組做訓練集,而BPR則需要使用者對商品的喜好排序三元組做訓練集。


BPRRecommender
相關論文:Bayesian Personalized Ranking from Implicit Feedback
BPR演算法介紹:https://www.cnblogs.com/pinard/p/9128682.html

AoBPRRecommender

相關論文:
Improving Pairwise Learning for Item Recommendation from Implicit Feedback
均勻取樣策略下,通過隨機梯度下降方法求解時,會出現梯度消失的問題->融合內容資訊的適應性取樣策略對BPR演算法的改進。Pairwise適用場景:以隱式反饋型別為主的推薦系統,需要從大堆東西里挑選出感興趣的一小堆東西的有序集。

4.      主題模型在推薦系統裡的應用和相關演算法

wikipedia:
主題模型(Topic Model)在機器學習和自然語言處理等領域是用來在一系列文件中發現抽象主題的一種統計模型。直觀來講,如果一篇文章有一箇中心思想,那麼一些特定詞語會更頻繁的出現。比方說,如果一篇文章是在講狗的,那“狗”和“骨頭”等詞出現的頻率會高些。如果一篇文章是在講貓的,那“貓”和“魚”等詞出現的頻率會高些。而有些詞例如“這個”、“和”大概在兩篇文章中出現的頻率會大致相等。但真實的情況是,一篇文章通常包含多種主題,而且每個主題所佔比例各不相同。因此,如果一篇文章10%和貓有關,90%和狗有關,那麼和狗相關的關鍵字出現的次數大概會是和貓相關的關鍵字出現次數的9倍。一個主題模型試圖用數學框架來體現文件的這種特點。主題模型自動分析每個文件,統計文件內的詞語,根據統計的資訊來斷定當前文件含有哪些主題,以及每個主題所佔的比例各為多少。主題模型最初是運用於自然語言處理相關方向,但目前已經延伸至例如生物資訊學的其它領域。

PLSARecommender
相關論文:
Latent semantic models for collaborative filtering


LDARecommender
相關論文:
Latent Dirichlet Allocation
Gibbs sampling in the generative model of Latent Dirichlet Allocation

LDA運用於推薦系統時:
users被當做為documents
items被當做為words
latent factors被當做為topics

維基百科LDA解釋:
隱含狄利克雷分佈(英語:Latent Dirichlet allocation,簡稱LDA),是一種主題模型,它可以將文件集中每篇文件的主題按照概率分佈的形式給出。同時它是一種無監督學習演算法,在訓練時不需要手工標註的訓練集,需要的僅僅是文件集以及指定主題的數量k即可。此外LDA的另一個優點則是,對於每一個主題均可找出一些詞語來描述它。LDA首先由Blei, David M.、吳恩達和Jordan, Michael I於2003年提出(論文連結:http://jmlr.csail.mit.edu/papers/v3/blei03a.html),目前在文字挖掘領域包括文字主題識別、文字分類以及文字相似度計算方面都有應用。

理解可以參考:
理順主題模型LDA及在推薦系統中的應用 https://blog.csdn.net/leiting_imecas/article/details/68961205,該篇文章中指出了pLSA與LDA兩種模型的區別。

演算法求解:
最初:EM演算法(Expectation-maximization algorithm)
後來:較為簡單的Gibbs Sampling演算法

 

URPRecommender

一個用於評分預測類推薦演算法的LDA模型,treat items as documents and ratings as words
相關論文:

Modeling user rating profiles for collaborative filtering
https://ieeexplore.ieee.org/document/5992572:
Regularized Gibbs Sampling for User Profiling with Soft Constraints
基於改進URP模型和K近鄰的推薦研究