帶你從算法原理看推薦策略

推薦算法簡(jiǎn)介

目前的推薦算法一般分為四大類:

協(xié)同過濾推薦算法

基于內(nèi)容的推薦算法

混合推薦算法

流行度推薦算法

協(xié)同過濾的推薦算法

協(xié)同過濾推薦算法應(yīng)該算是一種用的最多的推薦算法质礼,它是通過用戶的歷史數(shù)據(jù)來構(gòu)建“用戶相似矩陣”和“產(chǎn)品相似矩陣”來對(duì)用戶進(jìn)行相關(guān)item的推薦谤草,以達(dá)到精準(zhǔn)滿足用戶喜好的目的廓块。比如亞馬遜等電商網(wǎng)站上的“買過XXX的人也買了XXX”就是一種協(xié)同過濾算法的應(yīng)用。

基于內(nèi)容的推薦算法

基于內(nèi)容的推薦算法,是將item的名稱拖刃、簡(jiǎn)介等進(jìn)行分詞處理后恨胚,提取出TF-IDF值較大的詞作為特征詞,在此基礎(chǔ)上構(gòu)建item相關(guān)的特征向量灼卢,再根據(jù)余弦相似度來計(jì)算相關(guān)性绍哎,構(gòu)建相似度矩陣。

混合推薦算法

混合推薦算法很好理解鞋真,就是將其他算法推薦的結(jié)果賦予不同的權(quán)重崇堰,然后將最后的綜合結(jié)果進(jìn)行推薦的方法。

舉例來說涩咖,比如上述已經(jīng)提到了三種方式海诲,協(xié)同過濾算法中的基于用戶和基于item的協(xié)同過濾推薦,和基于內(nèi)容的推薦算法;而混合推薦算法中是將這三種推薦結(jié)果賦予不同的權(quán)重檩互,如:基于用戶的協(xié)同過濾的權(quán)重為40%特幔,基于item的協(xié)同過濾的權(quán)重為30%,基于內(nèi)容的過濾技術(shù)的權(quán)重為30%闸昨,然后綜合計(jì)算得到最終的推薦結(jié)果蚯斯。

流行度推薦算法

這個(gè)很基礎(chǔ),看名字就知道了饵较。這種方法是對(duì)item使用某種形式的流行度度量溉跃,例如最多的下載次數(shù)或購(gòu)買量,然后向新用戶推薦這些受歡迎的item告抄。就和我們平時(shí)經(jīng)匙ィ看到的熱門商品、熱門推薦類似打洼。

淺析推薦算法在實(shí)際中的應(yīng)用

了解了大概原理后龄糊,就可以來看看在實(shí)際場(chǎng)景中逆粹,推薦算法都是怎么使用的吧。(聲明:這是我看了相關(guān)東西再結(jié)合自己理解進(jìn)去推測(cè)的)好炫惩,下面開始僻弹,先說說協(xié)同過濾算法在實(shí)際中的應(yīng)用。

協(xié)同過濾算法

協(xié)同過濾算法一般是怎么做的呢?我們先來看看在圖書推薦中的做法:

協(xié)同過濾(CF)大致可分為兩類:一類是基于鄰域的推薦他嚷、一類是基于模型的推薦;鄰域方法是使用用戶對(duì)已有item的喜愛程度來推測(cè)用戶對(duì)新item的喜愛程度蹋绽。與之相反,基于模型的方法是使用歷史行為數(shù)據(jù)筋蓖,基于學(xué)習(xí)出的預(yù)測(cè)模型卸耘,預(yù)測(cè)對(duì)新項(xiàng)的喜愛程度。通常的方式是使用機(jī)器學(xué)習(xí)算法粘咖,找出用戶與項(xiàng)的相互作用模型蚣抗,從而找出數(shù)據(jù)中的特定模式。在此我向大家推薦一個(gè)大數(shù)據(jù)技術(shù)交流圈:?658558542??突破技術(shù)瓶頸瓮下,提升思維能力?

