產(chǎn)品經(jīng)理必知的推薦算法二三事
編輯導(dǎo)語(yǔ):如今在互聯(lián)網(wǎng)的大數(shù)據(jù)下,很多功能和信息是通過(guò)算法進(jìn)行推薦的,比如每個(gè)人的淘寶推薦里,可能都是一些自己感興趣的東西,這就是根據(jù)推薦算法做到的;本文作者說(shuō)明了產(chǎn)品經(jīng)理需要知道的推薦算法,我們一起來(lái)看一下。
最近在了解推薦算法相關(guān)的東西,翻了一些資料,對(duì)常見的推薦算法有了一些基本的了解,就想著和大家分享下。
先來(lái)回顧一下互聯(lián)網(wǎng)誕生到目前為止,我們尋找信息的方式變化——最早期的時(shí)候,信息是比較稀缺的,那個(gè)時(shí)候信息比較分散,尋找的效率也較低,主要是人找信息。
后來(lái)信息逐漸豐富起來(lái)了,有些人或者公司專門把各種信息聚集在一個(gè)地方,人們可以通過(guò)類目導(dǎo)航進(jìn)行查找,典型的公司是三大門戶。
再后來(lái)信息量越來(lái)越大,人工添加的類目已經(jīng)不能覆蓋所有信息了,于是誕生了另外一種信息獲取方式——搜索,典型的公司是Google、百度。
再再后來(lái),人與信息的關(guān)系從單向的人找信息演變成了現(xiàn)在的雙向關(guān)系,人找信息,同時(shí)信息也在找人,在談到信息找人的時(shí)候,就不得不提到推薦算法了。
本文會(huì)簡(jiǎn)單的說(shuō)明熱度算法、協(xié)同過(guò)濾、基于內(nèi)容的推薦和混合方法這幾種推薦算法…
鑒于主頁(yè)君對(duì)算法的了解并不是特別多,所以只是簡(jiǎn)單的原理說(shuō)明,不涉及到實(shí)操。
一、熱度算法
說(shuō)到熱度算法有些人可能比較陌生,換個(gè)詞大家應(yīng)該就知道了,那就是排行榜。
排行榜按照我們的理解就是一個(gè)榜單,按照某種規(guī)則給出1到N的排名,我們優(yōu)先去選擇榜單上排名比較靠前的東西。
熱度算法也是類似的原理,基于某些規(guī)則計(jì)算一個(gè)熱度分,然后取TopN;此外可能還會(huì)有一些人工干預(yù)的成分,比如加精、編輯推薦等等。
熱度算法的計(jì)算公式可以簡(jiǎn)單的參考下面這個(gè)基礎(chǔ)公式:
熱度分=初始熱度分+用戶行為交互分-時(shí)間衰減分
其中初始熱度分又可以分為兩部分,一部分是基礎(chǔ)分值,一部分是加權(quán)或者降權(quán)。
基礎(chǔ)分值指的是本身計(jì)算出來(lái)的分值,以一篇文章為例,包含了作者信息、文章信息;那相關(guān)的元素就有作者等級(jí)、是否認(rèn)證、歷史發(fā)文情況、歷史文章數(shù)據(jù)表現(xiàn)情況、文章長(zhǎng)度、圖片數(shù)量、關(guān)鍵詞等。
基于上面這些相關(guān)元素,可以計(jì)算出一個(gè)基礎(chǔ)分值,然后再結(jié)合著一些加權(quán)或者降權(quán)處理就能計(jì)算出來(lái)一個(gè)初始的熱度分。
加權(quán)項(xiàng)可能有干貨類加權(quán),新人投稿加權(quán),運(yùn)營(yíng)干預(yù)加權(quán)等等,降權(quán)項(xiàng)可能包含XX過(guò)于熱門降權(quán)、包含XX關(guān)鍵詞降權(quán)、涉嫌抄襲降權(quán)等等。
計(jì)算出一個(gè)初始的熱度分之后,取TopN出來(lái)就可以推薦給用戶了。
用戶行為交互分指的是這個(gè)東西推薦給用戶之后的一些反饋,常見的反饋主要分為兩種,分別是正反饋和負(fù)反饋。
正反饋是常見的點(diǎn)擊、轉(zhuǎn)發(fā)、評(píng)論、收藏、贊,基于用戶的這些行為表現(xiàn)再對(duì)內(nèi)容重新進(jìn)行分值計(jì)算,這里面各個(gè)行為的權(quán)重是不同的,具體權(quán)重需要結(jié)合業(yè)務(wù)屬性進(jìn)行確定。
負(fù)反饋是用戶明確表現(xiàn)不來(lái)不喜歡推薦的行為,比如減少類似推薦,基于得到的負(fù)反饋信息,對(duì)分值進(jìn)行一些減分處理。
時(shí)間衰減指的是分值會(huì)隨著時(shí)間進(jìn)行衰減,避免舊內(nèi)容的熱度分一直很高,新內(nèi)容無(wú)法露出。一般會(huì)采用牛頓冷卻定律,說(shuō)人話就是非線性衰減。
熱度算法大致就是上面說(shuō)的這樣,比較容易實(shí)現(xiàn),適合做冷啟動(dòng)用,缺點(diǎn)是千人一面,沒(méi)辦法做個(gè)性化的分發(fā),而且新內(nèi)容比較難露出。
二、協(xié)同過(guò)濾
協(xié)同過(guò)濾主要是通過(guò)計(jì)算人、物之間的相似性來(lái)進(jìn)行推薦,主要包含人與人、物與物和人與物之間的相似性。
常見的協(xié)同過(guò)濾算法主要有基于人的協(xié)同過(guò)濾、基于物品的協(xié)同過(guò)濾和基于模型的協(xié)同過(guò)濾。
1. 基于人的協(xié)同過(guò)濾
顧名思義就是通過(guò)計(jì)算人與人的相似度來(lái)進(jìn)行物品推薦。
比如小A喜歡物品A、物品B,小B喜歡物品C、物品D和物品E;而小A和小B之間是有一定相似度的,所以就給小A推薦小B喜歡的物品C,可參考下面的示意圖。
基于人的協(xié)同過(guò)濾
這里面有兩個(gè)關(guān)鍵問(wèn)題:
- 要找到和小A興趣相似的用戶集;
- 要找到這個(gè)集合中的用戶喜歡且小A沒(méi)有聽說(shuō)過(guò)的東西。
具體實(shí)現(xiàn)的步驟是:
- 首先找到和小A相似的用戶;
- 然后找出相似用戶喜歡的物品,并且預(yù)測(cè)小A對(duì)這些物品的評(píng)分;
- 之后過(guò)濾掉小A已經(jīng)消費(fèi)過(guò)的物品;
- 最后將剩余的物品按照評(píng)分進(jìn)行排序,并返回TopN。
基于人的協(xié)同過(guò)濾的優(yōu)點(diǎn)是能幫助用戶發(fā)現(xiàn)一些比較新鮮且可能會(huì)感興趣的東西,缺點(diǎn)是隨著用戶數(shù)量的增加,計(jì)算用戶之間興趣相似度的復(fù)雜度會(huì)急劇增加,而且對(duì)于新物品或者新用戶的推薦效果可能都不太好。
2. 基于物品的協(xié)同過(guò)濾
顧名思義就是基于物品之間的相似度進(jìn)行推薦。比如小A喜歡物品A和物品B,物品A和物品C之間有著一定的相似度,那就可以給小A推薦物品C,可參考下面的示意圖:
基于物品的協(xié)同過(guò)濾
這里面的關(guān)鍵問(wèn)題也是兩個(gè):
- 要計(jì)算物品之間的相似度;
- 要基于物品的相似度和用戶的歷史行為,給用戶生成推薦列表。
具體實(shí)現(xiàn)方式是:
- 分析用戶的行為記錄,計(jì)算物品之間的相似度;
- 基于物品相似度和用戶的歷史行為生成推薦列表,和用戶歷史上感興趣的物品越相似的其他物品排序會(huì)越靠前;
- 最后是基于相似度矩陣的最大值進(jìn)行歸一化,提升推薦的準(zhǔn)確率。
需注意的是這里的相似度不是物品與物品之間的直接相似度,而是它們共同出現(xiàn)在多少用戶的興趣列表中。
比如喜歡物品A的用戶中,有多少用戶喜歡物品B,兩者之間的重復(fù)度越高,物品A和物品B的相似度越高。
基于人的協(xié)同過(guò)濾更多反應(yīng)的是物品在小圈子里的歡迎程度,而基于物品的協(xié)同過(guò)濾則考慮了用戶的歷史行為,相對(duì)更個(gè)性化一些;但是在物品數(shù)量較多的時(shí)候,也會(huì)面臨物品之間相似度計(jì)算起來(lái)很復(fù)雜的問(wèn)題。
3. 基于模型的協(xié)同過(guò)濾
顧名思義就是基于一個(gè)模型來(lái)進(jìn)行推薦,這里面用到的技術(shù)就比較多涉及到機(jī)器學(xué)習(xí)領(lǐng)域,比如關(guān)聯(lián)規(guī)則挖掘、聚類、SVD、RBM、圖模型等…(反正我也聽不懂)。
按照個(gè)人的理解就是基于用戶和物品之間的感興趣程度,訓(xùn)練出來(lái)一個(gè)黑盒模型,基于輸入和輸出的東西進(jìn)行不斷的優(yōu)化迭代。
以0-1進(jìn)行評(píng)估,1代表著用戶肯定會(huì)感興趣,0代表著用戶肯定不感興趣;這個(gè)模型就是計(jì)算用戶的感興趣程度,然后優(yōu)先給用戶推薦感興趣程度較高的東西,最后再結(jié)合著用戶的反饋來(lái)不斷優(yōu)化這個(gè)模型。
整體流程就是:
- 準(zhǔn)備訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集;
- 不斷的訓(xùn)練模型;
- 對(duì)模型進(jìn)行評(píng)估;
- 推薦給用戶;
- 優(yōu)化迭代。
三、基于內(nèi)容的推薦
基于內(nèi)容的推薦就是基于內(nèi)容的推薦,主要是基于內(nèi)容之間的相似程度。
比如我看了A導(dǎo)演的B電影,其中有C主演,我表現(xiàn)的非常喜歡這部電影。
那理論上來(lái)說(shuō)就可以給我推A導(dǎo)演的其他作品集,或者C主演參演的其他電影,以及B電影的系列電影或者題材類似的其他電影。
這個(gè)算法的優(yōu)點(diǎn)是便于冷啟動(dòng),而且能夠比較好的向用戶進(jìn)行解釋,缺點(diǎn)是很難將不同的特征進(jìn)行組合,比較難帶給用戶驚喜感,而且用戶的屬性挖掘不準(zhǔn)的話推薦效果會(huì)比較差。
四、混合方法
顧名思義就是混合起來(lái)用,常見的策略主要包含加權(quán)、切換、分區(qū)和分層。
加權(quán)指的是利用線形的公式將幾種不同的推薦算法組合起來(lái),給予不同的權(quán)重,比如A算法20%、B算法50%、C算法30%,然后再計(jì)算出一個(gè)最終推薦結(jié)果。
切換指的是在不同情況下用不同的推薦算法,比如冷啟動(dòng)時(shí)用熱門算法,有了用戶行為和數(shù)據(jù)之后,再切換成其他算法。
分區(qū)指的是采用不同的推薦機(jī)制,將不同推薦結(jié)果分不同的區(qū)展示給用戶,比如對(duì)商品采用基于物品的協(xié)同過(guò)濾,對(duì)文章采用基于內(nèi)容的推薦。
分層指的是將一個(gè)推薦算法的結(jié)果作為另一個(gè)推薦算法的輸入,比如先用基于內(nèi)容的推薦算法生成一個(gè)候選集,然后再利用基于模型的協(xié)同過(guò)濾從這個(gè)候選集中選擇內(nèi)容。
五、One More Thing
首先想說(shuō)的是關(guān)于推薦算法的效果衡量,有一大堆指標(biāo)來(lái)進(jìn)行衡量,有定性的,有定量的,參見下圖:
素材來(lái)源于阿里技術(shù)
我沒(méi)有做過(guò)這些東西,沒(méi)辦法詳細(xì)展開,我們多看看上圖就好,在不少地方見到過(guò)這個(gè)評(píng)價(jià)體系。
其次想說(shuō)的是,主頁(yè)君對(duì)這些算法的理解都很淺,感興趣的小伙伴可以自行了解更多知識(shí);有些知識(shí)點(diǎn)萬(wàn)一寫錯(cuò)了的話,麻煩指正一下,見諒見諒。
最后,本文在寫作過(guò)程中主要參考了以下書籍和文章:
《推薦系統(tǒng)實(shí)戰(zhàn)》——項(xiàng)亮編著
《基于協(xié)同過(guò)濾的推薦方法》——Yanjun
以上,就是本文的主要內(nèi)容,愿你有所收獲;歡迎斧正、指點(diǎn)、拍磚…
#專欄作家#
王家郴 ,微信是chen604841806,公眾號(hào):產(chǎn)品經(jīng)理從0到1,人人都是產(chǎn)品經(jīng)理專欄作家,喜歡網(wǎng)球和騎行的產(chǎn)品汪,目前奔走在產(chǎn)品的道路上,漫漫產(chǎn)品路,與君共勉。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 unsplash,基于 CC0 協(xié)議
老王進(jìn)步很快
和人一樣在考慮