產(chǎn)品經(jīng)理需要了解的算法——熱度算法和個(gè)性化推薦

88 評(píng)論 132383 瀏覽 1760 收藏 28 分鐘

本文作者以新聞產(chǎn)品為例,并結(jié)合自己之前產(chǎn)品從零積累用戶的經(jīng)驗(yàn),從而整理了作為PM需要了解的基本算法知識(shí)和實(shí)操。enjoy~

今日頭條的走紅帶動(dòng)了“個(gè)性化推薦”的概念,自此之后,內(nèi)容型的產(chǎn)品,個(gè)性化算法就逐漸從賣點(diǎn)變?yōu)闃?biāo)配。伴隨著“機(jī)器學(xué)習(xí)”,“大數(shù)據(jù)”之類的熱詞和概念,產(chǎn)品的檔次瞬間提高了很多。而各種推薦算法絕不僅僅是研發(fā)自己的任務(wù),作為產(chǎn)品經(jīng)理,必須深入到算法內(nèi)部,參與算法的設(shè)計(jì),以及結(jié)合內(nèi)容對(duì)算法不斷“調(diào)教”,才能讓產(chǎn)品的推薦算法不斷完善,最終與自己的內(nèi)容雙劍合璧。

本文以新聞產(chǎn)品為例,結(jié)合了我之前產(chǎn)品從零積累用戶的經(jīng)驗(yàn),整理了作為PM需要了解的基本算法知識(shí)和實(shí)操。

1. 算法的發(fā)展階段

個(gè)性化推薦不是產(chǎn)品首次發(fā)布時(shí)就能帶的,無論是基于用戶行為的個(gè)性化,還是基于內(nèi)容相似度的個(gè)性化,都建立在大量的用戶數(shù)和內(nèi)容的基礎(chǔ)上。產(chǎn)品發(fā)布之初,一般兩邊的數(shù)據(jù)都有殘缺,因此個(gè)性化推薦也無法開展。

所以在產(chǎn)品發(fā)展的初期,推薦內(nèi)容一般采用更加聚合的“熱度算法”,顧名思義就是把熱點(diǎn)的內(nèi)容優(yōu)先推薦給用戶。雖然無法做到基于興趣和習(xí)慣為每一個(gè)用戶做到精準(zhǔn)化的推薦,但能覆蓋到大部分的內(nèi)容需求,而且啟動(dòng)成本比個(gè)性化推薦算法低太多。

因此內(nèi)容型產(chǎn)品,推薦在發(fā)布初期用熱度算法實(shí)現(xiàn)冷啟動(dòng),積累了一定量級(jí)以后,才能逐漸開展個(gè)性化推薦算法。

2. 熱度算法

2.1 熱度算法基本原理

需要了解的是,熱度算法也是需要不斷優(yōu)化去完善的,基本原理:

新聞熱度分 = 初始熱度分 + 用戶交互產(chǎn)生的熱度分 – 隨時(shí)間衰減的熱度分

Score = S0 + S(Users) – S(Time)

新聞入庫后,系統(tǒng)為之賦予一個(gè)初始熱度值,該新聞就進(jìn)入了推薦列表進(jìn)行排序;隨著新聞不斷被用戶點(diǎn)擊閱讀,收藏,分享等,這些用戶行為被視作幫助新聞提升熱度,系統(tǒng)需要為每一種新聞賦予熱度值;同時(shí),新聞是有較強(qiáng)時(shí)效性的內(nèi)容,因此新聞發(fā)布之后,熱度必須隨著新聞變得陳舊而衰減。

新聞的熱度就在這些算法的綜合作用下不斷變化,推薦列表的排序也就不斷變化。

2.2 初始熱度不應(yīng)該一致

上面的算法為每一條入庫的新聞賦予了同樣的熱度值,但在現(xiàn)實(shí)使用后發(fā)現(xiàn)行不通,例如娛樂類別比文化類別受歡迎程度本身就高很多;或者突發(fā)了嚴(yán)重的災(zāi)害或事故;或是奧運(yùn)會(huì)期間,體育類別的關(guān)注度突然高了起來;而此時(shí)如果還是每條新聞給同樣的熱度就不能貼合實(shí)際了。

解決辦法就是把初始熱度設(shè)置為變量:

(1)按照新聞?lì)悇e給予新聞不同的初始熱度,讓用戶關(guān)注度高的類別獲得更高的初始熱度分,從而獲得更多的曝光,例如:

(2)對(duì)于重大事件的報(bào)道,如何讓它入庫時(shí)就有更高的熱度,我們采用的是熱詞匹配的方式。