【基于鄰域的推薦】–即是構(gòu)建用戶相似矩陣和產(chǎn)品相似矩陣

假設(shè)用戶表現(xiàn)出了對(duì)一些圖片的喜歡情況并進(jìn)行了相應(yīng)的評(píng)分翰铡,情況如下:

不同圖書代表不同維度,評(píng)分則代表了特征向量在該維度上的投影長(zhǎng)度讽坏,根據(jù)用戶對(duì)不同圖書的喜愛程度建立用戶的特征向量锭魔,然后根據(jù)余弦相似度可以判斷用戶之間的相似性。根據(jù)相似性可以建立用戶相似矩陣:

很顯然路呜,通過根據(jù)用戶對(duì)歷史圖書的評(píng)分情況迷捧,可以得到用戶對(duì)其的喜愛情況,在此基礎(chǔ)上構(gòu)建出用戶特征向量拣宰,可以一定程度上判斷兩個(gè)用戶在圖書品味上的相似程度党涕,進(jìn)而我們可以認(rèn)為烦感,若A和B比較相似巡社,可以認(rèn)為A喜歡的書B也喜歡。

在給A用戶進(jìn)行圖書推薦時(shí)手趣,找到與其相似度較高的其他用戶晌该,然后除去A用戶已看過的圖書,結(jié)合相似用戶對(duì)某本圖書的喜愛程度與該用戶與A用戶的相似度進(jìn)行加權(quán)绿渣,得到的推薦指數(shù)越高的圖書優(yōu)先進(jìn)行推薦朝群。

這應(yīng)該也是豆瓣等圖書社區(qū)上使用的推薦算法之一,利用用戶之間的相似度來進(jìn)行推薦中符。當(dāng)然姜胖,電影推薦也同理。

同理淀散,反過來我們可以按照相似的方位右莱,以用戶為維度來構(gòu)建item的特征向量蚜锨。 當(dāng)我們需要判斷兩本書是否相似時(shí),就去看對(duì)這兩本書進(jìn)行過評(píng)價(jià)的用戶構(gòu)成是否相似慢蜓,即是使用評(píng)價(jià)過一本書的用戶向量(或數(shù)組)表示這本圖書;也就是說亚再,如果有兩本書的評(píng)價(jià)中,用戶重合度較高晨抡,即可認(rèn)為該兩本書相似度較高氛悬。其實(shí)借用的還是用戶相似的基礎(chǔ)。(《白話大數(shù)據(jù)與機(jī)器學(xué)習(xí)》中也提到過相似的推薦算法耘柱,感興趣的同學(xué)可以找來看一下)如捅。

在音樂的推薦中同樣用到了協(xié)同過濾算法,我們眾所周知的使用個(gè)性化推薦的音樂app應(yīng)該屬「網(wǎng)易云音樂」比較典型了帆谍。

那么我們就來yy一下網(wǎng)易云音樂的推薦算法伪朽,首先用戶過去都會(huì)有聽歌的歷史,由于音樂中沒有相關(guān)的評(píng)分機(jī)制汛蝙,那么可以根據(jù)用戶對(duì)音樂的行為來建立一個(gè)喜愛程度模型烈涮,例如:收藏-5分,加入歌單-4分窖剑,單曲循環(huán)-3分坚洽,分享-5分,聽一遍就刪-0分(本來想說負(fù)分滾粗的)西土。這樣就大概有了一個(gè)喜歡程度列表讶舰,于是接下來就可以根據(jù)用戶的聽歌情況,建立用戶的特征向量需了,接下來的推薦就順利成章了跳昼。

當(dāng)然,基于協(xié)同過濾算法的用戶相似度矩陣算法應(yīng)該只是網(wǎng)易云采取的一種推薦方式肋乍,接下來還會(huì)說到另外的方式鹅颊。

值得注意的是,協(xié)同過濾的推薦算法雖然使用得很廣且推薦效果也較好墓造,但還是存在一些不足之處:

