鄭 誠,付 嫻,董露露
1(安徽大學 計算機科學與技術學院,合肥 230601)2(安徽廣播電視大學 教務處,合肥 230022)
隨著大數(shù)據(jù)時代的到來,超載的網(wǎng)上信息將用戶淹沒,幫助用戶從大量資源中發(fā)現(xiàn)可能感興趣項目的推薦系統(tǒng),在各種線上平臺中發(fā)揮著越來越重要的作用.協(xié)同過濾CF(Collaborative Filtering)[1]是目前使用最為廣泛的推薦算法,其基本思想是,過去有過相似交互行為的人,未來可能會有相似的選擇.
為了充分挖掘用戶相似的偏好,潛在因子模型(如矩陣分解)[2]提出,該方法通常將用戶-項目交互矩陣(評分矩陣)分解為低維的用戶矩陣和項目矩陣,然后利用低維矩陣進行評分預測.然而,潛在因子模型通常存在冷啟動問題,因此,許多擴展的潛在因子模型在矩陣分解框架下整合了輔助信息,如Zhao等人[3]提出將社會關系加入到推薦中,馮興杰等人[4]聯(lián)合評論文本及評分矩陣共同學習出用戶和項目的潛在特征向量,進一步提升模型推薦效果.孟祥福等人[5]考慮到空間興趣點之間存在的位置關系和社會關系,統(tǒng)一構建了興趣點的地理-社會關系模型.最近,一個新的趨勢是Wang等人[6]提出的利用項目知識圖進行推薦,通過用戶和項目之間的屬性將用戶-項目實例鏈接在一起,并通過抽取高階鏈接路徑來表達網(wǎng)絡中的節(jié)點.
近年來隨著深度學習的興起,許多作品開始使用深度模型(如利用文本信息、圖像信息[7]和網(wǎng)絡結(jié)構信息[8])進行更有效的推薦.深度神經(jīng)網(wǎng)絡也被用于深度捕獲用戶和項目的潛在特征,如He等人[9]提出的神經(jīng)協(xié)同過濾NCF(Neural Collaborative Filtering)利用多層前饋神經(jīng)網(wǎng)絡代替矩陣分解模型中的內(nèi)積運算,從而捕獲用戶和項目之間的非線性關系.Xue等人[10]提出深度的矩陣分解DMF(Deep Matrix Factorization)直接使用評分矩陣作為輸入,通過深度神經(jīng)網(wǎng)絡將用戶和項目映射到普通的低維空間里.Chen[11]等人提出了使用深度學習技術來對物品之間的相關性進行挖掘.
雖然這些模型取得了良好的性能,但是現(xiàn)有的模型通常只側(cè)重于通過用戶和項目的交互信息挖掘用戶和項目的潛在因子,而這些信息只反映了用戶偏好和項目特征的一個方面.然而,在實際應用中,通常還包含著大量的屬性信息(年齡、性別、類型等),這些屬性信息可以從不同的方面更全面地反映用戶偏好和項目特征.因此,潛在因子模型應該從不同角度充分挖掘用戶和項目的潛在特征.
針對目前的推薦系統(tǒng)研究趨勢以及存在的問題,本文提出了一種融合多方面潛在特征和神經(jīng)網(wǎng)絡的推薦模型MLFNNR(Recommendation Model Based on Multi-aspect Latent Feature and Neural Network),主要貢獻如下:
1)針對現(xiàn)有的網(wǎng)絡嵌入方法大都集中于同構網(wǎng)絡,僅通過單一類型的節(jié)點和邊提取的單一方面特征不足以充分挖掘用戶偏好這一問題,提出了一種基于異構信息網(wǎng)絡表示學習的方法,通過基于元路徑隨機游走的方式獲取用戶和項目多方面的特征.
2)針對傳統(tǒng)線性融合的方式不能區(qū)分不同方面特征的重要程度這一問題,提出了結(jié)合注意力機制來融合多方面的潛在特征,以得到用戶和項目的最終向量表示.
3)針對傳統(tǒng)的矩陣分解簡單地將潛在特征通過內(nèi)積的形式來模擬交互的方法,不足以捕獲用戶項目交互數(shù)據(jù)的復雜結(jié)構這一問題,提出了使用神經(jīng)網(wǎng)絡來模擬用戶和項目之間的交互,以實現(xiàn)最終的評分預測.
潛在因子模型是一種基于隱變量的模型,如今在推薦系統(tǒng)領域得到了廣泛的應用與研究.它的基本思想是將用戶和項目映射成潛在因子,并利用這些潛在因子進行推薦.代表性著作有矩陣分解MF(Matrix Factorization),隱語義模型LFM(Latent Factor Model),概率矩陣分解PMF(Probabilistic Matrix Factorization)[12]和奇異值分解SVD++(Singular Value Decomposition)[13].以矩陣分解為例,其目標函數(shù)旨在最小化觀測評分的正則化平方損失:
(1)
其中ri,j表示樣本的真實評分,xi和yj表示用戶i和項目j的潛在因子,λ是控制正則化強度的參數(shù),通常使用L2范數(shù)來防止過擬合情況的發(fā)生.
基于這一基本的矩陣分解框架,通過添加一些輔助信息,提出了許多擴展的潛在因子模型,如社會推薦和基于異構網(wǎng)絡的推薦.而現(xiàn)有的潛在因子模型的局限性在于,潛在因子主要通過一個方面提取的,即交互方面.但是其他一些更細粒度的用戶-項目交互信息在很大程度上被忽略,而這些信息很可能對推薦結(jié)果有著一定影響.
異構信息網(wǎng)絡HIN(Heterogeneous Information Network)[14]包含了多種類型節(jié)點以及不同類型節(jié)點間的多種連接關系,通過網(wǎng)絡中全面的結(jié)構信息可以準確地區(qū)分出不同語義,對推薦系統(tǒng)中的復雜對象及其豐富的關系進行建模,挖掘出更有意義的知識.不同于同構信息網(wǎng)絡中的單一節(jié)點類型,HIN被表示為一組節(jié)點集合V和一組關系集合E.如圖1展示了一個電影推薦中的HIN場景,其中包含了3種類型的節(jié)點(用戶,電影,類型)和2種類型的連接關系(用戶-電影,電影-類型).
圖1 異構信息網(wǎng)絡舉例Fig.1 Example of HIN
對于圖1所示的異構信息網(wǎng)絡,當預測用戶3可能感興趣的電影時,如果只考慮交互歷史行為,可以推斷出用戶3可能會更喜歡電影2和電影4,因為和他同樣看過電影1的用戶分別選擇了電影2和電影4.然而,當考慮到電影類型時,可能會發(fā)現(xiàn)電影3是更好的推薦,因為電影1和電影3屬于類型1.
為了評估HIN中實體之間的相似性,現(xiàn)有的研究提出了幾種基于路徑的相似性度量的方法,如基于元路徑的相似性算法Pathsim(Meta Path-based Similarity)[15]、基于異構信息網(wǎng)絡相似性的算法Hetesim(Heterogeneous Networks based Similarity)[16]等,并且取得了很好的性能,因此,越來越多的人開始意識到HIN在推薦領域的發(fā)展?jié)撃?隨后,元路徑(meta-path)提出并逐漸引入到混合推薦中,Shi等人[17]提出了基于HIN的推薦,利用元路徑提取了推薦系統(tǒng)中豐富的異構信息.此外,Yu等人[18]利用元路徑的方式提取異構信息網(wǎng)絡中不同類型的朋友關系,并提出了基于隱式朋友的個性化推薦框架.Luo[19]等人利用異構網(wǎng)絡中的多種關系提出了一種基于協(xié)同過濾的社會推薦方法.最近,Lu等人[20]提出將元路徑引導的異構關系分為所屬關系與交互關系,并利用不同的模型分別處理.在文獻[21,22]中,在不同的語義下,通過基于元路徑的相似程度來評價用戶與項目的相似度,并提出了一種基于雙正則化框架的矩陣因子分解方法來進行評分預測.
因此可以得知,基于HIN的方法大多依賴于基于路徑的相似性,但這可能并不能充分挖掘出HIN上用戶和項目的潛在特征,因此需要一種更有效的方法,來利用元路徑對不同方面的特征進行建模.
本文提出了一種融合多方面潛在特征和神經(jīng)網(wǎng)絡的推薦模型MLFNNR,其基本思想是提取用戶和項目在不同方面的潛在特征.如圖2所示,本文首先通過基于元路徑的隨機游走策略,生成包含不同方面語義的節(jié)點序列,再通過異構skip-gram模型,最大化節(jié)點與其鄰居節(jié)點在通過給定元路徑采樣的序列中的共現(xiàn)概率,以學習用戶和項目在不同方面的潛在特征.對于每個方面的潛在特征向量,結(jié)合注意力機制來為不同的方面分配注意力權值,并將多方面的特征向量進行融合得到全局向量表示.最后將得到的用戶和項目全局向量送入神經(jīng)網(wǎng)絡實現(xiàn)評分預測.
圖2 融合多方面潛在特征和神經(jīng)網(wǎng)絡的推薦模型Fig.2 Recommendation model based on multi-aspect latent feature and neural network
異構信息網(wǎng)絡是一種特殊的信息網(wǎng)絡,它包含多種類型節(jié)點和多種類型連接.本文通過不同的元路徑提取HIN中的不同的語義,具體如表1所示,給出了電影數(shù)據(jù)集中可以提取的幾條元路徑以及不同元路徑所對應的不同方面的特征.
表1 元路徑及所提取的方面信息
Table 1 Meta-paths and the extracted aspect information
方面元路徑用戶電影交互行為UMUMUM導演 UMDMUMDM演員 UMAMUMAM電影類型UMTMUMTM
3.2.1 基于元路徑的隨機游走
在確定了用戶和電影的不同方面的信息之后,假設給定一條指定的元路徑,為了生成可信的節(jié)點序列,采用了基于元路徑的隨機游走,在第t步游走的轉(zhuǎn)移概率定義如下:
(2)
其中nt表示隨機游走的第t個節(jié)點,v節(jié)點的類型為Vt,E表示節(jié)點的集合,NVt+1(v)為節(jié)點v的一階鄰居節(jié)點集合,這些節(jié)點的類型為Vt+1.在游走的每一步,下一個節(jié)點的類型是由設定好的元路徑所決定的.步驟將遵循設定好的元路徑模式,直到達到預定的最大游走長度.
3.2.2 異構網(wǎng)絡節(jié)點表示學習
通過基于元路徑的隨機游走,可以得到一系列包含不同類型的節(jié)點序列,為了進一步的研究,需要使用網(wǎng)絡表示學習的方法來學習節(jié)點的低維向量表示.傳統(tǒng)的深度方法如DeepWalk[23]、LINE(Large-scale Information Network Embedding)[24]等,雖然取得了很好的性能,但都是基于同構信息網(wǎng)絡的,無法對異構的節(jié)點序列進行學習.因此本文結(jié)合了Dong等人[25]提出的異構 skip-gram模型,來學習異構網(wǎng)絡下節(jié)點的表示.
模型可以看作是一個3層的神經(jīng)網(wǎng)絡,輸入層為中心節(jié)點的表示向量,輸出層為其他節(jié)點與中心節(jié)點共現(xiàn)的概率.模型的目標是,給定節(jié)點序列和窗口大小,令目標節(jié)點的鄰近節(jié)點出現(xiàn)在同一窗口內(nèi)的概率最大,目標函數(shù)如下:
(3)
其中Nt(v)表示節(jié)點v的上下文,窗口大小為w,p(ct|v;θ)被定為一個softmax函數(shù),如下所示:
(4)
其中Xv為節(jié)點向量矩陣X的第v行,表示了節(jié)點v的嵌入向量,Vt表示網(wǎng)絡中t類型的節(jié)點集合.與常規(guī)的softmax函數(shù)不同的是,異構網(wǎng)絡下的softmax僅在相同類型的節(jié)點下進行歸一化,因此只考慮了目標節(jié)點與其相同類型節(jié)點共現(xiàn)的概率.
在分別學習到用戶和項目的不同方面潛在特征向量表示后,需要通過一個融合函數(shù)將它們聚合起來,才能得到最終可以表示用戶偏好和項目特征的特征向量.傳統(tǒng)的方法偏向于對所有向量求平均值,即假設用戶在不同的方面有著相同的偏好,通過簡單的線性融合為每個方面分配相同的權重:
(5)
其中P為元路徑的集合,Wl和bl表示第l條元路徑下的變換矩陣和偏置向量.然而,這種方法計算的結(jié)果可能存在很大的誤差,因為在實際中不同的用戶在不同方面會有著不同的偏好,不同的元路徑應當賦予不同的權重.如今注意力機制在圖像字幕和機器翻譯等各種機器學習任務中已經(jīng)取得有效成果,它可以通過學習為不同方面的潛在向量分配不同的注意權值,較高的權值表示相應的方面在推薦中提供較多信息.因此嘗試使用注意力機制來融合這些潛在特征向量,以此來區(qū)分各個方面的重要性.
首先使用兩層的神經(jīng)網(wǎng)絡來計算注意力得分:
(6)
(7)
得到不同方面的權重后,再將多個方面的表示進行加權求和,得到用戶i的全局向量:
(8)
按照同樣的方法,可以得到項目j的全局向量vj:
(9)
在分別得到了用戶i和項目j的全局向量表示后,為了預測用戶對項目的交互概率,傳統(tǒng)的矩陣分解用內(nèi)積來評估它們之間的交互:
(10)
其中K表示潛在空間的維度,矩陣分解方法的局限性在于,提升模型的準確性需要擴大維度K,但這不利于模型的泛化能力.因此嘗試使用神經(jīng)網(wǎng)絡來模擬用戶和項目之間的交互.首先,將表示向量進行合并,以得到交互的統(tǒng)一表示:
xi,j=ui?vj
(11)
其中ui和vj表示用戶i和項目j對應的全局向量表示,“?”表示向量的連接操作.將其輸入一個兩層的神經(jīng)網(wǎng)絡,以實現(xiàn)對交互的建模:
h=ReLU(W2ReLU(W1·xi,j)+b1)+b2)
(12)
其中,W1和W2為神經(jīng)網(wǎng)絡的權重矩陣,b1和b2為偏置,采用了ReLU激活函數(shù).然后通過一個權值為wr,偏置為br,激活函數(shù)為sigmoid的輸出層,得到用戶對項目最終的預測交互概率:
(13)
在模型優(yōu)化上,參考了矩陣分解的目標函數(shù),最小化觀測評分的正則化平方損失:
(14)
本文采用了電影評分數(shù)據(jù)集Movielens-100k和豆瓣電影數(shù)據(jù)集,通過對原始數(shù)據(jù)集進行清洗和整理,提取用戶和項目的屬性信息,處理成統(tǒng)一的異構信息網(wǎng)絡作為實驗的輸入.
其中,Movielens-100k數(shù)據(jù)集包含U(用戶)、M(電影)、A(用戶年齡)、T(電影類型)4種類型節(jié)點.豆瓣電影數(shù)據(jù)集包含U(用戶)、M(電影)、D(導演)、A(演員),T(電影類型)5種類型的節(jié)點.數(shù)據(jù)集的詳細描述如表2和表3所示.在表2中,元路徑UMU和MUM路徑用來提取用戶和物品在交互歷史方面的特征;UMTMU和MTM表示用戶因為某個電影類型進行選擇,提取的是電影類型方面的特征;UMDMU和MDM表示用戶根據(jù)某個導演而選擇電影,提取的是在導演方面的偏好特征;UMAMU和MAM表示用戶根據(jù)某個演員而選擇電影,提取的是在演員方面的偏好特征.
表2 元路徑的選擇
Table 2 Selected meta-paths
DatasetsMeta-pathsMovielensUMU(用戶-電影-用戶),UMTMU(用戶-電影-類型-用戶),MUM(電影-用戶-電影),MTM(電影-類型-電影),豆瓣 UMU(用戶-電影-用戶),UMDMU(用戶-電影-導演-電影-用戶),UMAMU(用戶-電影-演員-電影-用戶),UMTMU(用戶-電影-類型-電影-用戶),MAM(用戶-演員-用戶),MUM(電影-用戶-電影),MDM(電影-導演-電影),MTM(電影-類型-電影)
表3 數(shù)據(jù)集的具體信息
Table 3 Specific information of datasets
Datasets關系(A-B)ABA-BMovielens用戶-電影9431682100000電影-類型1682182861用戶-電影13367126771068278用戶-用戶244022944085豆瓣 電影-類型126783827668電影-導演10179244911276電影-演員11718631133587
實驗結(jié)果采用平均絕對偏差(MeanAbsoluteError,MAE)和均方誤差(RootMeanSquaredError,RMSE)兩個推薦常用評估指標,計算公式為:
(15)
(16)
對于本文的模型,將嵌入維度設置為128,窗口大小設置為5,隨機游走路徑長度為10,學習率為0.001,實驗選取80%的數(shù)據(jù)作為訓練集,20%作為測試集.
本文采用以下方法比較提出的模型:
1)basedMF:經(jīng)典的矩陣分解算法,將用戶項目交互矩陣分解為兩個低維的用戶矩陣和項目矩陣,然后利用分解后的矩陣進行進一步的預測.
2)SVD:奇異值分解算法,不同于經(jīng)典的矩陣分解算法,其將交互矩陣分解為將矩陣分解為奇異矩陣和奇異值.
3)UserKNN:最近鄰協(xié)同過濾算法,基本思想是根據(jù)相似度找出目標用戶的最近鄰居集,然后用鄰居用戶評分的加權組合來為目標用戶作推薦.
4)PMF:經(jīng)典的概率矩陣分解模型,假設用戶和項目的特征矩陣均服從高斯分布.
5)HeteMF:是一種基于元路徑的推薦算法,它利用基于元路徑的計算出在HIN上的實體相似性,再結(jié)合矩陣分解實現(xiàn)推薦.
6)HeRec:是一種基于元路徑隨機游走學習向量表示的方法,利用一組融合函數(shù)來將多條元路徑連接,最后結(jié)合矩陣分解實現(xiàn)的推薦.
7)MLFNNR:融合多方面潛在特征和神經(jīng)網(wǎng)絡的推薦模型,利用元路徑和表示學習方法提取并學習用戶和項目的多方面潛在特征向量,再結(jié)合注意力機制和神經(jīng)網(wǎng)絡實現(xiàn)推薦.
在對比實驗中,用到HIN的方法需要指定使用的元路徑,在對元路徑的選擇上進行了一些過濾,考慮到算法復雜度以及噪聲問題,排除了過長的路徑,僅保留步驟數(shù)不超過4的路徑.
表4 實驗結(jié)果對比
Table 4 Comparison of experimental results
MethodMovielensMAERMSE豆瓣MAERMSEBasedMF1.12501.28150.60400.7680SVD0.97931.01900.58770.7590UserKNN0.86961.05750.61620.7701PMF0.76200.95050.57550.7683HeteMF0.74490.92550.57500.7565HeRec0.73210.92690.56710.7215MLFNNR0.72140.91800.56250.7120
表4展示了在兩個數(shù)據(jù)集上各種算法的MAE值和RMSE值,可以看出本文采用的方法在兩個數(shù)據(jù)集上皆取得了最佳性能,證明了該模型的有效性.其中,基于HIN的方法(HeteMF,MLFNNR,HeRec)明顯要優(yōu)于其他幾種方法,證明了異構信息網(wǎng)絡的有效性.HeRec同樣是基于元路徑隨機游走的算法,但是其局限性在于使用的融合函數(shù)有一定的局限性,而且最終結(jié)合矩陣分解內(nèi)積的形式實現(xiàn)推薦.而本文的方法優(yōu)于其他基于HIN的方法的原因是采用了更有原則的方法利用HIN來改進推薦系統(tǒng),提供了更好的信息提取,以及利用了神經(jīng)網(wǎng)絡來代替了傳統(tǒng)矩陣分解中的內(nèi)積,從數(shù)據(jù)中自動學習任意函數(shù).
圖3 訓練比率對實驗結(jié)果的影響Fig.3 Performance comparison of different training ratio on Movielens-100k
圖3展示了在實驗中,分別選取20%、40%、60%、80%、90%的數(shù)據(jù)作為訓練集,剩余作為測試集時取得的實驗結(jié)果,可以看出,選取80%的數(shù)據(jù)集時結(jié)果性能最佳.由于數(shù)據(jù)的稀疏性,當選取更多的數(shù)據(jù)來訓練模型時,會取得更精確的結(jié)果.然而,選取到80%時,實驗結(jié)果已經(jīng)足夠好,繼續(xù)擴大訓練集對性能的提升影響并不大.
圖4 窗口w大小對實驗結(jié)果的影響Fig.4 Influence of the size of window
圖4展示了在基于元路徑的隨機游走過程中,實驗通過把窗口分別設置為3、5、7、9來測試滑動窗口w的大小對實驗結(jié)果的影響.從圖中可以看出,在w=5時取得了最好的效果,這也說明了并不是窗口越大就一定越好,因為窗口過大可能會導致在一些關系不緊密的節(jié)點之間建立邊.
圖5 嵌入維度d的大小對實驗結(jié)果的影響Fig.5 Influence of the size of embedding dimension
為了探索節(jié)點嵌入維度d的大小對模型的影響,實驗中分別把嵌入維度d分別設置為16、32、64、128、256.如圖5所示,對于movielens數(shù)據(jù)集,增加維度達到128時取得了最好的實驗結(jié)果,對于豆瓣數(shù)據(jù)集,維度為128時和256時性能差距不大.因此兩個數(shù)據(jù)集都選用128作為嵌入維度,維度過大不一定會繼續(xù)提升模型性能,相反,還可能會增加模型的復雜度.
為了驗證多方面潛在特征對實驗結(jié)果的影響,實驗中對兩個數(shù)據(jù)集分別測試了在僅基于單一方面特征下的實驗結(jié)果.如UMU-MUM表示僅根據(jù)用戶與項目的交互歷史這一方面,UMTMU-MTM表示僅根據(jù)電影的類型這一方面,UMDMU-MDM表示僅根據(jù)電影導演這一方面,UMAMU-MAM表示僅基于電影演員這一方面.得到的實驗結(jié)果如圖6所示,可 以看出基于交互歷史這一方面的影響力最大,因為交互歷史中通常包含了推薦系統(tǒng)中最重要的信息.在同時加入3種元路徑時,實驗效果最好,這也說明了加入多方面潛在特征的必要性.同時,在多方面的向量表示融合這一步驟中,加入了使用線性融合函數(shù)替代注意力機制進行的對比試驗“Average”,而“Average”的結(jié)果要差于MLFNNR,這也說明了注意力機制的有效性.
圖6 僅基于單一方面的實驗結(jié)果Fig.6 Results based on single aspect
由于推薦系統(tǒng)現(xiàn)有的研究大都是基于用戶和項目的交互行為這一單一方面實現(xiàn),考慮多方面的特征也許能有效地提升推薦性能.因此,本文提出了一種融合多方面潛在特征和神經(jīng)網(wǎng)絡的推薦模型,有效利用HIN中的屬性信息來建模多方面的信息,從而提升推薦結(jié)果的準確性.通過設計好的一組包含不同語義的元路徑,使用基于元路徑隨機游走以及異構skip-gram模型學習到用戶和項目的多方面的潛在特征向量,再通過注意力機制來進行融合,最終結(jié)合神經(jīng)網(wǎng)絡實現(xiàn)評分預測.最后通過在兩個經(jīng)典數(shù)據(jù)集上進行的實驗以及補充的消融實驗,驗證了模型的有效性,也證明了提取用戶和項目多方面的特征在推薦系統(tǒng)中的必要性.