今日頭條帶動(dòng)了“個(gè)性化推薦”的概念,自此之后,無(wú)論是工具產(chǎn)品,電商產(chǎn)品,還是內(nèi)容型的產(chǎn)品,都自帶內(nèi)容屬性,個(gè)性化算法也逐漸從賣點(diǎn)變?yōu)闃?biāo)配。
各種推薦算法不能僅僅是研發(fā)涉獵領(lǐng)域,作為PM,也要深入到算法內(nèi)部,了解算法的設(shè)計(jì),以及結(jié)合內(nèi)容對(duì)算法不斷“調(diào)教”,才能讓產(chǎn)品的推薦算法不斷完善,才能符合用戶的口味。
目前比較流行的個(gè)性化推薦算法有以下幾種:
基于內(nèi)容的推薦:根據(jù)內(nèi)容本身的屬性(特征向量)所作的推薦。
基于關(guān)聯(lián)規(guī)則的推薦:“啤酒與尿布”的方式,是一種動(dòng)態(tài)的推薦,能夠?qū)崟r(shí)對(duì)用戶的行為作出推薦。是基于物品之間的特征關(guān)聯(lián)性所做的推薦,在某種情況下會(huì)退化為物品協(xié)同過(guò)濾推薦。
協(xié)同過(guò)濾推薦:與基于關(guān)聯(lián)規(guī)則的推薦相比是一種靜態(tài)方式的推薦,是根據(jù)用戶已有的歷史行為作分析的基礎(chǔ)上做的推薦??煞譃槲锲穮f(xié)同過(guò)濾、用戶協(xié)同過(guò)濾、基于模型的協(xié)同過(guò)濾。其中,基于模型的協(xié)同又可以分為以下幾種類型:基于距離的協(xié)同過(guò)濾;基于矩陣分解的協(xié)同過(guò)濾,即Latent Factor Model(SVD)或者ALS;基于圖模型協(xié)同,即Graph,也叫社會(huì)網(wǎng)絡(luò)圖模型。
1、產(chǎn)品冷啟動(dòng)通過(guò)熱度算法進(jìn)行內(nèi)容推薦
產(chǎn)品發(fā)展初期,由于一方面沒(méi)有用戶行為、用戶喜好、用戶畫像,另外也沒(méi)有大量的內(nèi)容樣本基礎(chǔ),是很難開展個(gè)性化推薦的。所以在產(chǎn)品初期,一般采取“熱度算法”,顧名思義就是把熱點(diǎn)的內(nèi)容優(yōu)先推薦給用戶。雖然無(wú)法做到基于興趣和習(xí)慣為每一個(gè)用戶做到精準(zhǔn)化的推薦,但能覆蓋到大部分的內(nèi)容需求,而且啟動(dòng)成本比個(gè)性化推薦算法低太多。
熱度算法基本原理:
新聞熱度分 = 初始熱度分 + 用戶交互產(chǎn)生的熱度分 – 隨時(shí)間衰減的熱度分
Score = S0 + S(Users) – S(Time)
1)以新聞或視頻較有時(shí)效性的內(nèi)容舉例,熱度隨內(nèi)容陳舊而分值衰減。
2)初始熱度分不要一視同仁。
按照新聞?lì)悇e給予新聞不同的初始熱度,讓用戶關(guān)注度高的類別獲得更高的初始熱度分,從而獲得更多的曝光。軍事>娛樂(lè)>體育>財(cái)經(jīng)....
對(duì)于重大事件的報(bào)道,如何讓它入庫(kù)時(shí)就有更高的熱度,我們采用的是熱詞匹配的方式。
即對(duì)大型新聞?wù)军c(diǎn)的頭條,Twitter熱點(diǎn),競(jìng)品的頭條做監(jiān)控和扒取,并將這批新聞的關(guān)鍵詞維護(hù)到熱詞庫(kù)并保持更新;每條新聞入庫(kù)的時(shí)候,讓新聞的關(guān)鍵詞去匹配熱詞庫(kù),匹配度越高,就有越高的初始熱度分。這樣處理后,重大事件發(fā)生時(shí),Twitter和門戶網(wǎng)站的爭(zhēng)相報(bào)道會(huì)導(dǎo)致熱詞集中化,所有匹配到這些熱詞的新聞,即報(bào)道同樣事件的新聞,會(huì)獲得很高的初始熱度分。
3)用戶交互的熱度分值比重不一。首先明確用戶的的哪些行為會(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è)事件的行為分來(lái)提升用戶行為的影響力;當(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、基于內(nèi)容特征與用戶特征進(jìn)行個(gè)性化推薦
對(duì)于此種推薦,有兩個(gè)實(shí)體:內(nèi)容和用戶,因此需要有一個(gè)聯(lián)系這兩者的東西,即為標(biāo)簽。內(nèi)容轉(zhuǎn)換為標(biāo)簽即為內(nèi)容特征化,用戶則稱為用戶特征化。對(duì)于此種推薦,主要分為以下幾個(gè)關(guān)鍵部分:
標(biāo)簽庫(kù)
內(nèi)容特征化
用戶特征化
隱語(yǔ)義推薦
綜合上面講述的各個(gè)部分即可實(shí)現(xiàn)一個(gè)基于內(nèi)容和用戶畫像的個(gè)性化推薦系統(tǒng)。
標(biāo)簽庫(kù)
標(biāo)簽是聯(lián)系用戶與物品、內(nèi)容以及物品、內(nèi)容之間的紐帶,也是反應(yīng)用戶興趣的重要數(shù)據(jù)源。標(biāo)簽庫(kù)的最終用途在于對(duì)用戶進(jìn)行行為、屬性標(biāo)記。是將其他實(shí)體轉(zhuǎn)換為計(jì)算機(jī)可以理解的語(yǔ)言關(guān)鍵的一步。
標(biāo)簽庫(kù)則是對(duì)標(biāo)簽進(jìn)行聚合的系統(tǒng),包括對(duì)標(biāo)簽的管理、更新等。
一般來(lái)說(shuō),標(biāo)簽是以層級(jí)的形式組織的??梢杂幸患?jí)維度、二級(jí)維度等。
標(biāo)簽的來(lái)源主要有:
已有內(nèi)容的標(biāo)簽
網(wǎng)絡(luò)抓取流行標(biāo)簽
對(duì)運(yùn)營(yíng)的內(nèi)容進(jìn)行關(guān)鍵詞提取
對(duì)于內(nèi)容的關(guān)鍵詞提取,使用結(jié)巴分詞+TFIDF即可。此外,也可以使用TextRank來(lái)提取內(nèi)容關(guān)鍵詞。
這里需要注意的一點(diǎn)是對(duì)于關(guān)聯(lián)標(biāo)簽的處理,比如用戶的標(biāo)簽是足球,而內(nèi)容的標(biāo)簽是德甲、英超,那么用戶和內(nèi)容是無(wú)法聯(lián)系在一起的。最簡(jiǎn)單的方式是人工設(shè)置關(guān)聯(lián)標(biāo)簽,此外也可以使用word2vec一類工具對(duì)標(biāo)簽做聚類處理,構(gòu)建主題模型,將德甲、英超聚類到足球下面。
內(nèi)容特征化
內(nèi)容特征化即給內(nèi)容打標(biāo)簽。目前有兩種方式:
人工打標(biāo)簽
機(jī)器自動(dòng)打標(biāo)簽
針對(duì)機(jī)器自動(dòng)打標(biāo)簽,需要采取機(jī)器學(xué)習(xí)的相關(guān)算法來(lái)實(shí)現(xiàn),即針對(duì)一系列給定的標(biāo)簽,給內(nèi)容選取其中匹配度最高的幾個(gè)標(biāo)簽。這不同于通常的分類和聚類算法??梢圆扇∈褂梅衷~ +Word2Vec來(lái)實(shí)現(xiàn),過(guò)程如下:
將文本語(yǔ)料進(jìn)行分詞,以空格,tab隔開都可以,使用結(jié)巴分詞。
使用word2vec訓(xùn)練詞的相似度模型。
使用tfidf提取內(nèi)容的關(guān)鍵詞A,B,C。
遍歷每一個(gè)標(biāo)簽,計(jì)算關(guān)鍵詞與此標(biāo)簽的相似度之和。
取出TopN相似度最高的標(biāo)簽即為此內(nèi)容的標(biāo)簽。
此外,可以使用文本主題挖掘相關(guān)技術(shù),對(duì)內(nèi)容進(jìn)行特征化。這也分為兩種情況:
通用情況下,只是為了效果優(yōu)化的特征提取,那么可以使用非監(jiān)督學(xué)習(xí)的主題模型算法。如LSA、PLSI和GaP模型或者LDA模型。
在和業(yè)務(wù)強(qiáng)相關(guān)時(shí),需要在業(yè)務(wù)特定的標(biāo)簽體系下給內(nèi)容打上適合的標(biāo)簽。這時(shí)候需要使用的是監(jiān)督學(xué)習(xí)的主題模型。如sLDA、HSLDA等。
用戶特征化
用戶特征化即為用戶打標(biāo)簽。通過(guò)用戶的行為日志和一定的模型算法得到用戶的每個(gè)標(biāo)簽的權(quán)重。
用戶對(duì)內(nèi)容的行為:點(diǎn)贊、不感興趣、點(diǎn)擊、瀏覽。對(duì)用戶的反饋行為如點(diǎn)贊賦予權(quán)值1,不感興趣賦予-1;對(duì)于用戶的瀏覽行為,則可使用點(diǎn)擊/瀏覽作為權(quán)值。
對(duì)內(nèi)容發(fā)生的行為可以認(rèn)為對(duì)此內(nèi)容所帶的標(biāo)簽的行為。
用戶的興趣是時(shí)間衰減的,即離當(dāng)前時(shí)間越遠(yuǎn)的興趣比重越低。時(shí)間衰減函數(shù)使用1/[log(t)+1], t為事件發(fā)生的時(shí)間距離當(dāng)前時(shí)間的大小。
要考慮到熱門內(nèi)容會(huì)干預(yù)用戶的標(biāo)簽,需要對(duì)熱門內(nèi)容進(jìn)行降權(quán)。使用click/pv作為用戶瀏覽行為權(quán)值即可達(dá)到此目的。
此外,還需要考慮噪聲的干擾,如標(biāo)題黨等。
另,在非業(yè)務(wù)強(qiáng)相關(guān)的情況下,還可以考慮使用LSA主題模型等矩陣分解的方式對(duì)用戶進(jìn)行標(biāo)簽化。
隱語(yǔ)義推薦
有了內(nèi)容特征和用戶特征,可以使用隱語(yǔ)義模型進(jìn)行推薦。這里可以使用其簡(jiǎn)化形式,以達(dá)到實(shí)時(shí)計(jì)算的目的。
用戶對(duì)于某一個(gè)內(nèi)容的興趣度(可以認(rèn)為是CTR):
其中i=1…N是內(nèi)容c具有的標(biāo)簽,m(ci)指的內(nèi)容c和標(biāo)簽i的關(guān)聯(lián)度(可以簡(jiǎn)單認(rèn)為是1),n(ui)指的是用戶u的標(biāo)簽i的權(quán)重值,當(dāng)用戶不具有此標(biāo)簽時(shí)n(ui)=0,q©指的是內(nèi)容c的質(zhì)量,可以使用點(diǎn)擊率(click/pv)表示。
3、其他運(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)確性,也有重要的意義。
4、優(yōu)缺點(diǎn)
基于內(nèi)容的推薦算法有幾個(gè)明顯優(yōu)點(diǎn):
對(duì)用戶數(shù)量沒(méi)有要求,無(wú)論日活幾千或是幾百萬(wàn),均可以采用;因此個(gè)性化推薦早期一般采用這種方式。
每個(gè)用戶的特征都是由自己的行為來(lái)決定的,是獨(dú)立存在的,不會(huì)有互相干擾,因此惡意刷閱讀等新聞不會(huì)影響到推薦算法。
而最主要的缺點(diǎn)就是確定性太強(qiáng)了,所有推薦的內(nèi)容都是由用戶的閱讀歷史決定,所以沒(méi)辦法挖掘用戶的潛在興趣;也就是由于這一點(diǎn),基于內(nèi)容的推薦一般與其他推薦算法同時(shí)存在。
基于用戶的協(xié)同推薦
終于,經(jīng)過(guò)團(tuán)隊(duì)的努力,你的產(chǎn)品已經(jīng)有了大量活躍用戶了,這時(shí)候你開始不滿足于現(xiàn)有的算法。雖然基于內(nèi)容的推薦已經(jīng)很精準(zhǔn)了,但總是少了那么一點(diǎn)性感。因?yàn)槟闼薪o用戶的內(nèi)容都是基于他們的閱讀習(xí)慣推薦的,沒(méi)能給用戶“不期而遇”的感覺。
于是,你就開始做基于用戶的協(xié)同過(guò)濾了。
基于用戶的協(xié)同過(guò)濾推薦算法,簡(jiǎn)單來(lái)講就是依據(jù)用戶A的閱讀喜好,為A找到與他興趣最接近的群體,所謂“人以群分”,然后把這個(gè)群體里其他人喜歡的,但是A沒(méi)有閱讀過(guò)的內(nèi)容推薦給A。
舉例我是一個(gè)足球迷,系統(tǒng)找到與我類似的用戶都是足球的重度閱讀者,但與此同時(shí),這些“足球群體”中有一部分人有看NBA新聞的習(xí)慣,系統(tǒng)就可能會(huì)給我推薦NBA內(nèi)容,很可能我也對(duì)NBA也感興趣,這樣我在后臺(tái)的興趣圖譜就更完善了。
1、用戶群體劃分
做基于用戶的協(xié)同過(guò)濾,首先就要做用戶的劃分,可以從三方面著手:
(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ī)語(yǔ)種等。
使用這些數(shù)據(jù),你很容易就能得到一個(gè)用戶是北京的還是上海的,是大學(xué)生還是創(chuàng)業(yè)者,并依據(jù)這些屬性做準(zhǔn)確的大類劃分。
比如一篇行業(yè)投資分析出來(lái)后,“上海創(chuàng)業(yè)圈”這個(gè)群體80%的用戶都看過(guò),那就可以推薦給剩下的20%。
(2)產(chǎn)品內(nèi)主動(dòng)詢問(wèn)
常見在產(chǎn)品首次啟動(dòng)的時(shí)候,彈框詢問(wèn)用戶是男是女,職業(yè)等,這樣能對(duì)內(nèi)容推薦的冷啟動(dòng)提供一些幫助。但總體來(lái)說(shuō),性價(jià)比偏低,只能詢問(wèn)兩三個(gè)問(wèn)題并對(duì)用戶的推薦內(nèi)容做非常粗略的劃分,同時(shí)要避免打擾到用戶;這種做法算是基于用戶個(gè)性化的雛形。
(3)對(duì)比用戶特征
新聞的特征加用戶的閱讀數(shù)據(jù)能得到用戶的特征,那就可以通過(guò)用戶特征的相似性來(lái)劃分群體。
最后總結(jié),沒(méi)有一款完美的個(gè)性化推薦算法,畢竟用戶的心里你別猜別猜別猜,但是產(chǎn)品經(jīng)理還是要結(jié)合自身產(chǎn)品不斷打磨算法。
填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!
?2007-2022/ m.mwtacok.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc