張全貴,胡嘉燕,王 麗
遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島125105
協(xié)同過濾是推薦系統(tǒng)的一種重要方法,它通過分析用戶和項(xiàng)目(如商品、電影、音樂等)之間的歷史交互信息預(yù)測新的用戶-項(xiàng)目交互。在協(xié)同過濾領(lǐng)域,由于一些公開競賽(如Netflix 競賽)和公共數(shù)據(jù)集的出現(xiàn),大部分研究都是基于顯式反饋信息(如五級評分)。這類研究一般利用歷史評分信息進(jìn)行評分預(yù)測,常作為回歸問題或多分類問題處理。然而,在實(shí)際場景中,顯式反饋信息相對難以獲得。相反,在線系統(tǒng)中提供了更多的隱式反饋信息(如頁面鏈接點(diǎn)擊、視頻觀看、產(chǎn)品購買以及其他用戶-項(xiàng)目交互歷史記錄)。近年來,隱式反饋推薦領(lǐng)域的研究受到越來越多的關(guān)注。隱式反饋協(xié)同過濾由于缺少負(fù)反饋信息,一直作為單類協(xié)同過濾(one-class collaborative filtering,OCCF)問題研究。
由于隱式反饋數(shù)據(jù)的不確定性、極度稀疏性和不平衡性,僅使用隱式反饋信息很難獲得較高的推薦精度。針對這一問題,研究人員對OCCF 進(jìn)行了一定的擴(kuò)展。Yao等人將上下文信息融入到OCCF中,并提出了基于上下文感知的個性化隨機(jī)游走(contextaware personalized random walk,CPRW)和基于語義路徑的隨機(jī)游走(semantic path-based random walk,SPRW)方法。文獻(xiàn)[8]在OCCF 中融入了豐富的用戶信息,如用戶的搜索查詢歷史、購買和瀏覽行為等。文獻(xiàn)[9]提出了一種基于地理位置信息和功能描述的情境偏好評分的推薦方法。Pan 等人提出了一種新的假設(shè),在貝葉斯個性化排序(group preference based Bayesian personalized ranking,GBRP)中引入群體偏好而不是單獨(dú)引入個體偏好,從而放寬了對個體的獨(dú)立性假設(shè)。
以上研究的出發(fā)點(diǎn)均是將一些輔助信息融入到OCCF 模型中,以提高推薦準(zhǔn)確性。這些工作大多是直接使用原始顯式特征或其交叉特征,但這種方式很難獲得顯著的性能改進(jìn),因?yàn)殡y以判斷哪些顯式特性真正重要?;诖耍疚奶岢隽艘环N耦合用戶公共特征的單類協(xié)同過濾推薦算法(one class collaborative filtering recommendation algorithm coupled with user common characteristics,UCC-OCCF),該算法不是直接使用顯式特征或交叉特征,而是通過建立一個深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)當(dāng)前用戶的鄰居對項(xiàng)目類別的共同偏好。本文“鄰居”的概念不同于文獻(xiàn)[2,12],他們將“鄰居”定義為具有相似興趣的用戶(例如,用戶-項(xiàng)目評分矩陣中有相似項(xiàng)目的用戶)。在本文中,鄰居是指具有與當(dāng)前用戶相似的顯式特征(如人口統(tǒng)計學(xué)信息)的用戶,本文稱之為自然鄰居。本文假設(shè)具有相似顯式特性的用戶存在共同偏好。此外,利用自然鄰居代替直接使用顯式特征,并且利用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)抽象知識的能力,可以獲得用戶顯式特征與項(xiàng)目類別之間的高層次交互關(guān)系。
本文工作具有以下三點(diǎn)貢獻(xiàn):
(1)提出了一種基于顯式特征和隱式反饋信息相結(jié)合的深層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以提高OCCF 的性能。
(2)通過學(xué)習(xí)當(dāng)前用戶的自然鄰居與某一類項(xiàng)目之間的交互,從而間接學(xué)習(xí)用戶的顯式特征與項(xiàng)目類別之間的高層次交互關(guān)系,以充分發(fā)揮顯式特征的作用。
(3)通過在三個實(shí)際數(shù)據(jù)集上的實(shí)驗(yàn)評估,驗(yàn)證了該模型的推薦性能優(yōu)于基線模型。
深度神經(jīng)網(wǎng)絡(luò)在表示學(xué)習(xí)領(lǐng)域具有突出的能力,如在計算機(jī)視覺和自然語言處理及語音識別中,深度學(xué)習(xí)均顯示出了有效學(xué)習(xí)抽象表示的潛力。近年來,深度學(xué)習(xí)開始應(yīng)用于推薦系統(tǒng)領(lǐng)域。如文獻(xiàn)[13]提出了一個基于神經(jīng)網(wǎng)絡(luò)的協(xié)同過濾模型,它將一個淺層的矩陣分解(matrix factorization,MF)神經(jīng)網(wǎng)絡(luò)和一個NCF(neural collaborative filtering)多層感知器結(jié)合起來,學(xué)習(xí)用戶-項(xiàng)目的隱式交互。本文將個人深度潛在因素表示網(wǎng)絡(luò)(deep latent factors representation,DLFR)與基于鄰居的共同偏好表示網(wǎng)絡(luò)(neighborhood based common preference representation,NB-CPR)相結(jié)合,實(shí)現(xiàn)了個人用戶-項(xiàng)目交互與鄰居共同偏好表示的協(xié)同訓(xùn)練網(wǎng)絡(luò)。
本文工作的動機(jī)與文獻(xiàn)[10-11]類似,都是將用戶顯式特征集成到OCCF 中。文獻(xiàn)[10]提出了一個深度神經(jīng)網(wǎng)絡(luò)聯(lián)合訓(xùn)練淺層模型和深度模型(jointly trained wide linear models and deep neural networks,Wide&Deep)。文獻(xiàn)[11]建立了一個結(jié)合了用于推薦的因子分解機(jī)器和用于特征學(xué)習(xí)的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(deep neural network and factorization machine,DeepFM)模型,與谷歌的Wide&Deep 模型不同,它使用共享的原始特征作為Wide 模型和Deep 模型的輸入,而不需要特征工程。本文通過學(xué)習(xí)當(dāng)前用戶的鄰居和項(xiàng)目類別之間的隱式交互使用顯式特征,而不是直接將顯式特征作為模型的輸入。
本文工作出發(fā)點(diǎn)與文獻(xiàn)[2,17]有共同之處,均是將用戶的共同偏好融合到協(xié)同過濾模型中,通過學(xué)習(xí)群體的共同偏好來提高協(xié)同過濾的準(zhǔn)確性。但是,他們的工作中“群體”僅是根據(jù)用戶歷史行為構(gòu)建的。文獻(xiàn)[17]將聚類算法應(yīng)用于用戶和項(xiàng)目的潛在向量,然后利用聚類級評分矩陣上的MF 來提高評分預(yù)測精度。另外,文獻(xiàn)[18-20]均是利用顯式特征來提高OCCF 的性能,說明使用顯式特征提高推薦性能是一項(xiàng)具有意義的工作。基于以上工作,本文采用間接利用顯式特征的方式,利用深度神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)用戶深層抽象共同偏好,以提高OCCF的性能。
在單類協(xié)同過濾問題中,用戶集={,,…,u}包含個用戶,項(xiàng)目集={,,…,v} 包含個項(xiàng)目,用戶與項(xiàng)目之間的交互構(gòu)成交互矩陣(記為)。中的每個元素(記為y)表示一個用戶與一個項(xiàng)目之間是否交互。如圖1 所示,若用戶與項(xiàng)目之間存在交互,則y表示為1(例如,用戶購買了項(xiàng)目或用戶觀看了電影);空元素表示用戶與項(xiàng)目之間沒有交互。與評分預(yù)測問題不同,OCCF的目的是預(yù)測中未觀測項(xiàng)目是否為1。
圖1 基于隱式(單類)反饋信息的用戶-項(xiàng)目交互矩陣Fig.1 User-item interaction matrix with implicit(one-class)feedback
本文使用的數(shù)學(xué)符號如表1 所示。
表1 數(shù)學(xué)符號Table 1 Mathematical notations
為了有效利用輔助信息,本文從較高層次間接利用顯式特征,提出了一種雙分支神經(jīng)網(wǎng)絡(luò)框架,稱之為耦合用戶公共特征的單類協(xié)同過濾推薦算法(UCC-OCCF)。如圖2 所示,該框架包括兩部分:個人深度潛在因素表示網(wǎng)絡(luò)(DLFR)和基于鄰居的共同偏好表示網(wǎng)絡(luò)(NB-CPR)。
圖2 UCC-OCCF 框架Fig.2 UCC-OCCF framework
DLFR 網(wǎng)絡(luò)結(jié)構(gòu)主要思想與NCF 模型相似,該模型將用戶和項(xiàng)目ID 的獨(dú)熱向量(one-hot)分別輸入模型中,然后分別經(jīng)過嵌入層將高維稀疏向量轉(zhuǎn)換為低維稠密用戶和項(xiàng)目向量,再輸入到多層全連接層中,學(xué)習(xí)當(dāng)前用戶與項(xiàng)目之間的交互概率。
NB-CPR 網(wǎng)絡(luò)結(jié)構(gòu)中,通過某種相似度度量方法計算得到的當(dāng)前用戶與其前個自然鄰居。將得到的當(dāng)前用戶與其前個自然鄰居和待預(yù)測項(xiàng)目的類別分別轉(zhuǎn)換為多熱向量(multi-hot)。然后將每個用戶自然鄰居多熱向量輸入到嵌入層得到每個用戶自然鄰居嵌入向量。隨后,每個用戶自然鄰居嵌入向量通過神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)得到所有用戶的混合嵌入向量,將其與預(yù)測項(xiàng)目類別的嵌入向量通過全連接層學(xué)習(xí)鄰居對待預(yù)測項(xiàng)類別的共同偏好。
本文將DLFR 模型學(xué)習(xí)到的當(dāng)前用戶與項(xiàng)目之間的交互概率向量與NB-CPR 模型學(xué)習(xí)到的鄰居對待預(yù)測項(xiàng)目類別的共同偏好向量融合,并送到全連接網(wǎng)絡(luò)中聯(lián)合學(xué)習(xí)得到最終的交互向量。最后,輸出層中Sigmoid 函數(shù)激活,從而將其輸出壓縮到[0,1],表示用戶與項(xiàng)目的交互概率。總之,UCC-OCCF的目標(biāo)是通過兩種網(wǎng)絡(luò)的協(xié)同訓(xùn)練,預(yù)測受顯式特征影響的用戶-項(xiàng)目交互概率。
UCC-OCCF 框架的右側(cè)分支是個人深度潛在因素表示網(wǎng)絡(luò)(DLFR),其可以獨(dú)立成圖3 所示的模型。其作用是預(yù)測用戶-項(xiàng)目交互的概率。潛在因素模型(如矩陣分解)是協(xié)同過濾領(lǐng)域的重要方法,其試圖從評分模式中學(xué)習(xí)出用戶和項(xiàng)目的潛在因素,然后利用這兩個潛在因素預(yù)測評分表中的缺失評分。它試圖解釋用戶的評分和從評分模式中推斷出的用戶和項(xiàng)目潛在因素。項(xiàng)目潛在因素可以用來描述項(xiàng)目的顯式屬性(如電影類型)或不可解釋的屬性。用戶潛在因素用來描述用戶對項(xiàng)目潛在因素中對應(yīng)隱式屬性的偏好。DLFR 模型在某種程度上類似于NCF 模型,將用戶和項(xiàng)目的隱式特征連接到一個多層全連接神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)用戶和項(xiàng)目之間的交互。
圖3 個人深度潛在因素表示網(wǎng)絡(luò)(DLFR)Fig.3 Deep latent factor representation(DLFR)
在DLFR 模型中,分別輸入用戶標(biāo)識和項(xiàng)目標(biāo)識的獨(dú)熱向量。受文獻(xiàn)[21-22]的啟發(fā),將用戶和項(xiàng)目分別通過神經(jīng)網(wǎng)絡(luò)嵌入層(embedding)轉(zhuǎn)換為和的兩個低維稠密嵌入向量。
其中,權(quán)值矩陣W∈R和W∈R在輸入層與連接層之中是一樣的。
通過這一過程,模型將用戶和項(xiàng)目映射成相同空間維度的潛在因素向量。在嵌入層之上,將潛在因素向量和輸入到一個連接層中,該連接層將和對應(yīng)元素相乘,輸出向量代表線性用戶-項(xiàng)目交互,表示為:
與基本的矩陣因子分解模型不同,本文模型利用內(nèi)積對用戶-項(xiàng)目交互進(jìn)行建模,將向量送入多層全連接神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)深度抽象的用戶-項(xiàng)目交互。
經(jīng)過DLFR 模型的訓(xùn)練,W和W兩個矩陣分別表示所有用戶和項(xiàng)目的潛在因素。由于用戶和項(xiàng)目的編碼表示為獨(dú)熱編碼,W和W的每一列分別表示某個用戶和項(xiàng)目潛在因素和。對于一個給定的項(xiàng)目,每個維度度量的是該項(xiàng)目具有這些因素的程度。對于給定的用戶,每個維度度量的是用戶對項(xiàng)目相應(yīng)因素的興趣程度。因此,連接層的輸出向量捕獲了用戶和項(xiàng)目之間的線性交互。經(jīng)過多層全連接層的處理,可以將其轉(zhuǎn)換為表示用戶與項(xiàng)目之間的非線性交互,表示為:
其中,,,…,W和,,…,b分別表示各層的權(quán)矩陣和偏置,,,…,a表示的是由ReLU 激活函數(shù)激活的每一層的輸出。由于DLFR 的目標(biāo)是預(yù)測用戶-項(xiàng)目交互的概率,本文使用邏輯(logistic)回歸的sigmoid 函數(shù)將該模型的輸出壓縮到區(qū)間[0,1],并將目標(biāo)問題解釋為概率:
其中,是最后一層的權(quán)重矩陣;a是上一層的輸出;是最后一層的偏重向量。
由于OCCF 問題沒有負(fù)樣本,需要用負(fù)樣本采樣策略抽取負(fù)樣本。在本文實(shí)驗(yàn)中,采用類似于文獻(xiàn)[13]的均勻負(fù)采樣策略,從矩陣中未觀察到的交互中抽取了負(fù)樣本。
學(xué)習(xí)損失函數(shù)的參數(shù):
下面介紹如何將NB-CPR 模型與DLFR 模型結(jié)合起來,利用顯式特征來提高DLFR 模型的性能。圖2①展示NB-CPR 模型的架構(gòu),該模型通過學(xué)習(xí)當(dāng)前用戶的鄰居和項(xiàng)目類別之間的交互,學(xué)習(xí)具有相似顯式特征用戶的共同偏好。NB-CPR 的輸入是當(dāng)前用戶自然鄰居的ID,可以通過相應(yīng)的相似性度量方法,如漢明距離(Hamming distance)、Pearson 相關(guān)性系數(shù)(Pearson correlation coefficient)和COS(coupled attribute similarity),從所有用戶中確定鄰居。通過全連接層的第一個隱藏層將用戶自然鄰居和項(xiàng)目類別轉(zhuǎn)化為稠密向量。
在輸入層輸入當(dāng)前用戶的個自然鄰居向量,,…,NB。NB(∈{1,2,…,})是當(dāng)前用戶及自然鄰居用戶ID 轉(zhuǎn)換的獨(dú)熱編碼,因此每個用戶的用戶自然鄰居維數(shù)最大值為||。然后,將其送入神經(jīng)網(wǎng)絡(luò)嵌入層得到用戶的自然鄰居低維稠密的嵌入向量。
將項(xiàng)目類別的多熱向量輸入到網(wǎng)絡(luò)中后,使用一個嵌入層將稀疏向量轉(zhuǎn)換為項(xiàng)目類別的稠密向量。然后將用戶鄰居和項(xiàng)目類別的嵌入向量送入連接層并輸出向量E,并將其輸入多層全連接神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)鄰居對某類項(xiàng)目高層抽象的共同偏好表示,表示為:
本文使用與DLFR 相同的代價函數(shù)來訓(xùn)練UCCOCCF 模型。
本節(jié)介紹如何獲取當(dāng)前用戶的鄰居。首先,使用用戶的顯式特征(如性別、年齡、職業(yè)和郵編等),采用某種相似度度量算法計算得到某個數(shù)據(jù)集的用戶相似度矩陣(如圖4 所示)。然后,為每一個用戶取出前個相似用戶作為該用戶的鄰居。本文實(shí)驗(yàn)中使用三個相似度度量算法:漢明距離、Pearson 相關(guān)性系數(shù)和COS。
圖4 用戶相似矩陣和鄰居Fig.4 User similarity matrix and neighbors
漢明距離是利用類別型屬性計算對象相似性的一種簡單而常用的方法,其計算兩個等長向量漢明距離,若兩個向量對應(yīng)位置的字符相同則漢明距離增加1,從而得到兩個向量的漢明距離。漢明距離的值越小,兩個向量相似度就越高。
Pearson 相關(guān)性系數(shù)算法考慮向量之間的變化趨勢,公式如式(13)所示。
其中,(,)為數(shù)據(jù)對象,為向量總數(shù)。
COS是由Wang 和Cao 等人提出的一種基于耦合關(guān)系分析的相似度度量方法,其考慮了類別型屬性之間的耦合關(guān)系,由于篇幅所限,本文不做闡述,在文獻(xiàn)[23]中有詳細(xì)介紹。本文采用三種相似度度量算法的目的是驗(yàn)證不同相似度度量算法對UCCOCCF 性能的影響。
表2 數(shù)據(jù)集統(tǒng)計Table 2 Statistics of datasets
表3 用戶和項(xiàng)目的顯式特征Table 3 Explicit features of users and items
UCC-OCCF 是在Python 和Keras 框架中實(shí)現(xiàn)的。所有的實(shí)驗(yàn)執(zhí)行于IntelCorei7-4770K@3.50 GHz處理器,32 GB 運(yùn)行內(nèi)存,NVIDIA GeForce GTX 1080Ti 11 GB 顯卡硬件設(shè)備。
使用以下基線方法評估本文提出的UCC-OCCF方法。
itemKNN(item K-nearest neighbor),基于項(xiàng)目的協(xié)同過濾方法。本文按照文獻(xiàn)[10]的設(shè)置對OCCF進(jìn)行評估,比較本文方法與傳統(tǒng)的不使用深度學(xué)習(xí)方法的性能。
NeuMF(neural matrix factorization),這是一種利用神經(jīng)網(wǎng)絡(luò)進(jìn)行隱式反饋的協(xié)同過濾方法。用它來比較本文提出的具有顯式特征的方法與沒有顯式特征的基本神經(jīng)網(wǎng)絡(luò)協(xié)同過濾方法的性能。
Wide&Deep,這是由谷歌提出的一種包含Wide模型和Deep 神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。在該模型中,需要對Wide 模型的輸入進(jìn)行特征工程(如交叉產(chǎn)品特征)。為了公平起見,本文將每個用戶的顯式特征(人口統(tǒng)計學(xué)信息:性別、年齡、職業(yè)、郵政編碼)轉(zhuǎn)換為交叉特征。將交叉特征和原始的顯式特征一起輸入到Wide&Deep 模型,來比較間接使用用戶鄰居顯式特征的模型與直接使用顯式特征和交叉特征的模型的性能。
NGCF(neural graph collaborative filtering),該模型通過GNN(graph neural network)的高階連通性傳播學(xué)習(xí)用戶與項(xiàng)目的顯式交互信息的作用,來比較間接使用用戶鄰居顯式特征和用戶-項(xiàng)目交互信息的模型與僅使用顯式用戶-項(xiàng)目交互信息模型的性能。
DeepICF(deep variant of item-based collaborative filtering),該模型不僅僅對兩個項(xiàng)目之間的相似性建模,而且使用非線性神經(jīng)網(wǎng)絡(luò)考慮項(xiàng)目之間的高階關(guān)系模型,捕獲用戶的決策從而提高基于項(xiàng)目的協(xié)同過濾的性能。用它來比較本文使用用戶共同項(xiàng)目類別偏好聯(lián)合個人深度潛在因素的模型和其項(xiàng)目之間高階關(guān)系模型的性能。
本文使用OCCF中廣泛使用的留一法作為性能評估方法。與文獻(xiàn)[13,19,31]相同,本文將每個用戶最新的交互項(xiàng)作為測試項(xiàng),其余交互項(xiàng)作為訓(xùn)練數(shù)據(jù),隨機(jī)抽取數(shù)據(jù)集中用戶-項(xiàng)目交互項(xiàng)之外的99 個項(xiàng)目作為負(fù)樣本,與測試項(xiàng)目一起構(gòu)成用戶測試數(shù)據(jù)。評估目的是對每個用戶的100 個條目進(jìn)行排序,利用命中率(hit ratio,HR)、歸一化累積折扣信息增益值(normalized discounted cummulative gain,NDCG)和平均倒 數(shù)排名(mean reciprocal rank,MRR)來評估其性能。
上述方法公式分別為:
其中,為測試集,rel為位置處項(xiàng)目的分級關(guān)聯(lián)值,Z為歸一化系數(shù)。實(shí)驗(yàn)設(shè)置rel∈{0,1},若在測試數(shù)據(jù)集正例中則為1,若不在則為0。
將數(shù)據(jù)集轉(zhuǎn)換為隱式版本后,對每個正例隨機(jī)抽樣4 個負(fù)例。本文模型的超參數(shù)主要如表4 所示。
表4 測試超參數(shù)Table 4 Test hyper-parameters
本文使用ReLU 作為所有全連接層的激活函數(shù)。本實(shí)驗(yàn)使用Adam 優(yōu)化器。對于參數(shù)初始化,使用隨機(jī)正態(tài)分布(均值和標(biāo)準(zhǔn)差分別為0 和0.01)初始化嵌入矩陣,使用glorot-uniform 作為全連接層的初始化。該模型中的所有偏置項(xiàng)都初始化為0。
為了驗(yàn)證用戶鄰居數(shù)量對UCC-OCCF 性能的影響,本實(shí)驗(yàn)針對COS、漢明距離和Pearson 相關(guān)性系數(shù)度量分別采用表4 中的鄰居數(shù)量進(jìn)行測試。
圖5、圖6 和圖7 分別對比了UCC-OCCF 和基線方法在HR@、NDCG@和MRR 評估指標(biāo)下的性能,測試了取1 到10 時的情況。本文從以下幾個方面來討論實(shí)驗(yàn)結(jié)果。
圖5 HR@K 評估Fig.5 Evaluation of HR@K
圖6 NDCG@K 評估Fig.6 Evaluation of NDCG@K
圖7 MRR 評估Fig.7 Evaluation of MRR
(1)與基線方法的比較:對于3 個數(shù)據(jù)集上的每一個值,所有方法的性能都優(yōu)于itemKNN(基本的協(xié)同過濾方法)。這說明深度學(xué)習(xí)方法的性能優(yōu)于傳統(tǒng)的OCCF 方法。
(2)Wide&Deep 和NeuMF 在3 個數(shù)據(jù)集的每個值時結(jié)果都很接近。這說明對于Wide&Deep 來說,直接使用顯式特征的深度模型不一定能獲得更好的性能。
(3)本文提出的使用三種度量方法的UCC-OCCF均比所有基線方法表現(xiàn)得更好。使用COS、漢明距離和Pearson 相關(guān)性系數(shù)度量的UCC-OCCF 在3 個數(shù)據(jù)集中性能均優(yōu)于所有對比實(shí)驗(yàn),如圖5、圖6 和圖7所示。在MovieLens 1M 與NGCF 比較,HR@10 的性能分別提高了0.057、0.092 和0.120,NDCG@10 的性能分別提高了0.034、0.076 和0.213,MRR 的性能分別提高 了0.121、0.178 和0.270;在MovieLens 100K 與NGCF 比較,HR@10 的性能分別提高了0.076、0.035和0.054,NDCG@10 的性能分別提高了0.109、0.033和0.089,MRR的性能分別提高了0.130、0.099 和0.119;在MyAnimeList與DeepICF 比較,HR@10 的性能分別提高了0.066、0.074 和0.085,NDCG@10 的性能分別提高了0.061、0.075 和0.092,MRR 的性能分別提高了0.037、0.060 和0.085。這些結(jié)果表明,與直接使用用戶顯式特征或使用隱式反饋信息(用戶和項(xiàng)目歷史交互信息)相比,通過鄰居間接集成用戶顯式特征可以獲得更多的性能改進(jìn)。
(4)鄰居數(shù)量的影響:圖8、圖9 和圖10 為UCCOCCF 在不同用戶鄰居情況下的結(jié)果。可以看出,鄰居數(shù)量對UCC-OCCF 的性能有不同的影響。對于MovieLens 1M,當(dāng)每個用戶設(shè)置20個鄰居時,HR@10的性能最高;當(dāng)每個用戶設(shè)置50 個鄰居時,NDCG@10 和MRR 的性能對于COS 和漢明距離度量都是最高的,而Pearson 相關(guān)性系數(shù)是最低的,每個用戶設(shè)置20 個鄰居時性能最高;對于MovieLens 100K,每個用戶設(shè)置40 個鄰居時,HR@10、NDCG@10 和MRR 的性能最高;對于MyAnimeList,每個用戶設(shè)置20 個鄰居時,HR@10、NDCG@10 和MRR 的性能最高。由上述結(jié)果可知,鄰居的數(shù)量會影響OCCF 的性能,但是OCCF 的性能與鄰居的數(shù)量沒有對應(yīng)關(guān)系。本文目的是學(xué)習(xí)具有相似顯式特征鄰居的共同偏好,最合適的鄰居數(shù)量由數(shù)據(jù)集的數(shù)據(jù)分布決定。
圖8 評價鄰居數(shù)量對HR@10 的影響Fig.8 Evaluation of HR@10 using different number of neighbors
圖9 評價鄰居數(shù)量對NDCG@10 的影響Fig.9 Evaluation of NDCG@10 using different number of neighbors
圖10 評價鄰居數(shù)量對MRR 的影響Fig.10 Evaluation of MRR using different number of neighbors
(5)不同鄰居距離度量方法的比較:從圖5、圖6和圖7 可以看出,鄰居距離度量方法會影響UCCOCCF 的性能。對MovieLens 1M 和MyAnimeList 而言,Pearson 相關(guān)性系數(shù)度量的效果是最好的,對于MovieLens 1M 和MyAnimeList,使用漢明距離度量比COS 度量表現(xiàn)得更好,但對于MovieLens 100K,結(jié)果卻相反。究其原因,Pearson 相關(guān)系數(shù)在數(shù)據(jù)受級別膨脹影響大時更加有效,COS 中存在較多的特征工程,在大數(shù)據(jù)集下的深度學(xué)習(xí)模型不一定能帶來積極的影響。相反,當(dāng)數(shù)據(jù)集較小時,它是有意義的。
(6)網(wǎng)絡(luò)結(jié)構(gòu)評估:本文對是否集成NB-CPR 模塊情況下的OCCF 性能進(jìn)行了評估,如圖11 所示,集成NB-CPR 模塊可以獲得更高的性能。UCC-OCCF模型的性能在3 個數(shù)據(jù)集上都比基本的DLFR 模型提高了0.1以上,表明本文提出的網(wǎng)絡(luò)結(jié)構(gòu)的有效性。
圖11 模型結(jié)構(gòu)評估Fig.11 Evaluation of model structure
(7)基線模型和UCC-OCCF 在3 個數(shù)據(jù)集中訓(xùn)練和預(yù)測的時間對比,如表5 所示。當(dāng)數(shù)據(jù)集的數(shù)量級變大時,對于所有模型來說,訓(xùn)練和預(yù)測所需的時間都會顯著增加。在所有模型中,itemKNN 在所有數(shù)據(jù)集上的訓(xùn)練和預(yù)測過程花費(fèi)的時間始終是最少的。在訓(xùn)練過程中,本文的模型UCC-OCCF 每一個epoch 的平均訓(xùn)練時間高于大部分對比模型,然而UCC-OCCF 的訓(xùn)練總時間小于絕大多數(shù)的模型。證明UCC-OCCF 花費(fèi)更少的訓(xùn)練時間來獲得更佳性能。對于預(yù)測過程,UCC-OCCF 花費(fèi)的時間與其他模型相差不大,且均小于NGCF。
表5 訓(xùn)練和預(yù)測時間Table 5 Time for training and prediction
(8)參數(shù)評估:本文模型使用的最終超參數(shù)如表6 所示。
表6 超參數(shù)Table 6 Hyper-parameters
本文提出了一種深度單類協(xié)同過濾模型UCCOCCF,通過將用戶鄰居的共同偏好與當(dāng)前用戶的個人偏好相結(jié)合,間接融合潛在特征和顯式特征。通過對MovieLens 100K、MovieLens 1M 和MyAnimeList數(shù)據(jù)集的實(shí)證評估,證明了該方法相對于現(xiàn)有方法的優(yōu)越性。在這項(xiàng)工作中,只使用人口統(tǒng)計學(xué)信息來計算用戶鄰居,在實(shí)際應(yīng)用中,UCC-OCCF 模型可使用更多其他類型的顯式特征,例如社交網(wǎng)絡(luò)信息。未來考慮基于GNN學(xué)習(xí)用戶的人口統(tǒng)計學(xué)信息和社交網(wǎng)絡(luò)信息來得到用戶的鄰居,從而提高推薦性能。