胡德敏,光 萍
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著互聯網規模和數字信息資源的增長,信息數量呈幾何級數激增,使得人們難以快速、準確地從海量的信息資源中尋找所需的信息。推薦系統是可以有效解決信息過載問題的重要技術手段,通過對用戶行為數據分析和建模,預測并推薦用戶可能感興趣的產品。Top-n推薦作為推薦系統的場景之一,利用用戶對物品做出的反饋記錄,為用戶推薦一個可能感興趣的包含n個物品的列表,如學術頭條對論文的推薦、網易云課堂對課程的推薦,其少量準確的推薦更符合用戶的選擇習慣,因此近年來Top-n推薦已逐漸成為推薦領域內的研究熱點。
Top-n排序模型基于學習排序(Learning to rank,LTR)的思想,分為單文檔方法、文檔對方法和文檔列表方法,分別從不同角度綜合考慮多個排序特征,來對若干物品進行排序,其中心問題是如何有效準確地捕捉用戶興趣,以提高推薦物品列表的排名質量。大多數現有的Top-n推薦模型將用戶的正反饋信息,即用戶-物品交互中點擊或購買的行為序列作為輸入,卻忽略了用戶負反饋信息,即更加豐富的未點擊曝光物品,最終生成的推薦列表趨于同質化和趨熱化,損害了用戶體驗。在完整的用戶反饋信息中,未點擊的物品占相當大的份額,能夠作為輔助信息補充點擊行為。
一些研究建模物品之間的相互影響,再次調整Top-n排序模型給出的候選列表,被稱為重排序方法。各種重排序模型[1-2]基于Transformer 網絡結構,應用自注意力機制和可并行計算的特點,實現了在常量距離內高效建模列表中任意物品之間的相互影響。受這些重排序研究的啟發,本文基于Transformer 編碼器,將Top-n推薦生成的候選列表作為部分輸入,首次在重排序過程中額外集成用戶負反饋信息,構建一個重排序推薦模型(Re-ranking recommender integrating user negative feedback,NRR),用來解決現有的Top-n模型忽略用戶負反饋信息的問題。
各種Top-n推薦模型[3-4]分為單文檔方法、文檔對方法[5-6]和文檔列表方法[7-9]三類。其中,單文檔方法將推薦任務視為一個二元分類問題,借助手工特征工程,全局學習給定的用戶-物品對的評分函數,但忽視了候選物品集合中不同物品之間的差異和相互影響,為了解決這一問題,文檔對方法模型和文檔列表方法模型的研究逐漸受到多方關注。文檔對方法將2 個物品之間的先后順序關系納入研究,但沒有考慮物品在整個排序列表中的位置信息和相關物品的數量差異。而文檔列表方法的思想是對所有訓練實例進行訓練得到最優的評分函數,對于一個新的查詢請求,評分函數會對每一個物品進行打分并重新做排序。雖然文檔列表方法彌補了單文檔方法與文檔對方法的不足,但現有的文檔列表方法通常只依賴用戶的正反饋信息進行推薦。
近年來,一些研究者提出重排序模型,通過調整上述Top-n模型生成排名列表。Ai 等人[10]使用單向GRU[11]將整個列表的信息編碼到每個物品的表示中。Zhuang 等人[12]使用LSTM[13]不僅對整個排名列表信息進行編碼,而且還通過解碼器生成重排序列表。對于使用GRU 或LSTM 對物品相關性進行編碼的方法,存在編碼空間的長距離依賴性的問題,Pei 等人以及Chen 等人提出基于Transformer[14]的PRM 模型和BST 模型,應用自注意力機制和并行計算的優勢,高效地學習用戶興趣。
Top-n推薦的任務是根據歷史記錄中的用戶與物品的交互序列,從中學習用戶的興趣偏好,挑選出用戶可能感興趣的包含n個物品的推薦列表。研究中,Top-n推薦通過對候選物品集合中的每個物品進行評分來輸出一個有序列表,并使用式(1)的損失函數來訓練整個Top-n推薦模型:

其中,R是所有用戶的查詢集合;Ir是對應某次查詢r∈R的候選物品集;xi是物品i的特征向量;yi是對應物品i的標簽(點擊與否);p是基于Top-n模型的所有參數θ計算出的點擊物品i的概率;l為該次計算的損失。
而本文的重排序推薦模型則是額外利用用戶的負反饋信息,對Top-n推薦生成的初始列表的物品重新排序,即給定Top-n推薦生成的候選列表Sinit =[i1,i2,i3…,in],通過本文的重排序模型NRR,將其調整為最終列表Sre-rank =[j1,j2,j3…,jn].本文NPRR 模型的全局損失函數定義為:

其中,表示包含用戶負反饋行為序列,表示重排序推薦模型的參數集合。
NRR 模型的體系結構如圖1 所示。由圖1 可知,該模型包含特征融合模塊、Transformer 模塊和預測模塊三個部分,可將Top-n推薦生成的候選列表作為輸入,輸出重新排序的列表。對此擬展開研究分述如下。

