劉羽茜,劉玉奇,張宗霖,衛(wèi)志華,苗 冉
(同濟大學電子與信息工程學院,上海 201804)
目前互聯(lián)網信息數(shù)據(jù)呈指數(shù)級增長,從海量數(shù)據(jù)中發(fā)掘價值信息,對用戶作出個性化的新聞推薦變得困難。隨著深度學習的繁榮發(fā)展,許多基于內容的新聞推薦方法被提出:2017 年Okura 等[1]提出了利用自編碼器為文章編碼并使用循環(huán)神經網絡為用戶編碼的方法;2018 年Wang 等[2]提出了通過知識感知卷積神經網絡(Convolutional Neural Network,CNN)來提取新聞特征;等等。對這些模型進行對比分析,得到在當前新聞推薦系統(tǒng)中經常存在以下的問題:
1)如何從新聞內容中高效地提取新聞信息是新聞推薦的重要內容,尤其是對長新聞的處理,這需要捕捉文本中的重點詞匯,減少無關詞匯對語義的影響。例如圖1 中的“扶貧”“致富”“人民”,較其他詞匯更能代表新聞特征,若能得到重點關注可以有效提高長新聞的特征提取準確率[3]。
2)如何有效建模用戶偏好。在圖1 中,第一條新聞在建模用戶興趣方面比第五條新聞信息更豐富,因為后者通常被大量不同特征的用戶瀏覽。同時,目前的推薦系統(tǒng)往往在建立用戶畫像時忽略了將與用戶相關的項目特征納入表征[4],同樣在圖1 中,前兩篇新聞文章是相關的,因為它們都是脫貧致富類的新聞。本文需要解決如何將用戶所關注的新聞特征之間的關系進行處理提取。
圖1 用戶新聞瀏覽記錄示意圖Fig.1 Schematic diagram of news browsing history of a user
針對以上問題,本文提出注入注意力機制的深度特征融合新聞推薦模型,具體包括新聞編碼模塊(news encoder)和用戶偏好編碼模塊(user encoder)。本文主要工作如下:
1)在新聞編碼中,為了提取更有效的新聞特征,本文基于加法注意力機制的卷積神經網絡(additive attention CNN)學習關鍵文本,融合新聞文本的上下文特征。
2)基于新聞編碼得到的新聞表征,進行用戶偏好建模。為了同時建模用戶瀏覽記錄的序列特性和瀏覽內容的特征,本文首先通過門控循環(huán)單元(Gate Recurrent Unit,GRU)網絡對歷史新聞記錄進行建模,提取序列特征;而為了進一步建模用戶瀏覽歷史的特點,本文還使用新聞級別多頭自注意力機制(multi-head self-attention)來捕捉新聞之間的關系;最后基于注意力機制從歷史新聞特征中學習用戶偏好表征。
新聞推薦系統(tǒng)已經有了較為成熟的發(fā)展,傳統(tǒng)的算法可分為基于內容的推薦、基于協(xié)同過濾的推薦、混合推薦算法[5]。
基于協(xié)同過濾的推薦是將閱讀同一新聞的相似用戶已瀏覽新聞作為推薦新聞,考慮相鄰用戶(或新聞)之間的關聯(lián)性;但協(xié)調過濾缺少用戶點擊歷史的順序信息利用,無法建模興趣的動態(tài)變化[6]。
基于內容的推薦是對新聞特征和用戶興趣特征顯式建模,具有可解釋性強的特點,并基于深度學習有了積極繁榮的發(fā)展。例如,Okura 等[1]在2017 年提出使用去噪自動編碼器學習新聞表征,并使用GRU 網絡從用戶瀏覽的新聞中學習用戶表征。Wu 等[3]在2019 年提出了多種基于多頭自注意力的神經網絡新聞推薦(Neural news Recommendation with Multi-head Self-attention,NRMS)模型在單詞和新聞層面使用多頭注意力機制,挖掘上下文關系與新聞間關系;TANR(neural news recommendation with Topic-Aware News Representation)模型基于卷積神經網絡提取新聞特征并附加新聞的主題分類,在新聞特性的提取上有很好的效果[7];LSTUR(neural news recommendation with Long-and Short-Term User Representations)模型使用循環(huán)神經網絡和id 嵌入方式提取用戶長短期興趣特征[8];NAML(Neural news recommendation with Attentive Multi-view Learning)模型基于卷積神經網絡推出了多視角的思想[9]。但基于內容的推薦同樣也面臨著短板,絕大多數(shù)方法采用文章級匹配方式,可能會丟失隱藏在更細粒度新聞片段中的語義特征與興趣特征[6],忽視了歷史新聞之間的聯(lián)系,在用戶畫像構建上有所缺失。
本文的工作基于對內容推薦的研究,希望解決上述的基于內容推薦的短板。本文構建了注入注意力機制的深度特征融合新聞推薦模型,希望能夠提取更細粒度的語義特征,并將用戶瀏覽行為(時序)考慮到模型中,以獲得用戶興趣趨勢,以使得基于內容推薦的建模角度更加全面。
如圖2 所示,本文基于深度學習構造了一個自主學習用戶特征的新聞推薦系統(tǒng),由基于加法注意力機制的卷積神經網絡文本特征提取模型來提取用戶瀏覽新聞的特征與候選新聞特征;對于瀏覽新聞列表添加由門控制循環(huán)單元實現(xiàn)的時序特征提取機制,由加法注意力機制與多頭自注意力機制結合的用戶特征模型獲得用戶特征;最后實現(xiàn)一個候選新聞預測排序模型,結合用戶特征與瀏覽歷史,對候選新聞進行打分。
圖2 本文模型示意圖Fig.2 Schematic diagram of the proposed model
為了描述建模過程,本文定義了如表1 所示的變量。
表1 符號的定義Tab.1 Definition of symbols
首先要提取本文的特征。為了高效提取文本的上下文關系、局部特征與全局特征,并且通過對重點詞匯加權來高效處理長新聞,本文使用卷積神經網絡和單詞層面的注意力機制建模。
1)將新聞文本從詞序列轉換為向量序列。將新聞文本表示為(word1,word2,…,wordl),其中l(wèi)為標題長度;然后將其通過詞嵌入矩陣E轉換為由詞向量構成的矩陣[w1,w2,…,wm],記為Wwords,計算式為:
2)使用CNN 捕捉上下文信息[10]。CNN 層將詞向量作為輸入,并輸出上下文關聯(lián)的詞向量順序構成的矩陣:
其中:k是卷積核數(shù)。
3)加法注意力層。當新聞文本過長時,語義向量可能無法完全表示整個序列的信息,先輸入的內容攜帶的信息容易被后輸入的信息稀釋。本文為新聞文本注入注意力機制,能夠高效地提取關鍵性信息,降低次要信息的干擾[10]。例如,“深圳龍崗1 份進口的凍雞翅表面樣品新冠病毒檢測呈陽性”在未注入注意力機制時,每一個詞的含義(詞向量值)對整個句子的特征分析結果影響是相等的,即權重相同;但“新冠病毒”是判斷本條新聞特征的重點詞匯,注入注意力機制,使“新冠病毒”的權重增加,調整其余詞匯的權重,能夠使神經網絡更加高效準確地提取到本新聞具有“醫(yī)療”的特征。第i個單詞權重為[11]:
其中:Vw和vw是訓練的權重矩陣;qw是查詢矩陣。
最終輸出每一條新聞的特征向量vnews。特征向量達到了高細粒度特征的提取的要求。
為了處理用戶瀏覽時間遠近帶來的時序特征[12],提取歷史新聞之間的關聯(lián)以及影響用戶的重點新聞,本文構建了用戶特征提取模型。它包含三層:
1)基于GRU 的神經網絡實現(xiàn)的時序預測模塊,通過瀏覽記錄列表輸出特征矩陣,使得瀏覽時間的遠近能夠被納入考慮。對于編碼表征后的歷史新聞矩陣Vnews=[vnews1,vnews2,…,vnewsm],用戶表征計算[13]為:
其中:t代表時刻;σ是sigmoid 函數(shù);Wr、Wz、是GRU 網絡的參數(shù);rt是重置門,代表t時刻之前的信息是否需要重置;zt是更新門,代表t時刻之前的信息是否需要更新;是時刻t的候選隱藏狀態(tài);ht是時刻t的隱藏狀態(tài);將由遠及近的m條新聞記作m個時刻的用戶瀏覽事件。添加時序的用戶表征是GRU 網絡的最后一個隱藏狀態(tài),由它可以得到神經網絡預測的未來一個時刻用戶將會點擊的新聞的特征,記作R=hm。
圖3 基于門控循環(huán)單元的神經網絡結構Fig.3 Structure of neural network based on gated recurrent unit
2)新聞級別的多頭自注意力(multi-head self-attention)機制層,能夠通過捕捉同一用戶閱讀各條新聞的之間的關聯(lián)性,得到用戶更加深層的特征,這也是本文要做到千人千面的一個關鍵步驟。
多頭注意力機制由多個縮放點擊注意力模塊(scaled dot-product attention)基礎單元經過堆疊而成[11]。輸入是查詢矩陣Q、關鍵詞K、關鍵詞的特征值V三個元素。對于輸入的新聞組,里面的每條新聞都要和其他所有新聞進行注意力計算,目的是學習同一用戶所瀏覽的新聞之間的關系。
在本文模型中,輸入的新聞特征矩陣R=[rnews1,rnews2,…,rnewsdim],其中dim是一個用戶的特征向量表征維度,rnewsi是一條新聞的特征向量。取:
其中:Wq、Wk、Wv是可訓練權重矩陣。
縮放點注意力機制的計算式為:
在Multi-head attention 中,Q、K、V首先進行一次線性變換,輸入到scaled dot-product attention,這里要做h次,即多頭,且每次Q、K、V進行線性變換的參數(shù)W是不一樣的;然后將h次的scaled dot-product attention 結果進行拼接,再進行一次線性變換得到的值作為Multi-head self-attention 的結果。
將結果記為:
3)附加新聞注意力層,與新聞特征模型中的附加注意力機制原理相同,由于是新聞層面的注意力,所以將詞向量修改為新聞特征向量:
其中:Vn和vn是和訓練的權重矩陣;qn是查詢矩陣。
不同的新聞在代表用戶時可能具有不同的信息量。本文應用附加注意機制來選擇重要的新聞,以學習更具信息性的用戶表示。
綜上,通過時序預測與兩層注意力機制,輸出用戶特征向量u。
損失函數(shù):m條新聞作為正樣本,隨機選取同類但非已瀏覽的n條新聞作為負樣本。對于某個樣本的打分(即點積預測器預測的概率)越高,表明該用戶點擊這條新聞的概率越大。本文取正樣本新聞權重的負數(shù)和作為損失:
其中pi表示第i條是否是正例,如果是則取1,否則取0。
使用了財新網2014 年3 月的用戶瀏覽行為中文數(shù)據(jù)集與英文數(shù)據(jù)集MIND(Microsoft News Dataset)[14]對模型進行測試實驗。數(shù)據(jù)集情況如表2 所示。
表2 數(shù)據(jù)集情況統(tǒng)計Tab.2 Statistics of datasets
中文數(shù)據(jù)集包含用戶、新聞標題、新聞內容、瀏覽時間戳。
英文數(shù)據(jù)集MIND 包含用戶、新聞標題、新聞摘要、新聞內容、新聞類別、新聞實體,本文主要用到了前五項。
數(shù)據(jù)集中訓練集、驗證集、測試集的劃分比例為10∶1∶1。
對于任意用戶,隨機選取已瀏覽過的m條新聞作為正樣本,隨機選取同類但非已瀏覽的n條新聞作為負樣本,共m+n條新聞作為候選新聞。用戶其余已瀏覽新聞作為歷史新聞,模型使用歷史新聞來提取該用戶特征。
評估指標如下:
對于候選新聞排序事件s,取S為s的集合,候選新聞共有m+n條。
平均值倒數(shù)秩(Mean Reciprocal Rank,MRR):對于一次候選新聞排序事件s,若第一個新聞正樣本排在第rank位,則MRR 得分為。
歸一化折現(xiàn)累積收益(normalized Discounted Cumulative Gain,nDCG):
其中:ci表示是否是正樣本,是則取1,不是則取0。
本文基于Tensorflow 實現(xiàn)模型,具體的模型參數(shù)如表3所示,優(yōu)化器使用Adam[15]。
表3 超參數(shù)取值Tab.3 Hyperparameter value
將本文方法與近年來的先進新聞推薦算法進行對比:如NRMS[3]、TANR[7]、LSTUR[8]、NAML[9]模型,以及基于知識卷積神經網絡的DKN(Deep Knowledge-aware Network for news recommendation)模型[2],這些方法都是基于內容和基于神經網絡的新聞推薦模型,與本文模型相近,這使得對比實驗更具有意義。
模型每批次64 個用戶新聞推薦排序事件,每100 批次為一個epoch,以20 個epoch 的nDCG 與MRR 都未提升作為收斂標志,記錄了收斂時間。對于每個模型均進行了10 次重復實驗,并取各指標的平均值。
如表4 所示,在中文數(shù)據(jù)集中,本文模型具有收斂快、正樣例能獲得權重最高的優(yōu)勢。相較于對比模型,對nDCG 平均提升率為2.59%,提升區(qū)間為-0.22%~4.91%;對MRR 的平均提升率為2.08%,提升區(qū)間為-0.82%~3.48%,與唯一為負的比較模型LSTUR 相比,收斂時間縮短了7.63%。這意味著本文模型對新聞的特征區(qū)分更有優(yōu)勢,是因為本文使用了卷積神經網絡結合注意力機制,可以獲得新聞更細粒度的特征。而nDCG 與MRR 與LSTUR 的值相當,本文模型與LSTUR 同樣使用了CNN 進行新聞表征和GRU 提取新聞關聯(lián)性和時間性,這一方面再次驗證了CNN 在文本表征上的高效性,同時也推測用戶所瀏覽的新聞的時序能夠較好地體現(xiàn)用戶的特征。同時,本文模型在收斂時間上也最具優(yōu)勢,尤其是與同樣使用了多頭自注意力機制的NRMS 模型相比,由于NRMS 在詞匯級上也使用了多頭注意力機制來提取上下文關系,效率上遠低于本文使用的卷積神經網絡。
表4 不同模型在中文數(shù)據(jù)集的實驗結果Tab.4 Experimental results of different models on Chinese dataset
如表5 所示,首先,在英文數(shù)據(jù)集中,本模型的各項指標均是最佳的,相較于對比模型,對nDCG 平均提升率為0.71%,提升區(qū)間為0.07%~1.75%;對MRR 的平均提升率為0.72%,提升區(qū)間為0.03%~1.30%。收斂時間略低于TANR和NAML,這可能是因為本文模型考慮的角度更加全面帶來的計算量的增加。其次,LSTUR 模型與本文模型的評估指標依舊相近,再次驗證了上文的結論。同時,與DKN 模型相比,因為DKN 模型使用了大量的實體導致計算時間大量延長,且DKN 模型沒有使用注意力機制和時序模塊,各項指標也弱于本文模型。最后,模型較LSTUR 增加了注意力機制,能夠使候選新聞中正例的被點擊概率評分更高,體現(xiàn)了本文模型更加具有敏銳性。
表5 不同模型在英文數(shù)據(jù)集的實驗結果Tab.5 Experimental results of different models on English dataset
關于注意力機制在本文模型的有效性驗證,本文控制了單一變量,進行了無注意力機制(no attention)、只有單詞層面注意力機制(words attention)、只有新聞層面注意力機制(news attent)和兩個層面的注意力機制皆有(both attention)四組實驗,在中文數(shù)據(jù)集中的實驗結果如表6 所示。詞匯層次和新聞層次的注意力機制同時存在時較無注意力機制時nDCG 有最大提升率10.33%,MRR 有最大提升率17.97%。由于中文詞義的豐富性以及劃詞的特殊性,實驗結果更具說服力。首先,注意力機制在詞語層面的注意顯著提高了模型的效果,這是因為對單詞之間的相互關系進行建模和選擇重要的單詞可以幫助學習信息豐富的新聞表示;此外,新聞層面的注意力機制也是非常有效的,而且,將詞匯和新聞層面的注意力機制結合起來可以進一步提高本文模型的性能。
表6 不同的注意力機制性能對比Tab.6 Performance comparison of different attention mechanisms
關于使用GRU 來捕捉用戶關注新聞的時序特征來提取興趣變化趨勢,對本文模型做了有無時序預測模塊的對比實驗,并計算出模塊對模型各項指標的提升率,結果如表7所示。
表7 本文模型有無時序預測模塊時的對比實驗結果Tab.7 Comparison experimental results of the proposed model with and without time series prediction module
可以看到,時序預測模塊對模型效果有明顯的提升作用。這可能是因為用戶近期的瀏覽內容更加能表達用戶的特征和偏好,通過時序模塊也能刻畫用戶偏好變化趨勢,起到對未來偏好的預測效果。
綜上,通過中英文數(shù)據(jù)集的各項對比實驗結果表明,本文模型具有優(yōu)良的性能和良好的適應性,高效簡捷;同時,本文方法在計算點擊概率得分時不需要記住用戶的新聞瀏覽歷史,可以通過并行計算注意力機制,使得它也能夠在大規(guī)模場景上也有良好的表現(xiàn)。
本文通過附加注意力機制與卷積神經網絡提取新聞文本的特征,繼而構建添加時序預測的加法注意力機制與多頭自注意力機制結合的用戶特征模型,做到了文本層面對重點詞匯的關注、上下文關聯(lián)的提取、用戶層面對瀏覽記錄的重點新聞關注和新聞相互關聯(lián)的深度提取,最后實現(xiàn)了一個候選新聞預測排序模型。
在未來的工作中,希望加入新聞位置信息與詞匯位置信息參數(shù),提高網絡的精準性與時效性;同時將考慮結合圖神經網絡,挖掘用戶與用戶之間、用戶與新聞之間、新聞與新聞之間的深層關系。