新聞個性化推薦演算法
1. 推薦系統的幾種常用演算法總結
推薦系統旨在通過數據分析和用戶行為理解,提供個性化內容或商品推薦。在信息爆炸的時代,這類系統能夠幫助用戶篩選出符合需求的信息,同時幫助信息提供者有效展示其內容,提升用戶體驗和業務價值。接下來,本文將詳細總結幾種常用的推薦系統演算法。
### 一、推薦系統定義
推薦系統是一種技術手段,旨在通過分析用戶的興趣、行為習慣等數據,提供個性化的內容或商品推薦。這類系統廣泛應用於電子商務、社交媒體、新聞推送等領域,幫助用戶在海量信息中找到感興趣的內容,同時也幫助信息提供者將內容精準推薦給潛在受眾。
### 二、推薦系統解決的問題
推薦系統主要解決以下幾個問題:
幫助用戶發現感興趣的商品或內容,如書籍、電影、產品等。
減少信息過載現象,使用戶更容易找到所需信息。
提高站點點擊率和轉化率,增強用戶參與度和滿意度。
深入了解用戶需求,提供定製化服務。
### 三、推薦系統的發展趨勢與常用演算法
推薦系統的發展趨勢包括基於傳統服務、社交網路服務和即將到來的物聯網等領域。常用的推薦演算法包括:
**基於流行度推薦**:根據瀏覽量、分享率等指標排序推薦。
**基於協同過濾**:包括用戶CF和物品CF,通過分析用戶間的相似度進行推薦。
**基於內容的推薦**:考慮物品的屬性特徵,通過相似度計算推薦。
**基於模型的推薦**:利用機器學習模型,如邏輯回歸、樸素貝葉斯等進行推薦。
**混合式推薦**:結合多種演算法,根據業務需求優化推薦效果。
### 四、演算法細節與改進
以**基於流行度的推薦演算法**為例,雖然簡單直接,但無法提供個性化推薦。改進方案包括用戶分群流行度排序、針對特定興趣群體優化推薦內容。
對於**基於用戶的協同過濾推薦演算法**,優點在於推薦內容與用戶興趣一致,適合物品比用戶多、物品時效性強的場景。改進方向包括增強相似度計算、優化推薦效率和個性化程度。
**基於物品的協同過濾推薦演算法**側重於推薦與用戶偏好相似的物品,優點在於推薦結果個性化、穩定和廣泛適用。改進措施涉及優化相似度計算、解決物品冷啟動問題和提升推薦多樣性。
**基於內容的推薦演算法**通過分析物品屬性進行推薦,優點在於直觀、解決冷啟動問題,但可能受限於內容描述的詳細程度和主題集中度。改進方向包括優化內容描述、提高推薦多樣性。
**基於模型的推薦演算法**利用機器學習模型進行推薦,適用於實時性強的場景。改進策略可能涉及特徵工程的優化和在線模型更新。
**混合式推薦演算法**綜合多種演算法優勢,定製化適應不同業務需求。改進主要關注如何優化演算法組合,以提升推薦效果。
### 結論
推薦系統通過一系列演算法和技術,為用戶提供個性化的內容或商品推薦,顯著提升用戶體驗和業務效率。不同場景下,應選擇或組合適用的演算法,不斷優化推薦效果,滿足用戶需求和業務目標。
2. 今日頭條是怎樣做到精準演算法推薦
今日頭條藉助個性化推薦提高用戶瀏覽新聞的時長,個性化推薦中最常用的演算法就是協同過濾演算法,包括基於物品的協同過濾和基於用戶的協同過濾。說成人話就是,與你同類的人喜歡什麼,就給你推什麼新聞,看了A新聞的人也瀏覽了B新聞,那麼就給你推薦B新聞。
同時,根據用戶的瀏覽軌跡和偏好,不斷更新迭代用戶的標簽(用戶畫像),提升推薦的准確率。
個性化推薦中比較難的就是冷啟動階段,無法判斷用戶的偏好,因為難以推薦能吸引用戶眼球的新聞。達觀數據採用的是多種策略來改善冷啟動用戶的推薦質量,最重要的一點就是需要秒級生成用戶畫像,快速完成冷熱轉換,確保用戶留存率。
3. 個性化推薦是怎麼做的
各種推薦演算法不能僅僅是研發涉獵領域,作為PM,也要深入到演算法內部,了解演算法的設計,以及結合內容對演算法不斷「調教」,才能讓產品的推薦演算法不斷完善,才能符合用戶的口味。
目前比較流行的個性化推薦演算法有以下幾種:
基於內容的推薦:根據內容本身的屬性(特徵向量)所作的推薦。
基於關聯規則的推薦:「啤酒與尿布」的方式,是一種動態的推薦,能夠實時對用戶的行為作出推薦。是基於物品之間的特徵關聯性所做的推薦,在某種情況下會退化為物品協同過濾推薦。
協同過濾推薦:與基於關聯規則的推薦相比是一種靜態方式的推薦,是根據用戶已有的歷史行為作分析的基礎上做的推薦。可分為物品協同過濾、用戶協同過濾、基於模型的協同過濾。其中,基於模型的協同又可以分為以下幾種類型:基於距離的協同過濾;基於矩陣分解的協同過濾,即Latent
Factor Model(SVD)或者ALS;基於圖模型協同,即Graph,也叫社會網路圖模型。
1、產品冷啟動通過熱度演算法進行內容推薦
產品發展初期,由於一方面沒有用戶行為、用戶喜好、用戶畫像,另外也沒有大量的內容樣本基礎,是很難開展個性化推薦的。所以在產品初期,一般採取「熱度演算法」,顧名思義就是把熱點的內容優先推薦給用戶。雖然無法做到基於興趣和習慣為每一個用戶做到精準化的推薦,但能覆蓋到大部分的內容需求,而且啟動成本比個性化推薦演算法低太多。
熱度演算法基本原理:
新聞熱度分 = 初始熱度分 + 用戶交互產生的熱度分 – 隨時間衰減的熱度分
Score = S0 + S(Users) – S(Time)
1)以新聞或視頻較有時效性的內容舉例,熱度隨內容陳舊而分值衰減。
2)初始熱度分不要一視同仁。
按照新聞類別給予新聞不同的初始熱度,讓用戶關注度高的類別獲得更高的初始熱度分,從而獲得更多的曝光。軍事>娛樂>體育>財經....
對於重大事件的報道,如何讓它入庫時就有更高的熱度,我們採用的是熱詞匹配的方式。
即對大型新聞站點的頭條,Twitter熱點,競品的頭條做監控和扒取,並將這批新聞的關鍵詞維護到熱詞庫並保持更新;每條新聞入庫的時候,讓新聞的關鍵詞去匹配熱詞庫,匹配度越高,就有越高的初始熱度分。這樣處理後,重大事件發生時,Twitter和門戶網站的爭相報道會導致熱詞集中化,所有匹配到這些熱詞的新聞,即報道同樣事件的新聞,會獲得很高的初始熱度分。
3)用戶交互的熱度分值比重不一。首先明確用戶的的哪些行為會提高新聞的熱度值,然後對這些行為賦予一定的得分規則。
例如對於單條新聞,用戶可以點擊閱讀(click),收藏(favor),分享(share),評論(comment)這四種行為,我們為不同的行為賦予分數,就能得到新聞的實時用戶行為分為:
S(Users) = 1*click + 5*favor + 10*comment + 20*share
這里對不同行為賦予的分數為1,5,10,20,但這個值不能是一成不變的;當用戶規模小的時候,各項事件都小,此時需要提高每個事件的行為分來提升用戶行為的影響力;當用戶規模變大時,行為分也應該慢慢降低,因此做內容運營時,應該對行為分不斷調整。
當然也有偷懶的辦法,那就是把用戶規模考慮進去,算固定用戶數的行為分,即:
S(Users) = (1*click + 5*favor + 10*comment + 20*share)/ DAU * N(固定數)
這樣就保證了在不同用戶規模下,用戶行為產生的行為分基本穩定。
2、基於內容特徵與用戶特徵進行個性化推薦
對於此種推薦,有兩個實體:內容和用戶,因此需要有一個聯系這兩者的東西,即為標簽。內容轉換為標簽即為內容特徵化,用戶則稱為用戶特徵化。對於此種推薦,主要分為以下幾個關鍵部分:
標簽庫
內容特徵化
用戶特徵化
隱語義推薦
綜合上面講述的各個部分即可實現一個基於內容和用戶畫像的個性化推薦系統。
標簽庫
標簽是聯系用戶與物品、內容以及物品、內容之間的紐帶,也是反應用戶興趣的重要數據源。標簽庫的最終用途在於對用戶進行行為、屬性標記。是將其他實體轉換為計算機可以理解的語言關鍵的一步。
標簽庫則是對標簽進行聚合的系統,包括對標簽的管理、更新等。
一般來說,標簽是以層級的形式組織的。可以有一級維度、二級維度等。
標簽的來源主要有:
已有內容的標簽
網路抓取流行標簽
對運營的內容進行關鍵詞提取
對於內容的關鍵詞提取,使用結巴分詞+TFIDF即可。此外,也可以使用TextRank來提取內容關鍵詞。
這里需要注意的一點是對於關聯標簽的處理,比如用戶的標簽是足球,而內容的標簽是德甲、英超,那麼用戶和內容是無法聯系在一起的。最簡單的方式是人工設置關聯標簽,此外也可以使用word2vec一類工具對標簽做聚類處理,構建主題模型,將德甲、英超聚類到足球下面。
內容特徵化
內容特徵化即給內容打標簽。目前有兩種方式:
人工打標簽
機器自動打標簽
針對機器自動打標簽,需要採取機器學習的相關演算法來實現,即針對一系列給定的標簽,給內容選取其中匹配度最高的幾個標簽。這不同於通常的分類和聚類演算法。可以採取使用分詞 +Word2Vec來實現,過程如下:
將文本語料進行分詞,以空格,tab隔開都可以,使用結巴分詞。
使用word2vec訓練詞的相似度模型。
使用tfidf提取內容的關鍵詞A,B,C。
遍歷每一個標簽,計算關鍵詞與此標簽的相似度之和。
取出TopN相似度最高的標簽即為此內容的標簽。
此外,可以使用文本主題挖掘相關技術,對內容進行特徵化。這也分為兩種情況:
通用情況下,只是為了效果優化的特徵提取,那麼可以使用非監督學習的主題模型演算法。如LSA、PLSI和GaP模型或者LDA模型。
在和業務強相關時,需要在業務特定的標簽體系下給內容打上適合的標簽。這時候需要使用的是監督學習的主題模型。如sLDA、HSLDA等。
用戶特徵化
用戶特徵化即為用戶打標簽。通過用戶的行為日誌和一定的模型演算法得到用戶的每個標簽的權重。
用戶對內容的行為:點贊、不感興趣、點擊、瀏覽。對用戶的反饋行為如點贊賦予權值1,不感興趣賦予-1;對於用戶的瀏覽行為,則可使用點擊/瀏覽作為權值。
對內容發生的行為可以認為對此內容所帶的標簽的行為。
用戶的興趣是時間衰減的,即離當前時間越遠的興趣比重越低。時間衰減函數使用1/[log(t)+1], t為事件發生的時間距離當前時間的大小。
要考慮到熱門內容會干預用戶的標簽,需要對熱門內容進行降權。使用click/pv作為用戶瀏覽行為權值即可達到此目的。
此外,還需要考慮雜訊的干擾,如標題黨等。
另,在非業務強相關的情況下,還可以考慮使用LSA主題模型等矩陣分解的方式對用戶進行標簽化。
隱語義推薦
有了內容特徵和用戶特徵,可以使用隱語義模型進行推薦。這里可以使用其簡化形式,以達到實時計算的目的。
用戶對於某一個內容的興趣度(可以認為是CTR):
其中i=1…N是內容c具有的標簽,m(ci)指的內容c和標簽i的關聯度(可以簡單認為是1),n(ui)指的是用戶u的標簽i的權重值,當用戶不具有此標簽時n(ui)=0,q©指的是內容c的質量,可以使用點擊率(click/pv)表示。
3、其他運用
除了個性化推薦,基於內容的相關性演算法能精準地給出一篇新聞的相關推薦列表,對相關閱讀的實現非常有意義。此外,標簽系統對新聞分類的實現和提升准確性,也有重要的意義。
4、優缺點
基於內容的推薦演算法有幾個明顯優點:
對用戶數量沒有要求,無論日活幾千或是幾百萬,均可以採用;因此個性化推薦早期一般採用這種方式。
每個用戶的特徵都是由自己的行為來決定的,是獨立存在的,不會有互相干擾,因此惡意刷閱讀等新聞不會影響到推薦演算法。
而最主要的缺點就是確定性太強了,所有推薦的內容都是由用戶的閱讀歷史決定,所以沒辦法挖掘用戶的潛在興趣;也就是由於這一點,基於內容的推薦一般與其他推薦演算法同時存在。
基於用戶的協同推薦
終於,經過團隊的努力,你的產品已經有了大量活躍用戶了,這時候你開始不滿足於現有的演算法。雖然基於內容的推薦已經很精準了,但總是少了那麼一點性感。因為你所有給用戶的內容都是基於他們的閱讀習慣推薦的,沒能給用戶「不期而遇」的感覺。
於是,你就開始做基於用戶的協同過濾了。
基於用戶的協同過濾推薦演算法,簡單來講就是依據用戶A的閱讀喜好,為A找到與他興趣最接近的群體,所謂「人以群分」,然後把這個群體里其他人喜歡的,但是A沒有閱讀過的內容推薦給A。
舉例我是一個足球迷,系統找到與我類似的用戶都是足球的重度閱讀者,但與此同時,這些「足球群體」中有一部分人有看NBA新聞的習慣,系統就可能會給我推薦NBA內容,很可能我也對NBA也感興趣,這樣我在後台的興趣圖譜就更完善了。
1、用戶群體劃分
做基於用戶的協同過濾,首先就要做用戶的劃分,可以從三方面著手:
(1)外部數據的借用
這里使用社交平台數據的居多,現在產品的登錄體系一般都借用第三方社媒的登錄體系,如國外的Facebook、Twitter,國內的微信、微博,借用第三方賬戶的好處多多,例如降低門檻,方便傳播等,還能對個性化推薦起到重要作用。
因為第三方賬戶都是授權獲取部分用戶信息的,往往包括性別,年齡,工作甚至社交關系等,這些信息對用戶群劃分很有意義。
此外還有其他的一些數據也能借用,例如IP地址,手機語種等。
使用這些數據,你很容易就能得到一個用戶是北京的還是上海的,是大學生還是創業者,並依據這些屬性做准確的大類劃分。
比如一篇行業投資分析出來後,「上海創業圈」這個群體80%的用戶都看過,那就可以推薦給剩下的20%。
(2)產品內主動詢問
常見在產品首次啟動的時候,彈框詢問用戶是男是女,職業等,這樣能對內容推薦的冷啟動提供一些幫助。但總體來說,性價比偏低,只能詢問兩三個問題並對用戶的推薦內容做非常粗略的劃分,同時要避免打擾到用戶;這種做法算是基於用戶個性化的雛形。
(3)對比用戶特徵
新聞的特徵加用戶的閱讀數據能得到用戶的特徵,那就可以通過用戶特徵的相似性來劃分群體。
最後總結,沒有一款完美的個性化推薦演算法,畢竟用戶的心裡你別猜別猜別猜,但是產品經理還是要結合自身產品不斷打磨演算法。
4. 個性化推薦演算法有哪些
個性化推薦演算法主要有以下幾種:
1. 協同過濾演算法
協同過濾是推薦系統中最常見的一類演算法。它基於用戶的行為數據,如購買記錄、瀏覽記錄等,找出具有相似興趣的用戶群體,然後將相似用戶群體喜歡的物品推薦給當前用戶。這種演算法可以分為基於用戶的協同過濾和基於物品的協同過濾。
2. 內容推薦演算法
內容推薦主要基於物品的內容特徵進行推薦。它通過分析物品的特徵,如文本、圖片、音頻等,提取物品的內容信息,然後計算物品之間的相似度,將相似的物品推薦給用戶。這種演算法要求物品有明確的特徵描述。
3. 深度學習推薦演算法
深度學習在推薦系統中也發揮了重要作用。利用深度學習的模型,如神經網路,可以處理大量的用戶行為數據,並提取出深層次的用戶興趣特徵。常見的深度學習推薦演算法包括基於神經網路的協同過濾、基於序列的推薦等。
4. 混合式推薦演算法
混合式推薦演算法是結合多種推薦技術的一種推薦方法。它將不同的推薦演算法進行組合,如結合協同過濾和深度學習等方法,以提高推薦的准確性。混合式推薦演算法可以根據不同的場景和需求進行靈活調整。
以上便是主要的個性化推薦演算法。隨著技術的不斷發展,還會有更多的新演算法涌現,以更好地滿足用戶的個性化需求。
5. 3分鍾輕鬆了解個性化推薦演算法
推薦這種體驗除了電商網站,還有新聞推薦、電台音樂推薦、搜索相關內容及廣告推薦,基於數據的個性化推薦也越來越普遍了。今天就針對場景來說說這些不同的個性化推薦演算法吧。
說個性化之前,先提一下非個性化。 非個性化的推薦也是很常見的,畢竟人嘛都有從眾心理,總想知道大家都在看什麼。非個性化推薦的方式主要就是以比較單一的維度加上半衰期去看全局排名,比如,30天內點擊排名,一周熱門排名。
但是只靠非個性化推薦有個弊端,就是馬太效應,點的人越多的,經過推薦點得人有更多。。。強者越強,弱者機會越少就越弱,可能導致兩級分化嚴重,一些比較優質素材就被埋沒了。
所以,為了解決一部分馬太效應的問題,也主要是順應數據化和自動化的模式,就需要增加個性化的推薦(可算說到正題了。。。)個性化的優點是不僅體驗好,而且也大大增加了效率,讓你更快找到你感興趣的東西。YouTube也曾做過實驗測試個性化和非個性化的效果,最終結果顯示個性化推薦的點擊率是同期熱門視頻的兩倍。
1.新聞、視頻、資訊和電台(基於內容推薦)
一般來說,如果是推薦資訊類的都會採用基於內容的推薦,甚至早期的郵件過濾也採用這種方式。
基於內容的推薦方法就是根據用戶過去的行為記錄來向用戶推薦相似額推薦品。簡單來說就是你常常瀏覽科技新聞,那就更多的給你推薦科技類的新聞。
復雜來說,根據行為設計權重,根據不同維度屬性區分推薦品都是麻煩的事,常用的判斷用戶可能會喜歡推薦品程度的餘弦向量公式長這樣,我就不解釋了(已經勾起了我關於高數不好的回憶)。。。
但是,這種演算法缺點是由於內容高度匹配,導致推薦結果的驚喜度較差,而且有冷啟動的問題,對新用戶不能提供可靠的推薦結果。並且,只有維度增加才能增加推薦的精度,但是維度一旦增加計算量也成指數型增長。如果是非實體的推薦品,定義風格也不是一件容易的事,同一個作者的文風和曲風也會發生改變。
2.電商零售類(協同過濾推薦和關聯規則推薦)
說電商推薦那不可能不講到亞馬遜,傳言亞馬遜有三成的銷售額都來自個性化的商品推薦系統。實際上,我自己也常常在這里找到喜歡的書,也願意主動的去看他到底給我推薦了什麼。
一般,電商主流推薦演算法是基於一個這樣的假設,「跟你喜好相似的人喜歡的東西你也很有可能喜歡。」即協同過濾過濾演算法。主要的任務就是找出和你品味最相近的用戶,從而根據最近他的喜好預測你也可能喜歡什麼。
這種方法可以推薦一些內容上差異較大但是又是用戶感興趣的物品,很好的支持用戶發現潛在的興趣偏好。也不需要領域知識,並且隨著時間推移性能提高。但是也存在無法向新用戶推薦的問題,系統剛剛開始時推薦質可能較量差。
電商行業也常常會使用到基於關聯規則的推薦。即以關聯規則為基礎,把已購商品作為規則頭,規則體為推薦對象。比如,你購買了羽毛球拍,那我相應的會向你推薦羽毛球周邊用品。關聯規則挖掘可以發現不同商品在銷售過程中的相關性,在零售業中已經得到了成功的應用。
3.廣告行業(基於知識推薦)
自從可以瀏覽器讀取cookies,甚至獲得年齡屬性等信息,廣告的個性化投放就也可以根據不同場景使用了。
當用戶的行為數據較少時,基於知識的推薦可以幫助我們解決這類問題。用戶必須指定需求,然後系統設法給出解決方式。假設,你的廣告需要指定某地區某年齡段的投放,系統就根據這條規則進行計算。基於知識的推薦在某種程度是可以看成是一種推理技術。這種方法不需要用戶行為數據就能推薦,所以不存在冷啟動問題。推薦結果主要依賴兩種形式,基於約束推薦和基於實例推薦。
4.組合推薦
由於各種推薦方法都有優缺點,所以在實際中,並不像上文講的那樣採用單一的方法進行建模和推薦(我真的只是為了解釋清楚演算法)。。。
在組合方式上,也有多種思路:加權、變換、混合、特徵組合、層疊、特徵擴充、元級別。 並且,為了解決冷啟動的問題,還會相應的增加補足策略,比如根據用戶模型的數據,結合挖掘的各種榜單進行補足,如全局熱門、分類熱門等。 還有一些開放性的問題,比如,需不需要幫助用戶有品味的提升,引導人去更好的生活。
最後,我總想,最好的推薦效果是像一個了解你的朋友一樣跟你推薦,因為他知道你喜歡什麼,最近對什麼感興趣,也總能發現一些有趣的新東西。這讓我想到有一些朋友總會興致勃勃的過來說,嘿,給你推薦個東西,你肯定喜歡,光是聽到這句話我好像就開心起來,也許這就是我喜歡這個功能的原因。