即對(duì)大型新聞?wù)军c(diǎn)的頭條,Twitter熱點(diǎn),競(jìng)品的頭條做監(jiān)控和扒取,并將這批新聞的關(guān)鍵詞維護(hù)到熱詞庫并保持更新;每條新聞入庫的時(shí)候,讓新聞的關(guān)鍵詞去匹配熱詞庫,匹配度越高,就有越高的初始熱度分。

這樣處理后,重大事件發(fā)生時(shí),Twitter和門戶網(wǎng)站的爭(zhēng)相報(bào)道會(huì)導(dǎo)致熱詞集中化,所有匹配到這些熱詞的新聞,即報(bào)道同樣事件的新聞,會(huì)獲得很高的初始熱度分。

2.3 用戶行為分規(guī)則不是固定不變的

解決了新聞入庫的初始分之后,接下來是新聞熱度分的變化。先要明確用戶的的哪些行為會(huì)提高新聞的熱度值,然后對(duì)這些行為賦予一定的得分規(guī)則。例如對(duì)于單條新聞,用戶可以點(diǎn)擊閱讀(click),收藏(favor),分享(share),評(píng)論(comment)這四種行為,我們?yōu)椴煌男袨橘x予分?jǐn)?shù),就能得到新聞的實(shí)時(shí)用戶行為分為:

S(Users) = 1*click + 5*favor + 10*comment + 20*share

這里對(duì)不同行為賦予的分?jǐn)?shù)為1,5,10,20,但這個(gè)值不能是一成不變的;當(dāng)用戶規(guī)模小的時(shí)候,各項(xiàng)事件都小,此時(shí)需要提高每個(gè)事件的行為分來提升用戶行為的影響力;當(dāng)用戶規(guī)模變大時(shí),行為分也應(yīng)該慢慢降低,因此做內(nèi)容運(yùn)營(yíng)時(shí),應(yīng)該對(duì)行為分不斷調(diào)整。

當(dāng)然也有偷懶的辦法,那就是把用戶規(guī)??紤]進(jìn)去,算固定用戶數(shù)的行為分,即:

S(Users) = (1*click + 5*favor + 10*comment + 20*share)/DAU * N(固定數(shù))

這樣就保證了在不同用戶規(guī)模下,用戶行為產(chǎn)生的行為分基本穩(wěn)定。

2.4 熱度隨時(shí)間的衰減不是線性的

由于新聞的強(qiáng)時(shí)效性,已經(jīng)發(fā)布的新聞的熱度值必須隨著時(shí)間流逝而衰減,并且趨勢(shì)應(yīng)該是衰減越來越快,直至趨近于零熱度。換句話說,如果一條新聞要一直處于很靠前的位置,隨著時(shí)間的推移它必須要有越來越多的用戶來維持。

我們要求推薦給用戶的新聞必須是24h以內(nèi),所以理論上講,衰減算法必須保證在24h后新聞的熱度一定會(huì)衰減到很低,如果是線性衰減,當(dāng)某些新聞突然有大量用戶閱讀,獲得很高的熱度分時(shí),可能會(huì)持續(xù)排名靠前很久,讓用戶覺得內(nèi)容更新過慢。

參考牛頓冷卻定律,時(shí)間衰減因子應(yīng)該是一個(gè)類似于指數(shù)函數(shù):

T(Time) = e ^ (k*(T1 – T0))?

其中T0是新聞發(fā)布時(shí)間,T1是當(dāng)前時(shí)間。

而由于熱度的發(fā)展最終是一個(gè)無限趨近于零熱度的結(jié)果,最終的新聞的熱度算法也調(diào)整為:

Score = ( S0(Type) + S(Users) ) / T(Time)

2.5 其他影響因素

很多新聞產(chǎn)品會(huì)給用戶“贊”,“踩”或“不在推薦此類”的選項(xiàng),這些功能不僅適用于個(gè)性化推薦,對(duì)熱度算法也有一定的作用。

新聞的推送會(huì)造成大量的打開,在計(jì)算熱度的時(shí)候需要排除掉相關(guān)的影響。類似于這樣的因素,都會(huì)對(duì)熱度算法產(chǎn)生影響,因此熱度算法上線后,依然需要不斷地“調(diào)教”。建議把所有的調(diào)整指標(biāo)做成可配項(xiàng),例如初始熱度分,行為事件分,衰減因子等,從而讓產(chǎn)品和運(yùn)營(yíng)能實(shí)時(shí)調(diào)整和驗(yàn)證效果,達(dá)到最佳狀態(tài)。

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

