今日頭條帶動了“個性化推薦”的概念关拒,自此之后佃蚜,無論是工具產(chǎn)品,電商產(chǎn)品着绊,還是內(nèi)容型的產(chǎn)品谐算,都自帶內(nèi)容屬性,個性化算法也逐漸從賣點變?yōu)闃伺洹?/p>
各種推薦算法不能僅僅是研發(fā)涉獵領域归露,作為PM洲脂,也要深入到算法內(nèi)部,了解算法的設計靶擦,以及結(jié)合內(nèi)容對算法不斷“調(diào)教”腮考,才能讓產(chǎn)品的推薦算法不斷完善,才能符合用戶的口味玄捕。
目前比較流行的個性化推薦算法有以下幾種:
基于內(nèi)容的推薦:根據(jù)內(nèi)容本身的屬性(特征向量)所作的推薦踩蔚。
基于關聯(lián)規(guī)則的推薦:“啤酒與尿布”的方式,是一種動態(tài)的推薦枚粘,能夠?qū)崟r對用戶的行為作出推薦馅闽。是基于物品之間的特征關聯(lián)性所做的推薦,在某種情況下會退化為物品協(xié)同過濾推薦馍迄。
協(xié)同過濾推薦:與基于關聯(lián)規(guī)則的推薦相比是一種靜態(tài)方式的推薦福也,是根據(jù)用戶已有的歷史行為作分析的基礎上做的推薦∨嗜Γ可分為物品協(xié)同過濾暴凑、用戶協(xié)同過濾、基于模型的協(xié)同過濾赘来。其中现喳,基于模型的協(xié)同又可以分為以下幾種類型:基于距離的協(xié)同過濾;基于矩陣分解的協(xié)同過濾凯傲,即Latent
Factor Model(SVD)或者ALS;基于圖模型協(xié)同,即Graph嗦篱,也叫社會網(wǎng)絡圖模型冰单。
1、產(chǎn)品冷啟動通過熱度算法進行內(nèi)容推薦
產(chǎn)品發(fā)展初期灸促,由于一方面沒有用戶行為诫欠、用戶喜好、用戶畫像浴栽,另外也沒有大量的內(nèi)容樣本基礎荒叼,是很難開展個性化推薦的。所以在產(chǎn)品初期吃度,一般采取“熱度算法”甩挫,顧名思義就是把熱點的內(nèi)容優(yōu)先推薦給用戶。雖然無法做到基于興趣和習慣為每一個用戶做到精準化的推薦椿每,但能覆蓋到大部分的內(nèi)容需求,而且啟動成本比個性化推薦算法低太多英遭。
熱度算法基本原理:
新聞熱度分 = 初始熱度分 + 用戶交互產(chǎn)生的熱度分 – 隨時間衰減的熱度分
Score = S0 + S(Users) – S(Time)
1)以新聞或視頻較有時效性的內(nèi)容舉例间护,熱度隨內(nèi)容陳舊而分值衰減。
2)初始熱度分不要一視同仁挖诸。
按照新聞類別給予新聞不同的初始熱度汁尺,讓用戶關注度高的類別獲得更高的初始熱度分,從而獲得更多的曝光多律。軍事>娛樂>體育>財經(jīng)....
對于重大事件的報道痴突,如何讓它入庫時就有更高的熱度,我們采用的是熱詞匹配的方式狼荞。
即對大型新聞站點的頭條辽装,Twitter熱點,競品的頭條做監(jiān)控和扒取相味,并將這批新聞的關鍵詞維護到熱詞庫并保持更新;每條新聞入庫的時候拾积,讓新聞的關鍵詞去匹配熱詞庫,匹配度越高丰涉,就有越高的初始熱度分拓巧。這樣處理后,重大事件發(fā)生時一死,Twitter和門戶網(wǎng)站的爭相報道會導致熱詞集中化肛度,所有匹配到這些熱詞的新聞,即報道同樣事件的新聞投慈,會獲得很高的初始熱度分承耿。
3)用戶交互的熱度分值比重不一冠骄。首先明確用戶的的哪些行為會提高新聞的熱度值,然后對這些行為賦予一定的得分規(guī)則瘩绒。
例如對于單條新聞猴抹,用戶可以點擊閱讀(click),收藏(favor)锁荔,分享(share)蟀给,評論(comment)這四種行為,我們?yōu)椴煌男袨橘x予分數(shù)阳堕,就能得到新聞的實時用戶行為分為:
S(Users) = 1*click + 5*favor + 10*comment + 20*share
這里對不同行為賦予的分數(shù)為1,5,10,20跋理,但這個值不能是一成不變的;當用戶規(guī)模小的時候,各項事件都小恬总,此時需要提高每個事件的行為分來提升用戶行為的影響力;當用戶規(guī)模變大時前普,行為分也應該慢慢降低,因此做內(nèi)容運營時壹堰,應該對行為分不斷調(diào)整拭卿。
當然也有偷懶的辦法,那就是把用戶規(guī)募溃考慮進去峻厚,算固定用戶數(shù)的行為分,即:
S(Users) = (1*click + 5*favor + 10*comment + 20*share)/ DAU * N(固定數(shù))
這樣就保證了在不同用戶規(guī)模下谆焊,用戶行為產(chǎn)生的行為分基本穩(wěn)定惠桃。
2、基于內(nèi)容特征與用戶特征進行個性化推薦
對于此種推薦辖试,有兩個實體:內(nèi)容和用戶辜王,因此需要有一個聯(lián)系這兩者的東西,即為標簽罐孝。內(nèi)容轉(zhuǎn)換為標簽即為內(nèi)容特征化呐馆,用戶則稱為用戶特征化。對于此種推薦肾档,主要分為以下幾個關鍵部分:
標簽庫
內(nèi)容特征化
用戶特征化
隱語義推薦
綜合上面講述的各個部分即可實現(xiàn)一個基于內(nèi)容和用戶畫像的個性化推薦系統(tǒng)摹恰。
標簽庫
標簽是聯(lián)系用戶與物品、內(nèi)容以及物品怒见、內(nèi)容之間的紐帶俗慈,也是反應用戶興趣的重要數(shù)據(jù)源。標簽庫的最終用途在于對用戶進行行為遣耍、屬性標記闺阱。是將其他實體轉(zhuǎn)換為計算機可以理解的語言關鍵的一步。
標簽庫則是對標簽進行聚合的系統(tǒng)舵变,包括對標簽的管理酣溃、更新等瘦穆。
一般來說,標簽是以層級的形式組織的赊豌】富颍可以有一級維度、二級維度等碘饼。
標簽的來源主要有:
已有內(nèi)容的標簽
網(wǎng)絡抓取流行標簽
對運營的內(nèi)容進行關鍵詞提取
對于內(nèi)容的關鍵詞提取熙兔,使用結(jié)巴分詞+TFIDF即可。此外艾恼,也可以使用TextRank來提取內(nèi)容關鍵詞住涉。
這里需要注意的一點是對于關聯(lián)標簽的處理,比如用戶的標簽是足球钠绍,而內(nèi)容的標簽是德甲舆声、英超,那么用戶和內(nèi)容是無法聯(lián)系在一起的柳爽。最簡單的方式是人工設置關聯(lián)標簽媳握,此外也可以使用word2vec一類工具對標簽做聚類處理,構(gòu)建主題模型磷脯,將德甲毙芜、英超聚類到足球下面。
內(nèi)容特征化
內(nèi)容特征化即給內(nèi)容打標簽争拐。目前有兩種方式:
人工打標簽
機器自動打標簽
針對機器自動打標簽,需要采取機器學習的相關算法來實現(xiàn)晦雨,即針對一系列給定的標簽架曹,給內(nèi)容選取其中匹配度最高的幾個標簽。這不同于通常的分類和聚類算法闹瞧“笮郏可以采取使用分詞 +Word2Vec來實現(xiàn),過程如下:
將文本語料進行分詞奥邮,以空格,tab隔開都可以万牺,使用結(jié)巴分詞。
使用word2vec訓練詞的相似度模型洽腺。
使用tfidf提取內(nèi)容的關鍵詞A,B,C脚粟。
遍歷每一個標簽,計算關鍵詞與此標簽的相似度之和蘸朋。
取出TopN相似度最高的標簽即為此內(nèi)容的標簽核无。
此外,可以使用文本主題挖掘相關技術藕坯,對內(nèi)容進行特征化团南。這也分為兩種情況:
通用情況下噪沙,只是為了效果優(yōu)化的特征提取,那么可以使用非監(jiān)督學習的主題模型算法吐根。如LSA正歼、PLSI和GaP模型或者LDA模型。
在和業(yè)務強相關時拷橘,需要在業(yè)務特定的標簽體系下給內(nèi)容打上適合的標簽局义。這時候需要使用的是監(jiān)督學習的主題模型。如sLDA膜楷、HSLDA等旭咽。
用戶特征化
用戶特征化即為用戶打標簽。通過用戶的行為日志和一定的模型算法得到用戶的每個標簽的權(quán)重赌厅。
用戶對內(nèi)容的行為:點贊穷绵、不感興趣、點擊特愿、瀏覽仲墨。對用戶的反饋行為如點贊賦予權(quán)值1,不感興趣賦予-1;對于用戶的瀏覽行為揍障,則可使用點擊/瀏覽作為權(quán)值目养。
對內(nèi)容發(fā)生的行為可以認為對此內(nèi)容所帶的標簽的行為。
用戶的興趣是時間衰減的毒嫡,即離當前時間越遠的興趣比重越低癌蚁。時間衰減函數(shù)使用1/[log(t)+1], t為事件發(fā)生的時間距離當前時間的大小。
要考慮到熱門內(nèi)容會干預用戶的標簽兜畸,需要對熱門內(nèi)容進行降權(quán)努释。使用click/pv作為用戶瀏覽行為權(quán)值即可達到此目的。
此外咬摇,還需要考慮噪聲的干擾伐蒂,如標題黨等。
另肛鹏,在非業(yè)務強相關的情況下逸邦,還可以考慮使用LSA主題模型等矩陣分解的方式對用戶進行標簽化。
隱語義推薦
有了內(nèi)容特征和用戶特征在扰,可以使用隱語義模型進行推薦缕减。這里可以使用其簡化形式,以達到實時計算的目的健田。
用戶對于某一個內(nèi)容的興趣度(可以認為是CTR):
其中i=1…N是內(nèi)容c具有的標簽烛卧,m(ci)指的內(nèi)容c和標簽i的關聯(lián)度(可以簡單認為是1),n(ui)指的是用戶u的標簽i的權(quán)重值,當用戶不具有此標簽時n(ui)=0,q?指的是內(nèi)容c的質(zhì)量,可以使用點擊率(click/pv)表示总放。
3呈宇、其他運用
除了個性化推薦,基于內(nèi)容的相關性算法能精準地給出一篇新聞的相關推薦列表局雄,對相關閱讀的實現(xiàn)非常有意義甥啄。此外,標簽系統(tǒng)對新聞分類的實現(xiàn)和提升準確性炬搭,也有重要的意義蜈漓。
4、優(yōu)缺點
基于內(nèi)容的推薦算法有幾個明顯優(yōu)點:
對用戶數(shù)量沒有要求宫盔,無論日活幾千或是幾百萬融虽,均可以采用;因此個性化推薦早期一般采用這種方式。
每個用戶的特征都是由自己的行為來決定的灼芭,是獨立存在的有额,不會有互相干擾,因此惡意刷閱讀等新聞不會影響到推薦算法彼绷。
而最主要的缺點就是確定性太強了巍佑,所有推薦的內(nèi)容都是由用戶的閱讀歷史決定,所以沒辦法挖掘用戶的潛在興趣;也就是由于這一點寄悯,基于內(nèi)容的推薦一般與其他推薦算法同時存在萤衰。
基于用戶的協(xié)同推薦
終于,經(jīng)過團隊的努力猜旬,你的產(chǎn)品已經(jīng)有了大量活躍用戶了脆栋,這時候你開始不滿足于現(xiàn)有的算法。雖然基于內(nèi)容的推薦已經(jīng)很精準了洒擦,但總是少了那么一點性感筹吐。因為你所有給用戶的內(nèi)容都是基于他們的閱讀習慣推薦的,沒能給用戶“不期而遇”的感覺秘遏。
于是,你就開始做基于用戶的協(xié)同過濾了嘉竟。
基于用戶的協(xié)同過濾推薦算法邦危,簡單來講就是依據(jù)用戶A的閱讀喜好,為A找到與他興趣最接近的群體舍扰,所謂“人以群分”倦蚪,然后把這個群體里其他人喜歡的,但是A沒有閱讀過的內(nèi)容推薦給A边苹。
舉例我是一個足球迷陵且,系統(tǒng)找到與我類似的用戶都是足球的重度閱讀者,但與此同時,這些“足球群體”中有一部分人有看NBA新聞的習慣慕购,系統(tǒng)就可能會給我推薦NBA內(nèi)容聊疲,很可能我也對NBA也感興趣,這樣我在后臺的興趣圖譜就更完善了沪悲。
1获洲、用戶群體劃分
做基于用戶的協(xié)同過濾,首先就要做用戶的劃分殿如,可以從三方面著手:
(1)外部數(shù)據(jù)的借用
這里使用社交平臺數(shù)據(jù)的居多贡珊,現(xiàn)在產(chǎn)品的登錄體系一般都借用第三方社媒的登錄體系,如國外的Facebook涉馁、Twitter门岔,國內(nèi)的微信、微博烤送,借用第三方賬戶的好處多多寒随,例如降低門檻,方便傳播等胯努,還能對個性化推薦起到重要作用牢裳。
因為第三方賬戶都是授權(quán)獲取部分用戶信息的,往往包括性別叶沛,年齡蒲讯,工作甚至社交關系等,這些信息對用戶群劃分很有意義灰署。
此外還有其他的一些數(shù)據(jù)也能借用判帮,例如IP地址,手機語種等溉箕。
使用這些數(shù)據(jù)晦墙,你很容易就能得到一個用戶是北京的還是上海的,是大學生還是創(chuàng)業(yè)者肴茄,并依據(jù)這些屬性做準確的大類劃分晌畅。
比如一篇行業(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)品不斷打磨算法。