讀者喜歡看什麼文章?騰訊微信融合時間過程與內容特徵尋找答案
為了更好地預測網路文章的熱度,騰訊微信部門研究者提出了一種將時間過程與內容特徵深度地融合到一起的神經網路方法,並在實驗中取得了優於 state-of-the-art 的表現。該論文已被 AAAI 2019 大會接收, 並在大會由微信研究者作了主題報告。
論文:Popularity Prediction on Online Articles with Deep Fusion of Temporal Process and Content Features
論文地址:https://www.aaai.org/Papers/AAAI/2019/AAAI-LiaoD.2997.pdf
預測網路文章的熱度能為推薦、廣告和資訊檢索等應用提供指導。想要達到理想的預測效果,還需要解決一些技術難題。(1)文章熱度會在外部因素的影響下波動,這些因素中有相當一部分不可預測,而且難以建模。(2)內容和元資料特徵很大程度上決定了網路內容的受歡迎程度,而它們往往是多模態的,難以建模。(3)此外,還需要搞清楚如何將時間過程和內容特徵建模整合到一起,以預測網路文章在不同生命週期階段的熱度變化。為了解決這一問題,我們在本論文中提出了一種時間過程和內容特徵深度融合(DFTC)的方法。為了建模文章熱度變化的時間過程,我們採用了迴圈神經網路和卷積神經網路相結合的方式。為了多模態內容特徵,我們利用了層次注意網路(Hierarchical attention network)和特徵 embedding 技術。最後,我們使用了一種基於注意力的融合機制來動態地整合所有這些部分。基於從微信收集到的公眾號文章閱讀資料集,我們用充分的實驗說明在熱度預測上,文章提出的模型的表現顯著優於之前最佳的方法。
引言
包含入口網站上的新聞和社交網路中的部落格在內的網路文章已經成為了人們最重要的資訊來源。網路文章的熱度(popularity)描述的是它受到的關注程度,這可以通過總瀏覽量來度量。受歡迎程度是內容提供者的一種度量內容質量的方式,也是內容消費者過濾資訊的一種方式。不幸的是,我們只能在網路文章的生命週期之後才能得到文章的最終熱度。在早期階段預測文章熱度能為很多應用帶來助益,比如推薦、廣告和資訊檢索(Gao et al. 2018; Liu et al. 2016)。此外,研究「如何在任意時間預測網路內容的最終熱度」問題也具有學術價值和行業實用價值。
近來已經有很多研究者關注熱度預測問題。學者們處理這一問題的方法有兩大類:時間過程建模和內容特徵建模。時間過程建模是基於時間片段中的聚合瀏覽量的時間演進過程來預測熱度。如圖 1 所示,累積瀏覽量會隨時間而增長,同時會在外部因素的影響下表現出意料之外的激增。大多數已有研究都是基於對外部影響的特定假設來得到短期的波動情況(Zhao et al. 2015; Cao et al. 2017; Rizoiu et al. 2017)。但是,很多外部因素都是不可預測的。特定的假設會限制這些模型的預測能力。Yu et al. 試圖基於人工設計的「階段(phase)」,從時間過程本身之中提取出熱度的波動情況(Yu et al. 2015)。但是,外部因素的影響可能涵蓋不同的範圍和持續時間。以人工的方式假設波動的量和形狀是很困難的。在這一大類方法中,如何自動提取短期的波動情況仍然是一個懸而未決的問題。
圖 1:這兩幅圖展示了微信中文章受歡迎程度的時間動態。(a)所有文章的歸一化總瀏覽量累積過程。(b)一篇示例文章的每小時瀏覽量變化情況。
另一方面,近期的研究也已經證明了內容特徵在受歡迎程度預測上的有效性,比如短文字描述、標題和影象(Zhang et al. 2018; Piotrkowicz et al. 2017; Sanjo and Katsurai 2017)。但是,網路文章通常是不易建模的長文字,而且文章元資料特徵(如標題、類別、作者資訊等)的不同形式又會進一步複雜化內容特徵建模。這些已有研究都沒有能充分利用長文字和元資料特徵來預測網路文章的受歡迎程度。
與此同時,在網路文章的不同生命週期階段,這兩類方法都有它們自己的長處和短板。時間過程建模依賴於熱度變化的歷史序列,其表現會隨時間越來越好,因為已知的歷史熱度會越來越接近整體受歡迎程度。相對而言,網路內容發表後的初期想要很好的你和熱度變化整體趨勢是很困難的。然而在實際應用中,在網路文章的生命週期早期階段預測最終熱度是很有價值的,這讓我們可以推薦潛在的「熱門」文章以及過濾掉枯燥無趣的文章。另一方面,內容特徵不會隨時間變化。因此內容特徵建模在早期階段更為可靠。但是內容特徵又無法利用文章熱度受歡迎程度的時間演變情況。因此,我們應該將時間過程和內容特徵建模整合起來,以便利用兩者各自的優勢。然而,不同文章的受歡迎程度演進會表現出不同的增長率和波動。向量連線(vector concatenation)或線性組合等直觀的融合方法缺乏處理受歡迎程度演變過程多樣性的靈活性。
受上述難題啟發,我們提出了一種時間過程與內容特徵深度融合(Deep Fusion of Temporal process and Content features)的神經網路方法。圖 2 展示了 DFTC 的框架。在我們的模型中,我們使用了以下技術來解決上述難題:(1)為了建模時間過程,我們採用了 迴圈神經網路 (RNN)來獲取受歡迎程度的長期增長趨勢。對於短期波動,我們採用了基於注意力 卷積神經網路 (Attention CNN)來自動提取增長和下降「階段」。(2)為了建模內容特徵,我們利用了分層注意網路(HAN)(Yang et al. 2016)來獲取文字特徵,並使用了特徵 embedding 來建模元資料特徵。(3)對於時序建模和內容建模的動態融合,我們利用了一個基於時間的注意力機制。根據上述所有建模技術的輸出和時間背景來學習用以結合這些建模技術的靈活權重。此外,我們還從微信收集了真實世界資料集,併為評估不同階段的預測表現而進行了充分的實驗,實驗結果驗證了我們提出的 DFTC 方法顯著優於其他方案。為了說明 Attention CNN 對於短期波動的建模以及注意力融合機制的效果,我們還做了一個針對 Attention CNN 和注意融合的效果的案例研究。
圖 2:時間過程與內容特徵深度融合(DFTC)模型的整體框架
本文的主要貢獻總結如下:
-
我們使用了 RNN 來自動學習時間過程的長期增長趨勢,使用了 CNN 來自動學習短期波動情況,而沒有對外部因素做出具體假設或人工設計「階段」。
-
我們為文字特徵使用了分層注意網路(HAN),為元資料特徵使用了嵌入技術,併為動態地整合時間過程和內容特徵建模而使用了時間注意融合。
-
實驗結果表明新提出的模型的表現顯著優於當前最佳的方法,表明了我們的方法的有效性和優越性。
數學形式的問題描述
我們將受歡迎程度預測任務視為一個分類問題,並將總瀏覽量分成了 n 個區間 ,分別代表網路文章不同的受歡迎程度水平。我們的目標是預測網路文章在釋出之後的任意時間的受歡迎程度。為了便於計算,我們將連續的時間分成時間段,並將使用者反饋事件量聚合為時間序列。這裡的使用者反饋事件不僅包含「瀏覽」,還包含很多應用中的「分享」、「評論」或「喜歡/點贊」。我們將時間段 t 中這些時間的量取為反饋向量 v_t。更正式而言,對於網路內容 c,給定任意時間段 t 和歷史反饋序列
,目標是預測 c 的整體受歡迎程度。
模型
我們會在這一節介紹新提出的時間過程與內容特徵深度融合(DFTC)模型。圖 2 展示了該模型的整體框架。DFTC 包含三個部分:時間過程建模、內容特徵建模和注意融合。時間過程建模以歷史反饋序列 為輸入,並採用迴圈神經網路來建模長期增長趨勢,採用卷積神經網路來獲取短期波動情況。在內容特徵建模中,我們使用分層注意網路來學習文字特徵,使用嵌入技術來提取元資料特徵。最後,我們通過時間注意融合將所有這些部分動態地組合到一起。
圖 3:(a)用於獲取短期波動情況的注意 CNN 的架構。(b)用於建模文字內容特徵的分層注意網路(HAN)。
時間過程建模
我們使用了迴圈神經網路(RNN)來建模文章熱度的時間演進過程,即擬合圖 1(a) 中的曲線。在這裡我們使用了使用最廣泛的 RNN 結構長短期記憶網路(LSTM)。在文章熱度的時間過程建模方面,如何捕捉外部因素造成的短期波動是主要難點。如圖 1(b) 中所示,短期波動從單位時間閱讀量變化的曲線上來看,是形成了若干「波峰」、「波谷」的結構,因此我們採用 1D-CNN 來自動捕捉這種平移不變的區域性結構。考慮到不同外部因素影響的持續時間不同,也就是不同「波峰」的寬度不同,對此我們採用 k 組不同尺度的卷積核進行卷積操作。由於 1D-CNN 的輸入需要固定長度,我們擷取一個時間視窗的熱度時間序列作為輸入,並使用一個 Attention 層在時間維度進行融合。
內容特徵建模
包括文字特徵和元資料特徵在內的網路文章的內容特徵很大程度上決定了它們的受歡迎程度。網路文章通常是長文字文件,比如新聞文章和部落格。受神經網路在自然語言處理領域的巨大成功的啟發(Lai et al. 2015; Yang et al. 2016; Huo et al. 2016),我們採用了分層注意網路(HAN)(Yang et al. 2016)來建模文字內容特徵。圖 3(b) 展示了 HAN 的框架。考慮到文件固有的層次結構(即詞構成句子,句子構成文件),HAN 使用兩級編碼器和注意(應用在詞層面和句子層面)來將文件編碼成向量。詞層面和句子層面的編碼器都是門控迴圈單元。有關 HAN 的更多詳情,請參閱他們的研究文章(Yang et al. 2016)。此外,標題是文章的高層面概括,能為讀者提供初步印象。我們還會學習一個標題表徵向量用作補充。因為標題通常是一個短語或一個句子,所以我們僅使用了詞層面的編碼器和注意來將這個短文字編碼成向量。然後我們可以將文件向量和標題向量連線到一起作為文字特徵。
元資料特徵既包含 one-hot 特徵(比如文章類別),也包含數值特徵(比如作者的粉絲數)。我們利用了 embedding 技術來將這些特徵對映為同一特徵空間的向量,並應用了全連線層進行特徵組合。如圖 4 所示,我們通過 embedding 矩陣將 one-hot 特徵嵌入到了向量中。另一方面,我們用 embedding 向量乘上數值特徵以將它們對映成對應的密集向量。最後我們連線這些 embedding 向量並應用全連線層將所有元資料特徵組合到一起。
圖 4:(a)用於元資料特徵的嵌入技術示意圖。(b)時間注意層的架構。
基於注意力機制的融合
如何整合以上各個部分是個值得思考的問題。上文提到,在文章釋出後的不同階段,基於時間過程的模型和基於內容特徵的模型的預測能力不同,因此需要一個靈活可變的權重,根據當前的文章生命週期階段以及各個子模型的預測結果來動態整合。對此,我們採用了注意機制來實現,如圖 4(b) 所示。其中分別是 RNN,CNN,HAN 和 embedding 的輸出,t 是時間特徵。在這裡用到的時間特徵是距離文章釋出的時間間隔以及 weekday 和 hour of day 特徵。Attention權重的計算公式如下:
時間衰減的損失
為了幫助我們的模型在早期階段投入更多精力來優化預測效能,我們為單步驟損失乘上了一個時間衰減因子。
實驗
我們收集了 2018 年 5 月-7 月的 6 萬篇微信公眾號文章的熱度資料,將文章熱度分為 3 類,爆款(閱讀量>10000),冷門(閱讀量<100)和普通 (其它)。由於文章閱讀量分佈是一個極端冪律分佈,我們採用分段降取樣的方式,得到一個類別基本平衡的資料集作訓練 (training set) 和測試 (balanced test set),此外還根據按照真實分佈取樣了 2 萬篇文章作為另一個測試集 (random test set). 資料集統計情況如下:
表 1:資料集統計情況
我們首先跟基於特徵的分類方案(分類器分佈是 LR 和 RF)以及 state-of-the-art 的時序預測方案(HIP,VoRNN,CACNN)進行了對比,對比指標是分類準確度和三類各自的 F1 效能,可以看出我們的方案取得了最優的效果。
此外,跟模型自身的簡化版(DFTC-TS 只包含時序預測部分,DFTC-SF 只包含內容建模部分,DFTC-SM 包含時序和內容建模但不包含注意力融合機制)對比中,最終版模型 DFTC 同樣取得了最佳效果。
表 2:整體預測表現
為了說明 Attention CNN 對短期波動建模的有效性以及 Attention Fusion 部分的效果,我們隨機選取一篇爆款文章作為案例分析。圖 5(a) 是平均注意力權重的熱圖和時間序列短期波動折線圖的對應關係,可以看出 RNN 部分的權重隨時間增長,內容特徵權重隨時間衰減,CNN權重變化對應于波動情況,與預期情況相符。
圖 5:表現分析。(a)平均注意權重α^m 的熱圖和每 10% 的時間序列的短期波動情況折線圖。RNN 的權重隨時間增大,CNN 的權重對應于波動情況。(b)在文章釋出後的前五個小時裡的平均準確度。(c)當觀察到的熱度達到最終熱度的 10%-50% 時的平均準確度。
最後,在文章熱度預測問題上,我們更關注於在文章釋出初期的預測效能。圖 5(b) 和圖 5(c) 分別是文章釋出後前 5 個小時的平均準確度和觀察到的熱度達到最終熱度 10%-50% 時的平均準確度,可以看出我們的方法在文章釋出早期獲得了顯著提升。特別是加了時間衰減因子後的模型 (DFTC-DL)。
致謝
感謝我們的微信同事 Shen Huang,他為本研究的實驗和論文書寫提供了巨大的幫助。也要感謝我們的微信同事 Zhe Feng、Yuetang Deng、Zhiping Wang 和 Yandong Bai 為本研究提供的有用討論和支援。還要感謝西北工業大學的 Feiping Nie 教授和康奈爾大學的 Yudong Chen 教授提供的寶貴建議. 該模型已經作為選擇文章的一個重要方法在微信看一看場景應用。