
矩陣分解在協(xié)同過濾推薦算法中的應(yīng)用
推薦系統(tǒng)是當(dāng)下越來越熱的一個(gè)研究問題,無論在學(xué)術(shù)界還是在工業(yè)界都有很多優(yōu)秀的人才參與其中。近幾年舉辦的推薦系統(tǒng)比賽更是一次又一次地把推薦系統(tǒng)的研究推向了高潮,比如幾年前的Neflix百萬大獎(jiǎng)賽,KDD CUP 2011的音樂推薦比賽,去年的百度電影推薦競(jìng)賽,還有最近的阿里巴巴大數(shù)據(jù)競(jìng)賽。這些比賽對(duì)推薦系統(tǒng)的發(fā)展都起到了很大的推動(dòng)作用,使我們有機(jī)會(huì)接觸到真實(shí)的工業(yè)界數(shù)據(jù)。我們利用這些數(shù)據(jù)可以更好地學(xué)習(xí)掌握推薦系統(tǒng),這些數(shù)據(jù)網(wǎng)上很多,大家可以到網(wǎng)上下載。
推薦系統(tǒng)在工業(yè)領(lǐng)域中取得了巨大的成功,尤其是在電子商務(wù)中。很多電子商務(wù)網(wǎng)站利用推薦系統(tǒng)來提高銷售收入,推薦系統(tǒng)為Amazon網(wǎng)站每年帶來30%的銷售收入。推薦系統(tǒng)在不同網(wǎng)站上應(yīng)用的方式不同,這個(gè)不是本文的重點(diǎn),如果感興趣可以閱讀《推薦系統(tǒng)實(shí)踐》(人民郵電出版社,項(xiàng)亮)第一章內(nèi)容。下面進(jìn)入主題。
為了方便介紹,假設(shè)推薦系統(tǒng)中有用戶集合有6個(gè)用戶,即U={u1,u2,u3,u4,u5,u6},項(xiàng)目(物品)集合有7個(gè)項(xiàng)目,即V={v1,v2,v3,v4,v5,v6,v7},用戶對(duì)項(xiàng)目的評(píng)分結(jié)合為R,用戶對(duì)項(xiàng)目的評(píng)分范圍是[0, 5]。R具體表示如下:
推薦系統(tǒng)的目標(biāo)就是預(yù)測(cè)出符號(hào)“?”對(duì)應(yīng)位置的分值。推薦系統(tǒng)基于這樣一個(gè)假設(shè):用戶對(duì)項(xiàng)目的打分越高,表明用戶越喜歡。因此,預(yù)測(cè)出用戶對(duì)未評(píng)分項(xiàng)目的評(píng)分后,根據(jù)分值大小排序,把分值高的項(xiàng)目推薦給用戶。怎么預(yù)測(cè)這些評(píng)分呢,方法大體上可以分為基于內(nèi)容的推薦、協(xié)同過濾推薦和混合推薦三類,協(xié)同過濾算法進(jìn)一步劃分又可分為基于基于內(nèi)存的推薦(memory-based)和基于模型的推薦(model-based),本文介紹的矩陣分解算法屬于基于模型的推薦。
矩陣分解算法的數(shù)學(xué)理論基礎(chǔ)是矩陣的行列變換。在《線性代數(shù)》中,我們知道矩陣A進(jìn)行行變換相當(dāng)于A左乘一個(gè)矩陣,矩陣A進(jìn)行列變換等價(jià)于矩陣A右乘一個(gè)矩陣,因此矩陣A可以表示為A=PEQ=PQ(E是標(biāo)準(zhǔn)陣)。
矩陣分解目標(biāo)就是把用戶-項(xiàng)目評(píng)分矩陣R分解成用戶因子矩陣和項(xiàng)目因子矩陣乘的形式,即R=UV,這里R是n×m, n =6, m =7,U是n×k,V是k×m。直觀地表示如下:
高維的用戶-項(xiàng)目評(píng)分矩陣分解成為兩個(gè)低維的用戶因子矩陣和項(xiàng)目因子矩陣,因此矩陣分解和PCA不同,不是為了降維。用戶i對(duì)項(xiàng)目j的評(píng)分r_ij =innerproduct(u_i, v_j),更一般的情況是r_ij =f(U_i, V_j),這里為了介紹方便就是用u_i和v_j內(nèi)積的形式。下面介紹評(píng)估低維矩陣乘積擬合評(píng)分矩陣的方法。
首先假設(shè),用戶對(duì)項(xiàng)目的真實(shí)評(píng)分和預(yù)測(cè)評(píng)分之間的差服從高斯分布,基于這一假設(shè),可推導(dǎo)出目標(biāo)函數(shù)如下:
最后得到矩陣分解的目標(biāo)函數(shù)如下:
從最終得到得目標(biāo)函數(shù)可以直觀地理解,預(yù)測(cè)的分值就是盡量逼近真實(shí)的已知評(píng)分值。有了目標(biāo)函數(shù)之后,下面就開始談優(yōu)化方法了,通常的優(yōu)化方法分為兩種:交叉最小二乘法(alternative least squares)和隨機(jī)梯度下降法(stochastic gradient descent)。
首先介紹交叉最小二乘法,之所以交叉最小二乘法能夠應(yīng)用到這個(gè)目標(biāo)函數(shù)主要是因?yàn)長對(duì)U和V都是凸函數(shù)。首先分別對(duì)用戶因子向量和項(xiàng)目因子向量求偏導(dǎo),令偏導(dǎo)等于0求駐點(diǎn),具體解法如下:
上面就是用戶因子向量和項(xiàng)目因子向量的更新公式,迭代更新公式即可找到可接受的局部最優(yōu)解。迭代終止的條件下面會(huì)講到。
接下來講解隨機(jī)梯度下降法,這個(gè)方法應(yīng)用的最多。大致思想是讓變量沿著目標(biāo)函數(shù)負(fù)梯度的方向移動(dòng),直到移動(dòng)到極小值點(diǎn)。直觀的表示如下:
其實(shí)負(fù)梯度的負(fù)方向,當(dāng)函數(shù)是凸函數(shù)時(shí)是函數(shù)值減小的方向走;當(dāng)函數(shù)是凹函數(shù)時(shí)是往函數(shù)值增大的方向移動(dòng)。而矩陣分解的目標(biāo)函數(shù)L是凸函數(shù),因此,通過梯度下降法我們能夠得到目標(biāo)函數(shù)L的極小值(理想情況是最小值)。
言歸正傳,通過上面的講解,我們可以獲取梯度下降算法的因子矩陣更新公式,具體如下:
(3)和(4)中的γ指的是步長,也即是學(xué)習(xí)速率,它是一個(gè)超參數(shù),需要調(diào)參確定。對(duì)于梯度見(1)和(2)。
下面說下迭代終止的條件。迭代終止的條件有很多種,就目前我了解的主要有
1) 設(shè)置一個(gè)閾值,當(dāng)L函數(shù)值小于閾值時(shí)就停止迭代,不常用
2) 設(shè)置一個(gè)閾值,當(dāng)前后兩次函數(shù)值變化絕對(duì)值小于閾值時(shí),停止迭代
3) 設(shè)置固定迭代次數(shù)
另外還有一個(gè)問題,當(dāng)用戶-項(xiàng)目評(píng)分矩陣R非常稀疏時(shí),就會(huì)出現(xiàn)過擬合(overfitting)的問題,過擬合問題的解決方法就是正則化(regularization)。正則化其實(shí)就是在目標(biāo)函數(shù)中加上用戶因子向量和項(xiàng)目因子向量的二范數(shù),當(dāng)然也可以加上一范數(shù)。至于加上一范數(shù)還是二范數(shù)要看具體情況,一范數(shù)會(huì)使很多因子為0,從而減小模型大小,而二范數(shù)則不會(huì)它只能使因子接近于0,而不能使其為0,關(guān)于這個(gè)的介紹可參考論文Regression Shrinkage and Selection via the Lasso。引入正則化項(xiàng)后目標(biāo)函數(shù)變?yōu)椋?
(5)中λ_1和λ_2是指正則項(xiàng)的權(quán)重,這兩個(gè)值可以取一樣,具體取值也需要根據(jù)數(shù)據(jù)集調(diào)參得到。優(yōu)化方法和前面一樣,只是梯度公式需要更新一下。
矩陣分解算法目前在推薦系統(tǒng)中應(yīng)用非常廣泛,對(duì)于使用RMSE作為評(píng)價(jià)指標(biāo)的系統(tǒng)尤為明顯,因?yàn)榫仃嚪纸獾哪繕?biāo)就是使RMSE取值最小。但矩陣分解有其弱點(diǎn),就是解釋性差,不能很好為推薦結(jié)果做出解釋。
后面會(huì)繼續(xù)介紹矩陣分解算法的擴(kuò)展性問題,就是如何加入隱反饋信息,加入時(shí)間信息等。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03