李南星,盛益強(qiáng),倪 宏
(1.中國(guó)科學(xué)院聲學(xué)研究所 國(guó)家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190;2.中國(guó)科學(xué)院大學(xué) 電子電氣與通信工程學(xué)院,北京 100049)
在信息爆炸時(shí)代,推薦系統(tǒng)在緩解信息過載方面發(fā)揮著關(guān)鍵作用,并且被許多在線服務(wù),如電子商務(wù)、在線新聞和社交媒體網(wǎng)站等廣泛采用。個(gè)性化推薦系統(tǒng)的關(guān)鍵在于根據(jù)用戶的歷史交互(如顯性反饋數(shù)據(jù)中的評(píng)分和隱形反饋數(shù)據(jù)中的點(diǎn)擊)對(duì)物品的偏好建模,稱為協(xié)同過濾[1]。海量數(shù)據(jù)和數(shù)據(jù)稀疏是目前推薦系統(tǒng)需要解決的兩個(gè)主要難題,而基于近鄰的協(xié)同過濾算法在數(shù)據(jù)稀疏的情況下,用戶或物品之間很難有相同的評(píng)分,使用少量的近鄰預(yù)測(cè)評(píng)分使得推薦偏差較大[2-3]。因此,基于模型的協(xié)同過濾逐漸成為主流的推薦算法,其中主要有矩陣分解(Matrix Factorization,MF)模型[4-5]和神經(jīng)網(wǎng)絡(luò)模型。
矩陣分解是各種協(xié)同過濾算法常用的一種建模方法,它使用潛在特征的向量來對(duì)用戶和物品分別進(jìn)行建模,將用戶和物品分別映射到各自的潛在空間,因此用戶對(duì)物品的交互被建模為向量的內(nèi)積。潛在因子模型(Latent Factor Model,LFM)是一種矩陣分解算法,由于其能適用于推薦系統(tǒng)場(chǎng)景中稀疏的用戶交互數(shù)據(jù)并有效訓(xùn)練模型,已經(jīng)成為一種標(biāo)準(zhǔn)推薦算法。目前許多研究工作致力于改進(jìn)潛在因子模型,例如將其與基于近鄰的模型相結(jié)合[5]、與物品內(nèi)容的主題模型相結(jié)合[6-7]以及基于用戶屬性計(jì)算用戶相似度用于解決數(shù)據(jù)稀疏問題[8]。盡管潛在因子模型對(duì)協(xié)同過濾有效,但其直接使用向量?jī)?nèi)積為用戶交互行為建模限制了性能的進(jìn)一步提升,因?yàn)橄蛄績(jī)?nèi)積只是簡(jiǎn)單地將潛在特征的乘法線性組合,不足以提取用戶交互數(shù)據(jù)的復(fù)雜結(jié)構(gòu)。
本文提出一種新的條件卷積方式,將其對(duì)用戶交互行為進(jìn)行特征提取,該方式不增加模型的參數(shù)量且保留了卷積網(wǎng)絡(luò)較強(qiáng)的特征提取能力,在推薦過程中融入用戶信息和物品信息并將其作為輸入,使用隱性反饋數(shù)據(jù)和顯性反饋數(shù)據(jù)對(duì)模型進(jìn)行驗(yàn)證。
隨著神經(jīng)網(wǎng)絡(luò)在自然語言處理[9]、圖像處理[10]等領(lǐng)域的廣泛應(yīng)用,將各種神經(jīng)網(wǎng)絡(luò)與協(xié)同過濾算法相結(jié)合并應(yīng)用于推薦系統(tǒng)中成為近年來的研究熱點(diǎn)。與矩陣分解的特征向量?jī)?nèi)積方式相比,神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性映射能力,并且已經(jīng)從理論上被證明能夠擬合任意連續(xù)函數(shù)[11]。其中一些研究[7,12-13]將深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)應(yīng)用于推薦任務(wù)并顯示出較好的結(jié)果,但其主要是將DNN與傳統(tǒng)推薦算法相結(jié)合:首先運(yùn)用深度神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,如物品的文本描述、音樂的音頻特征和圖像的視覺內(nèi)容,然后利用基于矩陣分解的協(xié)同過濾算法生成推薦。
此外還有一些研究直接基于神經(jīng)網(wǎng)絡(luò)模型為用戶生成推薦,如CCCFNet[14]通過向量?jī)?nèi)積的方式提取用戶和物品特征。神經(jīng)協(xié)同過濾(Neural Collaborative Filtering,NCF)模型[15]是一個(gè)基于廣義矩陣分解模型和多層感知器的組合模型,其中廣義矩陣分解模型與CCCFNet相比,在向量?jī)?nèi)積時(shí)增加自適應(yīng)權(quán)重,通過加權(quán)向量?jī)?nèi)積的方式提取用戶和物品特征,而多層感知器通過加權(quán)求和的方式提取用戶和物品特征。文獻(xiàn)[16]提出的神經(jīng)社交協(xié)同排名(Neural Social Collaborative Ranking,NSCR)方法在NCF的基礎(chǔ)上進(jìn)行改進(jìn),引入用戶和物品的屬性加強(qiáng)用戶和物品特征的提取,并提出了配對(duì)池化,對(duì)用戶(或物品)的屬性之間進(jìn)行兩兩組合。有研究表明,增加用戶和物品屬性等能夠提升推薦系統(tǒng)性能[17]。
CCCFNet與NCF中的廣義矩陣分解模型雖然也能使用用戶和物品的屬性信息加強(qiáng)神經(jīng)網(wǎng)絡(luò)對(duì)用戶和物品特征的提取,但是基于向量?jī)?nèi)積方式的限制,要求兩個(gè)向量的維度必須相等,所以不能自由地決定使用屬性的個(gè)數(shù),而且所能得到的特征組合數(shù)量也十分有限。而NCF中的多層感知器使用更加簡(jiǎn)單的加權(quán)求和方式組合特征,因此要求使用一個(gè)深度結(jié)構(gòu)的網(wǎng)絡(luò)才能得到豐富的特征組合。NSCR則是通過配對(duì)池化得到更多的組合結(jié)果,然而本文研究發(fā)現(xiàn),NSCR所得到的特征組合是用戶屬性之間的組合以及物品屬性之間的組合,而推薦系統(tǒng)所預(yù)測(cè)的評(píng)分是用戶與物品之間交互,因此本文使用用戶屬性與物品屬性之間的組合更加有效、合理。此外,NSCR的配對(duì)池化只能得到兩個(gè)屬性的組合,而不是更多個(gè)屬性之間的高階組合。
與推薦領(lǐng)域不同,計(jì)算機(jī)視覺領(lǐng)域中主流的特征提取方法是卷積,如ILSVRC(ImageNet Large Scale Visual Recognition Challenge)采用的是152層卷積網(wǎng)絡(luò)構(gòu)成的ResNet。卷積神經(jīng)網(wǎng)絡(luò)具有3個(gè)主要特性:1)可以直接從原始輸入提取特征,從而避免了特征工程;2)對(duì)縮放、平移、旋轉(zhuǎn)等畸變具有不變性,泛化性很強(qiáng);3)通過局部視野和權(quán)值共享機(jī)制大大減少了參數(shù)量。因此,本文認(rèn)為使用卷積替代目前推薦系統(tǒng)常用的向量?jī)?nèi)積或加權(quán)求和等方式來提取用戶交互行為的特征是一種值得嘗試的做法。但是傳統(tǒng)的卷積并不適用于推薦系統(tǒng),其主要原因是卷積的權(quán)值共享機(jī)制。當(dāng)輸入的局部特征之間具有較強(qiáng)的相關(guān)性時(shí),權(quán)值共享機(jī)制十分適用。反之當(dāng)輸入在不同區(qū)域有不同的特征分布時(shí),泛化性較強(qiáng)的權(quán)值共享機(jī)制導(dǎo)致需要多層卷積網(wǎng)絡(luò)對(duì)提取的特征進(jìn)行組合。以人臉識(shí)別作為說明,人臉的不同區(qū)域(如眼睛與鼻子)的特征分布各異,主流的解決方案是使用局部連接卷積[18](Locally-Connected Convolution)替代卷積,取消權(quán)值共享,在不同區(qū)域用不同參數(shù)計(jì)算卷積。局部連接卷積雖然進(jìn)一步增強(qiáng)了特征提取能力,但同時(shí)也增加了大量的模型參數(shù),因此對(duì)于用戶數(shù)和物品數(shù)動(dòng)輒上百萬的推薦系統(tǒng)而言并不適用。
本文提出一種新的卷積方式:條件卷積,以此改進(jìn)神經(jīng)協(xié)同過濾提取特征能力的不足,并在推薦過程中融入用戶信息和物品信息,從而為用戶生成個(gè)性化推薦結(jié)果。
圖1 神經(jīng)協(xié)同過濾模型
圖2 條件卷積過程
圖3 傳統(tǒng)卷積提取用戶和物品特征的過程
圖4 局部連接卷積提取用戶和物品特征的過程
圖5 條件卷積提取用戶和物品特征的過程
在神經(jīng)協(xié)同過濾中并沒有使用用戶和物品屬性信息,僅使用用戶ID和物品ID作為輸入,沒有充分利用輔助信息。為此,本文提出一種融入用戶和物品屬性信息的方法。以MovieLens數(shù)據(jù)集為例,數(shù)據(jù)集提供了用戶性別、用戶年齡段、用戶職業(yè)、用戶郵編、電影名稱及電影類別作為輔助信息。需要說明的是,在不同數(shù)據(jù)集中可以使用的輔助信息不盡相同,不失一般性,本文以選取用戶性別、用戶職業(yè)和電影類別作為示例,如圖6所示。
圖6 用戶和物品屬性信息的融入
雖然神經(jīng)協(xié)同過濾也能使用相同的方法融入輔助信息,但由于其廣義矩陣分解需要使用基于元素級(jí)別的矩陣相乘,因此要求用戶特征向量和電影特征向量的長(zhǎng)度必須相等,所以,對(duì)于需要使用多種輔助信息的復(fù)雜推薦系統(tǒng)而言,必須要精心設(shè)計(jì)每種輔助信息的嵌入層長(zhǎng)度。相比之下,本文采用的是條件卷積,不受此限制,使用更加靈活。
條件卷積隱因子模型如圖7所示。對(duì)比圖1和圖7可知,條件卷積隱因子模型與神經(jīng)協(xié)同過濾模型的主要區(qū)別如下:1)不使用多層感知器;2)采用條件卷積替代元素級(jí)別矩陣相乘;3)融入多種輔助信息。為了更突出條件卷積的性能,本文構(gòu)建的是僅3層的條件卷積隱因子模型(輸入層、嵌入層和條件卷積層)。
圖7 條件卷積隱因子模型
與神經(jīng)協(xié)同過濾算法相比,條件卷積隱因子模型的優(yōu)點(diǎn)有如下3點(diǎn):
1)對(duì)于分別由多個(gè)特征組成的物品特征和用戶特征而言,不需要限制兩者長(zhǎng)度相等,與神經(jīng)協(xié)同過濾算法相比可以更靈活地設(shè)計(jì)各自嵌入層。
2)由于物品特征和用戶特征可能是由多個(gè)子特征拼接而成的,對(duì)兩者使用卷積操作能夠達(dá)到特征組合的目的。假設(shè)物品特征fi和用戶特征fu分別由N個(gè)和M個(gè)子特征組成(將長(zhǎng)度較長(zhǎng)的當(dāng)輸入,另一個(gè)當(dāng)卷積核),即fi=[fi_1,fi_2,…,fi_N],fu=[fu_1,fu_2,…,fu_M],并且每個(gè)子特征的向量長(zhǎng)度相等,則經(jīng)過條件卷積后可得到如下的特征組合:CConv(fi,fu)=[…,fi_kfu_1+…+fi_k+Mfu_M,…],k∈[1,N-M]??芍獥l件卷積可以得到N×M種特征組合,而神經(jīng)協(xié)同過濾所采用的基于元素級(jí)別的矩陣相乘只能得到max(N,M)種特征組合,因此條件卷積能夠更有效地利用數(shù)據(jù)集中的輔助信息。
3)與其他推薦算法相比,輸入的特征在同樣經(jīng)過嵌入層后,采用條件卷積并不增加模型參數(shù),使其同樣適用于較大的數(shù)據(jù)集或網(wǎng)絡(luò)結(jié)構(gòu)。
由于神經(jīng)協(xié)同過濾的推薦性能要優(yōu)于ItemPop、ItemKNN[19]、BPR[20]和eALS[21]等主流推薦算法[15],因此本文的以下實(shí)驗(yàn)不再與這些算法對(duì)比。除神經(jīng)協(xié)同過濾外,本文主要與多層感知器、NSCR、CCCFNet對(duì)比,因?yàn)檫@些算法分別使用了不同的方式提取用戶和物品特征。為了能更全面地評(píng)估條件卷積隱因子模型的推薦性能,本文分別在隱性反饋數(shù)據(jù)和顯性反饋數(shù)據(jù)下進(jìn)行仿真實(shí)驗(yàn)。
本文實(shí)驗(yàn)采用由美國(guó)明尼蘇達(dá)大學(xué)GroupLens實(shí)驗(yàn)室提供的MovieLens-1M數(shù)據(jù)集,該數(shù)據(jù)集是驗(yàn)證推薦算法性能最常用的數(shù)據(jù)集之一[22]。數(shù)據(jù)集中有1 000 209條用戶對(duì)電影的評(píng)分?jǐn)?shù)據(jù),其中用戶數(shù)量為6 040,電影數(shù)量為3 706,此外還附有這些用戶和電影的信息(如用戶性別、職業(yè)和電影類別等)。
3.1.1 數(shù)據(jù)集與評(píng)價(jià)標(biāo)準(zhǔn)
為與神經(jīng)協(xié)同過濾等算法進(jìn)行對(duì)比,本文實(shí)驗(yàn)中所有算法采用如下設(shè)置:
1)使用0或1表示用戶是否對(duì)電影評(píng)分,從而將顯性反饋的評(píng)分?jǐn)?shù)據(jù)轉(zhuǎn)換為隱性反饋的交互行為數(shù)據(jù)。
2)在劃分?jǐn)?shù)據(jù)集時(shí),采用leave-one-out策略,即每個(gè)用戶只保留一條交互行為數(shù)據(jù)作為測(cè)試集,其余作為訓(xùn)練集。在神經(jīng)協(xié)同過濾等算法中測(cè)試集是由每個(gè)用戶在時(shí)序上最后一條交互行為構(gòu)成,本文也采用相同策略。
3)劃分所得的訓(xùn)練集中樣本均是正樣本,因此在訓(xùn)練時(shí)隨機(jī)采樣生成負(fù)樣本增強(qiáng)數(shù)據(jù)集。
4)將生成推薦結(jié)果分成2個(gè)步驟:(1)從數(shù)據(jù)集中用戶未評(píng)分過的電影列表中隨機(jī)選取100部電影,加上測(cè)試集中的電影組成一個(gè)候選集合;(2)使用模型預(yù)測(cè)用戶對(duì)候選集合中電影評(píng)分過的概率,根據(jù)概率進(jìn)行排序并得到Top-K推薦結(jié)果(K<100)。
5)將命中率(Hit Rate,HR)和NDCG(Normalized Discounted Cumulative Gain)作為評(píng)估指標(biāo)。若測(cè)試集中用戶評(píng)分過的電影出現(xiàn)在Top-K推薦結(jié)果中,則命中率為1,根據(jù)所有用戶命中率的平均值可以較好地評(píng)估模型的推薦效果。NDCG是根據(jù)測(cè)試集中的電影在推薦列表中的排位評(píng)估推薦性能,排名越高則NDCG指標(biāo)越高,代表推薦精準(zhǔn)度越好。
3.1.2 隱性反饋數(shù)據(jù)推薦性能比較結(jié)果分析
影響神經(jīng)協(xié)同過濾模型性能的關(guān)鍵是嵌入層長(zhǎng)度,因此本文實(shí)驗(yàn)在不同嵌入層長(zhǎng)度下對(duì)比推薦命中率和NDCG,命中率結(jié)果如圖8所示。從圖8中可知,當(dāng)嵌入層長(zhǎng)度大于64后,Top-10命中率均趨于飽和甚至有所下降,原因在于過長(zhǎng)特征向量在數(shù)據(jù)量不足情況下容易導(dǎo)致過擬合。而在嵌入層長(zhǎng)度越小的情況下,條件卷積隱因子模型相比其他算法的優(yōu)勢(shì)就越明顯,在嵌入層長(zhǎng)度為16時(shí)Top-10命中率比神經(jīng)協(xié)同過濾提升了3.11%,原因如2.2節(jié)所述,條件卷積能得到用戶特征與電影特征間的全部特征組合,從而提高了模型對(duì)用戶和電影的識(shí)別度,NDCG結(jié)果如圖9所示。從圖9中可知,條件卷積隱因子模型要優(yōu)于神經(jīng)協(xié)同過濾等對(duì)比算法。
圖8 各算法在不同嵌入層長(zhǎng)度下的Top-10推薦命中率
圖9 各算法在不同嵌入層長(zhǎng)度下的Top-10 NDCG
3.2.1 數(shù)據(jù)集與評(píng)價(jià)標(biāo)準(zhǔn)
本文在隱性反饋數(shù)據(jù)下驗(yàn)證了條件卷積隱因子模型與神經(jīng)協(xié)同過濾優(yōu)于多層感知器等算法,因此在顯性反饋數(shù)據(jù)將推薦性能的對(duì)比聚焦在條件卷積隱因子模型與神經(jīng)協(xié)同過濾算法上。為能夠與神經(jīng)協(xié)同過濾算法更好地對(duì)比,本文實(shí)驗(yàn)中所有算法采用如下設(shè)置:
1)在劃分?jǐn)?shù)據(jù)集時(shí),采用不放回隨機(jī)采樣策略,訓(xùn)練集和測(cè)試集數(shù)據(jù)量比例為9∶1。
2)使用預(yù)測(cè)評(píng)分與實(shí)際評(píng)分的均方根誤差(Root Mean Squared Error,RMSE)作為評(píng)估指標(biāo)。RMSE指標(biāo)越低,代表評(píng)分預(yù)測(cè)精準(zhǔn)度越好。
3.2.2 顯性反饋數(shù)據(jù)推薦性能比較結(jié)果分析
影響神經(jīng)協(xié)同過濾模型性能的關(guān)鍵是嵌入層長(zhǎng)度,因此本文實(shí)驗(yàn)在不同嵌入層長(zhǎng)度下對(duì)比RMSE,結(jié)果如圖10所示。從圖10中可知,在評(píng)分預(yù)測(cè)精準(zhǔn)度上條件卷積隱因子模型相比神經(jīng)協(xié)同過濾算法有明顯的優(yōu)勢(shì),其中當(dāng)嵌入層長(zhǎng)度為32時(shí),神經(jīng)協(xié)同過濾算法的評(píng)分預(yù)測(cè)誤差為0.910 6,與條件卷積隱因子模型相比降低了0.022 5,達(dá)到了0.888 1。由此可見,條件卷積不僅在隱性反饋數(shù)據(jù)下有效,而且在顯性反饋數(shù)據(jù)下也是有效的。因?yàn)椴徽撌褂秒[性反饋數(shù)據(jù)還是顯性反饋數(shù)據(jù),基于模型的協(xié)同過濾算法都是為了學(xué)習(xí)用戶和物品的潛特征,然后基于這些潛特征構(gòu)建預(yù)測(cè)模型,區(qū)別只在于兩者的模型輸出形式和評(píng)價(jià)標(biāo)準(zhǔn)。在使用隱性反饋數(shù)據(jù)時(shí),模型的輸出一般設(shè)置成0~1之間的實(shí)數(shù)值;而在使用顯性反饋數(shù)據(jù)時(shí),模型的輸出一般設(shè)置成0~5之間的實(shí)數(shù)值。
圖10 兩種模型在不同嵌入層長(zhǎng)度下的評(píng)分預(yù)測(cè)誤差
本文將推薦系統(tǒng)與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出一種新的條件卷積方式。給出條件卷積的定義,在推薦過程中融入用戶和物品屬性信息作為輸入,在公開數(shù)據(jù)集MovieLens下進(jìn)行的實(shí)驗(yàn)結(jié)果表明,條件卷積能夠增強(qiáng)推薦算法提取用戶特征、物品特征以及組合特征的能力,且沒有增加額外的參數(shù)量。本文研究未探討條件卷積在推薦系統(tǒng)中的冷啟動(dòng)問題,這將是下一步的研究重點(diǎn)。