基于Hacker News的內(nèi)容熱度推薦算法

前言

近期公司產(chǎn)品需要做一個(gè)內(nèi)容推薦的功能,但限于人員和能力有限,經(jīng)過調(diào)研燕雁,確定了一個(gè)簡(jiǎn)單相對(duì)我們可以實(shí)現(xiàn)的方案棋蚌。
一篇文章的產(chǎn)生,隨著用戶瀏覽袜瞬、點(diǎn)贊、分享、收藏器紧、評(píng)論,熱度逐漸攀升楼眷,進(jìn)入榜單到推薦頁(yè)面铲汪,但隨著時(shí)間的推移熊尉,這篇文章也不能永久的霸占榜單,讓后面新產(chǎn)生的文章沒有機(jī)會(huì)到推薦頁(yè)掌腰,因此也就有了時(shí)間衰減的因素帽揪,從而可以讓榜單能夠動(dòng)態(tài)的變化,除了上面基本的原理以外辅斟,還需要人為干預(yù)因素转晰,通過加權(quán)或者降權(quán)的方式來影響排名。

因子

  1. 用戶活躍度(以積分的形式)
  2. 瀏覽量
  3. 點(diǎn)贊數(shù)
  4. 收藏?cái)?shù)
  5. 評(píng)論數(shù)
  6. 分享數(shù)
  7. 時(shí)間衰減
  8. 平臺(tái)編輯推薦(人為因素介入干預(yù))

基本原理

推薦指數(shù)/熱度 = 初始熱度 + 互動(dòng)熱度 - 隨時(shí)間衰減的熱度 +/- 權(quán)重

初始熱度 Hinit

與最后的推薦指數(shù)呈正相關(guān)(注意不是成正比)士飒,影響其的因素有:

  • 創(chuàng)作者:暫時(shí)以用戶活躍度來界定
  • 內(nèi)容屬性:以篇幅查邢、類別來區(qū)分
互動(dòng)熱度 Hinteract

與最后的推薦指數(shù)呈正相關(guān)(注意不是成正比),用戶行為數(shù)據(jù)是決定一篇文章是否熱門的重要因素酵幕,通過對(duì)這些數(shù)據(jù)評(píng)級(jí)來進(jìn)行調(diào)整行為分:

比如: 瀏覽+1分扰藕,點(diǎn)贊+3分,評(píng)論+8分芳撒,收藏+10分邓深,分享+15分。

時(shí)間衰減 Htime

與最后的推薦指數(shù)呈負(fù)相關(guān)(注意不是成反比)

大部分內(nèi)容屬于一次性消費(fèi)品笔刹,用戶看過也就過了芥备,若推薦榜單總是那么幾條, 可能很快就覺得乏味 舌菜,從而轉(zhuǎn)向別的產(chǎn)品萌壳。所以我們自然希望內(nèi)容能不斷更新,而若只看初始熱度+互動(dòng)熱度日月,那么后來者必定很難超越前者袱瓮。

所以還必須考慮一個(gè)因素就是時(shí)間衰減,通常這個(gè)也不是線性衰減爱咬,往往是一個(gè)指數(shù)函數(shù):即過了一定時(shí)間后尺借,持續(xù)衰減,熱度直到無限趨于0

權(quán)重 Hweight

運(yùn)營(yíng)或編輯人為干預(yù)來調(diào)整權(quán)重也很重要精拟,畢竟算法是死的燎斩,人是活的,雖然大部分都遵循這樣一個(gè)規(guī)律串前,但也不排除偶然或者極端情況瘫里,比如惡意刷榜,這時(shí)候就需要人為的干預(yù)

圖形曲線:

image-20191029102231667.png

總結(jié)公式

H = \frac{H_{init} + H{interact}} {(H{time} + 2)^{G}} + H_{weight}

參數(shù)解釋:

