在網際網路時代,熱詞往往反應了一段時間內公眾普遍關注的事件。因此,熱詞計算是輿情繫統中的核心模組,針對資訊、評論、彈幕等進行熱詞統計,可以快速對海量資訊提取核心詞彙,幫助使用者快速研判輿論輿情。然而海量資料的熱詞計算,對計算的實時性、準確性提出了很大的挑戰。
一、技術難點與常規解決方案
○ 關鍵詞提取,關鍵詞提取好壞直接影響統計效果,如何提取高質量關鍵詞?常規的技術方案,一般是透過計算TF-IDF詞頻提取關鍵詞。然而,該方案需要維護複雜的詞庫,後續還需要不斷更新詞條,因此維護成本較大。
○ 海量資訊分析,當需要處理海量資料時,如何保證系統高吞吐量、實時性、精確性?常規的技術方案,大多透過離線全量計算,比如每天統計一次當天所有資訊的熱詞。這種技術方案,統計熱詞的時間視窗是固定的,無法針對靈活的動態時間視窗進行統計。
○ Top-N排名統計,精確Top-N計算必須統計全量資料,如何平衡資料量與響應時間的矛盾?常規的技術方案只能在某個固定時間視窗,離線全量統計該視窗內的Top-N,該方法不能滿足我們可選時間視窗的熱詞分析需求,因此需要尋找更優的解決方案。
針對上述三個問題,業界常規解決方案已經無法滿足易盾的熱詞分析需求,下面談談易盾是如何解決這些問題的:
○ 針對關鍵詞提取,易盾使用TextRank提取關鍵詞提高提取效果,該演算法思想來源於PageRank,相比於傳統的TF-IDF,不需要維護停駐詞、詞庫等,計算簡單有效。實際效果驗證表明,TextRank關鍵詞提取,比傳統的TF-IDF關鍵詞提取效果好,同時不需要維護一大堆詞庫配置,大大簡化了運營維護成本。
○ 針對海量資訊分析,易盾透過實時流式計算+資料迴流保證系統高吞吐量與實時性,支援靈活的動態時間視窗統計。同時,為了提高熱詞分析的精度,在簡單統計詞頻的基礎上,針對文章的熱度對詞進行加權,而文章的熱度會綜合考慮以下因素:文章的轉發量、瀏覽量、評論量、釋出時間衰減因子等等。
○ 針對Top-N計算,易盾使用一種快速Top-N統計演算法實現快速排名統計。利用二八定律,透過一種分治演算法,將T時間視窗內的熱詞Top-N計算,分解為若干個小視窗內的Top-M計算,再把若干小視窗的Top-M合併成得出最終結果。實踐證明,該方案大大提高了計算速度,支援可選時間範圍的實時Top-N計算,同時計算精度損失可以忽略不計。
關鍵詞提取
海量資訊如何做熱詞分析?為了提高分析效率,我們首先對每篇資訊提取核心關鍵詞,基於這些核心關鍵詞統計整體資訊的熱詞分佈情況。那麼如何提取單篇文章的關鍵詞呢?易盾輿情選擇TextRank提取演算法,該演算法思想來源於PageRank,其演算法原理可以用如下的數學公式概況:
具體來說,TextRank 演算法是一種用於文字的基於圖的排序演算法。 透過把文字分割成若干組成單元(單詞、句子)並建立圖模型,利用投票機制對文字中的重要成分進行排序,透過不斷迭代計算最終解。相比於傳統的TF-IDF,該方案不需要維護複雜的詞庫配置,計算簡單有效,僅利用單篇文件本身的資訊即可實現關鍵詞提取。
二、熱詞統計流式計算
易盾透過實時流式計算+資料迴流保證系統高吞吐量與實時性,支援靈活的動態時間視窗統計。因為每篇文章的熱門程度不一樣,詞的熱度計算不能僅僅統計這個詞在所有文章中的出現次數。因此,熱詞分析在計算熱度時,會用文章的熱度對詞進行加權,而文章的熱度會綜合考慮以下因素:文章的轉發量、瀏覽量、評論量、文章釋出的時間,如果釋出時間越長,則熱度衰減地越高。
針對時間衰減因子,我們針對線上資料反覆調整衰減因子取值,最終得出了最優的計算公式。
三、一種快速Top-N計算演算法
為了滿足根據時間範圍實時篩選查詢Top-N熱詞排名榜單,我們採用一種快速Top-N計算演算法,利用二八定律,透過一種分治演算法,將T時間視窗內的熱詞Top-N計算,分解為若干個小視窗內的Top-M計算,再把若干小視窗的Top-M合併成得出最終結果。
○ 將T時間視窗內的熱詞Top-N計算,分解為若干個小視窗內的Top-M計算,實時統計小視窗內的熱詞Top-M排名,同時把小視窗結果迴流。
○ 把若干小視窗的Top-M合併成得出最終結果,簡化為對多個時間視窗內Top-M的合併,由於小視窗的數量優先,大大簡化了計算複雜度。
二八定律,這是在很多領域存在的規律。我們認為熱詞統計也差不多能符合二八原則,即熱詞與非熱詞的熱度差別比較大。
簡單來說,儲存空間越多準確率越高。有統計分析說明,發現 50 倍空間[1][2]對於普通的資料分佈是夠用的。換而言之,使用者需要 Top 100 的結果,對於每種組合條件值,保留 Top 5000 的記錄, 並供以後再次合併。這樣即使多次合併, Top100 依然是比較接近真實結果 。透過反覆統計對比資料,分析M取值不同,對Top-N的計算精度的影響,我們選擇M等於25*N,該值在滿足計算實時性的同時,對計算精度的影響可以忽略不計。
四、總結
本文主要介紹了易盾輿情熱詞分析的核心技術難點,及其解決方案。從文字中提取關鍵詞用於統計,易盾使用TextRank提取關鍵詞提高提取效果;透過流式計算+資料迴流保證系統高吞吐量、實時性;為了能夠選擇時間範圍實時聚合熱詞,使用一種快速Top-N統計演算法實現快速實時統計。最終,熱詞分析模組能夠支撐輿情海量長文字資訊實時熱詞分析,資料時延在秒級,同時時間篩選查詢控制在秒級。
目前,易盾輿情已經為網易雲音樂、網易公關部、網易嚴選等客戶提供輿情監測服務。我們將繼續與使用者在一起,精益求精,進一步最佳化打磨輿情產品,持續為客戶提供高質量輿情服務。
參考文獻:
[1]Ahmed Metwally, et al. “Efficient computation of frequent and top-k elements in data streams”. Proceeding ICDT'05 Proceedings of the 10th international conference on Database Theory, 2005.
[2]Massimo Cafaro, et al. “A parallel space saving algorithm for frequent items and the Hurwitz zeta distribution”. Proceeding arXiv: 1401.0702v12 [cs.DS] 19 Setp 2015.