先來回顧一下互聯(lián)網(wǎng)誕生到目前為止,我們尋找信息的方式變化…
最早期的時候,信息是比較稀缺的,那個時候信息比較分散,尋找的效率也較低,主要是人找信息。
后來信息逐漸豐富起來了,有些人或者公司專門把各種信息聚集在一個地方,人們可以通過類目導航進行查找,典型的公司是三大門戶。
再后來信息量越來越大,人工添加的類目已經(jīng)不能覆蓋所有信息了,于是誕生了另外一種信息獲取方式——搜索,典型的公司是Google、百度。
再再后來,人與信息的關(guān)系從單向的人找信息演變成了現(xiàn)在的雙向關(guān)系,人找信息,同時信息也在找人,在談到信息找人的時候,就不得不提到推薦算法了。
本文會簡單的說明熱度算法、協(xié)同過濾、基于內(nèi)容的推薦和混合方法這幾種推薦算法…
鑒于主頁君對算法的了解并不是特別多,所以只是簡單的原理說明,不涉及到實操。
熱度算法
說到熱度算法有些人可能比較陌生,換個詞大家應該就知道了,那就是排行榜。
排行榜按照我們的理解就是一個榜單,按照某種規(guī)則給出1到N的排名,我們優(yōu)先去選擇榜單上排名比較靠前的東西。
熱度算法也是類似的原理,基于某些規(guī)則計算一個熱度分,然后取TopN。此外可能還會有一些人工干預的成分,比如加精、編輯推薦等等…
熱度算法的計算公式可以簡單的參考下面這個基礎(chǔ)公式:
熱度分=初始熱度分+用戶行為交互分-時間衰減分
其中初始熱度分又可以分為兩部分,一部分是基礎(chǔ)分值,一部分是加權(quán)或者降權(quán)。
基礎(chǔ)分值指的是本身計算出來的分值,以一篇文章為例,包含了作者信息、文章信息,那相關(guān)的元素就有作者等級、是否認證、歷史發(fā)文情況、歷史文章數(shù)據(jù)表現(xiàn)情況、文章長度、圖片數(shù)量、關(guān)鍵詞等…
基于上面這些相關(guān)元素,可以計算出一個基礎(chǔ)分值。然后再結(jié)合著一些加權(quán)或者降權(quán)處理就能計算出來一個初始的熱度分。
加權(quán)項可能有干貨類加權(quán),新人投稿加權(quán),運營干預加權(quán)等等,降權(quán)項可能包含XX過于熱門降權(quán)、包含XX關(guān)鍵詞降權(quán)、涉嫌抄襲降權(quán)等等…
計算出一個初始的熱度分之后,取TopN出來就可以推薦給用戶了。
用戶行為交互分指的是這個東西推薦給用戶之后的一些反饋,常見的反饋主要分為兩種,分別是正反饋和負反饋。
正反饋是常見的點擊、轉(zhuǎn)發(fā)、評論、收藏、贊,基于用戶的這些行為表現(xiàn)再對內(nèi)容重新進行分值計算,這里面各個行為的權(quán)重是不同的,具體權(quán)重需要結(jié)合業(yè)務屬性進行確定。
負反饋是用戶明確表現(xiàn)不來不喜歡推薦的行為,比如減少類似推薦,基于得到的負反饋信息,對分值進行一些減分處理。
時間衰減指的是分值會隨著時間進行衰減,避免舊內(nèi)容的熱度分一直很高,新內(nèi)容無法露出。一般會采用牛頓冷卻定律,說人話就是非線性衰減…
熱度算法大致就是上面說的這樣,比較容易實現(xiàn),適合做冷啟動用,缺點是千人一面,沒辦法做個性化的分發(fā),而且新內(nèi)容比較難露出。
協(xié)同過濾
協(xié)同過濾主要是通過計算人、物之間的相似性來進行推薦,主要包含人與人、物與物和人與物之間的相似性。
常見的協(xié)同過濾算法主要有基于人的協(xié)同過濾、基于物品的協(xié)同過濾和基于模型的協(xié)同過濾。
基于人的協(xié)同過濾
顧名思義就是通過計算人與人的相似度來進行物品推薦。
比如小A喜歡物品A、物品B,小B喜歡物品C、物品D和物品E,而小A和小B之間是有一定相似度的,所以就給小A推薦小B喜歡的物品C,可參考下面的示意圖。
基于人的協(xié)同過濾
這里面有兩個關(guān)鍵問題:
具體實現(xiàn)的步驟是:
基于人的協(xié)同過濾的優(yōu)點是能幫助用戶發(fā)現(xiàn)一些比較新鮮且可能會感興趣的東西,缺點是隨著用戶數(shù)量的增加,計算用戶之間興趣相似度的復雜度會急劇增加,而且對于新物品或者新用戶的推薦效果可能都不太好。
基于物品的協(xié)同過濾
顧名思義就是基于物品之間的相似度進行推薦。比如小A喜歡物品A和物品B,物品A和物品C之間有著一定的相似度,那就可以給小A推薦物品C,可參考下面的示意圖:
基于物品的協(xié)同過濾
這里面的關(guān)鍵問題也是兩個:
具體實現(xiàn)方式是:
需注意的是這里的相似度不是物品與物品之間的直接相似度,而是它們共同出現(xiàn)在多少用戶的興趣列表中。
比如喜歡物品A的用戶中,有多少用戶喜歡物品B,兩者之間的重復度越高,物品A和物品B的相似度越高。
基于人的協(xié)同過濾更多反應的是物品在小圈子里的歡迎程度,而基于物品的協(xié)同過濾則考慮了用戶的歷史行為,相對更個性化一些,但是在物品數(shù)量較多的時候,也會面臨物品之間相似度計算起來很復雜的問題。
基于模型的協(xié)同過濾
顧名思義就是基于一個模型來進行推薦,這里面用到的技術(shù)就比較多涉及到機器學習領(lǐng)域,比如關(guān)聯(lián)規(guī)則挖掘、聚類、SVD、RBM、圖模型等…(反正我也聽不懂)
按照個人的理解就是基于用戶和物品之間的感興趣程度,訓練出來一個黑盒模型,基于輸入和輸出的東西進行不斷的優(yōu)化迭代。
以0-1進行評估,1代表著用戶肯定會感興趣,0代表著用戶肯定不感興趣,這個模型就是計算用戶的感興趣程度,然后優(yōu)先給用戶推薦感興趣程度較高的東西,最后再結(jié)合著用戶的反饋來不斷優(yōu)化這個模型。
整體流程就是:
基于內(nèi)容的推薦
基于內(nèi)容的推薦就是基于內(nèi)容的推薦,主要是基于內(nèi)容之間的相似程度。
比如我看了A導演的B電影,其中有C主演,我表現(xiàn)的非常喜歡這部電影。
那理論上來說就可以給我推A導演的其他作品集,或者C主演參演的其他電影,以及B電影的系列電影或者題材類似的其他電影。
這個算法的優(yōu)點是便于冷啟動,而且能夠比較好的向用戶進行解釋,缺點是很難將不同的特征進行組合,比較難帶給用戶驚喜感,而且用戶的屬性挖掘不準的話推薦效果會比較差。
混合方法
顧名思義就是混合起來用,常見的策略主要包含加權(quán)、切換、分區(qū)和分層…
加權(quán)指的是利用線形的公式將幾種不同的推薦算法組合起來,給予不同的權(quán)重,比如A算法20%、B算法50%、C算法30%,然后再計算出一個最終推薦結(jié)果。
切換指的是在不同情況下用不同的推薦算法,比如冷啟動時用熱門算法,有了用戶行為和數(shù)據(jù)之后,再切換成其他算法。
分區(qū)指的是采用不同的推薦機制,將不同推薦結(jié)果分不同的區(qū)展示給用戶,比如對商品采用基于物品的協(xié)同過濾,對文章采用基于內(nèi)容的推薦。
分層指的是將一個推薦算法的結(jié)果作為另一個推薦算法的輸入,比如先用基于內(nèi)容的推薦算法生成一個候選集,然后再利用基于模型的協(xié)同過濾從這個候選集中選擇內(nèi)容…
One More Thing
首先想說的是關(guān)于推薦算法的效果衡量,有一大堆指標來進行衡量,有定性的,有定量的,參見下圖:
我沒有做過這些東西,沒辦法詳細展開,我們多看看上圖就好,在不少地方見到過這個評價體系。
聯(lián)系客服