圖1 NRR 模型整體框架圖Fig. 1 Overall framework diagram of NRR model
2.2.1 特征融合模塊
特征融合模塊的工作是獲取初始推薦列表的特征嵌入、用戶負反饋行為特征嵌入,并進行特征融合,得到完整的用戶行為特征嵌入。文中給出各流程步驟的闡釋解析如下。
(1)用戶正反饋行為特征。大多數傳統Top-n推薦方法基于用戶的正反饋行為,在t時刻輸出一個特定長度為n的推薦列表Sinit提供給用戶。本文選取某種基于用戶正反饋的Top-n推薦模型作為基礎推薦器(Basic Recommender,BR),輸入推薦列表Sinit,獲取對應的表示用戶正反饋行為的特征矩陣:

其中,eu是用戶嵌入向量,θ表示Top-n模型的所有參數。
(2)用戶負反饋行為特征。本文使用門控圖神經(GRU)網絡提取用戶負面偏好。相比傳統的序列模型RNN,GRU 解決了RNN 的梯度消失和梯度爆炸問題,同時相對于LSTM,GRU 的參數數量更少,訓練收斂速度更快,本文選擇GRU 抽取用戶負反饋行為特征。GRU 結構如圖2 所示。

圖2 GRU 單元圖Fig. 2 Diagram of GRU unit

(3)特征融合。特征融合的目的是不同角度的用戶行為中提取的特征,合并成一個具有更精準判別能力的特征。Lv 等人[15]提出一種融合門(fusion gate)單元來融合用戶的長短期偏好特征進行推薦,受該研究啟發,本文基于門單元思想構建一個特征融合單元,來結合用戶負反饋特征與負反饋特征,獲得完整的用戶行為特征表示,特征融合單元結構如圖3 所示。

圖3 特征融合單元結構圖Fig. 3 Diagram of feature-fusion unit structure
具體來說,給定用戶正負反饋行為特征,首先使用一個帶Sigmoid激活的門控向量來控制兩者的權重,見公式:

其中,eu為用戶嵌入向量;b為偏置項;W1,W2,W3為權重矩陣。
基于門控向量,得到完整的用戶行為特征:

2.2.2 Transformer 模塊
考慮到交互序列中物品的順序性,即當前時刻推薦給用戶的物品列表排名位置會對用戶下一時刻交互的物品產生影響。本文使用Transformer 網絡來集成物品位置信息與完整的用戶行為特征。
首先本文將完整的用戶行為特征與物品位置信息pet連接,作為Transformer 網絡的輸入向量E':

這里,pet可由如下計算公式來求?。?/p>

其中,pos是物品在推薦列表中的位置;i是物品維度;dmodel是物品嵌入向量的維度大小。
本文構建的Transformer 模塊包含N塊并行的Transformer 編碼器(encoder),Transformer 編碼器結構見圖4,每個編碼器包含一個注意力層和一個前饋網絡(FFN)層,使用的注意力函數如下:

圖4 Transformer 編碼器結構圖Fig. 4 Diagram of Transformer encoder structure

其中,Q、K、V分別表示查詢、鍵和值,d是矩陣K的維數。
為了模擬更加復雜的物品交互影響,本文中自注意力層將最終嵌入矩陣E'作為輸入,通過線性投影操作將其轉換為3 個矩陣,輸入到多頭自注意力層,如式(10)所示:

其中,WQ,WK,WV∈Rd×d為3 個投影矩陣,h為多頭自注意力的頭數。
接下來,本文利用point-wise 式前饋網絡FFN的非線性特性,來增強模型的效率,見下式:

為了避免過擬合,本文同時在注意力層和FFN中使用dropout和LeakyReLu激活函數,注意力層和前饋網絡的輸出分別為:

其中,W(1),b(1),W(2),b(2)為可學習的參數矩陣。
為了建模交互序列背后的復雜信息,至此本文并行堆疊N塊Transformer 編碼器來提升計算效率。其中,第b塊的定義見下式:

