? ? ? ? 剛看到一篇關于信息流熱度排行,個性化推薦機制的文章,寫此文章總結下。本文雖思想參照的前輩的,但是也是自己原創。
? ? ? ? 首先說明信息既包括文字類的信息,也包括圖片,視頻,甚至商品信息等信息。
? ? ? ? 解釋下三個名詞:
? ? ? ? 熱度詞庫:該詞庫根據當前熱點來更新,添加方式有兩種,手動更新,抓取微博等成熟媒體熱詞。
? ? ? ? 標準詞庫:記錄該產品中可能出現的信息的所有關鍵詞。一般來說網上有專門的在線詞庫可供選擇。
? ? ? 停用詞庫:在檢索關鍵詞時候,需要舍棄的詞語,比如“我”,“想”等一些沒有實際含義的詞語。
一、信息熱度排行機制
? ? ? 此處信息熱度排行類似于微博的熱搜,百度風云榜,今日頭條的熱點等。當然此處的排行機制相比較于幾位大頭的算法機制較為簡單,但是對于熱度排行的學習還是有很大幫助的。
? ? ? 公式:信息的熱度(H)=信息的初始熱度(H0)+信息的交互熱度(H(User))-隨時間遞減的熱度(H(Time))
? ? ? 首先得出該信息的所有關鍵詞,方式:發布人自定義標簽+系統根據標準詞庫和停用詞庫進行系統篩選。
1.信息的初始熱度(H0)
(1)第一種計算方法:根據該信息所屬的分類進行熱度計算。例如,娛樂類的S(0)= H * 1.5,體育類的S(0)= H * 1.2。
(2)第二種計算方法:計算該信息的所有關鍵詞與熱詞庫的匹配度。S(0)=匹配度*H。
2.信息的交互熱度(H(User))
H(User)=(1*閱讀數+ 2*推薦數+ 3*評論數+ 4*分享數)* N。
3.隨時間遞減的熱度(H(Time))
一個信息的熱度應該隨時間指數遞減的,所以H(Time)表示應該如下圖:
此處應為一個隨時間遞增的指數函數,一個點為引爆點。
二、個性化推薦機制
1.基于內容的個性化推薦
(1)首先得出該信息中關鍵詞集合。(根據標準詞庫以及用戶自定義標簽得出。)
(2)計算出關鍵詞集中單個關鍵詞對應的tfidf值,tfidf值= tf * idf,用于 衡量該關鍵詞對于該信息的重要程度,其中tf是指該關鍵詞在該信息內出現的頻率,idf指的是該關鍵詞在所有信息內出現的頻率的相反值,一般來講,tf,idf越高,該關鍵詞越具有代表性。
(3)得出該信息的特征向量。
(4)文章關聯性之間的應用。
計算兩個信息的特征向量,然后得出兩個向量的cos值。用cos值來表示兩個信息之間的相關性。這種常應用于相關文章推薦板塊,相關視頻推薦版塊。
(5)利用用戶特征向量來給用戶推薦信息。
當用戶閱讀完一條信息后,對于該信息會有一個信息的特征向量為:
對應的該用戶的行為向量為:
read,like,comment,share代表用戶的各種行為,1,2,3,4分別代表各種行為的權重(人為賦予。)
最終得出該用戶的特征向量為:
隨著用戶閱讀的信息量不斷增多,用戶特征向量越來越豐富,再用用戶特征向量與各個文章相匹配,就能進行個性化推薦了。
2.基于用戶的協同推薦
(1)獲取用戶數據信息
a.外部數據。微信登錄,qq登錄可以獲取昵稱,頭像。
B.主動詢問。例如,某些app會一開始詢問你性別,年齡等。
(2)根據獲取的用戶信息以及前面所說的用戶特征向量進行用戶分群。
(3)對于用戶X,他處于群體S(X,n),得出該群體的信息集合。分別得出用戶X分別與每一個信息的得分(第一個指標是用戶X與S(X,n)中每個用戶之間的關聯度,第二個指標是每個用戶對于該信息的關聯度)。
(4)根據每個信息的最終得分向用戶X進行推薦。
小結:以上都是基本的機制算法,實際運用當中,應該是結合使用,并且根據實際情況有側重點。
微信公眾號:多一點思考,歡迎關注