PlurkTop即時熱榜 – 抓住即時熱門訊息

Posted By Mr. Wednesday

跟Friday講了好久的即時熱榜功能終於完成了!

PlurkTop依靠大眾的投票機制篩選出噗浪上的流行話題,讓我可以在很短時間內抓住大家都在聊些什麼。這段時間以來已經成為我獲取新聞時事的重要來源。不過心中總是有個想法:現在的排行機制(八小時內熱門),還算不上即時。根據觀察,熱門的大事件往往要2~3個小時以後才能爬升到排行榜的前10名。我希望,這個排行榜可不可以更快一點、更即時一點,最好我是全世界第二個知道的。當然,這是有點誇張的說法,不過我們一直都在規劃,希望突發事件發生後,Plurktop這個排行服務可以在最短時間內察覺。

趁著上週末的美好陽光(咦?),終於把它完成了。

微網誌是目前資訊交換最快速也最頻繁的平台,所以我們依舊選擇微網誌/社交網站作為資訊蒐集的觀察管道,例如Twitter、Plurk、Facebook,還有Google Buzz,都有相當大的使用量,是合適的來源。通道有了,我們還希望可以有一個公式衡量事件的熱度,並且希望這個熱度的變化對時間很敏感,讓短時間內突然傳開的事件可以很容易被發現。

Plurktop現在越看越像是新聞排行了。其實這方面--即時熱門新聞的排行研究可以追溯到上個世紀。Google News就是這樣的一種服務。有人觀察過,網路上一則熱門消息的點閱率,隨著時間大致會呈現這樣的變化:

最近MMDays某熱門文章點閱率流量圖

看起來是不是很像是一種數學上的Power Law關係(我們以前的介紹

一則新聞的熱度,最高點往往是在一開始的高峰。衡量一則新聞的熱度,概念多半是計算它可能的”峰高”,以及目前到達了這個高峰沒有。一旦過了高峰,熱度就會快速下降

在簡單的討論之後,我們決定採用半衰期的公式來模擬事件熱度的變化。這裡引用Wikipedia中對於半衰期的解釋:

半衰期是指某種特定物質的濃度經過某種反應降低到剩下初始時一半所消耗的時間,半衰期是研究反應動力學的一個容易測定的重要參數,數學上可以證明,只有一級反應的半衰期是恆定的數值,且知悉一個一級反應的半衰期便可以計算出該反應的所有動力學參數,所以人們通常只關心一級反應的半衰期。常見的一級反應有:放射性核素的衰變、一級化學反應、藥物在體內的吸收和代謝等。

from Wikipedia

我們假設突發事件的擴張也是一級反應,換句話說,當事件發生後會在一定時間內衰退到原本熱度的一半。只有還在持續擴散的事件可以不斷增加熱度,利用相同/不同事件間的熱度比較,就可以幫助找出正在發熱的事件。

關於理論的介紹就先到這裡,有興趣的讀者可以參考Topic Detection & Tracking的相關論文。

回來看看這個即時熱榜的畫面,基本上介面與其他功能類似,不過這裡的排序改以事件的熱度做衡量,每十五分鐘重新計算一次爭取時效性,除了將不同事件跟據熱度排行,還計算該事件本身熱度跟前一次的變化,猜測該事件是在持續發酵或逐漸冷卻

即時熱榜目前的狀況大概是這樣,因為開發的時間很有限,如有未臻完善之處,歡迎大家在底下留言,或是來信討論。

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!