現(xiàn)在,你的內(nèi)容產(chǎn)品順利度過了早期階段,擁有了幾萬甚至十幾萬級(jí)別的日活。這時(shí)候,你發(fā)現(xiàn)熱度算法導(dǎo)致用戶的閱讀內(nèi)容過于集中,而個(gè)性化和長(zhǎng)尾化的內(nèi)容卻鮮有人看,看來是時(shí)候開展個(gè)性化推薦,讓用戶不僅能讀到大家都喜歡的內(nèi)容,也能讀到只有自己感興趣的內(nèi)容。

個(gè)性化推薦一般有兩種通用的解決方案,一是基于內(nèi)容的相關(guān)推薦,二是基于用戶的協(xié)同過濾。由于基于用戶的協(xié)同過濾對(duì)用戶規(guī)模有較高要求,因此更多使用基于內(nèi)容的相關(guān)推薦來切入。

這里引入一個(gè)概念叫“新聞特征向量”來標(biāo)識(shí)新聞的屬性,以及用來對(duì)比新聞之間的相似度。我們把新聞看作是所有關(guān)鍵詞(標(biāo)簽)的合集,理論上,如果兩個(gè)新聞的關(guān)鍵詞越類似,那兩個(gè)新聞是相關(guān)內(nèi)容的可能性更高。 新聞特征向量是由新聞包含的所有關(guān)鍵詞決定的。得到新聞特征向量的第一步,是要對(duì)新聞內(nèi)容進(jìn)行到關(guān)鍵詞級(jí)別的拆分。

3.1 分詞

分詞需要有兩個(gè)庫,即正常的詞庫和停用詞庫。正常詞庫類似于一本詞典,是把內(nèi)容拆解為詞語的標(biāo)準(zhǔn);停用詞庫則是在分詞過程中需要首先棄掉的內(nèi)容。

停用詞主要是沒有實(shí)際含義的,例如“The”,“That”,“are”之類的助詞;表達(dá)兩個(gè)詞直接關(guān)系的,例如“behind”,“under”之類的介詞,以及很多常用的高頻但沒有偏向性的動(dòng)詞,例如“think”“give”之類。顯而易見,這些詞語對(duì)于分詞沒有任何作用,因此在分詞前,先把這些內(nèi)容剔除。

剩下對(duì)的內(nèi)容則使用標(biāo)準(zhǔn)詞庫進(jìn)行拆詞,拆詞方法包含正向匹配拆分,逆向匹配拆分,最少切分等常用算法,這里不做展開。

因?yàn)榫W(wǎng)絡(luò)世界熱詞頻出, 標(biāo)準(zhǔn)詞庫和停用詞庫也需要不斷更新和維護(hù),例如“藍(lán)瘦香菇”,“套路滿滿”之類的詞語,可能對(duì)最終的效果會(huì)產(chǎn)生影響,如果不及時(shí)更新到詞庫里,算法就會(huì)“一臉懵逼”了。

因此,推薦在網(wǎng)上查找或購買那些能隨時(shí)更新的詞庫,各種語種都有。

3.2 關(guān)鍵詞指標(biāo)

前面已經(jīng)說過,新聞特征向量是該新聞的關(guān)鍵詞合集,那關(guān)鍵詞的重合度就是非常重要的衡量指標(biāo)了。

那么問題來了,如果兩條新聞的關(guān)鍵詞重合度達(dá)到80%,是否說明兩條新聞?dòng)?0%的相關(guān)性呢?

其實(shí)不是,舉個(gè)例子:

(1)一條“廣州摩拜單車投放量激增”的新聞,主要講摩拜單車的投放情況,這篇新聞里“摩拜單車”是一個(gè)非常高頻的詞匯,新聞在結(jié)尾有一句“最近廣州天氣不錯(cuò),大家可以騎單車出去散心”。因此“廣州天氣”這個(gè)關(guān)鍵詞也被收錄進(jìn)了特征向量。

(2)另外一條新聞“廣州回南天即將結(jié)束,天氣持續(xù)好轉(zhuǎn)”,這篇新聞結(jié)尾有一句“天氣好轉(zhuǎn),大家可以騎個(gè)摩拜單車出門溜溜啦”,新聞里面“廣州天氣”是非常高頻的詞匯,“摩拜單車”盡管被收錄,但只出現(xiàn)了一次。

