林 幸 邵新慧
(東北大學理學院 遼寧 沈陽 110819)
隨著科學技術的不斷進步,用戶獲得和瀏覽信息的方式產生了翻天覆地的變化,信息量呈爆炸式增長,帶來了信息過載問題,這種問題使人們對有效信息的篩選變得十分困難。為解決以上難題,推薦技術的應用逐步進入了人們的生活,通過利用用戶與項目的歷史交互數(shù)據,對用戶未觀測到項目的感興趣度進行預測,并對預測結果進行排序,并推薦給相關用戶。
1994年基于商品的協(xié)同過濾算法首次由Resnick等[1]提出,其原理簡單,效果顯著,是目前為止在推薦系統(tǒng)領域應用最廣的技術。傳統(tǒng)的協(xié)同過濾算法主要分為基于用戶的協(xié)同過濾UserCF、基于物品的協(xié)同過濾ItemCF[2]和基于模型的協(xié)同過濾和依托于機器學習模型的協(xié)同過濾,通過對模型進行離線訓練和優(yōu)化,在線進行推薦。盡管協(xié)同過濾算法在應用領域已經取得了巨大的成功,但是對于解決數(shù)據冷啟動和數(shù)據稀疏性問題仍然面臨著巨大的挑戰(zhàn)。深度學習利用海量的數(shù)據,挖掘并學習用戶和物品之間的深層交互信息,能夠提高推薦的準確率。因此,目前研究基于深度學習的協(xié)同過濾方法成為了一個熱門的問題。
在2016年召開的ACM學術會議中,成功舉行了第一屆基于深度學習的推薦系統(tǒng)專題研究討論會,提出深度學習的重要研究方向。近年來,深度學習與推薦相結合的學術論文在各個領域的頂級學術會議中也逐漸增多[3-5]。由于傳統(tǒng)的推薦系統(tǒng)無法挖掘用戶與電影之間更深層次之間的關系,同時也無法解決數(shù)據稀疏性的問題,圖神經網絡將用戶與物品之間的交互信息作為二部圖傳入到神經網絡中可以更好地解決數(shù)據稀疏性的問題,且通過用戶與物品之間的連通關系能夠讓用戶與物品的特征表示更加的具體。
因此,本文提出一種結合注意力機制的圖神經網絡模型來解決推薦算法中存在的問題。通過用戶與物品的歷史交互行為數(shù)據,對用戶與物品之間建立二部圖,挖掘它們之間的高階連通性,并且在模型中引入注意力機制,對不同層之間的特征表示賦予不同的重要程度,使得用戶的特征表示包含了對不同層物品的偏好程度,而物品的特征表示也包含了對不同層用戶行為的偏好,豐富了特征表示,從而改善了模型的性能。
在20世紀90年代首次在視覺圖像領域提出了注意力機制的概念,但是真正讓其變得熱門是在2014年Mnih等[6]提出了一個新的注意力視覺模型,它能夠將視網膜集中在相關的區(qū)域上,并且忽略不重要的信息從而進行圖像分類。Bahdanau等[7]將注意力機制應用到機器翻譯中,是第一次將注意力機制應用在自然語言處理領域中。注意力機制因其具有捕獲特征之間不同重要性的能力而被廣泛應用在各個領域。同時2017年出現(xiàn)大量注意力機制與推薦系統(tǒng)相結合的論文,Wang等[8]將注意力機制應用到新聞推薦中,將新聞的文本內容作為輸入,考慮新聞數(shù)據具有的時序特點,應用注意力機制考慮了不同時間對新聞有不同的影響程度,最終的輸出為是否會對該新聞進行推薦。Seo等[9]提出基于局部和全局的雙層注意力機制的CNN模型,利用商品的評論和評分數(shù)據進行建模,最終得到推薦結果。Chen等[10]認為用戶的正向反饋數(shù)據并不一定是對該項目的喜愛,例如朋友圈點贊數(shù)據,可能僅僅是因為大家都點贊所以用戶也進行同樣的操作。根據上述的現(xiàn)象提出利用對不同層級的反饋分配不同的權重,根據用戶的喜好進行建模。Zhou等[11]在阿里的商業(yè)廣告CTR預測中引入注意力機制來更精準地捕獲用戶的興趣點。
近年來圖神經網絡迅速發(fā)展,已經成為了深度學習中最熱門的技術之一。Kipf等[12]在2017年的ICLR會議中首次提出GCN的概念,GCN是CNN的變體,用于處理基于圖的數(shù)據。基于圖表示的學習模型,通過堆疊多層卷積聚合運算和非線性激活運算得到最終特征表示。近兩年有很多的學者在基于協(xié)同過濾的推薦系統(tǒng)中,通過將用戶與物品之間的歷史交互行為視為二部圖,利用GCN捕獲了用戶與物品之間更高層次的協(xié)作信號。這些基于GCN的推薦系統(tǒng)與傳統(tǒng)的推薦系統(tǒng)相比,性能更加優(yōu)越。Rianne等[13]提出了一個圖自動編碼器,其中包含了一個卷積層,通過在雙向用戶項上傳遞消息來構建用戶和項目的嵌入。Ying等[14]提出結合圖卷積與隨機游走的方法,生成了同時包含項目與用戶節(jié)點特征的信息,進一步改善了模型的魯棒性和收斂性。Wang等[15]設計了一個新的嵌入傳播層可以根據用戶與項目之間的高階連通性,捕獲它們之間的高階協(xié)作信號。但在通過卷積進行信息聚合運算后,沒有考慮到不同層輸出的表示特征之間的相關性。因此,本文引入注意力機制為不同層之間的信息賦予不同的重要性,在進行卷積信息聚合后對不同層之間的特征進行注意力層的操作才可以使節(jié)點的最終特征表示更加完善。
本文的模型框架如圖1所示,分為特征初始化,嵌入傳播層和預測層。
圖1 模型整體框架圖
在大多數(shù)的推薦中直接將初始特征輸入到預測層,得到預測評分。而本文將ID信息作為初始特征,通過嵌入傳播層,可以更好地捕獲協(xié)同過濾信號。初始特征表示如下:
E0=[ea1,ea2,…,eaM,ei1,ei2,…,eiN]
(1)
式中:M表示用戶的數(shù)量;N表示項目的數(shù)量。
我們將設計一種嵌入傳播層,用以捕獲在圖結構中的協(xié)同過濾信號,首先介紹單層嵌入傳播層,對于用戶-項目之間的信息傳遞表示為:
用戶對用戶本身之間的信息傳遞表示為:
通過匯總所有鄰居節(jié)點的特征表示完成最終的表示學習,信息聚合的公式如下:
式中:ea為用戶a匯總鄰居節(jié)點的信息之后的特征表示,LeakyReLU為激活函數(shù),在信息傳遞過程中通過拉普拉斯范數(shù),使得不同的節(jié)點對同一用戶具有不同的重要程度,也使得信息傳遞過程中增強了模型的表示能力,使得模型性能得到提升。用矩陣的形式表示各層之間的信息傳遞,公式如下:
式中:El表示第l層的特征表示;El-1表示上一層的特征表示;L表示拉普拉斯矩陣;I為單位矩陣;A是鄰接矩陣;D是度矩陣。
本文設計一個注意力層,在模型中每一個嵌入傳播層都會輸出一個新的節(jié)點的表示特征,我們利用注意力機制對不同層之間的特征進行加權,然后再與原始特征進行串聯(lián)操作。由實驗結果可以看出進行加權后的模型效果更好,可以學習到更好的表示特征。具體公式如下:
式中:
式中:
對于推薦模型,最終用戶對電影的預測偏好由用戶-項目之間的交互特征表示。具體公式如下:
由于數(shù)據是隱式數(shù)據,對于同時出現(xiàn)的兩個項目,需要知道用戶會更傾向于哪個項目,也就是學習用戶對不同項目的偏好。對不同的項目一定存在不同的優(yōu)先級,對于用戶有歷史交互行為的項目應該比沒有歷史交互行為的項目得到的預測值要高。BPR是目前在推薦系統(tǒng)領域廣泛使用的基于成對數(shù)據的損失函數(shù)[16]。通過損失函數(shù)最小化的方法更新模型的參數(shù)。其表達式如下:
數(shù)據采用的是在推薦領域十分常見的公開數(shù)據集,即由UCI開發(fā)的MovieLens 1M用戶電影評分數(shù)據集,并且保證了每個用戶對不同電影進行評分的數(shù)據至少有20條。原始的數(shù)據中包含了用戶和電影編號,用戶對電影的評分以及時間戳字段,其中評分數(shù)據為1-5分,其中包含了3 952部電影,6 040個用戶和1 000209條評分數(shù)據,并且數(shù)據存放在csv文件中。由于本文只需考慮用戶對電影的歷史交互行為,所以對原始數(shù)據進行處理,僅保留用戶編號、電影編號和評分數(shù)據,并且原始的評分數(shù)據為顯式數(shù)據,需要將評分數(shù)據全部轉換為隱式數(shù)據。將所有評分為1-5分的電影評分轉換為1,而未進行電影評分的數(shù)據記為0。其中0代表用戶沒有觀看過該電影,1代表用戶對電影進行過評分。并且將數(shù)據的80%作為訓練集,20%作為測試集。
此次實驗采用Linux操作系統(tǒng),PyTorch 1.1.0框架。平臺硬件參數(shù)如下:Intel Core i7- 8550處理器,內存大小為16 GB,主頻2.0 GHz。
在本文的實驗中,采用小批量adam算法優(yōu)化模型[17],對于參數(shù)初始化使用的是Xavier,它具有計算效率高,能較好處理稀疏梯度等優(yōu)點。為了防止模型發(fā)生過擬合現(xiàn)象,在神經網絡中添加了Batch Normalization和dropout。BN是指使在模型訓練過程中,使得每一層的輸入均服從標準正態(tài)分布。dropout是指在訓練神經網絡的過程中,按照指定的比例從神經網絡中將部分神經元暫時舍棄。本文的batch size為4 096,embed size為64。超參數(shù)根據網格搜索的方法選取最優(yōu)值。dropout值在[0.1,0,2,0,3]之間進行調整,取0.1時為最優(yōu);學習率在[0.000 1,0.000 5,0.001]中進行調整,0.000 1為最優(yōu)選擇;L2正則化的系數(shù)在[10-5,10-4,10-3]之間進行取值,為10-5時為最優(yōu)值。
對于實驗結果評價,采用三個評價指標進行模型效果評估。準確率(Precision)和召回率(Recall)可以用來評判模型整體推薦結果的質量。NDCG表示歸一化的折損累積增益,可以用來衡量推薦順序的質量。三個指標均是值越大代表推薦的效果越好。
(1) 準確率的計算公式如下:
式中:K表示根據用戶a做出的推薦列表中有K項,N表示用戶的總數(shù),d表示在給用戶a推薦的K個電影中,用戶對其有過觀看記錄的數(shù)量。
(2) 召回率表示在最終的推薦列表中存在評分行為的比例。計算公式如下:
式中:r表示測試集中用戶a有過觀看行為的數(shù)量,N表示用戶的總數(shù),d表示在給用戶a推薦的K個電影中,用戶對其有過觀看記錄的數(shù)量。
(3) NDCG可以用于衡量推薦結果順序的質量,對于最終的推薦結果,考慮到進行排序推薦時不同順序會對最終的推薦效果產生不同的影響,希望達到相關性大的結果排在前面,相關性小的結果排在后面,計算公式如下:
式中:K是推薦列表的長度,DCG是指推薦列表位置結果的相關性,DCG值越大代表相關性越高。由于我們需要對整個測試集中的用戶的推薦列表進行評估,但DCG僅表示單個用戶的推薦列表的質量,則需要進行歸一化處理。
式中:IDCG表示用戶得到的按照相關性倒序排序后的最優(yōu)的推薦列表,其中DCG∈(0,IDCG]。
NMF模型為一個由MLP和GMF組成的神經網絡框架,它可以得到用戶與物品之間的非線性特征表示。GCMC模型是在二部圖結構中應用圖自動編碼器。捕獲一階鄰居節(jié)點的特征。NGCF模型提出了利用用戶與項目之間的高階聯(lián)通性捕獲用戶和項目的嵌入信息,使得用戶和項目的特征表示更加的完整。實驗采用Recall、Precision和NDCG三個指標對模型進行評估,其中推薦列表的長度為20個。由表1可以看出與NMF、GCMC和NGCF模型相比,提出的AttGCF的模型評估效果始終優(yōu)于其他的模型,其中召回率比NGCF模型提高了3.8%,準確率提高了3%,NDCG提高了1.2%。這說明提出的AttGCF模型能夠更好地學習到用戶與項目之間的行為偏好,得到更好的推薦效果。
表1 模型效果對標
對于推薦列表長度的評估,實驗分別選取了推薦列表分別為20、40、60、80和100個項目時各個模型的評估結果。由圖2-圖4可以看出隨著推薦列表長度的增加,各個模型的召回率和NDCG值均有所增加,但是準確率卻有所下降,所以最終選擇推薦列表長度為20時作為最優(yōu)的結果。
圖2 不同K的Recall比較
圖3 不同K的Precision比較
圖4 不同K的NDCG比較
下面分析嵌入傳播層的深度對模型的影響。從表2可以看出當嵌入傳播層的深度為2時,模型取得最優(yōu)的效果。結合多層鄰居信息的模型效果比僅考慮一階鄰居信息的推薦效果更好,當改變嵌入傳播層數(shù)時,AttGCF的結果均優(yōu)于NGCF模型。說明引入注意力機制的圖神經網絡模型可以更好地學習到用戶和項目的特征表示,使得最終的推薦結果更好。
表2 傳播層層數(shù)對模型的影響
用戶和物品之間存在的協(xié)作信號問題是不能忽略的問題。從傳統(tǒng)的協(xié)同過濾算法到最近出現(xiàn)的基于深度學習的方法,現(xiàn)有的研究通常是通過用戶的編號等附加屬性來獲得用戶的嵌入。傳統(tǒng)的協(xié)同過濾算法只考慮物品之間和用戶之間的關系,從而忽略了用戶與物品之間存在的協(xié)作信號對協(xié)同過濾效果的影響。因此本文設計了一個結合注意力機制的圖神經網絡模型來捕獲用戶與物品之間的協(xié)作信號。通過對用戶與物品之間建立二部圖,設計嵌入傳播層,并引入注意力機制對不同層輸出的表示特征賦予不同的權重,經過實驗驗證本文提出的AttGCF模型的推薦效果更好。但實驗也存在不足之處,將用戶與物品之間的內積作為預測評分的方式,不能充分挖掘出兩者之間的關系。所以在接下來的工作中考慮使用非線性神經網絡的方法進行預測評分。