熱門文章排行榜,如何用牛頓冷卻定律處理時間衰減和權重問題

如果你讀過“產品壹佰”這個網站的文章,那你有沒有留意過里面的熱門文章排行榜究竟是怎么找出來的呢?憑啥那篇文章就被熱門了呢?

如果你是一名產品經理或者準備成為產品經理,那你一定讀過“產品壹佰”這個網站的文章,那么你們有沒有留意過里面的熱門文章排行榜究竟是怎么找出來的呢?憑啥那篇文章就被熱門了呢?

首先說一點,評選熱門文章或者熱門評論這種事首先可以是人為的,因為有人付了錢那平臺就一定愿意干,比如微博的熱搜,表面上是按照瀏覽量來算的,其實如果你上一秒剛看到一條10000的熱搜,下一秒刷新頁面就變成了9000的一條熱搜占據了原來的位置,我天,雖然大家都心照不宣,但是微博這騙人都已經這么明目張膽了,不信的小伙伴自己去試試吧。

不過今天說的熱門文章的推薦方法不考慮人為因素,如果完全按照程序算法去選擇文章該如何定義規則呢?

我們第一點想到的既然是熱門文章,那就要有熱度,看的人越多越熱門,所以讓前端哥哥埋個代碼,統計一下標題的點擊數量,按照點擊量降序排列就可以了;

如果覺得不過癮,還可以把文章的收藏量、評論量也加進去,甚至你能想到的看完率、頁面停留時長等等。然后給每個你能想到影響因素加上權重;比如:

熱度=點擊數*0.25+評論數*0.35+收藏數*0.4

然后按照熱度數值進行降序排列就可以了。

牛頓冷卻定律

好了,大功告成?如果你以為這樣就結束了那就太簡單了。我們現在還要考慮到時間因素,讓文章的熱度可以隨著時間推移不斷調整;想象一下,如果“文章和馬伊琍離婚”點擊量很高,然后就一直高一直爽,單純按點擊量計算那就霸榜了,下不來了,這樣不行的。

所以我們這里引入一個“牛頓冷卻定律”來應用到我們的算法當中,就是那個300年前被蘋果砸到的牛頓,利用實驗發現并總結出了這個規律。

想象一杯100度的開水,在一個室溫0度的環境中,開水溫度會不斷下降至室溫,在這個過程中溫度的變化是有規律的。當物體表面與周圍存在溫度差時,單位時間從單位面積散失的熱量與溫度差成正比。

如果物體的初始溫度是T0,Ta是環境溫度,則經過一定單位時間h后的溫度T將滿足T-Ta=(T0-Ta)×(1/2);使上式成立所需的時間h稱為半衰期,在這樣的情況下,t時間后的溫度將滿足T-Ta=(T0-Ta)×(1/2)^(t/h);

小伙伴們看懂了嗎,其實就是每次都降低了一半溫度時的那個時間h是單位時間,也叫半衰期;用總時間t除以h得到有幾個半衰期;然后代入函數就能得到現在的溫度T了。

把這個描述成我們能看懂的式子就是如下:(對數學感興趣的小伙伴可以自己查一下是怎么把公式導出來的,這里不說了)

當前溫度 = 上期溫度 x exp(-(冷卻系數) x 間隔時間)

把熱門文章的場景放進來就是這樣子的:

本次得分 = 累計點擊量 x exp^(-a x t)

exp是歐拉數,也寫成“e”,exp約等于2.718

冷卻系數a是自己算出來的,比如這里我們加入希望100分的文章第二天降到80分,則反推得到a=0.223

間隔時間t=初始時間-當前時間

如果要減慢降低速度就將a值調低點,a越大計算結果越低。

拿這個公式試驗一下準不準,

假設a=0.223,每天更新熱度,則一篇閱讀量每天遞增100的文章熱度是第一天80,第二天128,第三天154;

假設a=0.223,每天更新熱度,則一篇閱讀量第一天100,但是后面每天都是0的文章熱度是第一天80,第二天64,第三天51;呈指數遞減。

怎么樣,滿意嗎?不滿意還可以把評論和收藏也按權重加進去。

其實這個公式的應用場景非常多,比如排行榜、投票榜、用戶標簽權重衰減、RFM等等,足夠小伙伴們用了。

可以關注我的知乎專欄“產品經理都是奇葩”,在知乎專欄邂逅產品經理是否搞錯了什么!

2條評論 添加新討論

11月28日評論

第二天是(100+100)*exp^(-0.223*2)=128

回復
10月26日評論

“假設a=0.223,每天更新熱度,則一篇閱讀量每天遞增100的文章熱度是第一天80,第二天128,第三天154 ”,第二天不是(100+80)*exp^(-0.223 x 1)=144嗎?2我理解的是這樣。。。大神求解~

回復
登錄后參與討論
Ctrl+Enter 發表