這兩個(gè)新聞的關(guān)鍵詞雖然類似,講的卻是完全不同的內(nèi)容,相關(guān)性很弱。如果只是看關(guān)鍵詞重合度,出現(xiàn)錯(cuò)誤判斷的可能性就很高;所以特征向量還需要有第二個(gè)關(guān)鍵詞的指標(biāo),叫新聞內(nèi)頻率,稱之為TF(Term Frequency),衡量每個(gè)關(guān)鍵詞在新聞里面是否高頻。

那么問題來了,如果兩條新聞的關(guān)鍵詞重合度高,新聞中關(guān)鍵詞的頻率也相差無幾,是否說明相關(guān)性很強(qiáng)呢?

理論上是的,但又存在另外一種情況:如果我們新聞庫里所有的新聞都是講廣州的,廣州天氣,廣州交通,廣州經(jīng)濟(jì),廣州體育等,他們都是講廣州相關(guān)的情況,關(guān)鍵詞都包含廣州,天河,越秀,海珠(廣州各區(qū))等,并且有著類似的頻率,因此算法很容易將它們判斷為強(qiáng)相關(guān)新聞;從地域角度講,這種相關(guān)性確實(shí)很強(qiáng),但從內(nèi)容類別層面,其實(shí)沒有太多相關(guān)性,如果我是一個(gè)體育迷,你給我推薦天氣,交通之類的內(nèi)容,就沒多大意義了。

因此引入第三個(gè)關(guān)鍵詞的指標(biāo),即關(guān)鍵詞在在所有文檔中出現(xiàn)的頻率的相反值,稱之為IDF(Inverse Document Frequency)。為什么會(huì)是相反值?因?yàn)橐粋€(gè)關(guān)鍵詞在某條新聞出現(xiàn)的頻率最大,在所有文檔中出現(xiàn)的頻率越小,該關(guān)鍵詞對(duì)這條新聞的特征標(biāo)識(shí)作用越大。

這樣每個(gè)關(guān)鍵詞對(duì)新聞的作用就能被衡量出來即TFIDF=TF * IDF,這也就是著名的TF-IDF模型。

3.3 相關(guān)性算法

做完分詞和關(guān)鍵詞指標(biāo)后,每一篇新聞的特征就能用關(guān)鍵詞的集合來標(biāo)識(shí)了:

其中word0,1,2……n是新聞的所有關(guān)鍵詞,tfidf0,1,2……n則是每個(gè)關(guān)鍵詞的tfidf值。

兩個(gè)新聞的相似度就能通過重合的關(guān)鍵詞的tfidf值來衡量了。根據(jù)之前所學(xué)的知識(shí),幾何中夾角余弦可以用來衡量?jī)蓚€(gè)向量的方向的差異性,因此在我們的算法中使用夾角余弦來計(jì)算新聞關(guān)鍵詞的相似度。夾角越小,相似度越高。

有了關(guān)鍵詞和各關(guān)鍵詞的tfidf之后,就可以計(jì)算新聞的相似度了。假設(shè)兩條新聞的特征列表如下:

可以看到兩條新聞?dòng)?個(gè)重合的關(guān)鍵詞:廣州,摩拜單車,太陽,天河和市長(zhǎng),因此兩條新聞的相關(guān)性由這5個(gè)關(guān)鍵詞決定,計(jì)算方式如下:

得出兩條新聞的相關(guān)性最終值;用同樣的方法能得出一條新聞與新聞庫里面所有內(nèi)容的相關(guān)性。

3.4 用戶特征

得到新聞特征以后,還需要得到用戶特征才能對(duì)兩者進(jìn)行匹配和推薦,那怎么獲得用戶特征呢?

需要通過用戶的行為來獲得,用戶通過閱讀,點(diǎn)贊,評(píng)論,分享來表達(dá)自己對(duì)新聞內(nèi)容的喜愛;跟熱度排名類似,我們對(duì)用戶的各種行為賦予一定的“喜愛分”,例如閱讀1分,點(diǎn)贊2分,評(píng)論5分等,這樣新聞特征跟用戶行為結(jié)合后,就能得到用戶的特征分。

而隨著用戶閱讀的新聞數(shù)越來越多,該用戶的標(biāo)簽也越來越多,并且越發(fā)精準(zhǔn)。

從而當(dāng)我們拿到新聞的特征后,就能與用戶的關(guān)鍵詞列表做匹配,得出新聞與用戶閱讀特征的匹配度,做出個(gè)性化推薦。

3.5?其他運(yùn)用