2.2.3 預測模塊
預測模塊的任務是為初始推薦列表Sinit中的每個物品重新生成一個分數,獲得重排序列表Sre-rank。由圖2 可看到,本文使用一個softmax層計算輸出每個物品的點擊概率p(yi,pet |θ'),作為其最終的分數,研究推得的數學公式可寫為:

其中,F(N)是第N塊Transformer 編碼塊的輸出;bF是偏差項。為進行模型訓練,本文使用交叉熵損失:

其中,D表示樣本空間;y∈(0,1)為用戶是否點擊物品的標簽;p(x)是softmax層的輸出。
本文采用Movielens-100k 數據集進行實驗。Movielens-100k 數據集包含鏈接、電影、評分和標簽四個主要文件,其中評分文件包含了每位用戶對若干部電影打出的評分,時間段為1997-09~1998-04,本文基于每位用戶的交互數據,按照時間順序,以80%作為訓練集,20%作為驗證集,并使用訓練集中的后10%作為測試集來評估模型的推薦效果。
本文使用AdaGrad 作為優化器,初始學習率設置為0.001,衰減率設置為0.9.對于長度相似序列批量大小batch size設置為128,更新迭代次數為100次,每25 個epoch后學習率衰減。實驗中各種輸入數據的處理、融合網絡以及Transformer 編碼器的構建均采用Python 語言來實現。具體硬件環境為:CPU 選用Intel Xeon E5-2669 v3,內存選用32 GB,顯卡選用NVIDIA Geforce GTX 2060 Ti 兩張,Window10 系統。
推薦系統每一時刻向用戶展示一個可能感興趣的物品列表,其中未被用戶點擊的物品包含了用戶的負反饋信息。在數據收集過程中,一個關鍵的任務是篩選合適的未點擊物品,未點擊物品的數量通常比點擊物品大得多,本文使用以下定義的過濾規則來挑選未點擊數據,具體如下:
(1)選擇在過去3 天內展示給用戶、但未被點擊的物品。
(2)在上述未被點擊的物品中,只保留向用戶公開超過k(本文取k =1)次的未點擊物品。
本文選擇這些物品作為每位用戶的負反饋序列,未點擊序列的最大長度被設置為50。
本文使用Precision@k和AUC兩個指標來評估模型推薦性能??勺鲋攸c闡述如下。
(1)Precision@k。表示在Top-n推薦的所有測試樣本中,每檢索k個物品,包含相關物品數量所占的比例,數學計算公式具體如下:

其中,R是測試數據集中所有用戶請求的集合;Sr是重排序模型給出的有序物品列表;函數I用來判斷第i個物品是否被用戶點擊。
(2)AUC。衡量了模型對樣本正確排名的能力,其值越大,說明模型的排名能力越好,數學計算公式具體如下:

其中,insi表示第i條樣本;M和N分別表示正樣本個數和負樣本個數;positiveclass表示正樣本類別。
在本文中為了進一步驗證一些擬議模塊的有效性,進行了消融對比實驗。首先使用Wide&Deep 模型作為基礎推薦器,生成初始推薦列表,接著設計3種對比結構,訓練 50 個epoch,并在AUC和Precision@k(k =5,10)指標上比較性能。各結構的內容表述見如下。
(1)對比結構A:本文模型NRR。
(2)對比結構B:本文模型NRR 去除物品位置信息pet,考慮戶負反饋信息nu,用NRR-pet表示。
(3)對比結構C:本文模型NRR 去除用戶負反饋信息nu,考慮物品位置信息pet,用NRR-nu表示。
消融對比模型性能評價結果見表1。由表1 分析可知,忽視用戶負反饋信息后,本文模型的性能大大降低,在Precision@5 上的降幅是最顯著的,達到10.43%,這表明將用戶負反饋信息納入NRR 模型的重要性。當去除物品位置信息時,3 項指標略微降低,由此則表明考慮物品位置信息也能在一定程度上提升模型的性能。

表1 消融對比模型性能評價表Tab.1 Performance evaluation table of ablation comparison models
本文實驗將NRR 模型與主流重排序模型在AUC和Precision@k(k =5,10)進行了對比,用于生成初始推薦列表的Top-n模型有GRU4REC 和Wide&Deep 兩種,用于對比的重排序模型分別為MIDNN、DLCM 和PRM,下文是對5 種模型的簡要介紹:
(1)GRU4REC[16]:基于會話的采用多層GRU單元小批量地學習用戶偏好。
(2)Wide&Deep:結合簡單模型的“記憶能力”與深度神經網絡的“泛化能力”。
(3)MIDNN:利用復雜的手工特征提取輸入列表信息。
(4)DLCM:首先采用GRU 將輸入的排序列表編碼為一個局部向量,然后將全局向量和每個特征向量相結合,學習一個全局評分函數,用于重排序列表。
(5)PRM:應用自注意力機制,捕獲輸入排名列表中物品之間的相互影響。
各對比模型的性能評價結果見表2。表2 顯示,與3 種基線模型相比,本文的NRR 模型實現了顯著的性能改進?;贕RU4REC 生成的候選列表,與3 種基線模型相比,NRR 在AUC上平均提升5.58%,在Precision@5上平均提升8.75%,在Precision@10 上平均提升6.68%;基于Wide&Deep生成的初始列表,與3 種基線模型相比,NRR 在AUC上平均提升7.72%,在Precision@5 上平均提升9.59%,在Precision@10 上平均提升6.70%。

表2 對比模型性能評價表Tab.2 Performance evaluation table of comparison models
本文提出了基于Transformer 的融合用戶負反饋的重排序推薦方法來對傳統的Top-n推薦方法生成的初始列表進行重新排序。在NRR 重排序模型中,本次研究中建模用戶未點擊的物品序列來豐富用戶行為特征表示,并使用Transformer 編碼器整合用戶特征和物品的位置信息。實驗表明,NRR 模型與幾種流行的重排序模型相比有顯著的性能提升。
用戶負反饋信息盡管較為豐富,但是存在一定的噪聲。如何對負反饋進行降噪處理來提升NRR模型的性能將是未來工作的研究重點。