机器学习(二十八)— 推荐算法
1、推薦系統(tǒng)目的
(1)幫助用戶找到想要的商品(新聞/音樂/……),發(fā)掘長尾
(2)降低信息過載
(3)提高站點(diǎn)的點(diǎn)擊率/轉(zhuǎn)化率
(4)加深對(duì)用戶的了解,為用戶提供定制化服務(wù)
2、推薦算法概述
推薦算法是非常古老的,在機(jī)器學(xué)習(xí)還沒有興起的時(shí)候就有需求和應(yīng)用了。概括來說,可以分為以下5種:
1)基于內(nèi)容的推薦:這一類一般依賴于自然語言處理NLP的一些知識(shí),通過挖掘文本的TF-IDF特征向量,來得到用戶的偏好,進(jìn)而做推薦。這類推薦算法可以找到用戶獨(dú)特的小眾喜好,而且還有較好的解釋性。這一類由于需要NLP的基礎(chǔ),本文就不多講,在后面專門講NLP的時(shí)候再討論。
2)協(xié)同過濾推薦:本文后面要專門講的內(nèi)容。協(xié)調(diào)過濾是推薦算法中目前最主流的種類,花樣繁多,在工業(yè)界已經(jīng)有了很多廣泛的應(yīng)用。它的優(yōu)點(diǎn)是不需要太多特定領(lǐng)域的知識(shí),可以通過基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)算法來得到較好的推薦效果。最大的優(yōu)點(diǎn)是工程上容易實(shí)現(xiàn),可以方便應(yīng)用到產(chǎn)品中。目前絕大多數(shù)實(shí)際應(yīng)用的推薦算法都是協(xié)同過濾推薦算法。
3)混合推薦:這個(gè)類似我們機(jī)器學(xué)習(xí)中的集成學(xué)習(xí),博才眾長,通過多個(gè)推薦算法的結(jié)合,得到一個(gè)更好的推薦算法,起到三個(gè)臭皮匠頂一個(gè)諸葛亮的作用。比如通過建立多個(gè)推薦算法的模型,最后用投票法決定最終的推薦結(jié)果。混合推薦理論上不會(huì)比單一任何一種推薦算法差,但是使用混合推薦,算法復(fù)雜度就提高了,在實(shí)際應(yīng)用中有使用,但是并沒有單一的協(xié)調(diào)過濾推薦算法,比如邏輯回歸之類的二分類推薦算法廣泛。
現(xiàn)實(shí)應(yīng)用中,其實(shí)很少有直接用某種算法來做推薦的系統(tǒng)。在一些大的網(wǎng)站如Netflix,就是融合了數(shù)十種算法的推薦系統(tǒng)。我們可以通過給不同算法的結(jié)果加權(quán)重來綜合結(jié)果,或者是在不同的計(jì)算環(huán)節(jié)中運(yùn)用不同的算法來混合,達(dá)到更貼合自己業(yè)務(wù)的目的。
4)基于規(guī)則的推薦:這類算法常見的比如基于最多用戶點(diǎn)擊,最多用戶瀏覽等,屬于大眾型的推薦方法,在目前的大數(shù)據(jù)時(shí)代并不主流。
5)基于人口統(tǒng)計(jì)信息的推薦:這一類是最簡(jiǎn)單的推薦算法了,它只是簡(jiǎn)單的根據(jù)系統(tǒng)用戶的基本信息發(fā)現(xiàn)用戶的相關(guān)程度,然后進(jìn)行推薦,目前在大型系統(tǒng)中已經(jīng)較少使用。
3、基于內(nèi)容的推薦算法
對(duì)一個(gè)給定的用戶, 推薦與他之前喜歡的項(xiàng)目在內(nèi)容上有相似性的其他項(xiàng)目。這種推薦僅需要得到兩類信息: 項(xiàng)目特征的描述和用戶過去的喜好信息。
舉個(gè)栗子,現(xiàn)在系統(tǒng)里有一個(gè)用戶和一條新聞。通過分析用戶的行為以及新聞的文本內(nèi)容,我們提取出數(shù)個(gè)關(guān)鍵字。將這些關(guān)鍵字作為屬性,把用戶(過去的喜好)和新聞(新的內(nèi)容)分解成向量。
之后再計(jì)算向量距離,便可以得出該用戶和新聞的相似度了,將計(jì)算相似度最大的(例如采用余弦計(jì)算)內(nèi)容進(jìn)行推薦。
這種方法很簡(jiǎn)單,如果在為一名熱愛觀看英超聯(lián)賽的足球迷推薦新聞時(shí),新聞里同時(shí)存在關(guān)鍵字體育、足球、英超,顯然匹配前兩個(gè)詞都不如直接匹配英超來得準(zhǔn)確,系統(tǒng)該如何體現(xiàn)出關(guān)鍵詞的這種“重要性”呢?這時(shí)我們便可以引入詞權(quán)的概念。在大量的語料庫中通過計(jì)算(比如典型的TF-IDF算法),我們可以算出新聞中每一個(gè)關(guān)鍵詞的權(quán)重,在計(jì)算相似度時(shí)引入這個(gè)權(quán)重的影響,就可以達(dá)到更精確的效果。sim(user, item) = 文本相似度(user, item) * 詞權(quán),將重要的詞加大權(quán)重。
然而,經(jīng)常接觸體育新聞方面數(shù)據(jù)的同學(xué)就會(huì)要提出問題了:要是用戶的興趣是足球,而新聞的關(guān)鍵詞是德甲、英超,按照上面的文本匹配方法顯然無法將他們關(guān)聯(lián)到一起。在此,我們可以引用話題聚類:利用word2vec一類工具,可以將文本的關(guān)鍵詞聚類,然后根據(jù)topic將文本向量化,再根據(jù)topic為文本內(nèi)容與用戶作相似度計(jì)算。
綜上,基于內(nèi)容的推薦算法能夠很好地解決冷啟動(dòng)問題,并且也不會(huì)囿于熱度的限制,因?yàn)樗侵苯踊趦?nèi)容匹配的,而與瀏覽記錄無關(guān)。然而它也會(huì)存在一些弊端,比如過度專業(yè)化(over-specialisation)的問題。這種方法會(huì)一直推薦給用戶內(nèi)容密切關(guān)聯(lián)的item,而失去了推薦內(nèi)容的多樣性。
4、冷啟動(dòng)問題
冷啟動(dòng)問題主要分為3類:
用戶冷啟動(dòng),即如何給新用戶做個(gè)性化推薦
物品冷啟動(dòng),即如何將新的物品推薦給可能對(duì)它感興趣的用戶
系統(tǒng)冷啟動(dòng),即如何在一個(gè)新開發(fā)的網(wǎng)站(沒有用戶,沒有用戶行為,只有部分物品信息)上設(shè)計(jì)個(gè)性化推薦系統(tǒng),從而在網(wǎng)站剛發(fā)布時(shí)就讓用戶體會(huì)到個(gè)性化推薦
解決方案:
推薦熱門排行榜,等到用戶數(shù)據(jù)收集到一定的時(shí)候,再切換為個(gè)性化推薦;
利用用戶注冊(cè)信息;
用戶在登錄時(shí)對(duì)一些物品進(jìn)行反饋,收集用戶對(duì)這些物品的興趣信息,然后給用戶推薦那些和這些物品相似的物品;
采用專家標(biāo)注;
利用物品的內(nèi)容信息,物品冷啟動(dòng);
利用用戶在其他地方已經(jīng)沉淀的數(shù)據(jù)進(jìn)行冷啟動(dòng);
利用用戶的手機(jī)等興趣偏好進(jìn)行冷啟動(dòng),比如安裝的軟件等
5、上下文信息、社交網(wǎng)絡(luò)
推薦系統(tǒng)中的上下文信息是指用戶訪問推薦系統(tǒng)的時(shí)間、地點(diǎn)、心情等。介紹時(shí)間上下文和地點(diǎn)上下文,讓推薦系統(tǒng)能夠準(zhǔn)確預(yù)測(cè)用戶在某個(gè)特定時(shí)刻及特定地點(diǎn)的興趣。推薦系統(tǒng)的實(shí)時(shí)性和多樣性。
社交網(wǎng)絡(luò):電子郵件、注冊(cè)信息、位置數(shù)據(jù)、論壇討論組、社交網(wǎng)站。
社會(huì)化推薦之所以受到很多網(wǎng)站的重視,主要因?yàn)橄旅娴?strong>優(yōu)點(diǎn):
好友推薦可以增加推薦的信任度,好友往往是用戶最信任的,用戶往往不一定信任計(jì)算機(jī)的智能,但會(huì)信任好朋友的推薦
社交網(wǎng)絡(luò)可以解決冷啟動(dòng)問題,當(dāng)一個(gè)新用戶通過新浪微博賬號(hào)登錄網(wǎng)站時(shí),可以從社交網(wǎng)站中獲取用戶的好友列表,然后給用戶推薦好友在網(wǎng)站上喜歡的物品。從而在沒有用戶行為記錄時(shí)就給用戶提供較高質(zhì)量的推薦結(jié)果,部分解決了推薦系統(tǒng)的冷啟動(dòng)問題
云音樂使用了3個(gè)維度向人們推薦音樂:朋友推薦、人工推薦、智能推薦
6、評(píng)估
當(dāng)推薦算法完成后,怎樣來評(píng)估這個(gè)算法的效果?CTR(點(diǎn)擊率)、CVR(轉(zhuǎn)化率)、停留時(shí)間等都是很直觀的數(shù)據(jù)。在完成算法后,可以通過線下計(jì)算算法的RMSE(均方根誤差)或者線上進(jìn)行ABTest來對(duì)比效果。
7、改進(jìn)
1、打通公司各大業(yè)務(wù)平臺(tái),通過獲取其他平臺(tái)的用戶數(shù)據(jù),徹底解決冷啟動(dòng)問題;
2、在不同設(shè)備上同步用戶數(shù)據(jù),包括QQID、設(shè)備號(hào)、手機(jī)號(hào)等;
3、豐富用戶的人口屬性,包括年齡、職業(yè)、地域等;
4、更完善的用戶興趣狀態(tài),方便生成用戶標(biāo)簽和匹配內(nèi)容。
另外,公司的優(yōu)勢(shì)——社交平臺(tái)也是一個(gè)很好利用的地方。利用用戶的社交網(wǎng)絡(luò),可以很方便地通過用戶的好友、興趣群的成員等更快捷地找到相似用戶以及用戶可能感興趣的內(nèi)容,提高推薦的準(zhǔn)確度。
參考文獻(xiàn):https://www.cnblogs.com/rongyux/articles/5396844.html
總結(jié)
以上是生活随笔為你收集整理的机器学习(二十八)— 推荐算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PYG教程【二】使用networkx创建
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?