除了個(gè)性化推薦,基于內(nèi)容的相關(guān)性算法能精準(zhǔn)地給出一篇新聞的相關(guān)推薦列表,對(duì)相關(guān)閱讀的實(shí)現(xiàn)非常有意義。此外,標(biāo)簽系統(tǒng)對(duì)新聞分類的實(shí)現(xiàn)和提升準(zhǔn)確性,也有重要的意義。

3.6?優(yōu)缺點(diǎn)

基于內(nèi)容的推薦算法有幾個(gè)明顯優(yōu)點(diǎn):

  1. 對(duì)用戶數(shù)量沒有要求,無論日活幾千或是幾百萬,均可以采用;因此個(gè)性化推薦早期一般采用這種方式;
  2. 每個(gè)用戶的特征都是由自己的行為來決定的,是獨(dú)立存在的,不會(huì)有互相干擾,因此惡意刷閱讀等新聞不會(huì)影響到推薦算法。

而最主要的缺點(diǎn)就是確定性太強(qiáng)了,所有推薦的內(nèi)容都是由用戶的閱讀歷史決定,所以沒辦法挖掘用戶的潛在興趣;也就是由于這一點(diǎn),基于內(nèi)容的推薦一般與其他推薦算法同時(shí)存在。

4.?基于用戶的協(xié)同推薦

終于,經(jīng)過團(tuán)隊(duì)的努力,你的產(chǎn)品已經(jīng)有了大量活躍用戶了,這時(shí)候你開始不滿足于現(xiàn)有的算法。雖然基于內(nèi)容的推薦已經(jīng)很精準(zhǔn)了,但總是少了那么一點(diǎn)性感。因?yàn)槟闼薪o用戶的內(nèi)容都是基于他們的閱讀習(xí)慣推薦的,沒能給用戶“不期而遇”的感覺。

于是,你就開始做基于用戶的協(xié)同過濾了。

基于用戶的協(xié)同過濾推薦算法,簡(jiǎn)單來講就是依據(jù)用戶A的閱讀喜好,為A找到與他興趣最接近的群體,所謂“人以群分”,然后把這個(gè)群體里其他人喜歡的,但是A沒有閱讀過的內(nèi)容推薦給A;舉例我是一個(gè)足球迷,系統(tǒng)找到與我類似的用戶都是足球的重度閱讀者,但與此同時(shí),這些“足球群體”中有一部分人有看NBA新聞的習(xí)慣,系統(tǒng)就可能會(huì)給我推薦NBA內(nèi)容,很可能我也對(duì)NBA也感興趣,這樣我在后臺(tái)的興趣圖譜就更完善了。

4.1 用戶群體劃分

做基于用戶的協(xié)同過濾,首先就要做用戶的劃分,可以從三方面著手:

(1)外部數(shù)據(jù)的借用

這里使用社交平臺(tái)數(shù)據(jù)的居多,現(xiàn)在產(chǎn)品的登錄體系一般都借用第三方社媒的登錄體系,如國(guó)外的Facebook、Twitter,國(guó)內(nèi)的微信、微博,借用第三方賬戶的好處多多,例如降低門檻,方便傳播等,還能對(duì)個(gè)性化推薦起到重要作用。因?yàn)榈谌劫~戶都是授權(quán)獲取部分用戶信息的,往往包括性別,年齡,工作甚至社交關(guān)系等,這些信息對(duì)用戶群劃分很有意義。

此外還有其他的一些數(shù)據(jù)也能借用,例如IP地址,手機(jī)語種等。

使用這些數(shù)據(jù),你很容易就能得到一個(gè)用戶是北京的還是上海的,是大學(xué)生還是創(chuàng)業(yè)者,并依據(jù)這些屬性做準(zhǔn)確的大類劃分。比如一篇行業(yè)投資分析出來后,“上海創(chuàng)業(yè)圈”這個(gè)群體80%的用戶都看過,那就可以推薦給剩下的20%。

(2)產(chǎn)品內(nèi)主動(dòng)詢問

常見在產(chǎn)品首次啟動(dòng)的時(shí)候,彈框詢問用戶是男是女,職業(yè)等,這樣能對(duì)內(nèi)容推薦的冷啟動(dòng)提供一些幫助。但總體來說,性價(jià)比偏低,只能詢問兩三個(gè)問題并對(duì)用戶的推薦內(nèi)容做非常粗略的劃分,同時(shí)要避免打擾到用戶;這種做法算是基于用戶個(gè)性化的雛形。

(3)對(duì)比用戶特征

前文已經(jīng)提到過,新聞的特征加用戶的閱讀數(shù)據(jù)能得到用戶的特征,那就可以通過用戶特征的相似性來劃分群體。

