鄧 凱,黃佳進,秦 進
(1.貴州大學計算機科學與技術(shù)學院,貴陽550025;2.北京工業(yè)大學國際WIC研究院,北京100000)
推薦系統(tǒng)旨在為用戶提供需要的物品,讓用戶能更快速更高效地找到自己所需物品。在信息過載的時代,推薦系統(tǒng)在電子商務、音樂/電影/書籍網(wǎng)址、社交平臺等許多網(wǎng)絡服務上扮演著重要的角色?,F(xiàn)如今推薦系統(tǒng)已經(jīng)成為了人們研究的熱點話題,并且在信息檢索、人工智能以及數(shù)據(jù)挖掘方面的關(guān)注度在逐漸增加。
在各種推薦方法中,協(xié)同過濾(Collaborative Filtering,CF)[1]已被人們廣泛采用,它通過用戶與物品之間交互的數(shù)據(jù)來預測用戶與物品間的相關(guān)性。在一種假設下:CF 通過給相似用戶推薦其他用戶喜歡的內(nèi)容;另一種假設是:基于用戶對物品的偏好找到相似的物品,然后根據(jù)用戶的歷史偏好,推薦相似的物品給他。根據(jù)不同的假設,CF 被分為兩種類型:一種是基于用戶的協(xié)同過濾方法(User-based Collaborative Filtering,UCF);一種是基于物品的協(xié)同過濾方法(Item-based Collaborative Filtering,ICF)[2]。矩陣分解(Matrix Factorization,MF)模型[3-4]在UCF 中是一個典型的例子,通過計算該用戶的潛在因子(Latent Factor,LF)和對應物品的LF的內(nèi)積,最后將內(nèi)積的結(jié)果作為預測的評分矩陣。基于物品的協(xié)同過濾表示一個用戶已經(jīng)購買過的物品記錄,并且通過使用該用戶要購買的目標物品和該用戶購買過的物品的相似性來評估用戶-物品的相關(guān)性。為了更好地表示出一個用戶和他購買過的物品記錄,每一個用戶都有一個固定的ID,這樣在輸入階段ICF過濾方法與UCF 相比更具有標志性。此外,當一個用戶有新的物品購買記錄或者一個新用戶開始購買物品,不需要重新訓練模型參數(shù)來更新推薦列表。ICF 能通過簡單的檢索新購買的物品和之前購買過的物品的相似性來更新物品清單。然而UCF 方法像矩陣分解一樣將模型參數(shù)與用戶ID 關(guān)聯(lián),強制它們?yōu)榱艘粋€用戶更新參數(shù)來更新推薦列表(MF是在線更新策略)。
在最近幾年,用戶購買的物品被應用在兩種常見的代表方法中:一種是直接采用用戶已經(jīng)購買過的物品作為輸入向量,并且采用神經(jīng)網(wǎng)絡把輸入的向量轉(zhuǎn)化為能更好表示用戶低秩表示的學習(Latent Low-Rank Representation,LatLLR),這充分利用了神經(jīng)網(wǎng)絡的非線性和高容量特征;另一種表示將每一個被用戶購買過的物品作為一個潛在向量,并且把這些潛在向量兩兩內(nèi)積計算其兩個物品的相似性。前一種方法僅僅是把歷史物品轉(zhuǎn)化為一個用戶向量而沒有考慮物品之間的相似性;后一種方法考慮了物品之間的相似性,但每一個被購買過的物品都有很多參數(shù)以及一個額外的潛在向量。因此這兩種方法各有優(yōu)勢,如果能把這些不同性能的方法整合起來將得到更好的推薦效果。
雖然MF 在推薦研究中很受歡迎,但ICF 在推薦系統(tǒng)中效果要好于UCF。ICF 通過表示用戶所購買的物品,在物品中編碼更多的信號輸入,并不是簡單地使用ID 表示用戶的UCF。這為ICF 提供了更大的潛力,且提高了用戶偏好建模的準確性和可解釋性。對于top-N 推薦,ICF 方法的準確性優(yōu)于UCF 方法[5]。ICF 可以將推薦的物品解釋為與用戶之前購買過的某些物品高度相似,這比基于“相似用戶”的解釋方案[6]更容易被用戶接受。其次,ICF在用戶偏好建模中的可組合性使得在線個性化[7]的實現(xiàn)更加容易。例如,當用戶有新的購買時,ICF 不需要重新訓練模型參數(shù)來刷新推薦列表,而只需檢索與新購買的物品相似的物品,就可以近似地得到已刷新的列表。這種策略基于用戶最近的觀看成功地在YouTube 上提供了即時個性化。相比之下,像MF 這樣的UCF方法將模型參數(shù)與用戶ID 關(guān)聯(lián)起來,使得它們必須更新模型參數(shù)來刷新用戶的推薦列表。
ICF通常是采用Pearson相關(guān)性和余弦相似度來計算兩個物品之間的相似性[8-9]。近年來,為了從數(shù)據(jù)中學習物品相似度,人們研究了獲取數(shù)據(jù)特征的方法,其中比較有代表性的兩種方法是稀疏線性方法(Sparse Linear Method,SLIM)[10]和分解物品相似度模型(Factored Item Similarity Model,F(xiàn)ISM)[11]。在FISM 中,兩個物品之間的相似性是通過它們的潛在向量乘積后得到的,可以將其視為物品-物品相似矩陣。ICF 的一些最新發(fā)現(xiàn)通過神經(jīng)注意相似度(Neural Attentive Item Similarity,NAIS)模型擴展了FISM 模型。利用注意網(wǎng)絡區(qū)分物品間的相似性對預測更為重要,即協(xié)同去噪自動編碼器(Collaborative Denoising Auto-Encoder,CDAE)[12]采用非線性自編碼結(jié)構(gòu)[13]學習物品相似性全局和本地SLIM,它為不同的用戶子集使用不同的SLIM模型。
MLP(Multi-Layer Perception)[1]是一個多層神經(jīng)網(wǎng)絡模型,它一般由三部分組成:一部分是輸出層且含有多個感知單元;一部分是由多個感知單元構(gòu)成的一層或者多層隱藏層;還有一部分是含有多個感知單元的的輸出層。MLP被廣泛地應用于自然語言處理、圖像處理等多個領(lǐng)域。在本文工作中,將MLP 應用于個性化推薦領(lǐng)域,用于建模用戶和物品或者是物品與物品之間的交互關(guān)系。
基于前人的研究,本文將FISM 模型和MLP 模型結(jié)合成UICF模型,這對于物品的推薦更具有表征力。
設用戶集U 包含M 個用戶,物品集I 包含N 個物品,ruj表示用戶u 對物品j 是否有過交互。對于隱式反饋(如購買),ruj用二進制數(shù)1或0表示用戶u是否和物品j有過交互,1表示有過交互,0 表示沒有。這種思想是基于物品的協(xié)同過濾,它通過一個用戶和該用戶在過去所有交互過的物品與現(xiàn)有物品i的相似性來預測該用戶對現(xiàn)有物品i的偏好。
對于用戶u 有:ru=(ru1,ru2,…,ruN)。本文把一個N 行N列的物品-物品表示為相似矩陣S。在相似矩陣S 中第i 行和第j 列表示的是第i 個物品和第j 個物品的相似性。Si表示的是物品i 和其他所有物品之間的相似性。的值表示的是用戶打算購買的目標物品與該用戶之前交互過物品的相似性。預測模型被表示為:
其中:W*和b*表示每一層的權(quán)重和偏置,α 是Sigmoid 激活函數(shù)。
Ru表示用戶u 購買過的物品集,并且每一個物品被兩個嵌入向量p 和q 劃分為兩部分:一部分是預測的目標物品,另一部分是之前與用戶交互過的物品。預測模型表示為:
式(1)采用0-1 向量直接表示一個用戶的輸入,并且把這個向量轉(zhuǎn)化成一個LatLLR 方法。兩個向量的內(nèi)積被直接用來表示物品i與購買物品i的這個用戶之前所交互過的所有物品之間的相似性。在式(2)中,被購買過的物品嵌入到q ∈RN×d中,其中d 是物品嵌入的維度。式(2)能被考慮作為計算物品i與購買物品i的用戶所有交互過的物品之間相似性的一種直接方法。不同的0-1 表示,不僅從整個物品集中獲取物品的嵌入,并且這樣還包含了全局語義信息。對于每一個被購買的物品,這樣的分布式表示自然可以作為用戶對物品的喜好程度。
為了結(jié)合FISM和MLP這兩種模型,本文需要設計一種策略融合它們,以便結(jié)合后它們的性能都得到增強。其中一種最常見的融合策略是通過連接學習表示法來獲得聯(lián)合表示,并且把這種表示輸入到一個全連接層。在本文的方法中,預測函數(shù)是由兩步得到的:第一步,該模型利用FISM 模型和MLP 模型中用戶偏好潛在因子和物品潛在因子的元素乘積⊙分別計算出兩個預測向量;第二步,將用戶進行Multi-Hot編碼,目標物品進行One-Hot 編碼,再用不同權(quán)重將兩個預測向量串聯(lián)起來。CF 兩種類型方法有不同的優(yōu)勢,并且從不同的環(huán)境中學習預測向量,將這兩個預測向量連接起來,將得到一個更健壯、更魯棒的聯(lián)合表示用戶-物品對。由此產(chǎn)生的全連接層使模型能夠?qū)β?lián)合表示中包含的特征分配不同的權(quán)重。圖1說明了上述提出的融合策略,給出的形式如下:
其中:hT、b 分別是權(quán)重和偏置,σ 是Sigmoid 激活函數(shù)。UICF的模型圖如圖1所示。
圖1 UICF模型Fig.1 Model graph of UICF
其中σ 是Sigmoid 函數(shù)。Sigmoid 函數(shù)是一個單調(diào)增函數(shù),在式(4)中將使得大于
文獻[14]提出,模型參數(shù)的初始化對基于深度學習(Deep Learning,DL)的模型收斂和最終表現(xiàn)起到相當重要的作用。為了能夠得到更好的預測評分的效果,先初始化FISM模型的參數(shù),使其服從均值為0、標準差為0.01 的Gaussian 分布,然后再訓練FISM 模型直到收斂。同樣地,也初始化MLP模型,使其服從均值為0、標準差為0.01 的Gaussian 分布。對于最終模型的融合是分別將單獨訓練好的FISM 模型和MLP模型對應參數(shù)初始化融合模型中的FISM 和MLP,其中包含了FISM 中的用戶偏置項、物品偏置項以及MLP部分隱藏層權(quán)重系數(shù)和偏置項的初始化。
3.1.1 實驗數(shù)據(jù)集
本文使用了3個公開的數(shù)據(jù)來驗證本文方法的有效性:
1)MovieLens 是一個被廣泛使用于驗證CF 算法有效性的電影評分數(shù)據(jù)集。MovieLens 有多個版本,在本文的實驗中選擇含有約100 萬條交互記錄的版本ML-1M。因為在這個版本的MovieLens數(shù)據(jù)集中,每個用戶都至少含有20條交互記錄。
2)Foursquare數(shù)據(jù)集。該數(shù)據(jù)集相當稀疏,為了能更好地評估本文的模型,先對Foursquare 進行過濾,使得這個數(shù)據(jù)集中每個用戶至少含有30條交互記錄。
3)ratings_Digital_Music 數(shù)據(jù)集(下面簡稱Music數(shù)據(jù)集)。該數(shù)據(jù)集同樣極其稀疏,因此對該數(shù)據(jù)集也進行了同樣的過濾,確保每個用戶至少含有30條交互記錄。
3個數(shù)據(jù)的具體數(shù)值指標如表1所示。
表1 實驗數(shù)據(jù)集的統(tǒng)計信息Tab.1 Statistics of experimental datasets
3.1.2 評估指標與對比算法
為了驗證本文將兩個模型結(jié)合后的評分預測效果的有效性,選擇了4個基準方法進行對比實驗,分別為ItemKNN(Itembased K-Nearest Neighbors)[16]、DeepICF(Deep Item-based Collaborative Filtering)[17]、MLP 和FISM。其中,ItemKNN 是傳統(tǒng)的基于物品的協(xié)同過濾方法,DeepICF是解決物品間高階連接(Higher-Order)關(guān)系問題的一種基于物品的協(xié)同過濾方法。
在實驗中,首先根據(jù)數(shù)據(jù)中的時間戳信息來對每個用戶以及物品進行由遠及近進行編號和排序。對于3 個數(shù)據(jù)集,本文都用同樣的方法,對每個用戶選擇最后一次交互的數(shù)據(jù)作為測試集,其他部分作為訓練集。關(guān)于評價指標,采用了兩種 不 同 的 評 估 方 法:NDCG(Normalized DCG)和HR(Hit Ratio),對于兩個評級指標的計算參考文獻[15-16]。NDCG和HR的值越大,表示模型預測分值越精確。
3.1.3 參數(shù)設置
為了避免模型過擬合,對于每一個方法本文都會在[10-7,10-6,…,10-1,100]范圍內(nèi)來調(diào)整正則化項系數(shù)的值。對于用戶(物品)潛在因子向量的維度embedding_size,本文在進行不同方法對比中選取 32 進行測試,即embedding_size=32;另外也對不同向量維度進行對比,即embedding_size=8,16,32,64。對于學習率,在實驗中對不同大小的學習率選擇[10-5,10-4,…,10-2]進行實驗,選出最佳學習率;本文選擇的優(yōu)化器為標準梯度下降法(Gradient Descent,GD)。
1)UICF模型與3個基準模型在2個評估指標上的效果的展示。
UICF 與基準方法的對比結(jié)果如表2 所示,加粗的數(shù)值表示最好結(jié)果。為了公平地進行比較,表中每個方法的embedding_size 均設為32(本文將在下個實驗中比較不同embedding_size 對UICF 的影響)。從表2 中可以看出,融合后的模型UICF 在3 個數(shù)據(jù)集上的HR 和NDCG 上基本上都取得了最大值(HR 和NDCG 的值越大代表訓練出來的模型在測試集上的測試分值越接近實際分值),特別是在Foursquare 和Music兩個數(shù)據(jù)集上,效果更加明顯。
融合后的模型UICF 的HR 和NDCG 的值在top-5 和top-10上效果很明顯,遠大于其他三個對比方法的HR 和NDCG 的值;而在MovieLens 數(shù)據(jù)集上,這兩個值有了提高但并不是很明顯。
2)預訓練與非預訓練對實驗效果的影響。
表3 展示了在3 個數(shù)據(jù)集上分別使用預訓練和未使用預訓練對實驗效果的影響。從表3 可以明顯觀察出,使用預訓練后效果都明顯好于沒有預訓練的,這也進一步說明了,預訓練對基于DL 模型的收斂和最終表現(xiàn)效果起到了極其重要的作用。
表2 UICF和基準方法的對比結(jié)果Tab.2 Comparison between UICF and benchmark methods
表3 預訓練和非預訓練方法的對比結(jié)果Tab.3 Comparison between method with pre-training and method without pre-training
3)維度d對實驗效果的影響。
對于物品維度d 的大小考慮與其他基準方法在3 個數(shù)據(jù)集上對比NDCG 和HR 值的變化,在實驗中不同維度d 對預測評分的影響。表4 為維度d 取值8、16、32、64 時UICF 的不同表現(xiàn)效果。從表4 中可以看出,當維度d 的值分別為8、16、32、64 時HR 和NDCG 的值基本沒什么波動,這也說明了維度d的大小對UICF的表現(xiàn)效果影響不大。
4)UICF與基準方法在數(shù)據(jù)集上的HR@5走勢圖。
將各方法分別在3 個數(shù)據(jù)集上運行90 個epoch 后,top@5時HR上的結(jié)果如圖2所示??梢钥闯?,本文方法把MLP方法和FISM 方法結(jié)合后性能得到了提高,經(jīng)過90 個epoch 的訓練,本文的融合方法UICF 在3 個數(shù)據(jù)集上的結(jié)果好于對比方法;而且UICF 模型從開始訓練到訓練結(jié)束時HR 值的變化不大,這是因為FISM 和MLP 這兩個模型在結(jié)合前都經(jīng)過預訓練,收斂較快。在MovieLens 和Foursquare 數(shù)據(jù)集上,UICF 模型的HR 從開始上漲到一定值后就保持不變了,UICF 模型的效果高于其他幾種對比方法;在Music 數(shù)據(jù)集上,HR 的值在0.23與0.28之間波動相對很大,這是由于學習率設置較大造成的,但這并不影響它的效果優(yōu)于其他對比方法。
表4 維度大小的影響Tab.4 The impact of dimension size
圖2 UICF和基準方法在3個數(shù)據(jù)集上的HR@5走勢圖Fig.2 HR@5 of UICF and benchmark methods on three datasets
本文提出了FISM 模型和MLP 模型結(jié)合后的UICF 模型,并通過實驗驗證了UICF 模型的有效性。本文主要利用了基于物品的推薦方法假設用戶傾向于選擇與他們之前喜歡的物品相似的物品,因此利用物品的相似作為推薦的依據(jù),在解決數(shù)據(jù)稀疏性上具有優(yōu)勢。