田曉婧,謝穎華
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
近年來,隨著深度學(xué)習(xí)的飛速發(fā)展,深度學(xué)習(xí)技術(shù)被大規(guī)模地運(yùn)用到推薦系統(tǒng)領(lǐng)域[1].深度學(xué)習(xí)技術(shù)能夠有效地捕獲非線性和特殊性的用戶和項(xiàng)目之間的關(guān)系,并通過引用神經(jīng)網(wǎng)絡(luò),將其作為更高層中的數(shù)據(jù)表示,來表達(dá)更復(fù)雜抽象的數(shù)據(jù)形式以克服數(shù)據(jù)稀疏性的問題[2].因此,許多研究人員都通過將深度神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)協(xié)同過濾算法結(jié)合,改善傳統(tǒng)推薦算法的推薦性能.
2017 年,He 等首次提出了神經(jīng)協(xié)同過濾模型(neural collaborative filtering,NCF)[3],同時(shí)在此框架下融合了廣義矩陣分解和多層感知機(jī)模型,廣義矩陣分解通過利用線性內(nèi)核來建模用戶與項(xiàng)目潛在特征向量之間的交互關(guān)系.多層感知機(jī)則是使用非線性內(nèi)核學(xué)習(xí)交互函數(shù),進(jìn)一步優(yōu)化推薦模型.
近幾年,許多研究人員也根據(jù)NCF 模型做出了改進(jìn)以進(jìn)一步提升推薦效果.例如劉晶[4]在2019年提出基于Inception-Resnet 網(wǎng)絡(luò)的外積交互協(xié)同過濾算法,將NCF中的神經(jīng)網(wǎng)絡(luò)層定義為Inception 網(wǎng)絡(luò),復(fù)雜的Inception 對(duì)特征的非線性映射能力更強(qiáng),同時(shí)添加ResNet 結(jié)構(gòu)解決訓(xùn)練中梯度彌散的問題,使模型具有更好的效果.王駿等[5]在2020年提出將多層感知機(jī)與貝葉斯個(gè)性化排序算法融合,提取所需要的排序信息,使模型性能得到提高.紀(jì)強(qiáng)[6]在2020年提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)的序列推薦模型,通過循環(huán)神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)用戶交互的序列歷史中的短期用戶偏好.
然而這些都不能很好地同時(shí)捕捉用戶的短期偏好和長期偏好,針對(duì)這個(gè)問題,本文提出融合長短期記憶網(wǎng)絡(luò)和廣義矩陣分解的神經(jīng)協(xié)同過濾模型,這對(duì)實(shí)現(xiàn)更好的推薦性能有很重要的意義.
神經(jīng)協(xié)同過濾模型基于隱式反饋數(shù)據(jù),利用深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來學(xué)習(xí)任意交互函數(shù),為每個(gè)用戶生成一個(gè)推薦列表,其框架結(jié)構(gòu)如圖1所示.NCF 將傳統(tǒng)矩陣分解模型中的內(nèi)積操作替換為“多層神經(jīng)網(wǎng)絡(luò)+輸出層”的結(jié)構(gòu),這樣可以使用戶和項(xiàng)目向量之間進(jìn)行更充分的交叉,從而獲得更多的特征組合信息,而這種非線性特征的加入也將使模型的表達(dá)能力獲得提升.
圖1 NCF 框架
推薦算法中傳統(tǒng)的協(xié)同過濾算法存在著一定的局限性,例如頭部效應(yīng)較明顯,泛化能力較弱[7]等問題.針對(duì)這個(gè)問題,矩陣分解(matrix factorization,MF)算法[8]被提出.MF 在協(xié)同過濾算法中“共現(xiàn)矩陣”的基礎(chǔ)上,加入了隱向量的概念,加強(qiáng)了模型處理稀疏矩陣的能力,解決了協(xié)同過濾存在的主要問題[9].
矩陣分解算法為每一個(gè)用戶和項(xiàng)目生成一個(gè)隱向量,然后將用戶和項(xiàng)目定位到隱向量的表示空間上,距離相近的用戶和項(xiàng)目表明興趣特點(diǎn)接近,在推薦過程中,距離相近的項(xiàng)目表明相似度更高,更應(yīng)該被推薦給目標(biāo)用戶.
計(jì)算用戶u對(duì)項(xiàng)目i的預(yù)估評(píng)分如式(1)所示.
其中,pu是用戶u在用戶矩陣U中的對(duì)應(yīng)行向量,qi是項(xiàng)目i在項(xiàng)目矩陣V中的對(duì)應(yīng)列向量.
式(2)是求解矩陣分解的目標(biāo)函數(shù),該目標(biāo)函數(shù)的目的在于最小化實(shí)際評(píng)分rui與用戶向量和項(xiàng)目向量之積qiTpu的差,這樣才能最大限度地保存共現(xiàn)矩陣地原始信息.
長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[10]是針對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)產(chǎn)生的梯度消失和梯度爆炸問題而進(jìn)行改進(jìn)的,它的結(jié)構(gòu)[11]如圖2所示.
圖2 LSTM 結(jié)構(gòu)
LSTM 狀態(tài)更新滿足以下公式:
其中,ft、it、ot分別表示遺忘門、輸入門和輸出門,ct表示隱藏層神經(jīng)元狀態(tài),xt表示當(dāng)前輸入,σ是Sigmoid函數(shù).[ht-1,xt] 表示t–1 時(shí)刻隱藏層的輸出和t時(shí)刻的輸入的連接向量,W和b分別表示權(quán)重矩陣和偏置.
每個(gè)用戶對(duì)項(xiàng)目的瀏覽順序是推薦系統(tǒng)中的一項(xiàng)重要數(shù)據(jù),隨著時(shí)間的不同,用戶的喜好也會(huì)有著一定的變化.然而,傳統(tǒng)的推薦算法默認(rèn)用戶的喜好是一成不變的,僅僅對(duì)用戶的偏好進(jìn)行全局預(yù)測,通過靜態(tài)的方式建模用戶與項(xiàng)目之間的交互,這樣忽略了用戶興趣動(dòng)態(tài)變化的過程.
而在實(shí)際的推薦場景中,由于用戶所處的上下文不同應(yīng)該進(jìn)行不同的推薦.一個(gè)好的推薦系統(tǒng)不能僅僅捕捉用戶的長期偏好,而應(yīng)該把時(shí)效特性考慮其中.對(duì)時(shí)間序列數(shù)據(jù)有很強(qiáng)擬合能力的循環(huán)神經(jīng)網(wǎng)絡(luò)就剛好可以做到這一點(diǎn),捕捉用戶的短期偏好,進(jìn)一步改善推薦效果.
但是,通常在進(jìn)行推薦時(shí),推薦的預(yù)測目標(biāo)與實(shí)際所需要的信息并不是連續(xù)的,甚至?xí)霈F(xiàn)超長間隔,而普通的循環(huán)神經(jīng)網(wǎng)絡(luò)難以學(xué)習(xí)這種長依賴關(guān)系[12].所以在類似電影推薦這種行為建模場景中,普通的RNN難以建模這種關(guān)系.于是,LSTM 被提出,它是一種特殊的RNN,專門針對(duì)數(shù)據(jù)的長短期依賴關(guān)系,對(duì)于實(shí)際推薦系統(tǒng)中序列間的這種長依賴關(guān)系進(jìn)行很好地建模.
因此本文對(duì)NCF中的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),通過LSTM 學(xué)習(xí)用戶的短期偏好信息,捕捉序列的長依賴關(guān)系,同時(shí)通過廣義矩陣分解學(xué)習(xí)用戶的長期偏好信息,然后在NCF 框架下構(gòu)建兩個(gè)模型,并把他們進(jìn)行融合得到預(yù)測數(shù)據(jù).本文把這個(gè)改進(jìn)模型稱為長短期記憶網(wǎng)絡(luò)矩陣分解(LSMF)模型,結(jié)構(gòu)如圖3所示.
圖3 LSMF 模型
嵌入層的作用在于將數(shù)據(jù)映射成為特征向量.本文中,它將輸入層的用戶ID和項(xiàng)目ID 進(jìn)行了onehot 編碼后,分別通過MF 嵌入層和LSTM 嵌入層映射成輸入到MF 層和LSTM 層的用戶和項(xiàng)目特征向量.其中,用戶ID和電影ID 需要通過時(shí)間排序后再輸出到嵌入層.
2.3.1 廣義矩陣分解
通過嵌入層得到了用PTVuU表示的用戶的特征向量pu,QTViI表示的項(xiàng)目的特征向量qi,然后將神經(jīng)協(xié)同過濾模型中的第一層的映射函數(shù)[13]定義為:
其中,⊙表示向量的點(diǎn)積,然后將向量映射到輸出層.
其中,aout表示輸出層的激活函數(shù),h表示邊緣權(quán)重.
2.3.2 長短期記憶網(wǎng)絡(luò)
模型通過LSTM 來捕獲用戶和項(xiàng)目的時(shí)間依賴性,對(duì)時(shí)序信息循環(huán)計(jì)算以挖掘上下文關(guān)系,通過構(gòu)造用戶狀態(tài)和電影狀態(tài)進(jìn)行自回歸計(jì)算,對(duì)推薦系統(tǒng)中的用戶行為序列進(jìn)行分析.
模型通過上一時(shí)刻的用戶和項(xiàng)目狀態(tài)預(yù)測此時(shí)的用戶和電影狀態(tài)[14],然后預(yù)測此時(shí)用戶和項(xiàng)目進(jìn)行交互地可能性.
基于用戶評(píng)分行為預(yù)測評(píng)分問題表示為:
其中,rui|t和分別表示用戶u在時(shí)刻t對(duì)電影i的實(shí)際評(píng)分和預(yù)測評(píng)分.
將GMF 層和LSTM 層輸出的向量進(jìn)行拼接.
本文使用Sigmoid 作為激活函數(shù).由于本文專注于隱式反饋的研究,所以將LSMF 視為概率模型,把推薦作為一個(gè)二分類任務(wù).因此本文使用對(duì)數(shù)損失函數(shù)(log loss)學(xué)習(xí)h進(jìn)行優(yōu)化.
本文選擇MovieLens-1M 作為實(shí)驗(yàn)數(shù)據(jù)集,其中包含users.dat,movies.dat和ratings.dat 三個(gè)表.它擁有來自6 040 位在2000年加入MovieLens的用戶對(duì)3 706 部電影的100 多萬條從1 星到5 星評(píng)級(jí)信息,其中每個(gè)用戶評(píng)級(jí)過的電影數(shù)據(jù)均大于20.
為了驗(yàn)證模型的推薦效果,我們選用留一法(leaveone-out)進(jìn)行驗(yàn)證.把每個(gè)用戶最新的評(píng)分信息作為測試集,把其他的交互信息作為訓(xùn)練集.為了避免對(duì)所有項(xiàng)目排序造成的耗時(shí)過長,所以實(shí)驗(yàn)是從所有的項(xiàng)目樣本中隨機(jī)選擇99 個(gè)沒有評(píng)分的電影,然后將測試集中的電影與這些電影一起輸入到模型進(jìn)行排序.
本文將命中率(hits ratio,HR)和歸一化折損累積增益(normalized discounted cumulative gain,NDCG)[15]作為性能評(píng)估標(biāo)準(zhǔn).
在式(14)中,GT所表示的是所有用戶測試集合中的項(xiàng)目總數(shù),分子表示推薦列表中屬于其測試集合的項(xiàng)目總數(shù).式(15)中,Z是歸一化因子,表示理想推薦列表的折損累計(jì)增益.xi是第i個(gè)項(xiàng)目的預(yù)測相關(guān)性.兩式中K表示排名個(gè)數(shù),本文取K=10.
本文對(duì)5 種不同的模型進(jìn)行對(duì)比,這些模型分別為NCF 框架下的廣義矩陣分解模型(GMF),多層感知機(jī)模型(MLP),神經(jīng)網(wǎng)絡(luò)矩陣分解模型(NueMF),長短期記憶網(wǎng)絡(luò)模型(LSTM)和長短期記憶網(wǎng)絡(luò)矩陣分解模型(LSMF).訓(xùn)練50 輪,取不同模型的性能平均值,得出結(jié)果如表1所示.
表1 不同模型的HR和NDCG 對(duì)比
圖4和圖5顯示了廣義矩陣分解(GMF)模型,長短期記憶網(wǎng)絡(luò)(LSTM)模型以及兩者融合后的長短期記憶網(wǎng)絡(luò)矩陣分解(LSMF)模型的性能對(duì)比,從圖中可以看出,前10 個(gè)迭代的更新是最有效的.從以上實(shí)驗(yàn)數(shù)據(jù)可以明顯看出,LSTM 模型的收斂速度較慢,但收斂后的推薦性能比GMF 要好,而融合了LSTM和GMF的LSMF 模型,不僅收斂速度比較快,而且推薦性能也是最好的.
圖4 各個(gè)模型在HR 上的表現(xiàn)
圖5 各個(gè)模型在NDCG 上的表現(xiàn)
從以上實(shí)驗(yàn)結(jié)果中,我們可以清楚地得到結(jié)論,這5 種模型在推薦性能上的優(yōu)劣對(duì)比為LSMF>LSTM>NueMF>MLP>GMF.因此本文提出LSMF 模型在推薦性能上有了一定的提高.
本文首先介紹了神經(jīng)協(xié)同過濾模型,然后針對(duì)模型中沒有考慮時(shí)間因素,無法同時(shí)捕捉用戶的短期偏好和長期偏好的問題,提出了長短期記憶網(wǎng)絡(luò)與廣義矩陣分解相結(jié)合的神經(jīng)協(xié)同過濾模型,通過長短期記憶網(wǎng)絡(luò)學(xué)習(xí)用戶的短期偏好信息,捕捉序列的長依賴關(guān)系,同時(shí)通過廣義矩陣分解學(xué)習(xí)用戶的長期偏好信息.最后在MovieLens-1M 數(shù)據(jù)集上與其他模型進(jìn)行對(duì)比,根據(jù)實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)在命中率和歸一化折現(xiàn)累積增益這兩個(gè)指標(biāo)上,本文提出的改進(jìn)模型有明顯的提升,收斂速度更快,而且具備更好的推薦性能.