吳賓,陳允,孫中川,葉陽東
(鄭州大學信息工程學院,河南 鄭州 450001)
隨著網(wǎng)絡信息的爆炸式增長,如何從海量數(shù)據(jù)中幫助用戶快速獲取所需信息,已成為信息檢索領(lǐng)域亟待解決的問題。相比于傳統(tǒng)的搜索引擎技術(shù),推薦技術(shù)因不需要用戶的明確需求便能主動向用戶提供個性化服務而成為緩解這一問題的重要工具[1-3]。近些年,眾多網(wǎng)站已將推薦技術(shù)作為系統(tǒng)的必備組件,如亞馬遜商品推薦、Netflix 電影推薦等。推薦技術(shù)不僅可以增加用戶的參與度及對系統(tǒng)的信任度,而且能夠為商家?guī)砜捎^的收益[4]。
在現(xiàn)有的推薦技術(shù)中,協(xié)同過濾[5]技術(shù)是當前電子商務系統(tǒng)中應用最為廣泛的技術(shù),其核心思想是根據(jù)目標用戶的歷史行為記錄來尋找興趣相投的近鄰用戶,綜合考慮這些用戶的興趣愛好,幫助目標用戶發(fā)現(xiàn)可能感興趣的物品。用戶的歷史行為記錄通??煞譃閮深悾?)顯式反饋,即評分信息,例如亞馬遜網(wǎng)站用戶對所購買的物品打出1~5 的評分,該評分能夠明確地表達用戶對物品的喜好程度;2)隱式反饋,例如購買、點擊、瀏覽等信息,其不能明確表達用戶對物品的喜好程度,但在一定程度上反映了用戶感興趣的物品。早期的協(xié)同過濾技術(shù)主要基于顯式反饋來處理推薦系統(tǒng)中的評分預測任務[6]。相比不易收集的評分信息,隱式反饋的形式多樣性和易獲取的特性使基于隱式反饋的推薦模型更具實用性。近些年,基于隱式反饋信息的建模方法通??煞譃閮深怺7]:單值排序(pointwise ranking)[8-9]和成對排序(pairwise ranking)[10-12]。單值排序方法通常潛在地假設用戶已交互的物品為正樣本且所有未交互物品為負樣本。與單值排序方法不同,成對排序方法基于一個更弱的假設[10],即用戶對已交互物品的喜好強于未交互的物品。相比單值排序方法優(yōu)化用戶對物品的絕對偏好,成對排序方法優(yōu)化物品之間相對排名位置的建模方式顯得更加合理。
在眾多基于成對排序的推薦模型中,貝葉斯個性化排序(BPR,Bayesian personalized ranking)[10]因具有理論完備、精度較高、易于實現(xiàn)等優(yōu)點受到了學術(shù)界和工業(yè)界的廣泛關(guān)注。當前已有不少推薦算法擴展了該模型[13-15],如融合社會關(guān)系的SBPR(social Bayesian personalized ranking)[13]、融合多級反饋信息的BPR++[14]、融合用戶瀏覽信息的BPR+view[11]等。上述模型僅從用戶角度來構(gòu)建用戶-物品樣本對,忽略了從物品角度建模物品之間內(nèi)在的功能關(guān)系。在現(xiàn)實生活中,用戶在做出購買決策時,不僅受自身喜好的影響,還受物品在功能上互補關(guān)系的影響因素。在圖1 手機及配件推薦場景中,Lily 已經(jīng)購買了手機、耳機、自拍桿等商品,亞馬遜網(wǎng)站向其推薦與已購買物品存在功能互補關(guān)系的手機殼可能更為合適;在寵物用品推薦場景中,Jason 的歷史購買列表中有狗糧、寵物牽引繩、寵物墊子、寵物項圈等商品,此時系統(tǒng)向用戶推薦寵物沐浴露更為合適。圖1 所示的2 個推薦場景通過考慮商品之間的互補關(guān)系,這不僅避免了產(chǎn)生重復性推薦,同時滿足了用戶的當前需求。
對于成對排序方法而言,推薦模型的學習通常需要選取合適的正負樣本對。在現(xiàn)實商業(yè)推薦場景中,用戶與物品之間的歷史交互數(shù)據(jù)通常具有長尾分布的特性[15],這使負樣本的選取對于模型的精度和收斂性都有很大影響[16]。在采樣過程中,需要選取一個比正樣本具有更高排名的負樣本,從而能夠有效地更新參數(shù)并訓練模型[17]。原始BPR 模型基于均勻采樣策略構(gòu)建正負樣本對,該策略未考慮物品流行度和上下文信息的影響,同時忽略了正負樣本的相對排名位置。當選取的正樣本比負樣本的排名位置靠前時,該正負樣本對用于模型訓練的貢獻甚微。文獻[16]提出了自適應采樣策略,該策略每次迭代時根據(jù)當前正樣本排名選取負樣本,每隔固定的迭代次數(shù)更新一次排名信息。相比均勻采樣策略,該策略的收斂更快,但忽略了正樣本當前排名位置對于學習模型梯度的影響。
圖1 亞馬遜網(wǎng)站的商品推薦案例
針對上述問題,本文從用戶和物品2 個角度,同時考慮用戶-物品之間的交互關(guān)系和物品之間在功能上的互補關(guān)系,提出一種聯(lián)合成對排序的推薦模型??紤]到正樣本的排名位置和負樣本的選取將直接影響模型精度及收斂速度,本文進一步構(gòu)建了一種新穎的排序感知策略,使每次迭代均能合理選取正負樣本對并根據(jù)正樣本的當前排名位置動態(tài)控制模型學習梯度。最后基于該策略設計了一種高效的協(xié)同過濾推薦(CPR,co-pairwise ranking)學習算法,用于求解所提出模型的參數(shù)。
本文主要貢獻如下。
1)依據(jù)用戶與物品之間的交互關(guān)系與物品和物品之間在功能上的互補關(guān)系分別從用戶和物品2 個角度構(gòu)建正負樣本對,提出一種聯(lián)合成對排序的推薦模型。
2)構(gòu)建一種新穎的排序感知策略,該策略不僅能夠合理選取負樣本,而且可以根據(jù)正樣本當前排名位置動態(tài)控制模型學習梯度。
3)設計一種高效的協(xié)同過濾推薦算法——CPR。實驗結(jié)果表明,所設計的算法在推薦精度及收斂速度上均優(yōu)于當前主流推薦算法。
單值排序方法通常把物品排序任務轉(zhuǎn)化為回歸或分類問題,將觀測數(shù)據(jù)視為正樣本,并將所有未觀測數(shù)據(jù)視為負樣本。系統(tǒng)從觀測數(shù)據(jù)和未觀測數(shù)據(jù)中學習一個回歸或分類函數(shù),并基于該函數(shù)預測用戶對物品的喜好程度,最后根據(jù)喜好程度進行排序獲得推薦列表。Hu 等[8]提出一種加權(quán)正則化矩陣分解(WRMF,weighted regularized matrix factorization)模型,該模型通過學習一個加權(quán)平方損失函數(shù)來建模用戶和物品之間的交互關(guān)系。盡管該模型基于權(quán)重策略緩解了正負樣本不平衡的問題,但存在所有負樣本使用相同權(quán)重的問題。為了解決該問題,He 等[9]設計了一種用于負樣本的基于物品流行度的可變權(quán)重策略,使改進后的模型性能明顯提升。He 等[17]又提出了一種神經(jīng)矩陣分解(NeuMF,neural matrix factorization)模型,該模型統(tǒng)一了矩陣分解模型的線性優(yōu)勢和多層感知機的非線性優(yōu)勢。
相比于單值排序方法,成對排序方法更加關(guān)注物品之間的相對排名位置。該類方法通常假設用戶對已交互物品的喜好要強于未交互物品。貝葉斯個性化排序[10]由于理論完備、可擴展性強、易于實現(xiàn)等優(yōu)勢已成為成對排序方法中的經(jīng)典模型。近些年,不少學者以此為出發(fā)點,提出了許多擴展的模型并取得了不錯的推薦效果。例如,Zhao 等[13]融入用戶社交關(guān)系,構(gòu)建社會化貝葉斯個性化排序(SBPR,social Bayesian personalized ranking)模型,該模型潛在地滿足2 個假設:1)用戶對自身購買物品的偏好要強于其朋友購買過的物品;2)用戶對自身或朋友購買過物品的喜好要強于兩者均未購買的物品。Zhao 等[13]通過大量實驗驗證了上述假設的成立。Chen 等[18]通過設計一種計算用戶之間局部相似性的模式來改進BPR 模型,提出局部相似度的貝葉斯個性化排序(HLBPR,hybrid local Bayesian personal ranking)。Ding 等[11]提出了一種改進的貝葉斯個性化排序(BPR+view)模型,該模型通過考慮用戶的瀏覽信息減小了對負樣本的搜索空間。這些模型雖然通過融入額外信息提升了原始BPR 的推薦精度,但負樣本的選取依然基于均勻采樣。Rendle 等[16]認為現(xiàn)實世界中物品的流行度大都符合長尾分布,這使負樣本基于均勻采樣的算法面臨著收斂緩慢問題,鑒于此,提出了一種自適應的負采樣算法,并將其用于原始的BPR 模型。
上述工作主要側(cè)重于從用戶角度優(yōu)化物品之間的相對排名位置,忽略了物品之間內(nèi)在的功能關(guān)系對用戶決策的影響。本文同時從用戶和物品2 個角度對決策過程進行建模,即分別基于用戶歷史購買記錄和物品的聯(lián)合購買記錄構(gòu)建正負樣本對。其次,在構(gòu)建正負樣本對時,上述模型均忽略了正樣本的當前排名位置對于模型學習梯度的影響,鑒于此,本文設計了一種新穎的排序感知策略,該策略不僅能夠自適應地選擇負樣本,而且能夠根據(jù)正樣本當前的排名位置動態(tài)控制模型學習梯度。
本文使用黑斜體的大寫字母表示矩陣(如P),并使用黑斜體的小寫字母表示向量(如p),集合用花體表示(如U)。用字符上加^表示預測值(如)。本文的主要符號及其含義如表1 所示。
表1 主要符號及其含義
本文用矩陣R=[rui]m×n表示用戶-物品交互矩陣,其中,u表示用戶,i表示物品,用戶u購買過物品i則rui=1,否則rui=0。矩陣C=[ckv]n×n表示物品-物品互補矩陣,ckv表示物品k與物品v之間互補程度,用戶經(jīng)常聯(lián)合購買物品k與物品v則ckv=1,否則ckv=0 。用戶-物品成對樣本集合為DT={(u,i,j)|i∈Iu,j∈IIu},其中IIu表示用戶u未購買物品集合。物品-物品成對樣本集合為DS={(k,v,w)|v∈Ik,w∈IIk},其中IIk表示未與物品k進行聯(lián)合購買的物品集合。本文的目標是向每個用戶生成一個個性化的物品排序列表,表中的物品來自用戶未購買過的物品 {j| (u,j)?T }。
成對排序方法通常使用(u,i)?(u,j)表示用戶u對物品i的喜好強于物品j的。δ(b)是二元指示函數(shù),b為真,則δ(b)=1,否則δ(b)=0。δ((u,i)?(u,j))表示用戶對物品i的喜好是否強于物品j?;讦?(u,i)?(u,j))的伯努利分布計算用戶u與所有物品的成對喜好似然表示為
基于式(1)的成對喜好似然表示,Rendle 等[10]提出了一種貝葉斯個性化排序的推薦模型。從準確性和效率兩方面來看,該模型是解決推薦系統(tǒng)中物品排序任務的主流模型,其滿足以下假設條件。
假設 1對于用戶u,物品i∈Iu,物品j∈I Iu,用戶u對物品i的喜好程度強于物品j,其形式化可表示為(u,i)?(u,j)或> 0。
基于該假設所有用戶的成對喜好似然表示為
通常使用 Sigmod 函數(shù)σ(x)=近似于。最大化式(2)等價于優(yōu)化式(3)所示的目標函數(shù)。
其中,θλ為模型超參數(shù),θ為求解的模型參數(shù)。
在現(xiàn)實生活中,除用戶自身喜好之外,物品之間的功能關(guān)系往往也是用戶做出購買決策的重要因素。在圖1 中,用戶經(jīng)常同時購買手機、手機殼、耳機等物品,文獻[19-20]分析得出這些物品在功能上通常具有互補性。合理使用物品之間的互補關(guān)系對用戶的決策過程進行建模,不僅有助于提升推薦系統(tǒng)的精確度,而且有助于增加推薦結(jié)果的多樣性與用戶的滿意度。與文獻[20]做法一致,本文使用數(shù)據(jù)集中聯(lián)合購買記錄來構(gòu)建物品之間在功能上的互補關(guān)系。與建模用戶和物品之間的交互關(guān)系相似,對于物品之間的互補關(guān)系需要滿足以下假設。
假設 2對于物品k,物品v∈Ik,物品w∈IIk,存在物品k對物品v的互補程度強于對物品w的,可形式化表示為(k,v)?(k,w)或> 0。
假定系統(tǒng)中存在m個用戶和n個物品,那么根據(jù)用戶的歷史購買記錄可以構(gòu)建用戶-物品的交互矩陣R=[rui]m×n,根據(jù)聯(lián)合購買信息可以構(gòu)建物品-物品的互補矩陣C=[ckv]n×n
[19-20]。本文用P∈Rm×d表示用戶潛在特征矩陣,Q∈Rn×d表示物品潛在特征矩陣,up表示用戶u的潛在特征向量,iq表示物品i的潛在特征向量。在電子商務系統(tǒng)中,物品之間的互補關(guān)系通常具有方向性,譬如用戶u最近購買了手機,向其推薦手機殼是比較合適的;但反向推薦不但不能增加商家的銷售量,反而會降低用戶對系統(tǒng)的信任度。如果僅用矩陣Q建模物品之間的互補關(guān)系,將無法體現(xiàn)互補關(guān)系的有向性,即。鑒于此,本文引入互補潛在特征矩陣H∈Rn×d,使學習的互補關(guān)系具有方向性,即,其中hv、hk分別表示建模物品v和k在功能互補方面的特征向量。聯(lián)合假設1 和假設2,從用戶自身因素和物品之間的內(nèi)在聯(lián)系這2 個角度建模用戶的決策過程,如式(4)所示。
其中,有
其中,β是超參數(shù),控制物品的互補關(guān)系在用戶決策過程中所占的比重。與式(2)類似,如使用近似于,則有。最大化式(4)等價于優(yōu)化式(5)所示的目標函數(shù)。
對于成對排序方法而言,其最終優(yōu)化目標是將用戶喜歡的物品排在推薦列表比較靠前的位置。然而,當前成對排序方法大都忽略了正樣本的當前排名位置及負樣本的選取對于推薦結(jié)果的影響。為了更加清晰地闡述,本節(jié)給出一個直觀的例子,如圖2所示。對比圖2(a)和圖2(b)可知,圖2(a)中正樣本i的排名位置更接近于底部,如果與圖2(b)一樣使用相同學習梯度來更新模型的參數(shù),這顯然降低了模型的收斂速度。對比圖2(a)和圖2(c)可知,圖2(c)中正樣本i與負樣本j的相對排名位置趨向于理想的排名列表。如若選取類似于圖2(c)中的正負樣本對,那么該負樣本對于模型訓練貢獻甚微。為了解決當前多數(shù)方法面臨的這個問題,本文設計了一種新穎的排序感知策略,該策略能夠根據(jù)正樣本的當前排名位置動態(tài)地定義權(quán)重函數(shù),并能夠根據(jù)當前的正樣本選取合適的負樣本。
圖2 用戶u的3 種排序列表
給定用戶u,本文用iγ表示正樣本i在用戶推薦列表中的排名位置。由圖2 可知,正樣本的排名位置越高(越接近底部),對于模型的梯度更新應該貢獻越大。受此啟發(fā),可定義權(quán)重函數(shù)為
從式(6)和式(8)可看出,權(quán)重函數(shù)是一個遞增函數(shù),γi和γv越大表明正樣本的排名位置越接近底部,其權(quán)重值越大,從而模型學習速度越快。通過將式(6)和式(8)代入式(5)中可得出最終聯(lián)合成對排序模型的目標函數(shù)如式(10)所示。
式(10)所示的目標函數(shù)通過排序感知策略不僅能選取比正樣本排名更靠前的負樣本,而且能根據(jù)正樣本的當前排名位置動態(tài)地控制模型學習梯度。
基于成對排序的推薦模型通常直接采用隨機梯度下降優(yōu)化算法[9]求解模型的參數(shù)。然而從表2可以看出,用戶的歷史購買信息與物品的聯(lián)合購買信息極度不平衡,即前者遠比后者稠密,直接優(yōu)化本文模型將會導致不能有效使用后者信息。鑒于此,本文采用交替優(yōu)化方式[21]對式(10)進行求解,即首先使用用戶和物品之間的交互關(guān)系求解參數(shù)pu、qi、qj,然后基于物品之間的互補關(guān)系求解qk、hv、hw。對于的求解結(jié)果如式(11)所示。
本節(jié)在算法1 給出了求解所提模型的詳細步驟。
算法1求解所提模型的詳細步驟
算法1的時間復雜度主要包括負采樣過程和各梯度變量的更新。獲取用戶-物品正負樣本對和物品-物品正負樣本對的時間復雜度分別為和,其中,表示建模交互關(guān)系時選取有效負樣本平均需要的次數(shù),且表示建?;パa關(guān)系時選取有效負樣本平均需要的次數(shù),且。計算各梯度的時間復雜度均為O(d)。因此,CPR 算法每次迭代的復雜度為,其中,表示用戶歷史購買數(shù)量,表示聯(lián)合購買數(shù)量。由此可看出,算法1 的整體復雜度與歷史購買數(shù)量和聯(lián)合購買數(shù)量呈線性相關(guān)。
為了驗證CPR 算法在Top-N推薦上的有效性,本文在4 個不同規(guī)模的亞馬遜數(shù)據(jù)集上進行實驗。實驗中所使用的數(shù)據(jù)集分別為Health and Personal Care、Video Games、Pet Supplies 和Cell Phones and Accessories,這些數(shù)據(jù)集含有豐富的元數(shù)據(jù)信息,如用戶歷史購買記錄、物品圖片信息、用戶的評論、物品之間的聯(lián)合購買等信息。在這些數(shù)據(jù)中,本文使用用戶歷史購買記錄構(gòu)建用戶和物品之間的交互關(guān)系,使用聯(lián)合購買信息[19-20]構(gòu)建物品和物品之間的互補關(guān)系。
實驗中對4 個數(shù)據(jù)集進行初步處理,剔除歷史購買記錄少于5 個的用戶,表2 給出了最終所使用數(shù)據(jù)集的一些統(tǒng)計特性。
1)準確率和召回率
準確率(Precision)定義為正確預測的物品數(shù)與推薦列表長度N的比值。召回率(Recall)定義為正確預測的物品數(shù)與用戶u在測試集中真正購買的物品數(shù)的比值。假定使用lrec表示用戶u的推薦列表,ltes表示用戶u在測試集中真實購買的物品列表。準確率和召回率的定義如下所示。
2)平均準確率
平均準確率(MAP,mean average precision)是衡量所有用戶Top-N推薦列表的平均準確率,用于評價推薦的平均質(zhì)量。AP(average precision)為單個用戶的平均準確率,定義如式(14)所示。
其中,P(a)表示在Top-N推薦列表中前a個位置的準確率;δ(a)是一個指示函數(shù),若在測試集中用戶購買了排序為a的物品,則δ(a)指示函數(shù)值為1,否則為0。MAP 為所有用戶在AP 上的平均值。
3)平均折損累積增益
平均折損累積增益(DCG,discounted cumulative gain)是衡量推薦列表與真實購買列表相關(guān)度的指標。若用戶u購買了推薦列表中第j個物品則relj=1,否則relj=0。其定義如式(15)所示。
其中,DCG*@(u)是DCG(u)的理想最大值,平均折損累積增益(NDCG,normalize discounted cumulative gain)為所有用戶DCG 的平均值,其定義如式(16)所示。
在實驗中,CPR 算法及各對比算法均基于開源算法庫Librec 實現(xiàn)。為了驗證物品之間在功能上的互補關(guān)系和排序感知策略對于推薦結(jié)果的影響,本文選取以下7 種主流推薦算法進行對比。
1)POP(popular):該算法是一種非個性化推薦算法,根據(jù)物品流行度向用戶推薦當前最熱門的物品。
2)BPR[10]:該推薦算法主要優(yōu)化用戶對不同物品的相對排序,即用戶對于已購買物品的喜好強于未購買物品,從而得出每個用戶對所有物品的偏序關(guān)系。
3)GBPR(group Bayesian personalized ranking)[7]:該算法是對BPR 的一種擴展,考慮了群組用戶偏好對個體偏好的影響,并弱化了原始模型中用戶之間相互獨立的假設。
4)AOBPR(adaptive over-sampling Bayesian personalized ranking)[16]:一種基于BPR 的擴展推薦算法,采用自適應采樣策略優(yōu)化采樣。該算法每隔固定的迭代次數(shù)更新一次物品排序列表,并根據(jù)當前的正樣本排名選取負樣本。
表2 4 個數(shù)據(jù)集的統(tǒng)計特性
5)WARP(weighted approximate-rank pair wise ranking)[22]:由Weston 等[22]提出的一種成對排序?qū)W習算法,該算法同樣采用自適應采樣策略選取負樣本,但與AOBPR 不同,它基于間隔鉸鏈損失(hinge loss)函數(shù)來求解目標函數(shù)。
6)UPR(uniform over-sampling pair wise ranking):本文設計的對比算法之一,該算法同時考慮了用戶-物品的交互關(guān)系和物品之間在功能上的互補關(guān)系,但采用均勻采樣策略選取負樣本,其目標函數(shù)如式(5)所示。
7)APR(adaptive over-sampling pair wise ranking):本文設計的對比算法之一,該算法與UPR 目標函數(shù)相同,但采用與AOBPR 相同的自適應采樣策略選取負樣本。
在實驗中,首先根據(jù)每個用戶的歷史購買記錄的時間信息進行排序,然后選取前70%數(shù)據(jù)作為訓練集,10%用于驗證集,剩余的20%作為測試集。所有推薦算法的學習速率選取范圍為{0.001,0.005,0.01,0.05},正則化超參數(shù)的選取范圍為{0.001,0.001,0.1,1} 。CPR 算法中α選取范圍為{0.6,0.8,1,1.2,1.4,1.6},β調(diào)參范圍為{0.1,1,2,3,4,5,6} 。AOBPR 算法中ρ選取范圍為{0.01,0.03,0.05,0.07,0.1,0.3,0.5}。GBPR 算法中對于群組用戶大小的設定與原文獻保持一致,設置為3。本文所有實驗在Windows 7 操作系統(tǒng),64 GB 內(nèi)存,Intel(R)Xeon(R)CPU E5-26200 @2.00 GHz 服務器上進行。
實驗1全局實驗
本實驗用于對比各推薦算法在4 個不同規(guī)模和稀疏度的數(shù)據(jù)集上的性能。本實驗設置潛在特征向量維度d分別為50 和100,推薦列表長度N為10。表3 詳細展示了各算法在Precision、Recall、MAP和NDCG 這4 個評價指標的實驗結(jié)果(均已乘以100),從表3 中可得出以下4 個結(jié)論。
1)在4 個數(shù)據(jù)集上,BPR、GBPR 和AOBPR算法均優(yōu)于非個性化推薦算法POP,這表明個性化推薦算法能夠更好地發(fā)掘用戶的喜好。
2)由表2 可知4 個數(shù)據(jù)集的歷史購買記錄均極為稀疏。BPR 和UPR 算法采用均勻采樣策略,但UPR 同時考慮了用戶的歷史購買記錄和物品的聯(lián)合購買記錄。從表3 中不難看出,UPR 的推薦精度要優(yōu)于BPR,這說明考慮輔助信息在一定程度上緩解了推薦系統(tǒng)面臨的數(shù)據(jù)稀疏問題,同時驗證了本文假設2 的成立。
3)使用自適應負采樣策略的APR 推薦精度要明顯優(yōu)于使用均勻負采樣策略的UPR,這說明負樣本的選擇策略對于模型的性能起著至關(guān)重要的作用。
4)采用排序感知策略的CPR 明顯優(yōu)于APR。這是因為CPR 每次迭代均考慮正樣本的當前排名位置對于模型訓練的影響,動態(tài)控制了模型的學習梯度。
實驗2不同推薦列表長度下的性能對比
為了驗證各推薦算法在不同推薦列表長度N下的性能,本實驗在潛在特征向量維度為100,推薦列表長度N={10,15,20,25}的條件下進行了實驗。由于空間限制,本文僅展示了 Precision@N和Recall@N指標上的實驗結(jié)果,如圖3 所示。從圖3中可得出以下主要結(jié)論。
1)在不同推薦列表長度下,各算法具有相同的變化趨勢;隨著N的增大,在各算法的Precision逐漸下降,Recall 逐漸上升。
2)CPR 算法在4 個數(shù)據(jù)集的不同推薦列表長度下均優(yōu)于其他主流的推薦算法,這進一步驗證了本文算法的有效性及假設2 的合理性。
實驗3不同歷史購買數(shù)量下的性能對比
為了分析在不同用戶上各推薦算法的性能,本實驗依據(jù)訓練集中用戶的歷史購買數(shù)量將用戶劃分為1~10、11~15、16~20、>20 這4 組,圖4 顯示了4 個數(shù)據(jù)集中每組用戶所占比例。從圖4 中可看出歷史購買數(shù)量少于10 個的用戶占大部分,即多數(shù)用戶為不活躍用戶。依據(jù)用戶的歷史購買數(shù)量進行分組之后,使用訓練集來學習各推薦算法,然后在測試集上分別計算4 組用戶的推薦精度。圖5 展示了CPR 與3 種對比算法在Precision@10 上的實驗結(jié)果,由此可得出以下結(jié)論。
1)在第一組用戶上,UPR 的精度均優(yōu)于BPR。這是因為該組用戶歷史購買數(shù)據(jù)比較稀疏,融入物品之間的功能互補關(guān)系不僅有助于緩解數(shù)據(jù)稀疏問題,同時更加合理地對用戶和物品進行了建模。
表3 在4 個數(shù)據(jù)集上的實驗結(jié)果
2)隨著用戶購買數(shù)量的增加,各推薦算法的Precision@10 值也隨之增加。這是因為用戶的購買數(shù)量增多,訓練模型可使用的數(shù)據(jù)變得更豐富,更易學習到用戶的潛在特征向量。值得注意的是,CPR 算法在4 組用戶上均明顯優(yōu)于各對比算法,這是因為該算法不僅考慮了物品之間在功能上的互補關(guān)系,同時采用排序感知的負采樣策略,使每次迭代時模型學習梯度均趨向較優(yōu)的方向。
實驗4收斂性分析
圖3 不同N值下的性能對比
為了分析CPR 算法在收斂性上的優(yōu)勢,本實驗統(tǒng)一設置各算法的潛在特征向量維度d為50,并迭代1 000 次。圖6 詳細展示了該實驗結(jié)果,其中橫軸表示迭代次數(shù),縱軸表示評估指標(實驗結(jié)果均已乘以100)。由于各推薦算法在4 個指標上具有相似的結(jié)論,本實驗僅展示在Precision@10 指標下各算法的收斂趨勢。從圖6 中可得出以下3 種結(jié)果。
圖4 不同歷史購買記錄下用戶的分布
1)4 種推薦算法隨著迭代次數(shù)的增加均趨于收斂,最終在很小的范圍內(nèi)波動。相比于采用均勻采樣策略的算法BPR,采用自適應采樣策略的算法AOBPR 和APR 具有收斂快的特點,這與文獻[16]結(jié)論一致。
2)APR 與AOBPR 均采用自適應負采樣策略,但具有不同的收斂速度。從圖6 可以看出,在4 個數(shù)據(jù)集上融入物品之間功能互補關(guān)系的APR 算法收斂速度更快。這說明輔助信息的融入有助于模型更易學習出用戶和物品的潛在特征向量,從而加快了算法的收斂速度。
3)除Pet Supplies 以外,在其他數(shù)據(jù)集上迭代30~50 次使用不同采樣策略的APR 和CPR 收斂速度基本重合。當APR 算法趨于收斂時,CPR 算法依然有推薦精度上的提升。這是因為CPR 算法采用了排序感知采樣策略,使得每次迭代不僅能夠選取有效的負樣本,并能根據(jù)正樣本的當前排名位置動態(tài)控制模型的學習梯度。
實驗5超參數(shù)對算法的影響
為了分析CPR 算法中2 個重要超參數(shù)對于推薦精度的影響,本文在4 個數(shù)據(jù)集上詳細討論了不同取值下的實驗結(jié)果,如圖7 所示。其中,超參數(shù)α取值范圍為{0.6,0.8,1.0,1.2,1.4,1.6},超參數(shù)β取值范圍為{0,1.0,1.5,2,2.5,3}。從圖7 可得出以下2 個結(jié)論。
圖5 不同歷史購買記錄下各算法對比結(jié)果
圖6 收斂性對比
1)α控制著正樣本與負樣本之間的排名間隔,其值越大,表示在已知正樣本排名位置的情況下,選取負樣本的排名越靠近頂部。在4 個數(shù)據(jù)集上超參數(shù)α的值從0.6 開始NDCG@10 值先上升到達某個閾值后下降,這說明正負樣本的排名間隔直接影響著CPR 算法的性能。α值較小時模型訓練變慢,在有限迭代次數(shù)下,其推薦性能將會受到影響;相反α值較大時,不僅在選取負樣本時可能需要更多時間開銷,而且當正樣本排名比較靠近頂部時,可能選擇不到符合條件的負樣本,使該次迭代對于學習模型參數(shù)貢獻甚微。
2)β控制著物品之間的功能互補關(guān)系在用戶決策過程中所占的比重。當β為0 時,表示僅考慮用戶歷史購買信息,并采用排序感知策略選取負樣本的實驗結(jié)果。從圖7 可看出,在超參數(shù)β為0 時,實驗結(jié)果較差,這說明物品之間在功能上的互補關(guān)系在用戶決策過程中起著積極的作用。但當超參數(shù)β的值超過某個閾值時,其推薦結(jié)果開始下降,這因為過度依賴物品之間的互補關(guān)系將失去用戶自身偏好的影響,使推薦系統(tǒng)的個性化程度降低,從而影響了推薦性能。
圖7 超參數(shù)的影響
表4 在4 個數(shù)據(jù)集上各算法運行時長(時:分:秒)
實驗6各算法運行時間對比
為了檢驗本文算法的效率,實驗6 詳細對比了不同推薦算法的訓練時間。不同推薦算法在4 個數(shù)據(jù)集上的訓練時間如表4 所示(d=50)。
從表4 可觀察出,AOBPR 和 WARP 在4 個數(shù)據(jù)集上的訓練時間均多于BPR。這說明在每次迭代中選取高質(zhì)量的負樣本需要額外的時間開銷。GBPR 和 UPR 在效率方面弱于BPR,這是因為BPR 僅使用用戶的歷史購買記錄,而GBPR 和UPR為了更準確地建模用戶的喜好而引入了輔助信息。在4 個數(shù)據(jù)集上,本文算法CPR 效率均優(yōu)于APR,這說明本文所設計的排序感知采樣策略要優(yōu)于文獻[16]所設計的自適應采樣策略。綜上所述,從實驗結(jié)果來看:本文所提出的融合用戶-物品交互關(guān)系和物品之間互補關(guān)系的CPR算法在4個數(shù)據(jù)集上其推薦準確性優(yōu)于各對比算法;在學習模型參數(shù)的效率方面,本文算法與目前主流的推薦算法相當。
現(xiàn)實生活中,用戶的購買決策不僅出于自身的喜好,物品之間的功能互補關(guān)系也起著重要作用。鑒于此,本文從用戶和物品2 個角度對用戶的決策過程進行建模,提出一種聯(lián)合成對排序的物品推薦模型。對于成對排序方法而言,正樣本的排名位置和負樣本的選取策略將直接影響模型的精度及收斂速度。進一步,本文設計了一種新穎的排序感知策略,并基于該策略構(gòu)建了一種高效的學習算法CPR 用于求解所提模型的參數(shù)。大量實驗結(jié)果表明,本文的算法不僅緩解了數(shù)據(jù)稀疏問題,同時加快了模型收斂,并能夠在不同歷史購買數(shù)量的用戶上表現(xiàn)出較優(yōu)的推薦性能。
在未來研究中,本文將探索如何結(jié)合其他輔助信息,如物品的視覺信息[23-24]、社交關(guān)系[25-26]、時間信息[27]等來進一步改進所提出的模型。