4.2 內(nèi)容推薦實(shí)施

我們結(jié)合一個(gè)很小的實(shí)例來了解用戶協(xié)同過濾的原理,包括如何計(jì)算用戶之間的相似性和如何做出推薦。假設(shè)有A、B、C、D和E共5個(gè)用戶,他們各自閱讀了幾篇新聞并做出了閱讀,贊,收藏,評(píng)論,分享操作,我們對(duì)這幾種行為賦予的分?jǐn)?shù)分別為1分、2分、3分、4分和5分,這樣用戶對(duì)每條新聞都有自己的得分,其中“-”表示未閱讀,得分如下:

接下來,我們需要給用戶E推薦4,5,6中的哪一篇?

用戶的閱讀特征向量由用戶所有的閱讀數(shù)據(jù)決定,我們以用戶E閱讀過的新聞數(shù)據(jù)作為參考標(biāo)準(zhǔn),來找到與E最相似的用戶。

多維向量的距離需要通過歐幾里得距離公式來計(jì)算,數(shù)值越小,向量距離約接近。

算出結(jié)果:

  • distance(E,A)=4.123 (用戶A沒有閱讀news2,因此news2的數(shù)據(jù)不能用來計(jì)算與用戶E的相似度,這里取1,3)
  • distance(E,B)=3.162
  • distance(E,C)=3.742
  • distance(E,D)=1.414

因此得出結(jié)果:用戶D是與用戶E閱讀喜好最接近的那個(gè),應(yīng)該優(yōu)先歸為同一類用戶。最終結(jié)論根據(jù)用戶D的閱讀數(shù)據(jù),優(yōu)先推薦news4。

4.3 內(nèi)容選取

我們通過閱讀特征向量把用戶做群體劃分后,接下來就是如何獲取新聞推薦的優(yōu)先級(jí)。上面的例子里面只需要選出一個(gè)相似用戶,并且用戶A,B,C,D都只閱讀news4,5,6中的一條,所以比較簡(jiǎn)單,但現(xiàn)實(shí)情況中,同一個(gè)用戶群體閱讀的新聞多且隨機(jī),用戶交互更是錯(cuò)綜復(fù)雜,如何得出推薦新聞的優(yōu)先級(jí)呢?

假設(shè)用戶X在系統(tǒng)歸屬于群體A,這個(gè)群體有n個(gè)用戶,分別為A0,A1,A2……An,這些用戶的集合用S(X,n)表示。

  1. 首先,我們需要把集合中所有用戶交互過(閱讀,評(píng)論等)的新聞提取出來;
  2. 需要剔除掉用戶X已經(jīng)看過的新聞,這些就不用再推薦了,剩下的新聞集合有m條,用N(X,m)來表示;
  3. 對(duì)余下的新聞進(jìn)行評(píng)分和相似度加權(quán)的計(jì)算,計(jì)算包括兩部分,一是用戶X與S(X,n) 每一個(gè)用戶的相似性,二是每個(gè)用戶對(duì)新聞集N(X,m)中每條新聞的喜好,這樣就能得到每條新聞相對(duì)于用戶X的最終得分;
  4. 將N(X,m)中的新聞列表按照得分高低的順序推薦給用戶。

4.4 優(yōu)缺點(diǎn)

相比于基于內(nèi)容的推薦算法,基于用戶的協(xié)同過濾同樣優(yōu)缺點(diǎn)明顯。

優(yōu)點(diǎn)主要在于對(duì)分詞等算法的精確度無太大要求,推薦都是基于用戶的行為數(shù)據(jù)去不斷學(xué)習(xí)和完善;同時(shí)能發(fā)現(xiàn)用戶的潛在閱讀興趣,能“制造驚喜”。

而缺點(diǎn)則是啟動(dòng)的門檻高,用戶量不夠時(shí)幾乎無法開展;并且學(xué)習(xí)量不夠時(shí)推薦結(jié)果較差。

5. 總結(jié)

關(guān)于個(gè)性化推薦的算法,在網(wǎng)上有很多資料,也有很多其他的實(shí)現(xiàn)方法,因?yàn)楣P者了解也有限,所以也不敢描述。如有興趣可以自行搜索。熱度和個(gè)性化推薦算法,作為大部分內(nèi)容型產(chǎn)品的核心賣點(diǎn)之一,依然在不斷地進(jìn)化和完善中。沒有哪種算法是完美的,甚至沒有哪種算法是一定優(yōu)于其他的,在實(shí)際使用中,很多產(chǎn)品都是多算法結(jié)合去做好內(nèi)容推薦。

