推薦系統(tǒng)基礎(chǔ)
個(gè)性化推薦概述
1.1 推薦系統(tǒng)概述
首先波丰,需要申明一點(diǎn)的就是推薦系統(tǒng)!=推薦算法骚烧。推薦系統(tǒng)是一套完善的推薦機(jī)制血筑,包括前期數(shù)據(jù)的準(zhǔn)備、具體推薦的過程(這個(gè)過程可能是一套復(fù)雜的算法模型消恍,也可能是一個(gè)簡(jiǎn)單的規(guī)則岂昭,也可能是多種模型的混合結(jié)果等等)、后期數(shù)據(jù)的預(yù)測(cè)狠怨、AB測(cè)試效果評(píng)估等等约啊。
1.2 推薦算法模型概述
根據(jù)數(shù)據(jù)源的不同推薦引擎可以分為三類
1、基于人口的統(tǒng)計(jì)學(xué)推薦(Demographic-based Recommendation)
2佣赖、基于內(nèi)容的推薦(Content-based Recommendation)
3恰矩、基于協(xié)同過濾的推薦(Collaborative Filtering-based Recommendation)
基于內(nèi)容的推薦:
根據(jù)物品或內(nèi)容的元數(shù)據(jù),發(fā)現(xiàn)物品或內(nèi)容的相關(guān)性憎蛤,然后基于用戶以前的喜好記錄推薦給用戶相似的物品外傅,如圖所示:
上圖給出了基于內(nèi)容推薦的一個(gè)典型的例子,電影推薦系統(tǒng)俩檬,首先我們需要對(duì)電影的元數(shù)據(jù)有一個(gè)建模萎胰,這里只簡(jiǎn)單的描述了一下電影的類型;然后通過電影的元數(shù)據(jù)發(fā)現(xiàn)電影間的相似度棚辽,因?yàn)轭愋投际恰皭矍榧季梗寺彪娪?A 和 C 被認(rèn)為是相似的電影(當(dāng)然,只根據(jù)類型是不夠的屈藐,要得到更好的推薦榔组,我們還可以考慮電影的導(dǎo)演,演員等等)估盘;最后實(shí)現(xiàn)推薦瓷患,對(duì)于用戶 A,他喜歡看電影 A遣妥,那么系統(tǒng)就可以給他推薦類似的電影 C擅编。
而基于協(xié)同過濾推薦又分為以下三類:
(1)基于用戶的協(xié)同過濾推薦(User-based Collaborative Filtering Recommendation)
基于用戶的協(xié)同過濾推薦算法先使用統(tǒng)計(jì)技術(shù)尋找與目標(biāo)用戶有相同喜好的鄰居,然后根據(jù)目標(biāo)用戶的鄰居的喜好產(chǎn)生向目標(biāo)用戶的推薦箫踩“基本原理就是利用用戶訪問行為的相似性來(lái)互相推薦用戶可能感興趣的資源,如圖所示:
上圖示意出基于用戶的協(xié)同過濾推薦機(jī)制的基本原理境钟,假設(shè)用戶A喜歡物品A锦担、物品C,用戶B喜歡物品B慨削,用戶C喜歡物品A洞渔、物品C和物品D套媚;從這些用戶的歷史喜好信息中,我們可以發(fā)現(xiàn)用戶A和用戶C的口味和偏好是比較類似的磁椒,同時(shí)用戶C還喜歡物品D堤瘤,那么我們可以推斷用戶A可能也喜歡物品D,因此可以將物品D推薦給用戶A浆熔。
User-based算法存在兩個(gè)重大問題:
數(shù)據(jù)稀疏性本辐。一個(gè)大型的電子商務(wù)推薦系統(tǒng)一般有非常多的物品,用戶可能買的其中不到1%的物品医增,不同用戶之間買的物品重疊性較低慎皱,導(dǎo)致算法無(wú)法找到一個(gè)用戶的鄰居,即偏好相似的用戶叶骨。
算法擴(kuò)展性茫多。最近鄰居算法的計(jì)算量隨著用戶和物品數(shù)量的增加而增加,不適合數(shù)據(jù)量大的情況使用忽刽。
(2)基于物品的協(xié)同過濾推薦(Item-based Collaborative Filtering Recommendation)
根據(jù)所有用戶對(duì)物品或者信息的評(píng)價(jià)地梨,發(fā)現(xiàn)物品和物品之間的相似度,然后根據(jù)用戶的歷史偏好信息將類似的物品推薦給該用戶缔恳,如圖所示:
上圖表明基于項(xiàng)目的協(xié)同過濾推薦的基本原理宝剖,用戶A喜歡物品A和物品C,用戶B喜歡物品A歉甚、物品B和物品C万细,用戶C喜歡物品A,從這些用戶的歷史喜好中可以認(rèn)為物品A與物品C比較類似纸泄,喜歡物品A的都喜歡物品C赖钞,基于這個(gè)判斷用戶C可能也喜歡物品C,所以推薦系統(tǒng)將物品C推薦給用戶C聘裁。
(3)基于模型的協(xié)同過濾推薦 (Model-based Collaborative Filtering Recommendation)
基模型的協(xié)同過濾推薦就是基于樣本的用戶喜好信息雪营,訓(xùn)練一個(gè)推薦模型,然后根據(jù)實(shí)時(shí)的用戶喜好的信息進(jìn)行預(yù)測(cè)推薦衡便。
1.3 其他相關(guān)知識(shí)
1.3.1 冷啟動(dòng)
所謂冷啟動(dòng)献起,即在推薦系統(tǒng)初期時(shí),沒有任何用戶與物品的交集信息镣陕,即無(wú)用戶的行為軌跡谴餐,無(wú)法通過類似協(xié)同的方式進(jìn)行過濾推薦,這種時(shí)候呆抑,我們就稱推薦系統(tǒng)處于冷啟動(dòng)狀態(tài)岂嗓。
這種情況,我們需要盡快的累積起第一批用戶行為軌跡鹊碍。我們可以通過基于內(nèi)容的推薦厌殉,或者做一些其他類似的操作食绿,快速有效的進(jìn)行物品推薦。
一段時(shí)間后公罕,累積到一定的用戶行為時(shí)炫欺,整個(gè)系統(tǒng)就能夠正常使用協(xié)同過濾等方式進(jìn)行推薦了。
但是熏兄,針對(duì)于新加入的用戶,或者新加入的物品树姨,同樣也是出于冷啟動(dòng)狀態(tài)的摩桶,這個(gè)時(shí)候,我們通過需要對(duì)這種物品或者用戶做特殊的處理帽揪。
1.3.2 長(zhǎng)尾效應(yīng)/馬太效應(yīng)
所謂長(zhǎng)尾效應(yīng)硝清,在推薦系統(tǒng)中的體現(xiàn)即,部分優(yōu)質(zhì)物品转晰,購(gòu)買的人數(shù)較多芦拿,即與其相關(guān)的的用戶行為軌跡會(huì)較多。
這樣查邢,在協(xié)同過濾推薦中蔗崎,由于我們主要的依據(jù)就是我們的歷史行為行為數(shù)據(jù),所以這種物品得到推薦的機(jī)會(huì)就越多扰藕。
這樣缓苛,不斷循環(huán)迭代,得到推薦的物品都集中在少數(shù)的一些物品中邓深,而大部分物品是沒有被推薦的機(jī)會(huì)的未桥。
這就造成了造成長(zhǎng)尾現(xiàn)象。
而馬太效應(yīng)的意思是芥备,通俗點(diǎn)說(shuō)就是冬耿,強(qiáng)者愈強(qiáng),弱者愈弱萌壳。而長(zhǎng)尾的直接體現(xiàn)就是馬太效應(yīng)亦镶。
通常來(lái)講(當(dāng)然也有特殊情況),一個(gè)推薦系統(tǒng)袱瓮,如果長(zhǎng)時(shí)間處于長(zhǎng)尾之中染乌,就會(huì)造成推薦疲勞,推薦的效果就會(huì)下降懂讯。
所以荷憋,很多時(shí)候,挖掘長(zhǎng)尾是推薦系統(tǒng)不可缺少的部分褐望。即勒庄,我們需要把尾巴部分 并且是有價(jià)值的部分給適當(dāng)?shù)恼故境鰜?lái)串前。
挖掘長(zhǎng)尾的方法很多,其中一種常見的方式就是給熱點(diǎn)物品適當(dāng)?shù)慕禉?quán)实蔽。比如物品荡碾,我們?yōu)闊狳c(diǎn)物品進(jìn)行權(quán)重下降,這樣在最終推薦的結(jié)果中局装,非熱點(diǎn)物品得到推薦的機(jī)會(huì)就增大坛吁,從而適當(dāng)?shù)耐诰蛄碎L(zhǎng)尾。
1.4 AB分流測(cè)試
對(duì)于推薦系統(tǒng)來(lái)說(shuō)铐尚,離線的評(píng)測(cè)其實(shí)并不能很準(zhǔn)確的判斷一個(gè)推薦算法的好壞拨脉。最準(zhǔn)確的判斷應(yīng)該是線上實(shí)際效果觀察。
而AB測(cè)試是推薦系統(tǒng)評(píng)測(cè)的標(biāo)準(zhǔn)做法宣增,即我們?cè)诰€上同時(shí)運(yùn)行兩種算法模型玫膀,讓流量分別走不通的算法,最終通過收集結(jié)果數(shù)據(jù)進(jìn)行比較算法的優(yōu)劣爹脾。
通過AB測(cè)試必須滿足以下幾個(gè)條件:流量必須能夠控制帖旨,這是為了保證線上效果的穩(wěn)定性;必須保證流量的隨機(jī)性灵妨,這樣的結(jié)果才具有說(shuō)服力解阅。