李薇 程科
江蘇科技大學 江蘇 鎮江 212008
信息時代,網絡新聞的生產和傳播速度都呈爆炸式增長。通過個性化新聞推薦系統[1],用戶可以在更少的時間里得到更感興趣的新聞。
協同過濾算法[2]分為基于用戶的協同過濾算法[4]和基于商品的協同過濾算法[5]。新聞系統中的用戶數變化相對固定,所以基于用戶的推薦算法的性能較好。但是新聞內容特點需要不斷調整同類用戶的新聞信息表[8]。當數據量較大時,算法的時間復雜度[8]過大。
針對以上問題,本文提出了一種基于新聞時效性的方法,通過建立新聞的時效性模型[9],結合新聞時效性特點改進了基于用戶的協同過濾算法[5]中對于最近鄰用戶的選擇。在維護用戶相似度矩陣時,為了保持新聞信息的高及時性,對新聞集進行過濾。這樣新聞數據量大也能保持算法的高性能。本文利用改進的算法對南京日報網上新聞系統的新聞和用戶行為數據集進行了仿真,驗證了該方法的有效性。
1.1.1 信息老化。貝爾納在1959年提出了信息老化的負指數模型,用以確定文獻信息的價值與時間的關系,下式(1)為基于信息老化的負指數模型[10]公式:

1.1.2 新聞時效性模型。為了研究網絡新聞信息的老化過程,通過引入文獻信息老化模型輔助分析,可以給出一種定量判斷新聞時效性的方法。本文對網絡新聞時效性模型做出界定:
1.1.2.4 定義4(新聞所屬主題簇S,主題簇新聞平均最高訪問效果時刻):在新聞的實際傳播中,初始時刻可能會出現由于新上架而導致的低訪問量問題,從而導致與負指數模型擬合效果差問題;而通過引入相近主題的新聞平均最高訪問效果時刻參數,可以從此時刻起開始計算負指數模型中的老化系數,提高模型的準確性。
將貝爾納的負指數模型[12]引入模型,可以用下式定義:

其中,t為當前時刻,推薦輸入集合[11]的更新時為該主題簇中新聞到達最高訪問平均所需要的時間[12],表示新聞在t時刻的新增用戶反饋[8]數量,需要根據新聞系統[1]來調整設定合適的時間粒度,統計這一分段時刻的用戶反饋[8]數量。老化系數[13]a指的是這條新聞隨著時間推移訪問效果[2]的衰減系數,a越小,說明這條新聞的時效性[10]越強。b是與新聞發布后的初始統計時間粒度內用戶反饋統計數量有關的常數[13],即第一個統計時間段,模型有較好的匹配時,時間粒度內用戶反饋統計數量參數易受新聞初始閱讀量影響,但不會表現新聞時效性的變化趨勢,b較大,則新聞初始閱讀量較大[13]。本文研究的時效性改進算法,就新聞本身的時效性變化趨勢進行線性回歸分析,計算出b,b參數后,主要考慮將老化率a作為推薦算法的輸入,對上面的公式變形改進,可以更清楚地認識到老化參數與時間推移的聯系:

變形后,對老化曲線擬合,近似于常見的負指數模型,直觀地只要求出老化系數a即可。
對于某一特定的新聞,通過老化系數a代表其發布后傳播效果的衰減速度,衰減不明顯即為時效性[11]較強的新聞,對于新聞閱讀者[3]而言,該新聞時效價值[4]較高;當到達生命周期后,時效價值為0。
為了保證模型的健壯性[2],統計各時段內的網絡新聞反饋數量時,根據系統分時段的總體閱讀量,作歸一化處理來降低讀者不同空閑時段帶來的影響。
根據公式與網絡新聞信息的統計數據進行擬合[3],計算出網絡新聞的老化率[13]。同時,通過線性回歸分析判斷新聞與時效性模型的最終擬合效果。
基于用戶的協同過濾算法(User CF算法)首先通過尋找與目標用戶興趣度相似的用戶集合,找出在這個用戶集合中的用戶喜歡但目標用戶尚未關注的物品信息,再將其推薦給目標用戶。
根據用戶間興趣相似度可以給用戶推薦興趣最相似的K個用戶喜歡的新聞,公式(4)表示了User CF算法中用戶u對新聞n的感興趣程度預測評分。

在傳統的基于用戶的協同過濾推薦算法中,沒有考慮信息本身老化與時效性的問題,這種做法可能適合對項目時效性不敏感的內容系統,但不適合網絡新聞系統,因為新聞本身對時效性要求較高。所以本文先過濾掉老化新聞,降低了輸入數據的規模,再結合新聞衰老系數與生命周期,基于新聞時效性模型,對推薦結果預測評分進行加權平均,從而提高了推薦的效果。
2.2.2 推薦系統輸入新聞集合Ⅰ。選取推薦新聞時的輸入集合,用來計算新聞時效性。公式(5)表示集合。由于UserCF算法既要進行較復雜的用戶偏好度計算又要進行時效性模型的檢驗,為了大幅降低算法復雜度,所以將輸入集選取在生命周期內的新聞。

