今日頭條帶動了“個性化推薦”的概念茂翔,自此之后,無論是工具產(chǎn)品,電商產(chǎn)品,還是內(nèi)容型的產(chǎn)品,都自帶內(nèi)容屬性但荤,個性化算法也逐漸從賣點(diǎn)變?yōu)闃?biāo)配。
各種推薦算法不能僅僅是研發(fā)涉獵領(lǐng)域涧至,作為PM腹躁,也要深入到算法內(nèi)部,了解算法的設(shè)計南蓬,以及結(jié)合內(nèi)容對算法不斷“調(diào)教”纺非,才能讓產(chǎn)品的推薦算法不斷完善,才能符合用戶的口味赘方。
目前比較流行的個性化推薦算法有以下幾種:
基于內(nèi)容的推薦:根據(jù)內(nèi)容本身的屬性(特征向量)所作的推薦烧颖。
基于關(guān)聯(lián)規(guī)則的推薦:“啤酒與尿布”的方式,是一種動態(tài)的推薦窄陡,能夠?qū)崟r對用戶的行為作出推薦炕淮。是基于物品之間的特征關(guān)聯(lián)性所做的推薦,在某種情況下會退化為物品協(xié)同過濾推薦跳夭。
協(xié)同過濾推薦:與基于關(guān)聯(lián)規(guī)則的推薦相比是一種靜態(tài)方式的推薦涂圆,是根據(jù)用戶已有的歷史行為作分析的基礎(chǔ)上做的推薦”姨荆可分為物品協(xié)同過濾润歉、用戶協(xié)同過濾、基于模型的協(xié)同過濾套硼。其中卡辰,基于模型的協(xié)同又可以分為以下幾種類型:基于距離的協(xié)同過濾;基于矩陣分解的協(xié)同過濾邪意,即Latent Factor Model(SVD)或者ALS九妈;基于圖模型協(xié)同,即Graph雾鬼,也叫社會網(wǎng)絡(luò)圖模型萌朱。
1、產(chǎn)品冷啟動通過熱度算法進(jìn)行內(nèi)容推薦
產(chǎn)品發(fā)展初期策菜,由于一方面沒有用戶行為晶疼、用戶喜好、用戶畫像又憨,另外也沒有大量的內(nèi)容樣本基礎(chǔ)翠霍,是很難開展個性化推薦的。所以在產(chǎn)品初期蠢莺,一般采取“熱度算法”寒匙,顧名思義就是把熱點(diǎn)的內(nèi)容優(yōu)先推薦給用戶。雖然無法做到基于興趣和習(xí)慣為每一個用戶做到精準(zhǔn)化的推薦躏将,但能覆蓋到大部分的內(nèi)容需求锄弱,而且啟動成本比個性化推薦算法低太多。
熱度算法基本原理:
新聞熱度分 = 初始熱度分 + 用戶交互產(chǎn)生的熱度分 – 隨時間衰減的熱度分
Score = S0 + S(Users) – S(Time)
1)以新聞或視頻較有時效性的內(nèi)容舉例祸憋,熱度隨內(nèi)容陳舊而分值衰減会宪。
2)初始熱度分不要一視同仁。
按照新聞類別給予新聞不同的初始熱度蚯窥,讓用戶關(guān)注度高的類別獲得更高的初始熱度分掸鹅,從而獲得更多的曝光。軍事>娛樂>體育>財經(jīng)....
對于重大事件的報道拦赠,如何讓它入庫時就有更高的熱度巍沙,我們采用的是熱詞匹配的方式。
即對大型新聞?wù)军c(diǎn)的頭條矛紫,Twitter熱點(diǎn)赎瞎,競品的頭條做監(jiān)控和扒取,并將這批新聞的關(guān)鍵詞維護(hù)到熱詞庫并保持更新颊咬;每條新聞入庫的時候务甥,讓新聞的關(guān)鍵詞去匹配熱詞庫,匹配度越高喳篇,就有越高的初始熱度分敞临。這樣處理后,重大事件發(fā)生時麸澜,Twitter和門戶網(wǎng)站的爭相報道會導(dǎo)致熱詞集中化挺尿,所有匹配到這些熱詞的新聞,即報道同樣事件的新聞,會獲得很高的初始熱度分编矾。
3)用戶交互的熱度分值比重不一熟史。首先明確用戶的的哪些行為會提高新聞的熱度值,然后對這些行為賦予一定的得分規(guī)則窄俏。
例如對于單條新聞蹂匹,用戶可以點(diǎn)擊閱讀(click),收藏(favor)凹蜈,分享(share)限寞,評論(comment)這四種行為,我們?yōu)椴煌男袨橘x予分?jǐn)?shù)仰坦,就能得到新聞的實(shí)時用戶行為分為:
S(Users) = 1*click + 5*favor + 10*comment + 20*share
這里對不同行為賦予的分?jǐn)?shù)為1,5,10,20履植,但這個值不能是一成不變的;當(dāng)用戶規(guī)模小的時候悄晃,各項事件都小玫霎,此時需要提高每個事件的行為分來提升用戶行為的影響力;當(dāng)用戶規(guī)模變大時传泊,行為分也應(yīng)該慢慢降低鼠渺,因此做內(nèi)容運(yùn)營時,應(yīng)該對行為分不斷調(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)行個性化推薦
對于此種推薦,有兩個實(shí)體:內(nèi)容和用戶歉秫,因此需要有一個聯(lián)系這兩者的東西蛾洛,即為標(biāo)簽。內(nèi)容轉(zhuǎn)換為標(biāo)簽即為內(nèi)容特征化雁芙,用戶則稱為用戶特征化轧膘。對于此種推薦,主要分為以下幾個關(guān)鍵部分:
標(biāo)簽庫
內(nèi)容特征化
用戶特征化
隱語義推薦
綜合上面講述的各個部分即可實(shí)現(xiàn)一個基于內(nèi)容和用戶畫像的個性化推薦系統(tǒng)兔甘。
標(biāo)簽庫
標(biāo)簽是聯(lián)系用戶與物品谎碍、內(nèi)容以及物品、內(nèi)容之間的紐帶洞焙,也是反應(yīng)用戶興趣的重要數(shù)據(jù)源蟆淀。標(biāo)簽庫的最終用途在于對用戶進(jìn)行行為拯啦、屬性標(biāo)記。是將其他實(shí)體轉(zhuǎn)換為計算機(jī)可以理解的語言關(guān)鍵的一步熔任。
標(biāo)簽庫則是對標(biāo)簽進(jìn)行聚合的系統(tǒng)褒链,包括對標(biāo)簽的管理、更新等笋敞。
一般來說碱蒙,標(biāo)簽是以層級的形式組織的荠瘪『幌铮可以有一級維度、二級維度等哀墓。
標(biāo)簽的來源主要有:
已有內(nèi)容的標(biāo)簽
網(wǎng)絡(luò)抓取流行標(biāo)簽
對運(yùn)營的內(nèi)容進(jìn)行關(guān)鍵詞提取
對于內(nèi)容的關(guān)鍵詞提取趁餐,使用結(jié)巴分詞+TFIDF即可。此外篮绰,也可以使用TextRank來提取內(nèi)容關(guān)鍵詞后雷。
這里需要注意的一點(diǎn)是對于關(guān)聯(lián)標(biāo)簽的處理,比如用戶的標(biāo)簽是足球吠各,而內(nèi)容的標(biāo)簽是德甲臀突、英超,那么用戶和內(nèi)容是無法聯(lián)系在一起的贾漏。最簡單的方式是人工設(shè)置關(guān)聯(lián)標(biāo)簽候学,此外也可以使用word2vec一類工具對標(biāo)簽做聚類處理,構(gòu)建主題模型纵散,將德甲梳码、英超聚類到足球下面。
內(nèi)容特征化
內(nèi)容特征化即給內(nèi)容打標(biāo)簽伍掀。目前有兩種方式:
人工打標(biāo)簽
機(jī)器自動打標(biāo)簽
針對機(jī)器自動打標(biāo)簽掰茶,需要采取機(jī)器學(xué)習(xí)的相關(guān)算法來實(shí)現(xiàn),即針對一系列給定的標(biāo)簽蜜笤,給內(nèi)容選取其中匹配度最高的幾個標(biāo)簽濒蒋。這不同于通常的分類和聚類算法“淹茫可以采取使用分詞 +Word2Vec來實(shí)現(xiàn)沪伙,過程如下:
將文本語料進(jìn)行分詞,以空格,tab隔開都可以垛贤,使用結(jié)巴分詞焰坪。
使用word2vec訓(xùn)練詞的相似度模型。
使用tfidf提取內(nèi)容的關(guān)鍵詞A,B,C聘惦。
遍歷每一個標(biāo)簽某饰,計算關(guān)鍵詞與此標(biāo)簽的相似度之和儒恋。
取出TopN相似度最高的標(biāo)簽即為此內(nèi)容的標(biāo)簽。
此外黔漂,可以使用文本主題挖掘相關(guān)技術(shù)诫尽,對內(nèi)容進(jìn)行特征化。這也分為兩種情況:
通用情況下炬守,只是為了效果優(yōu)化的特征提取牧嫉,那么可以使用非監(jiān)督學(xué)習(xí)的主題模型算法。如LSA减途、PLSI和GaP模型或者LDA模型酣藻。
在和業(yè)務(wù)強(qiáng)相關(guān)時,需要在業(yè)務(wù)特定的標(biāo)簽體系下給內(nèi)容打上適合的標(biāo)簽鳍置。這時候需要使用的是監(jiān)督學(xué)習(xí)的主題模型辽剧。如sLDA、HSLDA等税产。
用戶特征化
用戶特征化即為用戶打標(biāo)簽怕轿。通過用戶的行為日志和一定的模型算法得到用戶的每個標(biāo)簽的權(quán)重。
用戶對內(nèi)容的行為:點(diǎn)贊辟拷、不感興趣撞羽、點(diǎn)擊、瀏覽衫冻。對用戶的反饋行為如點(diǎn)贊賦予權(quán)值1诀紊,不感興趣賦予-1;對于用戶的瀏覽行為羽杰,則可使用點(diǎn)擊/瀏覽作為權(quán)值渡紫。
對內(nèi)容發(fā)生的行為可以認(rèn)為對此內(nèi)容所帶的標(biāo)簽的行為。
用戶的興趣是時間衰減的考赛,即離當(dāng)前時間越遠(yuǎn)的興趣比重越低惕澎。時間衰減函數(shù)使用1/[log(t)+1], t為事件發(fā)生的時間距離當(dāng)前時間的大小。
要考慮到熱門內(nèi)容會干預(yù)用戶的標(biāo)簽颜骤,需要對熱門內(nèi)容進(jìn)行降權(quán)唧喉。使用click/pv作為用戶瀏覽行為權(quán)值即可達(dá)到此目的。
此外忍抽,還需要考慮噪聲的干擾八孝,如標(biāo)題黨等。
另鸠项,在非業(yè)務(wù)強(qiáng)相關(guān)的情況下干跛,還可以考慮使用LSA主題模型等矩陣分解的方式對用戶進(jìn)行標(biāo)簽化。
隱語義推薦
有了內(nèi)容特征和用戶特征祟绊,可以使用隱語義模型進(jìn)行推薦楼入。這里可以使用其簡化形式哥捕,以達(dá)到實(shí)時計算的目的。
用戶對于某一個內(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)度(可以簡單認(rèn)為是1),n(ui)指的是用戶u的標(biāo)簽i的權(quán)重值,當(dāng)用戶不具有此標(biāo)簽時n(ui)=0遥赚,q?指的是內(nèi)容c的質(zhì)量,可以使用點(diǎn)擊率(click/pv)表示阐肤。
3凫佛、其他運(yùn)用
除了個性化推薦,基于內(nèi)容的相關(guān)性算法能精準(zhǔn)地給出一篇新聞的相關(guān)推薦列表孕惜,對相關(guān)閱讀的實(shí)現(xiàn)非常有意義愧薛。此外,標(biāo)簽系統(tǒng)對新聞分類的實(shí)現(xiàn)和提升準(zhǔn)確性诊赊,也有重要的意義厚满。
4、優(yōu)缺點(diǎn)
基于內(nèi)容的推薦算法有幾個明顯優(yōu)點(diǎn):
對用戶數(shù)量沒有要求碧磅,無論日活幾千或是幾百萬,均可以采用遵馆;因此個性化推薦早期一般采用這種方式鲸郊。
每個用戶的特征都是由自己的行為來決定的,是獨(dú)立存在的货邓,不會有互相干擾秆撮,因此惡意刷閱讀等新聞不會影響到推薦算法。
而最主要的缺點(diǎn)就是確定性太強(qiáng)了换况,所有推薦的內(nèi)容都是由用戶的閱讀歷史決定职辨,所以沒辦法挖掘用戶的潛在興趣;也就是由于這一點(diǎn)戈二,基于內(nèi)容的推薦一般與其他推薦算法同時存在舒裤。
基于用戶的協(xié)同推薦
終于,經(jīng)過團(tuán)隊的努力觉吭,你的產(chǎn)品已經(jīng)有了大量活躍用戶了腾供,這時候你開始不滿足于現(xiàn)有的算法。雖然基于內(nèi)容的推薦已經(jīng)很精準(zhǔn)了鲜滩,但總是少了那么一點(diǎn)性感伴鳖。因?yàn)槟闼薪o用戶的內(nèi)容都是基于他們的閱讀習(xí)慣推薦的,沒能給用戶“不期而遇”的感覺徙硅。
于是榜聂,你就開始做基于用戶的協(xié)同過濾了。
基于用戶的協(xié)同過濾推薦算法嗓蘑,簡單來講就是依據(jù)用戶A的閱讀喜好须肆,為A找到與他興趣最接近的群體贴汪,所謂“人以群分”,然后把這個群體里其他人喜歡的休吠,但是A沒有閱讀過的內(nèi)容推薦給A扳埂。
舉例我是一個足球迷,系統(tǒng)找到與我類似的用戶都是足球的重度閱讀者瘤礁,但與此同時阳懂,這些“足球群體”中有一部分人有看NBA新聞的習(xí)慣,系統(tǒng)就可能會給我推薦NBA內(nèi)容柜思,很可能我也對NBA也感興趣岩调,這樣我在后臺的興趣圖譜就更完善了。
1赡盘、用戶群體劃分
做基于用戶的協(xié)同過濾号枕,首先就要做用戶的劃分,可以從三方面著手:
(1)外部數(shù)據(jù)的借用
這里使用社交平臺數(shù)據(jù)的居多陨享,現(xiàn)在產(chǎn)品的登錄體系一般都借用第三方社媒的登錄體系葱淳,如國外的Facebook、Twitter抛姑,國內(nèi)的微信赞厕、微博,借用第三方賬戶的好處多多定硝,例如降低門檻皿桑,方便傳播等,還能對個性化推薦起到重要作用蔬啡。
因?yàn)榈谌劫~戶都是授權(quán)獲取部分用戶信息的诲侮,往往包括性別,年齡箱蟆,工作甚至社交關(guān)系等沟绪,這些信息對用戶群劃分很有意義。
此外還有其他的一些數(shù)據(jù)也能借用顽腾,例如IP地址近零,手機(jī)語種等。
使用這些數(shù)據(jù)抄肖,你很容易就能得到一個用戶是北京的還是上海的久信,是大學(xué)生還是創(chuàng)業(yè)者,并依據(jù)這些屬性做準(zhǔn)確的大類劃分漓摩。
比如一篇行業(yè)投資分析出來后裙士,“上海創(chuàng)業(yè)圈”這個群體80%的用戶都看過,那就可以推薦給剩下的20%管毙。
(2)產(chǎn)品內(nèi)主動詢問
常見在產(chǎn)品首次啟動的時候腿椎,彈框詢問用戶是男是女桌硫,職業(yè)等,這樣能對內(nèi)容推薦的冷啟動提供一些幫助啃炸。但總體來說铆隘,性價比偏低,只能詢問兩三個問題并對用戶的推薦內(nèi)容做非常粗略的劃分南用,同時要避免打擾到用戶膀钠;這種做法算是基于用戶個性化的雛形。
(3)對比用戶特征
新聞的特征加用戶的閱讀數(shù)據(jù)能得到用戶的特征裹虫,那就可以通過用戶特征的相似性來劃分群體肿嘲。
最后總結(jié),沒有一款完美的個性化推薦算法筑公,畢竟用戶的心里你別猜別猜別猜雳窟,但是產(chǎn)品經(jīng)理還是要結(jié)合自身產(chǎn)品不斷打磨算法。