而產(chǎn)品經(jīng)理在算法的實(shí)施中,絕對(duì)不是一句“我們要做個(gè)性化推薦”就完事的,必須深入算法內(nèi)部,對(duì)算法的原理做深入了解,然后結(jié)合自己的產(chǎn)品特征來部署和優(yōu)化。

因此我站在產(chǎn)品經(jīng)理的角度,整理了這一篇初步的算法相關(guān)的介紹,如有對(duì)文中內(nèi)容感興趣的,歡迎探討!如有描述不當(dāng)之初,敬請(qǐng)指正,感激不盡!

最后,需要對(duì)我的團(tuán)隊(duì)表示感謝,飛哥在算法的研究中打了頭陣并給出了細(xì)致的分享,宗榮對(duì)算法進(jìn)行了無數(shù)輪的調(diào)整和優(yōu)化,凱華在關(guān)鍵詞的部署和效果驗(yàn)證中付出了很多心血……喜歡那些日子里大家一起從零開始學(xué)習(xí)和實(shí)現(xiàn)算法,讓推薦效果越來越好。

 

作者:盧爭(zhēng)超,前UC,騰訊海外產(chǎn)品經(jīng)理,負(fù)責(zé)UC Browser,微信支付等產(chǎn)品的國(guó)際化,現(xiàn)創(chuàng)業(yè)中。多年產(chǎn)品策劃運(yùn)營(yíng)和管理經(jīng)驗(yàn),在工具,支付,內(nèi)容,企業(yè)服務(wù)型產(chǎn)品的策劃和運(yùn)營(yíng)領(lǐng)域經(jīng)驗(yàn)豐富。