協(xié)同過濾算法(CF)推薦中存在流行性偏差堪伍,因?yàn)閰f(xié)同過濾算法是基于慣性數(shù)據(jù)來進(jìn)行推薦的,流行的物品由于關(guān)注的用戶多觅闽,產(chǎn)生的數(shù)據(jù)也多帝雇,因此可以建立較為有效的推薦機(jī)制;而對(duì)于小眾或長(zhǎng)尾的產(chǎn)品(沒人用過也沒人評(píng)分過),則無法有效推薦;

冷啟動(dòng)問題(又叫做新用戶問題蛉拙,或推薦新項(xiàng)問題)尸闸,同樣是由于慣性數(shù)據(jù)的缺失,導(dǎo)致一開始的推薦算法無法建立;這樣的問題可以通過流行性算法進(jìn)行一定程度的解決,當(dāng)然也可以利用基于內(nèi)容的推薦算法來進(jìn)行解決(后面會(huì)提到)吮廉。

基于內(nèi)容的過濾算法

簡(jiǎn)介部分已經(jīng)提到了基于內(nèi)容的過濾算法的基本原理睹栖,這里就不再重復(fù)了,直接說一下具體大概是怎么用的吧茧痕∫袄矗基于內(nèi)容的過濾方式與協(xié)同過濾中建立用戶相似矩陣的方式類似,都是利用特征向量來進(jìn)行余弦相似度計(jì)算踪旷,從而判斷物品的相似性曼氛。首先, 利用分詞技術(shù)對(duì)書籍的標(biāo)題和內(nèi)容進(jìn)行處理令野,去掉權(quán)重為0的詞(如的舀患、得、地等)气破;然后聊浅,取 TF-IDF值較大的詞作為特征詞,并將其提取出來作為標(biāo)簽现使;

接著低匙, 根據(jù)特征詞建立書籍的特征向量;

最后碳锈, 計(jì)算不同書籍之間的余弦相似度顽冶,并憑次建立書籍之間的相似度矩陣;

基于內(nèi)容的協(xié)同過濾算法售碳,最主要的初級(jí)步驟是通過分詞技術(shù)對(duì)標(biāo)題和簡(jiǎn)介等進(jìn)行處理强重,形成特征標(biāo)簽。例如贸人,對(duì)于圖書和電影而言间景,可以對(duì)名稱和簡(jiǎn)介進(jìn)行特征詞提取,從而構(gòu)建特征向量;當(dāng)然艺智,在豆瓣上發(fā)現(xiàn)可以用一種更省事的方法倘要,就是讓用戶進(jìn)行對(duì)作品評(píng)價(jià)時(shí)需要勾選相關(guān)的標(biāo)簽,這樣只要為不同種類提供足夠多的標(biāo)簽供用戶選擇即可(當(dāng)然這是我猜的)力惯;

而如果對(duì)于音樂的推薦呢?沒有相關(guān)簡(jiǎn)介碗誉,歌名也不具備足夠的指向性召嘶,這種情況下則可以通過音樂本身的類別來作為標(biāo)簽進(jìn)行特征向量的構(gòu)建父晶,例如:民謠、搖滾弄跌、懷舊等;我猜這也是網(wǎng)易云音樂采用的一種推薦方式吧甲喝。

而對(duì)于36氪之類的資訊網(wǎng)站,采用什么樣的推薦算法也能夠有一定程度的理解了吧铛只,原理都是類似的埠胖。

