產(chǎn)品經(jīng)理需要了解的算法——熱度算法和個(gè)性化推薦
本文作者以新聞產(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):
- 對(duì)用戶數(shù)量沒有要求,無論日活幾千或是幾百萬,均可以采用;因此個(gè)性化推薦早期一般采用這種方式;
- 每個(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)表示。
- 首先,我們需要把集合中所有用戶交互過(閱讀,評(píng)論等)的新聞提取出來;
- 需要剔除掉用戶X已經(jīng)看過的新聞,這些就不用再推薦了,剩下的新聞集合有m條,用N(X,m)來表示;
- 對(duì)余下的新聞進(jìn)行評(píng)分和相似度加權(quán)的計(jì)算,計(jì)算包括兩部分,一是用戶X與S(X,n) 每一個(gè)用戶的相似性,二是每個(gè)用戶對(duì)新聞集N(X,m)中每條新聞的喜好,這樣就能得到每條新聞相對(duì)于用戶X的最終得分;
- 將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)載。
超級(jí)干貨
細(xì)讀了兩遍,受益匪淺
您好,想請(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í)要怎么做呢?
謝謝~
我也想知道T(Time) = e ^ (k*(T1 – T0)) 這里的e和k分別代表什么
文科生?
e知道,請(qǐng)問k是什么呢?
非常受用,本人研究方向正好是基于內(nèi)容的推薦,理論結(jié)合實(shí)際,受教了 ??
2.4 熱度隨時(shí)間的衰減不是線性的–里面的T(Time) = e ^ (k*(T1 – T0)) 這里的e和k分別代表什么,還有e后面的符號(hào)是什么意思
老哥,你是故意的吧?哈哈
寫得很全,受益,感謝分享!
個(gè)性化推薦是很棒,但是大部分人應(yīng)該是苦于沒有大量?jī)?nèi)容資源池啊
很好可以當(dāng)筆記用了
感謝分享
請(qǐng)問用戶特征那塊的分值具體是怎么算出來的?
寫的很好,看懂了,感謝
講的算很詳細(xì)了
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ù)詞來做提取?
問題1:我理解的:DAU是日活躍用戶數(shù)量,N是總用戶數(shù)量;問題2:不是有個(gè)標(biāo)準(zhǔn)詞典嗎,用這個(gè)讓后端拆詞吧
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ì)
感謝分享,受益匪淺,請(qǐng)問是否有稍偏基礎(chǔ),深入淺出的算法相關(guān)書籍推薦呢?感謝!
感謝分享??!瞧得清楚看的明白
受益匪淺啊
頗多受益
寫的深入簡(jiǎn)出,除了自己的數(shù)學(xué)較差公式?jīng)]怎么看懂外,其他都很明白。謝謝…
另外請(qǐng)問一個(gè)問題,我想做這塊,我也是一名產(chǎn)品經(jīng)理,公司沒請(qǐng)專門的算法工程師,需要我牽頭來弄,這塊對(duì)數(shù)學(xué)要求是不是特別的高?數(shù)據(jù)我是個(gè)渣…
那你現(xiàn)在怎么辦了。。。。。。
感謝分享
感謝分享
需要這樣的干貨文章
distance(E,A)=4.123
distance(E,B)=3.162
distance(E,C)=3.742
distance(E,D)=1.414
這個(gè)用什么可以計(jì)算,excel可以嗎?用什么函數(shù)
算矩陣還是MATLAB吧
excel用這個(gè)函數(shù)SQRT 可以計(jì)算
看了很多推薦算法文章,這篇文章基本講到最常用算法,流行度算法,基于內(nèi)容的推薦算法,協(xié)同過濾算法,可惜基于物品的協(xié)同過濾沒有講,但是確實(shí)是深入淺出了
正在做這方便的工作,把本文和自己的工作結(jié)合后,豁然開朗,還需要學(xué)習(xí)更多。
有用
非常感謝深入淺出的講解說明,受益匪淺
受益良多,最近想做商城的算法推薦,感覺一抹黑。樓主是否可以推薦一些入門的書籍讓我等可以進(jìn)一步學(xué)習(xí)
非常感謝樓主的干貨,切中要害的分析了很多問題,幫我掃了很多盲區(qū)
真的很值得學(xué)習(xí)!
初期做產(chǎn)品對(duì)于算法確實(shí)沒有深入的研究
希望樓主在時(shí)間充裕的情況下多指點(diǎn)迷津,發(fā)一些好文