推薦系統(tǒng)簡(jiǎn)介
1、推薦系統(tǒng)目的
信息過載
- 讓用戶更快更好的獲取到自己需要的內(nèi)容
- 內(nèi)容更快更好的推送到喜歡它的用戶手中
- 讓網(wǎng)站(平臺(tái))更有效的保留用戶資源
即好的推薦系統(tǒng)–讓三方共贏
2、推薦系統(tǒng)的應(yīng)用
個(gè)性化音樂、電影視頻、社交網(wǎng)絡(luò)、個(gè)性化閱讀、證券理財(cái)、個(gè)性化旅游、個(gè)性化廣告
音樂聽完后很可能再聽,但買過的商品看過的電影就少量會(huì)重復(fù)
3、推薦系統(tǒng)的基本思想
- 利用用戶和物品的特征信息,給用戶推薦那些具有用戶喜歡的特征的物品。
- 利用用戶喜歡過的物品,給用戶推薦與他喜歡過的物品相似的物品。
- 利用和用戶相似的其他用戶,給用戶推薦那些和他們興趣愛好相似的其他用戶喜歡的物品
- 知你所想,精準(zhǔn)推送
– 利用用戶和物品的特征信息,給用戶推薦那些具有用戶喜歡的特征的物品。 - 物以類聚
– 利用用戶喜歡過的物品,給用戶推薦與他喜歡過的物品相似的物品。 - 人以群分
– 利用和用戶相似的其他用戶,給用戶推薦那些和他們興趣愛好相似的其他用戶喜歡的物品
4、推薦系統(tǒng)的數(shù)據(jù)分析
在作推薦之前需要先收集到的數(shù)據(jù):
- 針對(duì)用戶的信息:個(gè)人信息、喜好標(biāo)簽(勾選的感興趣標(biāo)簽)、上下文信息(瀏覽記錄)
- 物品的信息:內(nèi)容信息、分類標(biāo)簽、關(guān)鍵詞
- 行為數(shù)據(jù)(交互):點(diǎn)擊、瀏覽、收藏、購買、評(píng)分、評(píng)價(jià)、打標(biāo)簽(反映用戶對(duì)物品或者信息的偏好)
— 顯示的用戶反饋:用戶對(duì)物品的評(píng)分,或者對(duì)物品的評(píng)論等(業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫中獲取)
— 隱式的用戶反饋:點(diǎn)擊、瀏覽、收藏、購買等(通過埋點(diǎn),日志獲?。?/li>
5、推薦系統(tǒng)的分類
-
根據(jù)實(shí)時(shí)性分類
– 離線推薦
– 實(shí)時(shí)推薦 -
根據(jù)推薦是否個(gè)性化分類
– 基于統(tǒng)計(jì)的推薦(熱門推薦)
– 個(gè)性化推薦 -
根據(jù)推薦原則分類
– 基于相似度的推薦(人以群分)
– 基于規(guī)則的推薦(即按照經(jīng)驗(yàn),程序員更偏愛格子襯衫)
– 基于模型的推薦(訓(xùn)練數(shù)據(jù)找規(guī)律) -
根據(jù)數(shù)據(jù)源分類
– 基于人口統(tǒng)計(jì)學(xué)的推薦(基于用戶數(shù)據(jù),作用戶畫像)
– 基于內(nèi)容的推薦(基于內(nèi)容信息)
– 基于協(xié)同過濾的推薦(基于行為數(shù)據(jù))
6、推薦算法簡(jiǎn)介
6.1 基于人口統(tǒng)計(jì)學(xué)的推薦算法(基于用戶數(shù)據(jù))
6.2 基于內(nèi)容的推薦算法(基于內(nèi)容信息)
6.3 基于協(xié)同過濾的推薦算法(基于行為數(shù)據(jù))
協(xié)同過濾(Collaborative Filtering,CF)
利用類似這樣矩陣來判斷:
U1、U2、、用戶
I1、I2、、物品
中間數(shù)據(jù):評(píng)分
分成兩大類:基于近鄰和基于模型
- 基于近鄰的協(xié)同過濾
– 基于用戶(User-CF)的協(xié)同過濾
– 基于物品(Item-CF)的協(xié)同過濾 - 基于模型的協(xié)同過濾
– 奇異值分解(SVD)
– 潛在語義分析(LSA)
– 支撐向量機(jī)(SVM)
CF特點(diǎn):
- 基于內(nèi)容(Content based,CB)主要利用的是用戶評(píng)價(jià)過的物品的內(nèi)容特征,當(dāng)拿不到物品信息時(shí),CF可以解決,只要用戶與物品進(jìn)行了交互,日志中就會(huì)保存有用戶行為數(shù)據(jù)
- 缺點(diǎn):得到的矩陣不完整的,是稀疏矩陣。比較依賴歷史交互數(shù)據(jù),對(duì)新上線的物品不夠友好
注:在矩陣中,若數(shù)值為0的元素?cái)?shù)目遠(yuǎn)遠(yuǎn)多于非0元素的數(shù)目,并且非0元素分布沒有規(guī)律時(shí),則稱該矩陣為稀疏矩陣
User-CF基于用戶的協(xié)同過濾:
與基于用戶數(shù)據(jù)的對(duì)比:沒有用戶的基本信息,依據(jù)的是用戶的行為相似度
Item-CF基于物品的協(xié)同過濾:
與基于物品數(shù)據(jù)的對(duì)比:沒有物品的基本信息,依據(jù)的是物品被喜歡群體的相似度
物品A與物品C都被用戶ab喜歡,所有推測(cè)物品AC是相似的,便可以把物品C推薦給喜歡物品A的用戶
6.4 混合推薦
實(shí)際網(wǎng)站的推薦系統(tǒng)往往都不是單純只采用了某一種推薦的機(jī)制和策略,往往是將多個(gè)方法混合在一起,從而達(dá)到更好的推薦效果。比較流行的組合方法有:
- 加權(quán)混合
– 用線性公式(linear formula)將幾種不同的推薦按照一定權(quán)重組合起來,具體權(quán)重的值需要在測(cè)試數(shù)據(jù)集上反復(fù)實(shí)驗(yàn),從而達(dá)到最好的推薦效果 - 切換混合
– 切換的混合方式,就是允許在不同的情況(數(shù)據(jù)量,系統(tǒng)運(yùn)行狀況,用戶和物品的數(shù)目等)下,選擇最為合適的推薦機(jī)制計(jì)算推薦
不同的情況選擇不同的推薦系統(tǒng) - 分區(qū)混合
– 采用多種推薦機(jī)制,并將不同的推薦結(jié)果分不同的區(qū)顯示給用戶 - 分層混合
– 采用多種推薦機(jī)制,并將一個(gè)推薦機(jī)制的結(jié)果作為另一個(gè)的輸入,從而綜合各個(gè)推薦機(jī)制的優(yōu)缺點(diǎn),得到更加準(zhǔn)確的推薦
推薦方式一層一層的串起來,前一層推薦的結(jié)果作為后一層推薦的輸入。因此更加復(fù)雜
7、推薦系統(tǒng)評(píng)測(cè)
目標(biāo):讓三方共贏(用戶、平臺(tái)、商家)
7.1 推薦系統(tǒng)實(shí)驗(yàn)方法
-
離線實(shí)驗(yàn)
– 通過體制系統(tǒng)獲得用戶行為數(shù)據(jù),并按照一定格式生成一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)集
– 將數(shù)據(jù)集按照一定的規(guī)則分成訓(xùn)練集和測(cè)試集
– 在訓(xùn)練集上訓(xùn)練用戶興趣模型,在測(cè)試集上進(jìn)行預(yù)測(cè)
– 通過事先定義的離線指標(biāo)評(píng)測(cè)算法在測(cè)試集上的預(yù)測(cè)結(jié)果
離線:利用的是歷史數(shù)據(jù),完全離線。
特點(diǎn):方便,可能和實(shí)際的上線結(jié)果有差距 -
用戶調(diào)查
– 用戶調(diào)查需要有一些真實(shí)用戶,讓他們?cè)谛枰獪y(cè)試的推薦系統(tǒng)上完成一些任務(wù);我們需要記錄他們的行為,并讓他們回答一些問題;最后進(jìn)行分析
特點(diǎn):真實(shí),可以獲取用戶的主觀感受。需要真實(shí)用戶,花費(fèi)成本 -
在線實(shí)驗(yàn)
– AB測(cè)試
類似實(shí)驗(yàn)組,對(duì)照組。把用戶隨機(jī)分成兩組,進(jìn)入不同的推薦系統(tǒng),考察指標(biāo)測(cè)評(píng)哪種推薦系統(tǒng)更優(yōu)
特點(diǎn):真實(shí),需要長(zhǎng)周期才能收集到用戶的行為結(jié)果
結(jié)論:混合使用
先離線實(shí)驗(yàn),中間作基本的用戶調(diào)查(少范圍的),上線前作AB測(cè)試,同時(shí)收集用戶數(shù)據(jù),判斷最優(yōu)的推薦系統(tǒng)
7.2 推薦系統(tǒng)評(píng)測(cè)指標(biāo)
? 預(yù)測(cè)準(zhǔn)確度(重要但不好衡量)
? 用戶滿意度(問卷調(diào)查)
? 覆蓋率(并非總是推薦的最熱門物品,希望冷門小眾物品也能推薦到對(duì)應(yīng)用戶)
? 多樣性(信息繭房,針對(duì)用戶來說)
? 驚喜度(挖掘出用戶自己都不知道的喜愛物品)
? 信任度
? 實(shí)時(shí)性
? 健壯性
? 商業(yè)目標(biāo)(點(diǎn)擊率、轉(zhuǎn)化率等)
推薦準(zhǔn)確度評(píng)測(cè)
- 評(píng)分預(yù)測(cè):
– 很多網(wǎng)站都有讓用戶給物品打分的功能,如果知道用戶對(duì)物品的歷史評(píng)分,就可以從中學(xué)習(xí)一個(gè)興趣模型,從而預(yù)測(cè)用戶對(duì)新物品的評(píng)分
– 評(píng)分預(yù)測(cè)的準(zhǔn)確度一般用均方根誤差(RMSE)或平均絕對(duì)誤差(MAE)計(jì)算
預(yù)測(cè)評(píng)分與真實(shí)評(píng)分之間的誤差 - Top-N推薦
– 網(wǎng)站提供推薦服務(wù)時(shí),一般是給用戶一個(gè)個(gè)性化的推薦列表,這種推薦叫做Top-N推薦
– Top-N推薦的預(yù)測(cè)準(zhǔn)確率一般用精確率(precision)和召回率(recall)來度量
準(zhǔn)確率、精確率和召回率
假如某個(gè)班級(jí)有男生80人,女生20人,共計(jì)100人,,目標(biāo)是找出所有女生?,F(xiàn)在某人挑選出50個(gè)人,其中20人是女生,另外還錯(cuò)誤的把30個(gè)男生也當(dāng)作女生挑選出來了。怎么評(píng)估他的行為?
定義TP、FN、FP、TN四種情況:
-
準(zhǔn)確率(accuracy)
正確分類的item數(shù)與總數(shù)之比:A=(20+50)/100 = 70% -
精確率(precision)
所有被檢索的item中,應(yīng)該被檢索到的item比例:P=20/(20+30) = 40%
推薦的50個(gè)物品中,其中20個(gè)是用戶真正需要的 -
召回率(recall)
所有檢索到的item占所有“應(yīng)該檢索到的item”的比例:R=20/(20+0)=100%
總共應(yīng)該推薦20個(gè)物品,我全部推薦出來了。另一方面說明工作作的還不錯(cuò)
推薦系統(tǒng)算法詳解
常用推薦算法分類:
- 基于人口統(tǒng)計(jì)學(xué)的推薦與用戶畫像(基于用戶數(shù)據(jù))
- 基于內(nèi)容的推薦與特征工程(基于物品數(shù)據(jù))
- 基于協(xié)同過濾的推薦(基于交互行為數(shù)據(jù))
1、基于人口統(tǒng)計(jì)學(xué)的推薦
- 基于人口統(tǒng)計(jì)學(xué)的推薦機(jī)制 (Demographic-based Recommend at ion) 是一種最易于實(shí)現(xiàn)的推薦方法,它只是簡(jiǎn)單的根據(jù)系統(tǒng)用戶的基本信息發(fā)現(xiàn)用 戶的相關(guān)程度,然后將相似用戶喜愛的其他物品推薦給當(dāng)前用戶
- 對(duì)于沒有明確含義的用戶信息(比如登錄時(shí)間、地域等上下文信息),可以 通過聚類等手段,給用戶打上分類標(biāo)簽
- 對(duì)于特定標(biāo)簽的用戶,又可以根據(jù)預(yù)設(shè)的規(guī)則(知識(shí))或者模型,推薦出對(duì) 應(yīng)的物品
- 用戶信息標(biāo)簽化的過程—般又稱為用戶畫像 (User Profiling)
缺點(diǎn):用戶的個(gè)人信息很難收集,讓用戶填選問卷很影響用戶體驗(yàn)??梢宰層脩暨x擇喜愛標(biāo)簽
用戶畫像
- 用戶畫像 (User Profi le) 就是企業(yè)通過收集與分析消費(fèi) 者社會(huì)屬性、生活習(xí)慣、消費(fèi)行為等主要信息的數(shù)據(jù)之后,完美地抽象出—個(gè)用戶的商業(yè)全貌作 是企業(yè)應(yīng)用大數(shù)據(jù)技術(shù)的基本方式
- 用戶畫像為企業(yè)提供了足夠的信息基礎(chǔ),能夠幫助企業(yè)快速找到精準(zhǔn)用戶群 體以及用戶需求等更為廣泛的反饋信息
- 作為大數(shù)據(jù)的根基,它完美地抽象出—個(gè)用戶的信息全貌,為進(jìn)—步精準(zhǔn)、快速地分析用戶行為習(xí)慣、消費(fèi)習(xí)慣等重要信息,提供了足夠的數(shù)據(jù)基礎(chǔ)
喜馬拉雅,支付寶中發(fā)出的個(gè)人的年度匯報(bào),也屬于簡(jiǎn)單的用戶畫像
2、基于內(nèi)容的推薦算法
- Content-based Recommendations (CB) 根據(jù)推薦物品或內(nèi)容的元數(shù)據(jù), 發(fā)現(xiàn)物品的相關(guān)性,再基于用戶過去的喜好記錄,為用戶推薦相似的物品。
- 通過抽取物品內(nèi)在或者外在的特征值,實(shí)現(xiàn)相似度計(jì)算。
– 比如—個(gè)電影, 有導(dǎo)演、演員、用戶標(biāo)簽UGC、 用戶評(píng)論、時(shí)長(zhǎng)、風(fēng)格等等, 都可以算是特征。 - 將用戶 (user) 個(gè)人信息的特征(基于喜好記錄或是預(yù)設(shè)興趣標(biāo)簽) , 和物品 (it em) 的特征相匹配, 就能得到用戶對(duì)物品感興趣的程度
– 在—些電影、音樂、圖書的社交網(wǎng)站有很成功的應(yīng)用,有些網(wǎng)站還請(qǐng)專業(yè)的人員對(duì)物品進(jìn)行基因編碼/打標(biāo)簽(PGC).PGC–專家生產(chǎn)內(nèi)容
相似度
推薦算法里的相似度評(píng)判,采用的是余弦相似度,而不是歐氏距離
- 歐式距離
-
余弦相似度:點(diǎn)積,模長(zhǎng)
-
對(duì)于物品的特征提取 —— 打標(biāo)簽(tag)
– 專家標(biāo)簽(PGC)
– 用戶自定義標(biāo)簽(UGC)
– 降維分析數(shù)據(jù),提取隱語義標(biāo)簽 -
對(duì)于文本信息的特征提取 —— 關(guān)鍵詞
– 分詞、語義處理和情感分析(NLP)
– 潛在語義分析 (LSP)
數(shù)據(jù)源,內(nèi)容分析,特征工程處理,特征學(xué)習(xí)器(構(gòu)建模型)
特征工程
特征:作為判斷條件的一組輸入變量,是做出判斷的依據(jù)
目標(biāo):判斷和預(yù)測(cè)的目標(biāo),模型的輸出變量,是特征所產(chǎn)生的結(jié)果
- 特征 (feat ure) : 數(shù)據(jù)中抽取出來的對(duì)結(jié)果預(yù)測(cè)有用的信息。
- 特征的個(gè)數(shù)就是數(shù)據(jù)的觀測(cè)維度
- 特征工程是使用專業(yè)背景知識(shí)和技巧處理數(shù)據(jù),使得特征能在機(jī)器學(xué)習(xí)算法上發(fā)揮更 好的作用的過程
- 特征工程—般包括特征清洗(ETL、采樣、清洗異常樣本),特征處理和特征選擇
- 特征按照不同的數(shù)據(jù)類型分類,有不同的特征處理方法
– 數(shù)值型
– 類別型
– 時(shí)間型
– 統(tǒng)計(jì)型
總結(jié):特征工程,是建模之前的數(shù)據(jù)處理。以便更好地建模
數(shù)值型特征處理
用連續(xù)數(shù)值表示當(dāng)前維度特征,通常會(huì)對(duì)數(shù)值型特征進(jìn)行數(shù)學(xué)上的處理,主要是歸一化和離散化,又稱為幅度調(diào)整/歸一化
歸一化:
- 特征與特征之間應(yīng)該是平等的,區(qū)別應(yīng)該體現(xiàn)在特征內(nèi)部
- 栗子:房屋價(jià)格3000000~15000000(萬),住房面積40 ~300(平方米)。由于本身的量級(jí)不同導(dǎo)致產(chǎn)生的效果不同。
離散化:
-
將原始連續(xù)值切斷,轉(zhuǎn)化為離散值
-
栗子:電商中,每個(gè)人對(duì)于價(jià)格的喜好程度不同,但它不一定是嚴(yán)格的正相關(guān)或負(fù)相關(guān),很可能是喜歡某一個(gè)價(jià)格段內(nèi)的商品
-
讓座問題:假設(shè)我們要訓(xùn)練—個(gè)模型判斷在公交車上應(yīng)不應(yīng)該給—個(gè)人讓座,按照常理,應(yīng)該是給年齡很大和年齡很小的人讓座
離散化的兩種方式: -
等步長(zhǎng)—簡(jiǎn)單但不一定有效
-
等頻—min 25% 50% 75% max
等步長(zhǎng)VS等頻:
- 等步長(zhǎng)不一定有效,非常便宜非常貴的商品少量,大部分商品在中間價(jià)格
- 等頻精準(zhǔn),但不固定。商品價(jià)格變化就需要重新劃分切割
類別型特征處理
類別型數(shù)據(jù)本身沒有大小關(guān)系,需要將它們編碼為數(shù)字,但它們之間不能有預(yù)先設(shè)定的大小關(guān)系,因此既要做到公平,又要區(qū)分開它們,那么直接開辟多個(gè)空間。
- One-Hot 編碼/啞變量所做的就是將類別型數(shù)據(jù) 平行地展開, 也就是說, 經(jīng)過One-Hot 編碼/啞變量后, 這個(gè)特征的空間會(huì)膨脹
時(shí)間型特征處理
時(shí)間型特征即可以做連續(xù)值,又可以做離散值
連續(xù)值:持續(xù)時(shí)間、間隔時(shí)間等
離散值:一天中哪個(gè)時(shí)間段、星期幾、工作日
統(tǒng)計(jì)型特征處理
- 加減平均:商品價(jià)格高于平均價(jià)格多少,用戶在某個(gè)品類下消費(fèi)超過多少。
- 分位線:商品屬于售出商品價(jià)格的分位線處。
- 次序性:商品處于熱門商品第幾位。
- 比例類:電商中商品的好/中/差評(píng)比例。
特征處理后得到的數(shù)據(jù),可以訓(xùn)練模型了。得到推薦結(jié)果后,還會(huì)收集反饋數(shù)據(jù)
推薦系統(tǒng)常見反饋數(shù)據(jù)
顯示:明顯地反映用戶偏好
隱式:間接反映用戶偏好
基于 UGC 的推薦
用戶用標(biāo)簽來描述對(duì)物品的看法,所以用戶生成標(biāo)簽(UGC)是聯(lián)系用戶和物品的紐帶
一個(gè)用戶打標(biāo)簽數(shù)據(jù)集,三元組的集合來表示(用戶,物品,標(biāo)簽)-(u,i,b)
一個(gè)最簡(jiǎn)單的算法:
- 統(tǒng)計(jì)每個(gè)用戶最常用的標(biāo)簽 – 用戶對(duì)此標(biāo)簽感興趣
- 對(duì)于每個(gè)標(biāo)簽,統(tǒng)計(jì)被打過這個(gè)標(biāo)簽次數(shù)最多的物品 – 物品與標(biāo)簽的關(guān)聯(lián)度
- 對(duì)于一個(gè)用戶,首先找到他常用的標(biāo)簽,找到具有這些標(biāo)簽的最熱門的物品,推薦給他
- 所以用戶u對(duì)物品i的興趣公式:
p(u,i)越大,即用戶對(duì)此物品越可能感興趣
- 問題:傾向于給熱門標(biāo)簽(例:“大片”,“搞笑”等)、熱門物品(打標(biāo)簽的人數(shù)多)。這樣會(huì)導(dǎo)致,熱門標(biāo)簽+熱門物品會(huì)霸榜,推薦的個(gè)性化、新穎度會(huì)降低
- 如何解決?— 對(duì)熱門詞匯進(jìn)行一定程度的懲罰:TF-IDF
TF-IDF
- 詞頻-逆文檔頻率 (Term Frequency-Inverse Document Frequency, TF-IDF) 是一種用于資訊檢索與文本挖掘的常用加權(quán)技術(shù)
- TF-IDF 是—種統(tǒng)計(jì)方法, 用以評(píng)估—個(gè)字詞對(duì)于一個(gè)文件集或一個(gè)語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,但同時(shí)會(huì) 隨著它在語料庫中出現(xiàn)的頻率成反比下降
語料庫:所有文章
TFIDF = TF x IDF
- TF-IDF 的主要思想是: 如果某個(gè)詞或短語在—篇文章中出現(xiàn)的頻率 TF 高, 并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語具有很好的類別區(qū)分能力,適合用來分類
- TF-IDF 加權(quán)的各種形式常被搜索引 擎應(yīng)用, 作為文件與用戶查詢之間相關(guān)程度的度量或評(píng)級(jí)
詞頻(Term Frequency,TF):
- 指某一個(gè)給定的詞語在該文件中出現(xiàn)的頻率。(歸一化)
逆向文件頻率(Inverse Document Frequency,IDF):
- 是一個(gè)詞語普遍性重要性的度量。某一特定詞語的IDF,可以由總文檔數(shù)除以包含該詞語的文檔數(shù)目,再取對(duì)數(shù)
加1是防止為0
TF-IDF對(duì)基于 UGC 推薦的改進(jìn)
改進(jìn):加入對(duì)熱門標(biāo)簽和熱門物品的懲罰項(xiàng)
代碼
3、基于協(xié)同過濾的推薦算法
協(xié)同過濾(Collaborative Filtering,CF)
利用類似這樣矩陣來判斷:
U1、U2、、用戶
I1、I2、、物品
中間數(shù)據(jù):評(píng)分
分成兩大類:基于近鄰和基于模型
- 基于近鄰的協(xié)同過濾
– 基于用戶(User-CF)的協(xié)同過濾
– 基于物品(Item-CF)的協(xié)同過濾 - 基于模型的協(xié)同過濾
– 奇異值分解(SVD)
– 潛在語義分析(LSA)
– 支撐向量機(jī)(SVM)
CF特點(diǎn):
- 相比與CB,CF數(shù)據(jù)更好獲得,只要用戶與物品進(jìn)行了交互,日志中就會(huì)保存有用戶行為數(shù)據(jù)
- 缺點(diǎn):得到的矩陣不完整的,是稀疏矩陣。比較依賴歷史交互數(shù)據(jù),對(duì)新上線的物品不夠友好
基于近鄰的協(xié)同過濾
User-CF基于用戶的協(xié)同過濾:
與基于用戶數(shù)據(jù)的對(duì)比:沒有用戶的基本信息,依據(jù)的是用戶的行為相似度
在—般的應(yīng)用中是采用計(jì)算 " K- 近鄰"的算法; 基于這 K 個(gè)鄰居的歷史偏好信息,為當(dāng)前用戶進(jìn)行推薦
Item-CF基于物品的協(xié)同過濾:
與基于物品數(shù)據(jù)CB的對(duì)比:沒有物品的基本信息,依據(jù)的是物品被喜歡群體的相似度
同樣是協(xié)同過濾,基于用戶VS基于物品:
- 電商、電影、音樂網(wǎng)站,用戶數(shù)量遠(yuǎn)多于物品數(shù)量 — 物品固定,用Item-CF
- 新聞網(wǎng)站,物品數(shù)量大于用戶數(shù)量----用戶群體穩(wěn)定,用User-CF
- 推薦策略的選擇其實(shí)和具體的應(yīng)用場(chǎng)景有很大的關(guān)系
基于協(xié)同過濾的推薦優(yōu)缺點(diǎn)
- 保證了推薦的個(gè)性度,新穎度
- 不需要對(duì)物品或者用戶進(jìn)行嚴(yán)格建模
- 基于歷史數(shù)據(jù),“冷啟動(dòng)”問題
- 用戶歷史偏好使用的是稀疏矩陣,會(huì)對(duì)計(jì)算帶來問題
基于模型的協(xié)同過濾思想
對(duì)物品和用戶同時(shí)打標(biāo)簽,有顯性特征時(shí)(比如用戶標(biāo)簽、物品分類標(biāo)簽)我們可以直接匹配做出推薦; 沒有時(shí),可以根據(jù)已有的偏好數(shù)據(jù),去發(fā)掘出隱藏的特征,這需要用到隱語義模型 (LFM)
基于近鄰的推薦VS基于模型的推薦:
- 基于近鄰的推薦是在預(yù)測(cè)時(shí)直接使用已有的用戶偏好數(shù)據(jù),通過近鄰數(shù)據(jù)來預(yù)測(cè)對(duì)新物品的偏好(類似分類)
- 而基于模型的方法,是要使用這些偏好數(shù)據(jù)來訓(xùn)練模型,找到內(nèi)在規(guī)律,再用模型來做預(yù)測(cè)(類似回歸)
隱語義模型(LFM)
揭示隱藏的特征,類特征可能是無法直接用語言解釋描述的,類似“玄學(xué)”
栗子:啤酒尿布
通過矩陣分解進(jìn)行降維分析
- 偏好矩陣往往是稀疏的;這就需要對(duì)原始數(shù)據(jù)做降維處理
- 分解之后的矩陣,方便尋找用戶和物品的隱藏特征
隱語義模型的實(shí)例
- 基于概率的隱語義分析(PLSA)
- 隱式迪利克雷分布模型(LDA)
- 矩陣因子分解模型(基于奇異值分解的模型,SVD)
LFM 降維方法 —— 矩陣因子分解
假設(shè)用戶物品評(píng)分矩陣為R,現(xiàn)在有m個(gè)用戶,n個(gè)物品
目的:發(fā)現(xiàn)k個(gè)隱類,找到兩個(gè)矩陣P和Q,使得這兩個(gè)矩陣的乘積等于R,即R可以分解為兩個(gè)低維度矩陣相乘
- 應(yīng)該有—些隱藏的因素,影響用戶的打分,比如電影:演員、題材、年代…甚至不— 定是人直接可以理解的隱藏因子
- 找到隱蕩因子, 可以對(duì) user 和 item 進(jìn)行關(guān)聯(lián) ,就可以推測(cè)用戶是否會(huì)喜歡某—部未看過的電影
得到 P和 Q的乘積R不再是稀疏的,之前 R中沒有的項(xiàng)也可以由 P,Q 的乘積算出,這就得到了一個(gè)預(yù)測(cè)評(píng)分矩陣
如果得到的預(yù)測(cè)評(píng)分矩陣 R 與原評(píng)分矩陣 R 在已知評(píng)分位置上的值都近似 , 那么我們認(rèn)為它們?cè)陬A(yù)測(cè)位置上的值也是近似的
模型的求解 —— 損失函數(shù)
矩陣分解得到的預(yù)測(cè)評(píng)分矩陣R,與原評(píng)分矩陣R在已知的評(píng)分項(xiàng)上可能有誤差,目標(biāo)是找到一個(gè)使得誤差最小的分解方式。
損失函數(shù):選擇平方損失函數(shù),并加入正則化項(xiàng),以防止過擬合
P特征值k越多,P,Q越復(fù)雜,越可能過擬合,所以正則化項(xiàng)選擇P,Q的平方項(xiàng)和
模型的求解算法 —— ALS
現(xiàn)在,矩陣因子分解問題已經(jīng)轉(zhuǎn)化為一個(gè)優(yōu)化問題。
求解P,Q,使得目標(biāo)損失函數(shù)取最小值
交替最小二乘法(Alternating Least Squares,ALS)
ALS思想:由于兩個(gè)矩陣P和Q都未知,且通過矩陣乘法耦合在一起,為了使得他們解耦,可以先固定Q,把P當(dāng)作變量,通過損失函數(shù)最小化求出P,這是一個(gè)經(jīng)典的最小二乘問題,再反過來固定求出的P,把Q當(dāng)作變量,求解出Q。交替執(zhí)行,直到誤差滿足閾值條件,或者到達(dá)迭代上限。
求解過程:(以固定Q,求解P為例)
- 每個(gè)用戶u的特征是相互獨(dú)立的,當(dāng)Q獨(dú)立時(shí),用戶特征向量Pu與其他用戶特征向量無關(guān),所以求P可以單獨(dú)求Pu,再拼接
- 優(yōu)化目標(biāo)minC轉(zhuǎn)化為:
第一步先不管Q 的平方和,第二步把u求和提出來,現(xiàn)在目標(biāo)變?yōu)椋呵竺恳粋€(gè)用戶特征向量Pu,使得L(Pu)取最小值
L(Pu)中唯一可變的是Pu,求最小值----偏導(dǎo)
求偏導(dǎo),向量積是個(gè)數(shù),所以可以轉(zhuǎn)置也可以交換位置,然后提取Pu,單位矩陣
展開:
逆矩陣
Ru指u那一行的評(píng)分
P公式得到了,但其中含有逆不好求,可以用梯度下降法進(jìn)行迭代
梯度下降法:
不要讓偏導(dǎo)等于0,而是作為偏導(dǎo)值,乘以步長(zhǎng),做迭代。
代碼文章來源:http://www.zghlxwxcb.cn/news/detail-741599.html
Sparrow Recsys項(xiàng)目介紹
王喆老師的RecSysServer項(xiàng)目
查看項(xiàng)目運(yùn)行結(jié)果
數(shù)據(jù):來?于電影開源數(shù)據(jù)集movieLens。文章來源地址http://www.zghlxwxcb.cn/news/detail-741599.html
- movies.csv(電影基本信息數(shù)據(jù)):包含了電影ID(movieId)、電影名(title)、發(fā)布年份以及電影類型(genres)等基本信息。
- ratings.csv(??評(píng)分?jǐn)?shù)據(jù)):ratings表包含了??ID(userId)、電影ID(movieId)、評(píng)分(rating)和時(shí)間戳(timestamp)等信息。
- links.csv(外部鏈接數(shù)據(jù)):links表包含了電影ID(movieId)、IMDB對(duì)應(yīng)電影ID(imdbId)、TMDB對(duì)應(yīng)電影ID(tmdbId)等信息。其中,imdb和tmdb是全球最?的兩個(gè)電影數(shù)據(jù)庫。
為你推薦?。是??的個(gè)性化推薦??。這個(gè)??會(huì)根據(jù)??的點(diǎn)擊、評(píng)價(jià)歷史進(jìn)?個(gè)性化推薦。
到了這里,關(guān)于推薦系統(tǒng)簡(jiǎn)介+算法詳解+項(xiàng)目介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!