丁正祁 彭余輝 孫剛



摘 要:結合用戶興趣與新聞時效性的特點,對傳統推薦算法和標準LDA主題模型進行思考,提出一種基于LDA(Latent Dirichlet Allocation)的文檔-主題-詞的三層貝葉斯概率模型結合時間函數的推薦算法,采用Gibbs Sampling進行超參數推導,提升推薦效果。實驗結果表明,該算法在適當參數設定下的推薦結果比協同過濾及標準的基于改進LDA模型的算法有更小的預測誤差,向用戶推薦偏好新聞更有效率。
關鍵詞:LDA主題模型;貝葉斯模型;推薦算法;時間函數
中圖分類號:TP391;O212.8 ?文獻標識碼:A ?文章編號:1673-260X(2021)06-0028-05
在網絡迅速發展的今天,隨著各種新聞網站的出現,報紙等紙質新聞已經逐漸離開人們的視線,給人們帶來了極大的方便,人們能夠通過網絡來了解自己所偏好的新聞信息,但隨著新聞信息井噴式的增加與高速的更新效率,海量的信息帶來了大量的無用新聞以及重復新聞,甚至無法使今日新聞及時準確地推薦給用戶,導致用戶的需求無法及時滿足,失去用戶對新聞網站的友好度[1]。但隨著推薦系統的使用與普及,各大新聞網站通過適當的推薦算法對用戶的偏好、瀏覽記錄、點擊率等信息進行分析整合,通過預測用戶的興趣計算出相應的推薦列表,將靠前的新聞信息推薦給用戶。
當前在新聞推薦中主流的推薦算法包括基于內容的推薦和協同過濾推薦算法。基于內容的推薦算法是通過對用戶瀏覽新聞歷史進行提取關鍵詞,進行統計整合,判斷用戶對新聞類別的偏好,再將與用戶偏好新聞信息內容相似的新聞推薦給該用戶,并且無冷啟動問題。基于用戶的協同過濾推薦是通過獲取不同用戶的瀏覽記錄來找到和目標用戶相似的用戶集合,并通過相似計算將用戶集合中的偏好新聞相似的但目標用戶未瀏覽過的新聞推薦給目標新聞。
1 相關文獻概述
隨著國內外學者對推薦算法的深入研究,越來越多的因素被考慮進推薦算法中,使推薦算法越來越復雜,準確率也越來越高。在關于新聞信息方面的推薦,隨著對推薦算法的不斷研究和探討,其推薦效率也在逐漸提高。通過對用戶的喜好和需求來進行推薦新聞內容,將有可能是用戶偏好的新聞列表推薦給用戶,解決了用戶盲目尋找的問題[2],但推薦效率和準確率仍有待提高。一種對推薦列表進行增量更新并融合潛在語義分析的方法來將新聞文章的相關性保持正相關,解決了用戶偏好的不確定性問題,但存在語義分歧的狀況[3]。根據社交和時間因素提出了一種融合社交網絡和時間函數的主題模型[4],更多地考慮用戶特征來增加推薦效率,但卻忽略了內容本身。使用LDA聚類的方法對數據進行主題簇的劃分,快速給出合理的推薦列表[5]。在LDA模型基礎上加入了對用戶行為的分析來提高推薦的有效性和實時性[6]。為解決數據稀疏性,通過評分信息和每個時間段的訪問量來構建LDA模型,從召回率、F1值等方面進行了充分地優化[7]。Basilico J等[8-10]也充分說明了時間在推薦算法中的重要性。同樣為了防止出現詞義的混淆、模糊提出了將文本交互信息作為數據基礎源來提高推薦準確率的TIN-LDA模型[11]。通過設置用戶排序主題模型來反映文檔主題的重要性,進而提高用戶對推薦算法的滿意度[12]。通過構建LDA模型來發現用戶對與部分主題的偏好及興趣分布,極大地滿足了用戶對推薦算法的需求[13]。通過LDA結合多標記源分類器得到性能更高的主題模型,并利用主動學習思想來提高推薦的準確度[14]。
基于以上主題模型的研究,通過分析新聞信息的更新速度以及時效性,本文通過構造改進的LDA主題模型(NR_TLDA)來進行推薦,將用戶瀏覽過的新聞文本信息轉化成容易建模的數字信息,通過新聞主題分布及關鍵詞分布來判斷用戶的興趣偏好,并結合時間衰減函數緩解因時間跨度較大帶來的興趣遷移的影響,將更準確地推薦列表推薦給目標用戶,減少預測誤差。
2 NR_TLDA推薦算法
通過分析用戶瀏覽的新聞文本信息及其時效性特點,本文在LDA模型提取新聞主題的同時考慮到新聞發表時間,在建模過程中,對距離當前時間更近的關鍵詞給予更大的時間權重,通過對時間的限制來優化用戶偏好主題模型,如圖1所示。
2.1 LDA主題模型
LDA模型于2003年由Blei等人提出,是包含document-topic-word的無監督貝葉斯概率模型[15],訓練集不需要手工標注。該模型也是典型的詞袋模型[16],認為document由互不關聯且無先后順序的詞匯組成,根據詞在文中的概率分布來反映document中的主題分布信息,相對于提取關鍵詞技術[17],LDA模型更注重語義信息,通過對文檔進行建模,挖掘出文檔集中潛在的主題信息。
LDA三層貝葉斯模型如圖2所示。其中?琢→?酌m→Zm,n組成Dirichlet-multi共軛,表示從先驗Dirichlet分布?琢中取樣生成文檔m的主題分布?酌m,再從?酌m中取樣生成文檔m中第n個詞的doc-word分布Zm,n;
?茁→?啄k→Wm,n組成Dirichlet-multi共軛,表示從先驗Dirichlet分布?茁中取樣生成topic-word分布?啄k,再從?啄k中采樣生成詞Wm,n。
doc-topic分布和topic-word分布是相互獨立的,這是因為主題產生詞時不依賴任何文檔。
根據LDA原理及貝葉斯公式可得:
其中p(w|m)表示文檔m中單詞n的分布概率, ?p(w|Zk)表示第k個主題Z中單詞w的分布概率,p(Zk|m)表示文檔m中第k個主題的分布概率。
Gibbs采樣是當前LDA模型中主流的采樣方法,適用于長文本信息例如新聞,通過多次迭代得出doc-topic分布矩陣?酌m和topic-word分布矩陣?啄k,其估算公式如下:
。
Gibbs Sampling是MCMC(馬爾科夫鏈蒙特卡洛)算法的一種,其在LDA模型中的物理意義是在k條doc-topic-word路徑中進行采樣,路徑圖如圖3所示。通過迭代收斂即可得到所有word的主題z,然后統計topic-word關系矩陣,即可得到LDA模型。為了得到質量更好的主題模型,本文取Gibbs采樣后的所有結果取平均值來做參數估計。
2.2 構造結合時間因子的用戶權重矩陣
統計每個用戶中由LDA模型中得出的預測值大于0.4的主題個數,構造user-topic矩陣,用戶在具體某一時間段的偏好被認為是相對固定的,當其對新聞信息進行瀏覽或評論時具有時間屬性,用戶對同一類型新聞的瀏覽時間越接近,說明其在此時間段的興趣偏好越相似,由此可以加入時間因子來計算用戶偏好矩陣。
時間衰減因子函數常用指數衰減函數,其時間因子權重公式:
tu,i=exp{-?子(tn-thu,i)} ?(4)
其中tu,i表示時間權重,tn表示當前時間點,thu,i表示用戶u瀏覽新聞i的時間點,?子表示權重參數。
在計算相似度的過程中,用戶對某類新聞主題的評分用該類新聞主題的個數來代替,在這里使用Pearson系數來計算相似度,可得結合時間因子的用戶相似度為:
其中sim(u,v)指用戶u和v間考慮時間因子后的相似度,tui指用戶u瀏覽某類新聞i的時間權重,rui指用戶瀏覽某類新聞的次數(以下均以評分對待)。
根據sim(u,v)值按照順序排列選出用戶的最近鄰,然后使用平均偏差法對相應新聞進行預測評分,公式為:
其中qui表示用戶u對新聞i的預測評分,N(u)k表示與用戶u相似度最大的前k個用戶,ru表示用戶已有評分的平均值,rvi指用戶v對新聞i的評分,由此可得user-topic的偏好矩陣。
2.3 通過對user-topic矩陣加權處理產生推薦
根據上式得到的預測值進行排序,取排在前N名的新聞推薦給用戶,針對推薦過程中的新用戶問題,對其推薦熱門物品來解決冷啟動問題。
2.4 NR_TLDA推薦算法描述
算法:基于改進LDA主題模型的個性化新聞推薦算法;輸入:分詞后的新聞信息文本集、主題數K、超參數?琢和?茁;輸出:doc-topic概率分布?酌、topic-word分布?啄、目標用戶對新聞信息的預測評分pre。
步驟1 對爬取的新聞信息文本集D進行數據預處理,通過LDA模型進行建模處理,生成doc-topic和topic-word分布。
步驟2 通過Gibbs采樣得到最終收斂的?啄,?酌參數估計值(采樣結果取平均值),得到標準LDA模型。
步驟3 將預處理后的用戶新聞信息瀏覽記錄集d導入LDA模型,生成user-topic概率模型,每當用戶瀏覽一條新聞信息文本,該概率模型會更新一次。
步驟4 根據步驟3中得到的主題模型,統計pre>0.4的主題數目,得到user-topic列表。
步驟5 加入時間權重tu,i,通過Pearson系數進行相似度計算,得到user-topic矩陣。
步驟6 將步驟3和步驟5中的用戶偏好矩陣進行加權處理,得到最終的偏好矩陣(即輸出目標用戶對新聞信息的預測評分pre),將生成的Top-N列表推薦給用戶,并將用戶所瀏覽的記錄加入用戶新聞信息瀏覽記錄集d中。
3 實驗結果與分析
3.1 實驗設置
本實驗數據集是通過Google瀏覽器及python爬蟲爬取今日頭條新聞網站50,000多條各類新聞信息及50名用戶的新聞瀏覽記錄信息9,000余條。為了確保推薦的有效性,將瀏覽記錄數低于20條新聞信息的用戶過濾。
本文實驗環境為Windows10操作系統,Pycharm,Seleuimn,Python。
本文中LDA建模過程中,根據經驗所得,設置超參數?琢=0.1,?茁=0.01,Gibbs采樣迭代次數為2000,設置N為10。
3.2 數據預處理
在進行實驗之前,為了保證數據的可塑性,需要對原始數據進行預處理,通過去噪、處理缺失值、文本合并、分詞、去停用詞。選取用戶瀏覽記錄集中80%作為訓練集,另外20%作為測試集。
3.3 實驗評估指標
通過閱讀文獻,Herlocker等人對推薦算法中的衡量標準進行了詳細的講解,為了使模型的效果能更好地展現出來,本文采用準確率(Precision)、召回率(Recall)、F-Measure(F1)作為衡量NR_TLDA推薦算法效果的標準[18]。
Precision是指命中的新聞信息數目占推薦新聞總數的比例,其公式為:
其中|hitsu|指在推薦的新聞列表中,用戶u所瀏覽過的新聞數目,|recsetu|指推薦給用戶u的新聞列表集合的總數目。
Recall是指命中新聞信息數目占理論上最大命中數量的比例,其公式為:
其中|testsetu|指用戶u理論上應該推薦相關新聞數目的最大值。
為了觀察Precision和Recall之間的權衡變化,需要增加推薦集合的規模,命中相關新聞信息的機會就會增加,Recall就會增加,而Precision則會降低。為了有效地平衡Precision和Recall,使用F1衡量標準,其公式為:
F1值隨著Precision和Recall的變化而變化,并且當F1值較高時,模型效果更好。
3.4 實驗對比分析
根據當前的研究成果和大量文獻表明,在推薦算法領域應用LDA主題模型的準確性要比協同過濾算法高,同時時間因素也是增加準確性的因素之一。因此,本文所提出的算法NR_TLDA將與基于標準的LDA主題模型推薦算法、本文算法中未增加時間因素的NR_LDA算法及協同過濾(CF)推薦算法進行比較。
3.4.1 LDA主題模型潛在主題個數K的確定
為了觀察LDA隱含主題的個數對推薦算法的影響,設置推薦列表N長度為10時,K值為5、10、15、20、25、30,觀察Recall值的變化,如圖5所示。
從圖5中可以得知,當推薦列表不變時,通過設置LDA隱含主題數目,觀察Recall值變化情況可以看出,Recall值先增加然后下降到一定高度后基本保持穩定,當K=10時,Recall值達到最大,說明此時的K值最合適,推薦效果最好,以下實驗均采用K=10進行實驗。
3.4.2 算法對比結果
為了使實驗更具有說服力,在這里對上述四種算法進行實驗,通過多次實驗進而比較它們的準確率、召回率、F1值。
由圖6可知,通過對比四種算法,隨著推薦列表的增加,準確率在降低,最后趨于平穩,但當推薦列表固定時,本文算法NR_LDA的準確率是最高的,說明結合時間因子的LDA模型推薦算法要比未考慮時間因素的靜態LDA推薦算法(NR_LDA)及CF等推薦算法的推薦效果更好。
召回率作為推薦算法中的一種評估方法,也可以有效評估推薦算法的推薦效果,從圖7可知,隨著Top-N的增加,召回率在增加,最后趨于平衡,本文算法NR_TLDA算法在固定推薦列表下召回率高于其他三種推薦算法,說明NR_TLDA推薦算法的效果更好。
為了平衡準確率和召回率,使用F1值來作為評估指標,由圖8可知,隨著Top-N的增加,F1值在增加,最后趨于平穩,而在四種算法中,NR_TLDA算法的F1值要高于其他算法,即NR_TLDA算法的推薦效果由于其他算法。
由表1可知,本文算法在離線階段進行矩陣處理的時長要比其他算法多,但在線階段所需時間較少,說明該算法在本數據集中有較好的推薦體驗。
4 實驗總結
在NR_TLDA算法中,將新聞文本、新聞主題、詞作為三層貝葉斯結構來進行建模,通過統計主題數目來解決用戶對每一類新聞的評分問題,再結合時間因子來完善用戶對新聞信息的偏好程度,再根據實驗過程中用戶每一次瀏覽的新聞記錄對LDA模型進行完善,并將兩user-topic矩陣進行加權融合,形成最終的偏好矩陣。在此次設計與實驗過程中,用戶的閱讀興趣會隨著時間的變化而影響推薦質量,時間因子很好地緩解了這種問題。
下一步可以采用矩陣分解來對LDA模型進行分解,更加全面地考慮新聞和用戶的屬性,并結合用戶的評論來提取特征詞,更全面地建立用戶的興趣模型,來更好地提升推薦質量。
參考文獻:
〔1〕徐毅,葉衛根,戴鑫,等.融合用戶信任度與相似度的推薦算法研究[J].小型微型計算機系統,2018, 39(01):78-83.
〔2〕王博.新聞內容推薦算法研究[J].信息與電腦(理論版),2016,28(06):146-147.
〔3〕劉輝,萬程峰,吳曉浩.基于增量協同過濾和潛在語義分析的混合推薦算法[J].計算機工程與科學,2019,41(11):2033-2039.
〔4〕高茂庭,王吉.融合用戶關系和時間因素的主題模型推薦算法[J/OL].計算機工程:1-7[2020-07-25].https://doi.org/10.19678/j.issn.1000-34 28.0054096.
〔5〕程磊,高茂庭.結合時間加權和LDA聚類的混合推薦算法[J].計算機工程與應用,2019,55(11):160-166.
〔6〕李散散.基于用戶行為分析和LDA模型的數字媒體推薦系統的設計與實現[J].現代電子技術,2020,43(07):146-149+154.
〔7〕魏童童,馮鈞,唐志賢,王純.基于時序背景LDA與協同過濾的混合推薦模型[J].計算機與現代化,2015,31(10):1-5+9.
〔8〕Basilico J, Raimond Y. Déjà Vu: The Importance of Time and Causality in Recommender Systems[C].the Eleventh ACM Conference. 2017.
〔9〕Jin X, Zheng Q, Sun L. An Optimization of Collaborative Filtering Personalized Recommendation Algorithm Based on Time Context Information[M]. Information and Knowledge Management in Complex Systems. Springer International Publishing, 2015.
〔10〕Hu Y, Peng Q, Hu X, et al. Web Service Recommendation Based on Time Series Forecasting and Collaborative Filtering[C]. IEEE International Conference on Web Services. IEEE Computer Society, 2015.
〔11〕鄭偉.基于TIN-LDA模型的微博推薦方法研究及應用[D].安徽理工大學,2019.
〔12〕車豐.基于排序主題模型的論文推薦系統[D].大連海事大學,2015.
〔13〕邸亮.基于主題模型的個性化信息推薦[D].北京工業大學,2014.
〔14〕侯濤文.基于LDA的多標記源文本分類研究[D].北京建筑大學,2019.
〔15〕Jordan M I,Blei D M. Latent Dirichlet Allocation[J]. Journal of Machine Learning Research,2003,3: 465-473.
〔16〕陳二靜,姜恩波.文本相似度計算方法研究綜述[J].數據分析與知識發現,2017,1(06):1-11.
〔17〕雷琨.電子商務個性化推薦系統研究[D].電子科技大學,2012.
〔18〕Herlocker J L, Konstan J A, Terveen L G, et al. Evaluating collaborative filtering recommender systems[J]. ACM Transactions on Information Systems (TOIS), 2004,22(01): 5-53.