本文由 @盧爭(zhēng)超?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 超級(jí)干貨

    來自廣東 回復(fù)
  2. 細(xì)讀了兩遍,受益匪淺

    來自浙江 回復(fù)
  3. 您好,想請(qǐng)問下,在 3.4用戶特征 這一小節(jié),每個(gè)詞對(duì)應(yīng)的td-idf值是否會(huì)根據(jù)新聞?lì)悇e(如娛樂、財(cái)經(jīng))等做區(qū)分?如果不考慮,知道用戶對(duì)“摩拜單車”興趣度較高,現(xiàn)在有一篇娛樂段子文章,另外有一篇投融資的文章,會(huì)怎么樣推薦給用戶呢?考慮時(shí)要怎么做呢?
    謝謝~

    來自北京 回復(fù)
  4. 我也想知道T(Time) = e ^ (k*(T1 – T0)) 這里的e和k分別代表什么

    來自廣東 回復(fù)
    1. 文科生?

      來自北京 回復(fù)
    2. e知道,請(qǐng)問k是什么呢?

      來自廣東 回復(fù)
  5. 非常受用,本人研究方向正好是基于內(nèi)容的推薦,理論結(jié)合實(shí)際,受教了 ??

    來自上海 回復(fù)
  6. 2.4 熱度隨時(shí)間的衰減不是線性的–里面的T(Time) = e ^ (k*(T1 – T0)) 這里的e和k分別代表什么,還有e后面的符號(hào)是什么意思

    來自北京 回復(fù)
    1. 老哥,你是故意的吧?哈哈

      來自浙江 回復(fù)
  7. 寫得很全,受益,感謝分享!

    回復(fù)
  8. 個(gè)性化推薦是很棒,但是大部分人應(yīng)該是苦于沒有大量?jī)?nèi)容資源池啊

    來自上海 回復(fù)
  9. 很好可以當(dāng)筆記用了

    來自北京 回復(fù)
  10. 感謝分享

    來自湖南 回復(fù)
  11. 請(qǐng)問用戶特征那塊的分值具體是怎么算出來的?

    來自北京 回復(fù)
  12. 寫的很好,看懂了,感謝

    來自山東 回復(fù)
  13. 講的算很詳細(xì)了

    來自廣東 回復(fù)
  14. S(Users) = (1*click + 5*favor + 10*comment + 20*share)/DAU * N(固定數(shù))這個(gè)公式里面的DAU定義是什么,N(固定數(shù))的代表是用戶的數(shù)量嗎?,作者可以麻煩講解下嗎?
    還有這句:“即對(duì)大型新聞?wù)军c(diǎn)的頭條,Twitter熱點(diǎn),競(jìng)品的頭條做監(jiān)控和扒取,并將這批新聞的關(guān)鍵詞維護(hù)到熱詞庫并保持更新;每條新聞入庫的時(shí)候,讓新聞的關(guān)鍵詞去匹配熱詞庫,匹配度越高,就有越高的初始熱度分。”
    以Twitter熱點(diǎn)為競(jìng)品頭條做監(jiān)控和扒取,這個(gè)是用大數(shù)據(jù)爬蟲來做處理的嗎?還有每條新聞入庫的時(shí)候,新聞關(guān)健詞 是人為提取還是重復(fù)詞來做提取?

    來自海南 回復(fù)
    1. 問題1:我理解的:DAU是日活躍用戶數(shù)量,N是總用戶數(shù)量;問題2:不是有個(gè)標(biāo)準(zhǔn)詞典嗎,用這個(gè)讓后端拆詞吧

      來自北京 回復(fù)
    2. N應(yīng)該是用戶行為數(shù)據(jù)的系數(shù),取決于S(User)設(shè)定的分值區(qū)間,標(biāo)準(zhǔn)字典有兩種更新方式,1、系統(tǒng)自動(dòng)拆分,并統(tǒng)計(jì)重復(fù)詞,并更新系統(tǒng)關(guān)鍵詞;2、編輯會(huì)根據(jù)熱點(diǎn)新聞快速手動(dòng)更新詞庫;對(duì)于新聞平臺(tái),每時(shí)每刻都會(huì)有大量的新聞,肯定是程序?qū)用鎭硖幚砻織l的重復(fù)詞,去詞庫再進(jìn)行比對(duì)

      來自北京 回復(fù)
  15. 感謝分享,受益匪淺,請(qǐng)問是否有稍偏基礎(chǔ),深入淺出的算法相關(guān)書籍推薦呢?感謝!

    來自浙江 回復(fù)
  16. 感謝分享??!瞧得清楚看的明白

    來自北京 回復(fù)
  17. 受益匪淺啊

    回復(fù)
  18. 頗多受益

    來自北京 回復(fù)
  19. 寫的深入簡(jiǎn)出,除了自己的數(shù)學(xué)較差公式?jīng)]怎么看懂外,其他都很明白。謝謝…
    另外請(qǐng)問一個(gè)問題,我想做這塊,我也是一名產(chǎn)品經(jīng)理,公司沒請(qǐng)專門的算法工程師,需要我牽頭來弄,這塊對(duì)數(shù)學(xué)要求是不是特別的高?數(shù)據(jù)我是個(gè)渣…

    來自浙江 回復(fù)
    1. 那你現(xiàn)在怎么辦了。。。。。。

      來自河南 回復(fù)
  20. 感謝分享

    來自北京 回復(fù)
  21. 感謝分享

    來自北京 回復(fù)
  22. 需要這樣的干貨文章

    來自北京 回復(fù)
  23. distance(E,A)=4.123
    distance(E,B)=3.162
    distance(E,C)=3.742
    distance(E,D)=1.414
    這個(gè)用什么可以計(jì)算,excel可以嗎?用什么函數(shù)

    來自上海 回復(fù)
    1. 算矩陣還是MATLAB吧

      來自湖北 回復(fù)
    2. excel用這個(gè)函數(shù)SQRT 可以計(jì)算

      來自上海 回復(fù)
  24. 看了很多推薦算法文章,這篇文章基本講到最常用算法,流行度算法,基于內(nèi)容的推薦算法,協(xié)同過濾算法,可惜基于物品的協(xié)同過濾沒有講,但是確實(shí)是深入淺出了

    來自浙江 回復(fù)
  25. 正在做這方便的工作,把本文和自己的工作結(jié)合后,豁然開朗,還需要學(xué)習(xí)更多。

    來自北京 回復(fù)
  26. 有用

    回復(fù)
  27. 非常感謝深入淺出的講解說明,受益匪淺

    來自北京 回復(fù)
  28. 受益良多,最近想做商城的算法推薦,感覺一抹黑。樓主是否可以推薦一些入門的書籍讓我等可以進(jìn)一步學(xué)習(xí)

    來自浙江 回復(fù)
  29. 非常感謝樓主的干貨,切中要害的分析了很多問題,幫我掃了很多盲區(qū)

    來自廣東 回復(fù)
  30. 真的很值得學(xué)習(xí)!
    初期做產(chǎn)品對(duì)于算法確實(shí)沒有深入的研究
    希望樓主在時(shí)間充裕的情況下多指點(diǎn)迷津,發(fā)一些好文

    來自江蘇 回復(fù)