Hinit : 初始熱度值荡碾,可以以用戶活躍度來衡量谨读,比如以積分的形式,積分積累的途徑有:

  1. 發(fā)文章
  2. 發(fā)筆記
  3. 發(fā)動(dòng)態(tài)
  4. 提問題
  5. 回答問題
  6. 評(píng)論
  7. 系統(tǒng)坛吁、平臺(tái)編輯推薦

在其他條件一定的情況下劳殖,初始熱度越高铐尚,其最終熱度也就越高

Hinteract:互動(dòng)熱度值,根據(jù)用戶行為數(shù)據(jù)來衡量哆姻,參考點(diǎn)有以下幾項(xiàng):

  1. 瀏覽量
  2. 點(diǎn)贊量
  3. 評(píng)論量
  4. 收藏量
  5. 分享量

在其他條件一定的情況下宣增,互動(dòng)熱度越高,其最終熱度也就越高

Htime:時(shí)間衰減因子矛缨, 加2是為了防止最新發(fā)表的會(huì)導(dǎo)致分母過小 爹脾,這個(gè)值可調(diào),在前期平臺(tái)人數(shù)較少時(shí)調(diào)整大一些箕昭,在后期人數(shù)增長(zhǎng)起來后灵妨,可以調(diào)整的小一些,比如落竹,因?yàn)橛脩魧?duì)平臺(tái)資源有一個(gè)消化時(shí)間泌霍。并不是一發(fā)出來就有數(shù)據(jù)的。

G:重力因子述召,它決定了熱度隨時(shí)間下降的速度朱转,前期平臺(tái)人員較少時(shí),相對(duì)應(yīng)得發(fā)的資源也會(huì)比較少积暖,這時(shí)可以把G調(diào)小一點(diǎn)藤为,減緩時(shí)間推移對(duì)熱度下降的影響,后期平臺(tái)人員增多時(shí)呀酸,相對(duì)應(yīng)的資源也會(huì)增加凉蜂,這時(shí)可以把G調(diào)大一點(diǎn)琼梆,加速時(shí)間推移對(duì)熱度下降的影響性誉。比如:1.2-1.8

Hweight: 加減權(quán)重,初始值可以為0茎杂,在某些偶然或者極端情況下需要人為干預(yù)的時(shí)候错览,可以動(dòng)態(tài)調(diào)整其值,使其能夠及時(shí)的控制其熱度煌往。

反作弊

  1. 可以通過權(quán)重來干預(yù)
  2. 可以制定社區(qū)規(guī)則來動(dòng)態(tài)調(diào)整Hinit

參考

  1. Hacker News 帖子熱度排序算法
  2. 掘金文章內(nèi)容熱度排序算法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末倾哺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子刽脖,更是在濱河造成了極大的恐慌羞海,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曲管,死亡現(xiàn)場(chǎng)離奇詭異却邓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)院水,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門腊徙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來简十,“玉大人,你說我怎么就攤上這事撬腾∶” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵民傻,是天一觀的道長(zhǎng)胰默。 經(jīng)常有香客問我,道長(zhǎng)漓踢,這世上最難降的妖魔是什么初坠? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮彭雾,結(jié)果婚禮上碟刺,老公的妹妹穿的比我還像新娘。我一直安慰自己薯酝,他們只是感情好半沽,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吴菠,像睡著了一般者填。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上做葵,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天占哟,我揣著相機(jī)與錄音,去河邊找鬼酿矢。 笑死榨乎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘫筐。 我是一名探鬼主播蜜暑,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼策肝!你這毒婦竟也來了肛捍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤之众,失蹤者是張志新(化名)和其女友劉穎拙毫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棺禾,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缀蹄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袍患。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坦康,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诡延,到底是詐尸還是另有隱情滞欠,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布肆良,位于F島的核電站筛璧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏惹恃。R本人自食惡果不足惜夭谤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巫糙。 院中可真熱鬧朗儒,春花似錦、人聲如沸参淹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浙值。三九已至恳不,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間开呐,已是汗流浹背烟勋。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筐付,地道東北人卵惦。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像家妆,于是被迫代替她去往敵國(guó)和親鸵荠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容