
基于矩陣分解的隱因子模型
推薦系統(tǒng)是現(xiàn)今廣泛運(yùn)用的一種數(shù)據(jù)分析方法。常見的如,“你關(guān)注的人也關(guān)注他”,“喜歡這個物品的用戶還喜歡。?!薄澳阋苍S會喜歡”等等。
常見的推薦系統(tǒng)分為基于內(nèi)容的推薦與基于歷史記錄的推薦。
基于內(nèi)容的推薦,關(guān)鍵在于提取到有用的用戶,物品信息,以此為特征向量來進(jìn)行分類,回歸。
基于歷史記錄的推薦,記錄用戶的評分,點(diǎn)擊,收藏等等行為,以此來判斷。
基于內(nèi)容的推薦對于用戶物品的信息收集度要求比較高,而許多情況下很難得到那么多的有用信息。而基于歷史記錄的方法,則利用一些常見的歷史記錄,相比與基于內(nèi)容的方法,數(shù)據(jù)的收集比較容易。
協(xié)同過濾廣泛運(yùn)用在推薦系統(tǒng)中。一般的方式是通過相似性度量,得到相似的用戶集合,或者相似的物品集合,然后據(jù)此來進(jìn)行推薦。
Amazon的圖書推薦系統(tǒng)就是使用的基于物品相似性的推薦,“我猜你還喜歡**物品”。
不過,簡單的協(xié)同過濾效果不是很好,我們或考慮用戶聚類,得到基于用戶的協(xié)同過濾;或只考慮物品聚類,得到基于物品的協(xié)同過濾。
有人提出了基于矩陣分解(SVD)的隱因子模型(Latent Factor Model)。
隱因子模型通過假設(shè)一個隱因子空間,分別得到用戶,物品的類別矩陣,然后通過矩陣相乘得到最后的結(jié)果。在實(shí)踐中,LFM的效果會高于一般的協(xié)同過濾算法。
1. LFM基本方法
我們用user1,2,3表示用戶,item 1,2,3表示物品,Rij表示用戶i對于物品j的評分,也就是喜好度。那么我們需要得到一個關(guān)于用戶-物品的二維矩陣,如下面的R。
常見的系統(tǒng)中,R是一個非常稀疏的矩陣,因?yàn)槲覀儾豢赡艿玫剿杏脩魧τ谒形锲返脑u分。于是利用稀疏的R,填充得到一個滿矩陣R’就是我們的目的。
在協(xié)同過濾中,我們通常會假設(shè)一些用戶,或者一些物品屬于一個類型,通過類型來推薦。這這里,我們也可以假設(shè)類(class),或者說是因子(factor)。我們假設(shè)用戶對于特定的因子有一定的喜好度,并且物品對于特定的因子有一定的包含度。
比如,用戶對于喜劇,武打的喜好度為1,5;而物品對于喜劇,武打的包含度為5,1;那么我們可以大概地判斷用戶不會喜歡這部電影。
也就是我們?nèi)藶榈爻橄蟪鲆粋€隱形因子空間,然后把用戶和物品分別投影到這個空間上,來直接尋找用戶-物品的喜好度。
一個簡單的二維隱因子空間示意圖如下:
上圖以男-女;輕松-嚴(yán)肅;兩個維度作為隱因子,把用戶和電影投影到這個二維空間上。
上面的問題,我們用數(shù)學(xué)的方法描述,就是寫成如下的矩陣:
P表示用戶對于某個隱因子的喜好度;Q表示物品對于某個隱因子的包含度。我們使用矩陣相乘得到用戶-物品喜好度。
正如上面所說,R是一個稀疏的矩陣,我們通過R中的已知值,得到P,Q后,再相乘,反過來填充R矩陣,最后得到一個滿的R矩陣。
于是隱因子模型轉(zhuǎn)化為矩陣分解問題,常見的有SVD,以及下面的一些方法。
下面介紹具體的方法
2. Batch learning of SVD
設(shè)已知評分矩陣V,I為索引矩陣,I(I,j)=1表示V中的對應(yīng)元素為已知。U,M分別表示用戶-factor,物品-factor矩陣。
于是,我們先用V分解為U*M,目標(biāo)函數(shù)如下:
第一項(xiàng)為最小二乘誤差,P可以簡單理解為點(diǎn)乘;
第二項(xiàng),第三項(xiàng)為防止過擬合的正則化項(xiàng)。
求解上述的優(yōu)化問題,可以用梯度下降法。計(jì)算得負(fù)梯度方向如下:
我們每次迭代,先計(jì)算得到U,M的負(fù)梯度方向,然后更新U,M;多次迭代,直至收斂。
這種方法的缺點(diǎn)是對于大的稀疏矩陣來說,有很大的方差,要很小的收斂速度才能保證收斂。
改進(jìn):可以考慮加入一個動量因子,來加速其收斂速度:
3. Incomplete incremental learning of SVD
上述的方法對于大的稀疏矩陣來說,不是很好的方法。
于是,我們細(xì)化求解過程。
改進(jìn)后的最優(yōu)化目標(biāo)函數(shù)如下:
也就是,我們以V的行為單位,每次最優(yōu)化每一行,從而降低batch learning的方差。
負(fù)梯度方向:
同樣的,根據(jù)incrementlearning的減少方差的思想,我們可以再次細(xì)化求解過程。
以V的已知元素為單位,求解。
最優(yōu)化目標(biāo)函數(shù)如下:
每次迭代,我們遍歷每個V中的已知元素,求得一個負(fù)梯度方向,更行U,M;
隱因子模型還有相應(yīng)的其他變化版本,如compound SVD,implicit feedback SVD等,放在下一篇blog里。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號: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ū)動決策的時代浪潮下,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ù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而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ù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
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)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(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ū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03