2.2.3 推薦系統輸入新聞集合Ⅱ。保存剛剛發布的新聞,由于尚處于傳播的上升期,可認為這些新聞當前沒有老化的趨勢,所以將其老化系數設置為0,時效性仍然很強。公式(6)為集合。

2.2.4 用戶信息集合。隨著系統用戶的增加自動更新,用集合表示k個用戶的集合,因變化很緩慢可認為算法更新集合U不變。
2.2.5 用戶-新聞興趣矩陣 用戶對新聞做出閱讀、點贊、分享及評論等各種各樣的行為,則通過用戶行為偏好向量空間模型計算出用戶對新聞興趣數值。
2.2.6 新聞訪問表。統計用戶反饋新聞的操作數量隨時間變化狀況,體現時效性。
為了獲取用戶的完整歷史興趣愛好,計算用戶相似興趣度的輸入集合要包含整個新聞集合N與用戶集合U,不能只選取新聞子集合。最后,本文選取的是杰卡德相似度[3]公式來計算用戶相似度,即公式(7):

基于時效性參數改良預測評分結果,得到最終推薦計算公式(8):

本文對南京日報網絡新聞數據與用戶數據進行實驗,共計7684條新聞,53264個用戶。2021年02月04日部分新聞數據如表1所示,該表表示某新聞的閱讀情況。

表1 實驗數據集中部分新聞訪問數據
t表示抽樣時間,Readnum表示當前時刻閱讀數量,Delta_readnum表示每間隔時間內的新聞閱讀增長情況,閱讀數量已經根據系統整體情況作歸一化處理。
先對新聞集合進行時效性模型檢驗,根據其閱讀量變化利用負指數模型進行擬合,擬合結果如表2所示,包含了新聞的時效性模型檢驗結果,單條新聞閱讀變化量擬合結果如圖1所示。

圖1 單挑新聞閱讀變化量擬合結果

表2 單條新聞擬合結果
時效性模型輸入數量級與SSE及RMSE有關[15]。R-square與Adjusted R-square表達的是擬合結果與目標模型的效果,越近似于1說明模型效果越好[11]。表2中單條新聞瀏覽量變化相對擬合[11]時效性模型,說明閱讀量與時間相關聯[12],將擬合得到的老化系數a作為推薦模型的輸入。即說明改進后的時效性模型[13]更適合。
對于熱門新聞,閱讀量較大,適用時效性模型,提高正確率與精度。對于非熱門新聞,從新聞輸入集合中去除,只對訂閱用戶定點推送。
由實驗(1)得出了時效性模型的新聞老化系數[13],利用改進UserCF算法,基于時效性模型中老化系數的影響,在計算用戶興趣度時,將實驗(1)中R-square超過0.80 的新聞集單獨分類,形成一個新的新聞數據集。和原新聞集N分別作為新聞總集,分別進行兩次實驗,步驟相同,參數一致,僅僅輸入不同。最后與傳統的UserCF算法[4]作為對照比較。
本實驗中,將用戶行為數據集隨機分成8等份,6份作為訓練集,2份作為測試集,通過準確率與召回率來評價推薦算法的效果:
公式(9)為計算推薦準確率的方法:

公式(10)為計算推薦召回率的方法:


表3 推薦算法實驗結果
不同的輸入集合[8],SubN是與時效性模型高擬合度的新聞數據集,熱門新聞,平均閱讀數量較高,抗噪聲能力強。在實際推薦系統中,通常熱門新聞受推薦的可能性更大,準確率與召回率都會更高。在傳統的UserCF算法中,SubN集合與N集合前者推薦準確率與召回率更高,不過相差不大,UserCF算法沒有考慮到時間推移的影響,只滿足了高閱讀量的特性,提高推薦準確率與召回率效果不明顯。
聚類后在簇內部使用推薦算法,最后得出實際的推薦新聞列表,可以進一步提高性能。由表4可知,時效性模型與聚類算法都有效提高新聞推薦算法的效果。

表4 聚類推薦實驗結果
相同的輸入下,改進后的UserCF算法,基于時效性模型[11],考慮到了新聞時效性衰減的因素,較好地利用了老化系數,降低了衰減較快新聞的權重;和時效性模型高擬合的新聞集合,不僅衰減速度慢,時效性強,自身閱讀量高,所以改進后的UserCF推薦效果還會有所增強[16]。
自媒體時代,在信息過載的情境下為新聞讀者提供合理推薦日趨重要。本文將文獻信息老化模型[9]應用于新聞信息,引入時效性模型[11]中老化參數改進了基于用戶的協同過濾算法。實驗結果表明,改進后的算法對于抗噪能力強的熱門新聞能有效地提高算法的準確率和召回率。不過本文只是針對興趣評分處理與新聞時效性進行的改進,對于冷啟動以及初始狀態下用戶稀疏等問題未考慮,所以未來還需進一步研究。