基于內(nèi)容的推薦由于不需要太多的慣性數(shù)據(jù)糠溜,因此可以部分解決冷啟動(dòng)問題和流行性偏差,也就是彌補(bǔ)了協(xié)同過濾算法中的部分不足直撤,因此也可以將兩者混合起來使用非竿,例如混合推薦算法就是采用了這樣的方式;其次谋竖,需要注意的是红柱,如果單純使用基于內(nèi)容的過濾算法,會(huì)出現(xiàn)過度專業(yè)化問題蓖乘,導(dǎo)致推薦列表里面出現(xiàn)的大多都是同一類東西锤悄,有的小伙伴可能也觀察到了類似的現(xiàn)象,比如在亞馬遜上購(gòu)買哪本書(比如java相關(guān)的)嘉抒,會(huì)發(fā)現(xiàn)推薦的書籍里全是java相關(guān)的零聚,就是因?yàn)槌霈F(xiàn)了過度專業(yè)化的現(xiàn)象。

結(jié)語

推薦算法的原理其實(shí)基于數(shù)學(xué)的原理得到解決(向量些侍、余弦相似度等)隶症,其實(shí)其他各類也同理,都是可在數(shù)學(xué)的基礎(chǔ)上得到思路和衍生岗宣,如用來進(jìn)行情感判斷的樸素貝葉斯算法沿腰,就是將人才能理解的情感問題轉(zhuǎn)化成了基本的概率問題而得到解決,包括自然語言處理(NLP)和語音識(shí)別等狈定,由此真是可以體會(huì)到數(shù)學(xué)的博大精深啊颂龙。

感謝您的觀看,如有不足之處纽什,歡迎批評(píng)指正措嵌。

在此我向大家推薦一個(gè)大數(shù)據(jù)開發(fā)交流圈:

658558542? ? (?點(diǎn)擊即可加入群聊

里面整理了一大份學(xué)習(xí)資料,全都是些干貨芦缰,包括大數(shù)據(jù)技術(shù)入門企巢,大數(shù)據(jù)離線處理、數(shù)據(jù)實(shí)時(shí)處理让蕾、Hadoop 浪规、Spark、Flink探孝、推薦系統(tǒng)算法以及源碼解析等笋婿,送給每一位大數(shù)據(jù)小伙伴,讓自學(xué)更輕松顿颅。這里不止是小白聚集地缸濒,還有大牛在線解答!歡迎初學(xué)和進(jìn)階中的小伙伴一起進(jìn)群學(xué)習(xí)交流,共同進(jìn)步庇配!

最后祝福所有遇到瓶頸的大數(shù)據(jù)程序員們突破自己斩跌,祝福大家在往后的工作與面試中一切順利。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捞慌,一起剝皮案震驚了整個(gè)濱河市耀鸦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌啸澡,老刑警劉巖揭糕,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锻霎,居然都是意外死亡著角,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門旋恼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吏口,“玉大人,你說我怎么就攤上這事冰更〔玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蜀细,是天一觀的道長(zhǎng)舟铜。 經(jīng)常有香客問我,道長(zhǎng)奠衔,這世上最難降的妖魔是什么谆刨? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮归斤,結(jié)果婚禮上痊夭,老公的妹妹穿的比我還像新娘。我一直安慰自己脏里,他們只是感情好她我,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迫横,像睡著了一般番舆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上矾踱,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天恨狈,我揣著相機(jī)與錄音,去河邊找鬼介返。 笑死拴事,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的圣蝎。 我是一名探鬼主播刃宵,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼徘公!你這毒婦竟也來了牲证?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤关面,失蹤者是張志新(化名)和其女友劉穎坦袍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體等太,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捂齐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缩抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奠宜。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瞻想,靈堂內(nèi)的尸體忽然破棺而出压真,到底是詐尸還是另有隱情,我是刑警寧澤蘑险,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布滴肿,位于F島的核電站,受9級(jí)特大地震影響佃迄,放射性物質(zhì)發(fā)生泄漏泼差。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一呵俏、第九天 我趴在偏房一處隱蔽的房頂上張望拴驮。 院中可真熱鬧,春花似錦柴信、人聲如沸套啤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潜沦。三九已至,卻和暖如春绪氛,著一層夾襖步出監(jiān)牢的瞬間唆鸡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工枣察, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留争占,地道東北人燃逻。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像臂痕,于是被迫代替她去往敵國(guó)和親伯襟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容