包 晨,袁衛(wèi)華,戴久乾,張志軍
(山東建筑大學 計算機科學與技術學院,山東 濟南 250101)
隨著互聯(lián)網的迅速發(fā)展,各式各樣的信息呈現(xiàn)在用戶面前,從而產生了信息爆炸的現(xiàn)象。作為解決信息過載的有效工具,推薦系統(tǒng)滿足了用戶的需求,在電子商務、社交網絡等眾多領域得到廣泛應用。作為經典的推薦算法,協(xié)同過濾在推薦系統(tǒng)中發(fā)揮著舉足輕重的作用,在眾多協(xié)同過濾技術中,矩陣分解的方法是最常用的,它將潛在用戶特征向量和物品特征向量進行內積表示為用戶在物品上的交互[1]。
近年來,深度學習在圖像處理、自然語言處理等領域取得了突破性的進展,為推薦系統(tǒng)的研究帶來了新的機遇[2]。例如,He等人[3]在神經協(xié)同過濾的框架上進行改進,將用戶的嵌入表示和物品的嵌入表示進行串聯(lián),作為多層感知網絡的輸入向量進行預測。在DeepCF模型[4]中,利用表示學習和匹配函數學習對用戶和物品的交互進行建模,使模型在保持有效學習的同時,提高匹配函數的表示能力。這些方法雖然提高了基于匹配函數學習的靈活性,但是忽略了用戶和物品之間嵌入維度的相關性,而嵌入維度可以是用戶或物品的某個特征,這些特征并非獨立的,未能進一步提高模型的泛化能力。
He等人[5]使用注意力機制解決了上述問題,對物品賦予不同重要性來刻畫其對用戶偏好的影響。LSTM-CFA模型[6]使用協(xié)同過濾算法計算用戶的興趣矩陣,再融合LSTM模型,作為模型注意力機制提取文檔特征,實現(xiàn)情感分類。Cheng等人[7]考慮到一個用戶對不同物品的關注是多方面的,提出了自適應注意力評分預測的方法,計算用戶在物品的不同方面的注意力分數。王等人[8]在特征級注意力框架上,學習項目特征的偏好。雖然這些方法在一定程度能幫助用戶選擇有意向的物品,提高用戶的傾向度,但是它們不能對物品的多個特征進行建模,進而不能捕獲到用戶對一個物品的真實偏好。在實際中,用戶往往會對物品的不同特征賦予不同的權重,以刻畫用戶偏好的多樣性。
針對如何提高用戶和物品之間嵌入維度的相關性、模型的泛化能力及如何在隱式反饋中精確建模用戶對物品的偏好等問題,該文提出了一種新的基于通道注意力的神經協(xié)同過濾算法NCFCA,將用戶嵌入與物品嵌入之間的相關性整合到模型中。該模型主要包括融入注意力機制的匹配函數表示模塊、卷積注意力網絡模塊和廣義矩陣分解模塊。
主要工作如下:
(1)在基于匹配函數學習的基礎上,利用注意力機制探索物品的多種屬性特征對目標用戶選擇的影響,從而挖掘用戶和物品交互的信息。
(2)在卷積神經網絡中整合通道注意力機制(ECA-Net)來捕獲用戶與物品跨通道的交互信息,獲取更豐富的語義信息。
(3)將三個不同模塊融合到一個推薦模型中,提高了模型的泛化能力。
在兩個數據集上進行大量的實驗,結果表明NCFCA模型具有出色的性能,并且優(yōu)于最新的基線方法。驗證了模型的有效性和合理性。
在深度學習中,基于匹配函數學習的協(xié)同過濾[4]是通過已有的各種輸入,在神經網絡框架中進行訓練來擬合用戶和物品的匹配分數。為了更全面地學習用戶物品的映射關系,DDFL深度雙函數模型[9]將度量函數學習模型(MeFL)與匹配函數學習模型結合到一個統(tǒng)一的框架中。由于用戶未來的購買行為可能跟用戶過去的信息有關,也可能與用戶的認知推理有關,NCR模型[10]將用戶過去信息和邏輯運算動態(tài)組合,使之變?yōu)樯窠浘W絡模型進行推薦。DeepFM模型[11]用淺層的矩陣分解(MF)模型和深層的神經網絡(DNN)模型聯(lián)合訓練,能夠同時學習不同階的組合特征。
上述模型基于不同深度學習方法對用戶和物品的初始嵌入進行學習,并未考慮用戶對不同物品的偏好程度。針對這種情況,該文在將用戶和物品的交互輸入向量送入多層感知網絡之前,通過前饋注意力層對物品的特征賦予不同的權重,以區(qū)分它們的重要性。
由于注意力機制可以對深度神經網絡中不同的部分賦予不同的權重,使模型具有良好的性能,其在計算機視覺、自然語言處理[12]等領域得到了廣泛的應用。在推薦系統(tǒng)領域,注意力機制也有了大量的研究[13]。Take等人[14]在隱式反饋協(xié)同過濾的框架下融合了深度注意力機制以及內容無關的歷史行為權重等,使推薦效果明顯提高。He等人[5]發(fā)現(xiàn)用戶歷史記錄的長度存在較大差異,提出在協(xié)同過濾方法中用平滑用戶歷史長度來設計注意力網絡。DGCF模型[15]主要是研究用戶及其嵌入向量如何在動態(tài)圖上通過協(xié)同信息進行表示。Wang等人[16]提出一種多分量圖協(xié)同過濾方法(MCCF),在用戶項目圖中研究用戶潛在的多種購買動機,以便區(qū)分用戶細粒度的偏好。
這些模型利用注意力機制在用戶購買的歷史記錄中獲取對歷史物品的偏好程度。而該文在模型訓練時,利用注意力機制對不同物品特征分配不同的權重,對用戶傾向的物品分配更高的權重,用于提高模型的性能。
在基于CNN的推薦系統(tǒng)研究中,ConvNCF模型[17]中丟棄了NeuMF模型中的串聯(lián)操作,利用卷積網絡來學習用戶-物品的聯(lián)合表示。Yan等人[18]提出一種二維CNN框架(CosRec),該模型用于處理序列化的數據,它將歷史物品進行排列組合,然后利用二維CNN提取序列特征。Samuvel等人[19]提出基于面部情緒識別的音樂推薦系統(tǒng),通過提取一個人不同的面部表情來識別音樂的類型進而將音樂推薦給用戶。在新聞推薦中,Tian等人[20]基于CNN來執(zhí)行從字級對新聞文本內容進行卷積計算,生成新聞內容的嵌入表示。
雖然基于CNN的推薦研究在音樂、新聞、文本推薦方面取得顯著的效果,但是在用戶項目交互時無法捕捉到更深層次的關聯(lián)性,而該文通過在CNN模塊中加入通道注意力機制來捕獲這種關聯(lián)性。
表1總結了文中用到的主要符號及其含義。
表1 文中用到的主要符號
模型的總體架構如圖1所示。模型包括三個模塊,卷積注意力網絡(convolutional neural network with ECA-Net,E-CNN)模塊用于捕獲用戶與物品在跨通道中的交互信息;融入注意力機制的匹配函數學習(attention-based matching function learning,A-MLP)模塊用于提高深度神經網絡的表示能力;廣義矩陣分解(generalized matrix factorization,GMF)用于緩解因用戶物品交互時產生的數據稀疏問題。
圖1 模型的結構體系
(1)
(2)
計算物品的不同特征屬性對用戶u購買行為的影響,即物品特征屬性對用戶的重要性。使用注意力函數f∈RK×1:
f(pu,qi)=ReLU(W(pu⊙qi)+b0)
(3)
其中,W∈RK×K表示輸入層到隱藏層的權重矩陣,b0為偏置向量,ReLU代表激活函數。注意力網絡中值越大,則用戶u對物品i的某個特征屬性越感興趣。利用SoftMax函數將得到的注意力權重轉換為概率分布,其注意力系數為:
(4)
其中,Ru是用戶u和物品i的交互歷史集合,α(u,i)∈RK×1表示用戶u和物品i的注意力權重。
最后的基于多層感知網絡的匹配函數學習部分定義為:
(5)
(6)
(7)
(8)
其中,x0∈R2K×1表示多層感知網絡的輸入向量,{x1,x2,…,xn}表示在隱藏層中對應的輸入輸出向量,{W1,W2,…,Wn} {b1,b2,…,bn}代表每一層的權重矩陣和偏置向量。xn為最后的預測向量。利用前饋注意力層來學習物品不同特征維度的不同重要性。
為了加強用戶和物品之間的相關性,使用CNN來學習其嵌入維度之間的高階相關性并減少網絡中嵌入層和隱藏層之間的參數。在卷積神經網絡加入通道注意力機制來加強用戶和物品在網絡中的語義信息。ECA-Net注意力網絡[21](Efficient Channel Attention for Deep Convolutional Neural Networks)能夠避免卷積神經網絡中特征維度的降維操作并且能增加通道之間的信息交互。
首先,模型計算用戶嵌入和物品嵌入的外積作為它們的交互表示:
(9)
其中,FM∈RK×K,每一個元素可以表示為fmk1,k2=pu,k1qi,k2。通過外積操作得到二維的矩陣,再將該矩陣通過Flatten操作拉成一個維度為K2的向量。
基于CNN的協(xié)同過濾研究中通常采用CNN來提取用戶和物品之間的高階交互。該文創(chuàng)新性地將其擴展,在CNN的基礎上添加了E-CNN組件。圖1中的E-CNN模塊由兩部分組成。首先,將用戶和物品交互表示輸入到卷積神經網絡中,通過6層隱藏層卷積訓練,其中每一層設置64個通道,卷積核為2×2,步長為2,這樣每一層得到的結果形狀為上一層的一半。其次,當訓練到最后一層時,卷積塊形狀為1×1×64,將ECA-Net注意力網絡加入到卷積塊之間。在每個卷積塊之間通過全局平均池化操作后產生1×1×C的特征圖,然后使用一維卷積核進行卷積操作,用Sigmoid函數學習通道注意力,定義通道維度為64維,通道之間的用戶和物品信息的交互w:
(10)
w=Sigmoid(C1D(y))
(11)
其中,C1D表示一維卷積,y表示全局平均通道池化。在卷積神經網絡中,最后一層卷積層的輸入定義為一個三維張量并與ECA-Net注意力網絡進行結合,在每一個FM中整體的隱藏狀態(tài)fm為:
h=(fm2u+a,fm2i+b)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
由于廣義矩陣分解模型[1]使用線性嵌入函數作為表示函數,使用點積作為匹配函數。在NCFCA中添加廣義矩陣分解模塊(GMF)以緩解深度神經網絡在訓練時可能導致的數據稀疏性問題。直接對用戶u和物品i的嵌入向量進行點乘操作,即預測向量定義為:
z(pu,qi)=pu⊙qi
(19)
其中,⊙表示用戶的嵌入向量pu和物品的嵌入向量qi的逐元素乘積。
(20)
將三個模塊E-CNN、A-MLP、GMF學習到的表示進行拼接得到其聯(lián)合表示,將該向量看作是用戶-物品對特征表示,然后將其輸入到一個全連接層,使模型能夠為聯(lián)合表示中不同部分的特征分配不同的權重。融合模型的輸出定義為:
(21)
(22)
(23)
使用Sigmoid作為全連接層的激活函數。通過公式(21)(22)(23)將三個子模塊進行合并,通過學習得到模型的預測分數。
(24)
在模型中使用交叉熵作為損失函數并且使用“Adam”優(yōu)化器來對模型進行優(yōu)化。
實驗使用數據集MovieLens 1M[22]和Lastfm[4]來評估所提模型。MovieLens 1M數據集中有6 040個用戶對3 952部電影進行評價,其中每個用戶至少對20部電影進行評分,數據集中還有電影類型、電影時長等屬性信息。Lastfm是一個關于用戶聽歌序列的數據集,它有兩個文件,聽歌記錄與用戶信息。前者為近1 000位聽眾截至2009年5月5日的所有音樂播放記錄、播放時間,以及音樂名字、藝人名字等輔助信息。
使用命中率(HR)[23]和歸一化折扣累計增益(NDCG)[13]來評估模型的排名性能。命中率(HR)是基于召回的度量,在推薦方面的準確性進行衡量,能夠直觀地測量測試物品是否存在排名列表的前K名中。NDCG是衡量物品排名的質量,對被推薦的物品進行效果評估,分配更高的分數,以達到在前K個物品列表的靠前排名。這兩個評估指標都是值越大,表示性能越好。HR和NDCG的定義如下:
(25)
(26)
其中,#hits表示推薦列表中出現(xiàn)測試物品的用戶數量,#users表示物品的總數。pi表示第i個用戶的真實訪問值在推薦列表的位置,若推薦列表中不存在該值,那么pi→∞。
將NCFCA與下面七種方法進行比較:
BPR[23]:用于隱式反饋的項目推薦,是一種基于樣本的優(yōu)化矩陣分解模型的方法,具有成對排序損失。
DMF[24]:是一種基于表示學習的矩陣分解方法,采用雙路徑神經網絡結構來代替常規(guī)矩陣分解中的線性嵌入操作。
MLP[3]:是一種基于匹配函數學習的協(xié)同過濾方法,它使用多層非線性網絡來建模用戶和物品之間的關系。
NAIS[5]:使用注意力機制的基于項目的多層感知器協(xié)同過濾推薦模型,模型中設計的注意力網絡能夠區(qū)分在用戶購買的歷史記錄中商品的重要程度。
NeuMF[3]:是一種先進的基于匹配函數學習的矩陣分解方法,它結合矩陣分解方法和深層神經網絡來學習交互函數。文中不使用預訓練數據。
DeepCF[4]:是一種將表示學習與匹配函數結合的協(xié)同過濾方法。文中不使用預訓練數據。
BCFNet[25]:在DeepCF的基礎上加入平衡模塊來緩解深度神經網絡中的過擬合問題。文中不使用預訓練數據。
表2列出了NCFCA模型以及其他模型比較結果,文中模型最佳結果使用粗體加以表示。
表2 基于NDCG@10和HR@10的不同方法的結果比較
可以看出,在神經網絡模型中,MLP模型的性能僅優(yōu)于傳統(tǒng)的基于表示學習方法的模型DMF,因為其模型用深度神經網絡的非線性特性來學習用戶和物品的嵌入表示。NAIS模型引入注意力機制對比MLP模型在效果上性能有所提升。NeuMF模型為了提高網絡的表達能力,利用用戶和物品的嵌入表示進行串聯(lián),然后作為多層感知器模型的輸入進行預測,整體上該模型性能有所提升。DeepCF模型結合表示學習和匹配函數學習的協(xié)同過濾方法,增強了用戶物品特征交互的能力,但數據集較小時會到導致模型性能變差。BCFNet模型加入平衡模塊來緩解深度神經網絡中的過擬合問題,但模型性能并不是很好,筆者認為可能是數據未進行初始化訓練導致的。
NCFCA模型利用深度卷積神經網絡提取用戶物品的高階特征之外,使用先進的通道注意力網絡來捕獲用戶和物品在通道之間的信息交互。跟DeepCF模型相比,文中模型在兩個數據集上分別提高了大約2.50%、2.63%和2.18%、1.60%。這充分表明引入通道注意力機制的CNN能更好地學習用戶物品嵌入維度之間的相關性。
3.5.1 TOP-K的影響
Top-K推薦性能隨K不同取值的變化趨勢如圖2所示。其中HR@K的精度用左縱坐標軸表示, NDCG@K的精度用右縱坐標軸表示。
(a)ML-1M數據集下的Top-K推薦排名 (b)Lastfm數據集下的Top-K推薦排名圖2 評估Top-K推薦排名
在MovieLens 1M數據集上,隨著K值的增加,NCFCA及其他算法性能逐漸增加,且NCFCA性能優(yōu)于其他三種方法;當K大于5時,NCFCA的Top-K推薦性能與其他三種算法相比有了比較顯著的提高。如圖2(a)所示,當K等于10時,模型NCFCA的HR相比DeepCF、BCFNet、NeuMF分別提高了大約1.82%、1.79%和2.42%,在NDCG指標上相對提高了大約1.73%、1.44%和2.27%。
在Lastfm數據集上,如圖2(b)所示,文中模型相對于其他模型也有較好的表現(xiàn)。這說明文中模型在卷積塊之間添加通道注意力模塊后交互變得更有關聯(lián)性,能夠更加準確地捕獲交互的特征表示。
3.5.2 不同嵌入維度對模型性能的影響
在加入一層通道注意力時驗證NCFCA中不同嵌入維度對模型性能的影響。
表3顯示了模型在嵌入維度取值為[8,16,32,64,128]的性能對比??梢钥闯?在維度為32時,模型性能略微下降的原因可能是模型在訓練過程中出現(xiàn)了過擬合現(xiàn)象。在維度大小為64時,模型在兩個數據集上的性能最佳。在維度大小為128時,模型性能開始下降,其主要原因是網絡的復雜化影響了模型的性能。通過合適的嵌入維度模型能更加有效地挖掘用戶與物品豐富的語義信息,更加精準地捕獲用戶和物品的特征表示,使模型具有良好的表達能力。
表3 NCFCA模型在不同嵌入維度下的性能
3.6.1 不同通道注意力層數對模型性能的影響
該文進一步研究了通道注意力層數對模型的影響,分別在[0,1,2,3,4,5,6]層通道注意力進行實驗,將模型表示為NCFCA-0到NCFCA-6,其中0層表示不使用通道注意力。
如圖3所示,NCFCA使用一層通道注意力(NCFCA-1)時,在HR@10時其效果都優(yōu)于其他的通道注意力模型NCFCA-0,NCFCA-2到NCFCA-6。
圖3 基于HR@10的通道注意力層數對模型性能的影響
隨著通道注意力層數的增加,HR@10呈下降趨勢。這可能是因為,隨著通道注意力層數的增加,卷積神經網絡中的神經元參數也會隨之增加,可能會導致網絡變得復雜化,降低了網絡的泛化能力,因此在加入多層通道注意力時并沒有得到預期的效果。
3.6.2 不同模塊的效果
模型在兩個數據集上與不同模塊進行對比,在HR@10上的結果如圖4所示。NCFCA模型中的E-CNN、A-MLP以及GMF三個模塊是能夠獨立訓練的??梢钥闯?結合之后的模型(NCFCA)性能是優(yōu)于其他三個模塊的。GMF在單獨訓練時性能表現(xiàn)最差,這個因為僅僅利用內積來擬合用戶的興趣會限制模型的表達能力。從側面也體現(xiàn)了文中模型的有效性。
圖4 基于HR@10的不同模塊的效果
該文提出了一種結合深度學習和高效通道注意力機制的神經協(xié)同過濾算法,其在電影數據集和音樂數據集上的隱式反饋問題進行處理。模型中的基于匹配函數表示學習的注意力網絡分配不同的權重對不同類型物品對用戶選擇的影響;而在另一部分則通過卷積神經網絡對用戶和物品的交互信息中提取高階特征,并在卷積神經網絡中加入高效通道注意力機制對網絡的特征維度進行降維操作以及增加通道之間信息的交互。在MovieLens 1M、Lastfm數據集上進行實驗驗證,該模型對提高推薦精度有著一定的效果。在今后的工作中,將考慮在其他神經協(xié)同過濾模型中擴展本模型,進一步提高推薦系統(tǒng)的質量。