熱榜問題分析
CSDN 的榜單有很多個,包含這些:
- 周排名
- 歷史貢獻排名
- 總排名
- 新晉博主
- 企業博客排名
- 領域排名
- 熱榜排名
其中熱榜總是存在一些問題,典型的現象有:
- 存在博文霸榜時間過長的問題,
- 收藏/點贊/評論刷量資料對榜單的影響過大的問題,
- 博文過于追求博文長度的問題,
- 標題黨的風氣問題
- 太多同質化的入門文章,
- 領域過于集中在少數幾個語言上的問題,
- …
我們再分析下這些問題反映的問題是什么:
- 博文應該能上榜,但是應該有半衰期,
- 博文的評論區應該有正常的交流和討論,為了上榜而做的水評實際上降低了文章的內容質量(評論區)和社區整體的評論質量,
- 收藏說明這個文章對有些用戶有用,但收藏不應該是一個「熱」的體現,至少權重不應過大,
- 如果博文的長度是一個KPI,寫作者可以通過復制粘貼低水平的入門材料,迅速包裝出「重復的低水平的長文章」,那對作者和讀者來說,都是一個低質量的內容,太長的博文也并不適合讀者閱讀,
- 標題里充斥廣告和博眼球的低質量文本,正常的技術博文反而得不到上榜單機會,
- 內容的同質化和“過熱”,那么其他的稀缺內容就總是會沒有機會獲得上榜機會,
綜合來說,讓高質量的博客獲得更多相關的讀者,提高生態質量,打擊標題黨, 平衡各種領域,適度考慮閱讀量和熱度,是熱榜演算法的改進目標,
熱榜演算法考慮哪些方面?
設計熱榜演算法,考慮幾個不同的維度,
首先,互動資料的平衡
- 單一互動資料的歸一化
- 不同互動資料映射到可以比較互相比較的數量級
- 避免單一互動資料對結果的絕對影響
其次,在資料的時間序列上,引入半衰期
- 同一個內容的資料的得分,隨著時間衰減
- 同一個作者的得分,在時間視窗期內不應該重復上榜
第三,考慮內容的質量
- 標題的質量(例如標題黨降權)
- 內容的質量(例如內容長度過長降權)
第四,考慮內容的領域
- 內容不應分布在少數幾個過熱的領域,例如都是 Python/Java
- 衡量稀缺度
參考成熟的演算法
參考 Hacker News (ycombinator.com) 的熱度演算法,
S = V ? ( P ? 1 ) 0.8 ( T + 2 ) G S = V*\frac{(P-1)^{0.8}}{(T+2)^G} S=V?(T+2)G(P?1)0.8?
其中:
- V 是領域權重
- P 是基于用戶投票的互動資料點數
- T 是從創建開始到現在的時間,單位是小時
- G 是重力(Gravity)因子,用來衰減,默認是1.8
這個基本的公式,重要的地方在于考慮了時間衰減和領域權重,理解這個思想后,可以根據自己的資料做調整,
熱榜演算法規則
綜合上述分析,引入的熱榜演算法的機制如下:
S = C ? V ? C H ? P ( T + 2 ) 1.1 = 熱 榜 得 分 S = C * V * CH*\frac{P}{(T+2)^{1.1}} = 熱榜得分 S=C?V?CH?(T+2)1.1P?=熱榜得分
C
=
w
1
?
t
i
t
l
e
s
c
o
r
e
+
w
2
?
c
o
n
t
e
n
t
s
c
o
r
e
w
1
+
w
2
=
內
容
得
分
C = \frac{w1*titlescore + w2*contentscore}{w1+w2} = 內容得分
C=w1+w2w1?titlescore+w2?contentscore?=內容得分
V
=
a
r
e
a
s
c
o
r
e
=
領
域
得
分
V = areascore = 領域得分
V=areascore=領域得分
P
=
∑
i
=
1
n
w
i
?
f
i
∑
i
=
1
n
w
i
=
交
互
數
據
得
分
P=\frac{\sum_{i=1}^{n}w_i*f_i}{\sum_{i=1}^{n}w_i} = 互動資料得分
P=∑i=1n?wi?∑i=1n?wi??fi??=交互數據得分
其中, C H CH CH 是同一個作者的文章連續上榜的衰減因子,
其中,互動資料 f_i 會做歸一化,歸一化的基本方式將原始互動資料歸一化到區間[0,1]之間,對于某些資料,會使用
l
o
g
(
f
)
log(f)
log(f)函式做降維,避免資料對結果波動的絕對主導:
f
i
=
t
(
f
o
r
i
g
i
n
)
/
max
?
(
t
(
f
o
r
i
g
i
n
)
)
f_i = t(f_{origin})/\max(t(f_{origin}))
fi?=t(forigin?)/max(t(forigin?))
其中, t i t l e s c o r e titlescore titlescore 和 c o n t e n t s c o r e contentscore contentscore 分別是AI服務計算標題質量分和內容質量分,主要使用 NLP 技術對內容資料做打分,
定期微調
一個軟體要持續更新才會流水不腐,熱榜也是一種得分計算,是一種指標資料,這些公式本身也是一個「軟體」,因此,在保持基本原理不變的情況下,根據線上真實資料的反饋情況,定期采取微調策略,不斷改進,推薦出高質量的內容,平衡各領域,打擊低質量內容,形成良幣驅逐劣幣的技術氛圍,這是熱榜演算法的目標,
貢獻者
熱榜演算法歡迎大家共同貢獻思路和建議,共同改進社區氛圍,在此會逐漸把貢獻者名單列上:
@幻灰龍 @佳昊 @劉鑫 @softwareteacher
–end–
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325427.html
標籤:AI
上一篇:在ASP.NET的CodeBehind中添加和洗掉“is-invalid”類
下一篇:數學建模常用功能
