陳輝,王鍇鉞
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
推薦系統(tǒng)(RS)通過(guò)分析數(shù)據(jù)中用戶的歷史行為信息、用戶與項(xiàng)目的交互信息、時(shí)間信息等記錄構(gòu)建用戶畫像,為企業(yè)提供針對(duì)不同用戶的有區(qū)別對(duì)待的用戶忠誠(chéng)度培養(yǎng)方式。在現(xiàn)有的針對(duì)個(gè)性化推薦服務(wù)的技術(shù)中,協(xié)同過(guò)濾推薦系統(tǒng)(CFRS)[1-2]相對(duì)簡(jiǎn)單有效,已被許多商業(yè)網(wǎng)站廣泛使用。但隨著網(wǎng)絡(luò)上可訪問(wèn)的數(shù)據(jù)量急速增長(zhǎng),有用數(shù)據(jù)變得極為稀疏,使得向用戶提供精準(zhǔn)個(gè)性化服務(wù),促使網(wǎng)站點(diǎn)擊量、下載量、銷售量等盈利項(xiàng)目增長(zhǎng)變得十分困難。
為了獲得目標(biāo)用戶的興趣,得到合適的推薦結(jié)果,一些學(xué)者采用基于鄰域的協(xié)同過(guò)濾推薦算法[3],得到相似的用戶或項(xiàng)目,進(jìn)一步得到推薦結(jié)果。Surya等[4]考慮了用戶的評(píng)分習(xí)慣,提出了一種基于離差均值的相似性度量方法。Kalamati等[5]利用Beta隨機(jī)變量對(duì)類別信息進(jìn)行智能數(shù)據(jù)建模,提出了一種基于類別的協(xié)同過(guò)濾方法。Fan等[6]結(jié)合調(diào)整后的余弦相似度,提出一種通過(guò)可靠性來(lái)計(jì)算用戶相似度的方法。于金明等[7]提出了IPSS相似性度量方法。Jain等[8]將用戶之間對(duì)同一項(xiàng)目的絕對(duì)差異值存儲(chǔ)在一個(gè)用戶相似性矩陣中,為相似性算法提供了一種新的改進(jìn)思路。
這些相似度算法大部分關(guān)注用戶對(duì)項(xiàng)目的評(píng)分等級(jí),以向量的形式比較距離,忽略了用戶行為本身作為一個(gè)普通序列所具有的意義,而且用戶對(duì)項(xiàng)目的傾向程度會(huì)根據(jù)時(shí)間的變化而改變,在用戶對(duì)推薦結(jié)果需求數(shù)量較少時(shí),還要盡可能把用戶近期最為感興趣的項(xiàng)目放在靠前的位置。本文為了解決這些問(wèn)題,將用戶行為作為序列而不是向量來(lái)使用,采用計(jì)算最長(zhǎng)公共子序列(longest common subsequence,LCS)[9]的動(dòng)態(tài)規(guī)劃算法,比較兩個(gè)用戶序列間的相似性。但大數(shù)據(jù)量帶來(lái)的數(shù)據(jù)稀疏以及推薦實(shí)時(shí)性問(wèn)題,無(wú)法單純通過(guò)計(jì)算相似度找到的相似用戶來(lái)預(yù)測(cè)評(píng)分。
基于模型的協(xié)同過(guò)濾推薦算法通過(guò)對(duì)訓(xùn)練數(shù)據(jù)的離線學(xué)習(xí),得到模型的參數(shù),獲得線下預(yù)測(cè)模型,最后利用模型進(jìn)行線上實(shí)時(shí)運(yùn)算。矩陣分解就是其中運(yùn)用較為廣泛的一種協(xié)同過(guò)濾技術(shù),可以隨著用戶信息的實(shí)時(shí)變化而改變推薦結(jié)果。Peng等[10]結(jié)合增量矩陣協(xié)因子分解模型得到了新的推薦算法。Xu[11]將用戶間的社會(huì)信息同項(xiàng)目間的關(guān)系結(jié)合起來(lái),使得用戶與項(xiàng)目特征穩(wěn)定分解。Yang等[12]整合用戶與項(xiàng)目的交互信息以及社會(huì)網(wǎng)絡(luò)來(lái)改進(jìn)推薦算法。孫靜等[13]通過(guò)NMF得到不同稀疏度的圖像特征后,對(duì)其進(jìn)行聚類計(jì)算。但這些補(bǔ)全矩陣的非線性擴(kuò)展有相當(dāng)大的局限性,如果沒(méi)有可用的輔助信息或者輔助信息不完整,則非線性操作將不再適用。深度學(xué)習(xí)技術(shù)恰好能夠恢復(fù)具有非線性結(jié)構(gòu)的不完全矩陣數(shù)據(jù),顧軍華等[14]利用CNN的特征提取特性將多源數(shù)據(jù)信息融合到概率矩陣分解模型中。曾旭禹等[15]結(jié)合變分自編碼器來(lái)感知上下文信息。He等[16]將多層感知機(jī)與協(xié)同過(guò)濾相結(jié)合,提出利用神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)來(lái)建模用戶和項(xiàng)目隱藏特征的方法。然而這些結(jié)合深度學(xué)習(xí)的矩陣分解模型注重于添加額外的輔助信息,反而將顯性的評(píng)分反饋都做0-1處理,顧此失彼。
為了提高推薦算法的效果,本文通過(guò)深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)架構(gòu)獲得用戶和項(xiàng)目之間的隱藏特征,使用內(nèi)積計(jì)算用戶和項(xiàng)目之間的交互;通過(guò)序列轉(zhuǎn)換,將最長(zhǎng)公共子序列引入深度神經(jīng)網(wǎng)絡(luò)矩陣分解推薦算法,找到相似用戶,并在矩陣分解過(guò)程中保持這種聯(lián)系,使得相似用戶間的隱藏特征向量更加接近,以解決數(shù)據(jù)稀疏以及用戶近期偏好對(duì)Top-N推薦的排序指標(biāo)影響的問(wèn)題。最后通過(guò)在Epinions數(shù)據(jù)集上與多個(gè)推薦方法進(jìn)行實(shí)驗(yàn)對(duì)比,驗(yàn)證本文算法在3種常見(jiàn)評(píng)價(jià)指標(biāo)上的優(yōu)越性。
最長(zhǎng)公共子序列(LCS)[17]是兩個(gè)或多個(gè)已知序列的子序列,且是所有符合此條件序列中最長(zhǎng)的序列,通常用于判斷兩個(gè)序列的相似程度,其在數(shù)據(jù)壓縮、生物信息學(xué)和文本編輯等領(lǐng)域被廣泛應(yīng)用。
假定序列Ix={i1,i2,…,ix}∈I,并且Ix是由I的第一個(gè)元素開(kāi)始,按I的順序且不間斷地直到I的第x個(gè)元素組成,以相同的規(guī)定得到Jy={j1,j2,…,jy}∈J。C( )表示最長(zhǎng)公共子序列長(zhǎng)度,LCS( )表示最長(zhǎng)公共子序列??梢缘玫竭f推公式
C(Ix,Jy)=
(1)
通過(guò)對(duì)C(Ix,Jy)的回溯,可以得到完整的LCS( )。
LCS是定義在兩個(gè)字符序列上,若將其運(yùn)用在協(xié)同過(guò)濾推薦算法中,需要定義序列如何生成。
假設(shè)U={u1,u2,…,um}是一個(gè)用戶集,I={i1,i2,…,in}是一個(gè)項(xiàng)目集,rui表示用戶u對(duì)項(xiàng)目i的評(píng)分。此時(shí)固定的字符表由項(xiàng)目ID構(gòu)成,因?yàn)轫?xiàng)目ID不存在重復(fù),所以每個(gè)符號(hào)表示一個(gè)項(xiàng)目ID。一旦確定代表用戶時(shí)使用的字符表,就需要指定符號(hào)的排列順序,因?yàn)長(zhǎng)CS算法需要兩個(gè)序列中的符號(hào)具有相同的排列順序,所以在用戶對(duì)推薦結(jié)果需求數(shù)量較少且用戶偏好隨時(shí)間變化時(shí),要盡可能把用戶近期最為偏好的項(xiàng)目放在前面。這時(shí)候就要根據(jù)用戶對(duì)項(xiàng)目產(chǎn)生交互的時(shí)間對(duì)項(xiàng)目ID進(jìn)行排序,得到的就是字符表的總序列,用戶序列就是這個(gè)總序列的子序列。
在實(shí)際運(yùn)用中,評(píng)分的范圍是有限的,如r={1,2,…,5},并且項(xiàng)目和它們的ID之間存在映射關(guān)系,因此使用項(xiàng)目ID和評(píng)分的組合以項(xiàng)目出現(xiàn)時(shí)間的順序來(lái)構(gòu)成用戶序列
f(u)=10I(u)+R(u),
(2)
式中:f表示用戶序列轉(zhuǎn)換函數(shù);f(u)表示用戶u的序列;I(u)表示用戶u評(píng)價(jià)過(guò)的項(xiàng)目ID集合;R(u)表示用戶u對(duì)所有項(xiàng)目的評(píng)分集合。
轉(zhuǎn)換函數(shù)可以根據(jù)不同場(chǎng)合對(duì)推薦結(jié)果的不同要求,以及數(shù)據(jù)源格式、內(nèi)容的差異進(jìn)行多種組合,且組合的方式也有多種,這就使得本文算法面對(duì)現(xiàn)實(shí)生活中樣式繁多的數(shù)據(jù)源時(shí)具有較好的擴(kuò)展性。
在最初的LCS問(wèn)題中,尋找的是兩個(gè)字符串之間的精確匹配。然而,當(dāng)處理用戶數(shù)據(jù)時(shí),需要某種程度的模糊性,假設(shè)兩個(gè)用戶對(duì)于同一個(gè)項(xiàng)目的評(píng)分差值在一定范圍內(nèi)就可以認(rèn)為彼此具有相似的品味。因此,提出了一種LCS算法的變體來(lái)放寬匹配條件,即使用匹配閾值δ來(lái)決定序列的兩個(gè)符號(hào)是否相等。比如布爾函數(shù)匹配bool(a,b,δ),如果a和b具有相同的值或者它們的差值小于δ,則輸出為真。
因?yàn)長(zhǎng)CS的長(zhǎng)度范圍為[0,|Σ|](|Σ|表示字符表的長(zhǎng)度),不能直接作為用戶間的相似度度量,所以對(duì)其進(jìn)行歸一化,得到
(3)
式中:C(u,v,f,δ)表示兩個(gè)用戶序列的最長(zhǎng)公共子序列的長(zhǎng)度,由C(Ix,Jy)結(jié)合用戶序列轉(zhuǎn)換函數(shù)f以及匹配閾值δ得到;|f(u)|、|f(v)|表示用戶u和v的序列長(zhǎng)度。
下面通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明如何計(jì)算基于LCS的用戶相似度。表1為用戶對(duì)項(xiàng)目的評(píng)分,其中第1列為用戶,第1行為項(xiàng)目ID;表2為每種情況下的相似度值。
表1 用戶u和v對(duì)項(xiàng)目的評(píng)分Tab.1 Item ratings between users
表2中根據(jù)公式(2),利用項(xiàng)目ID以及用戶對(duì)項(xiàng)目的評(píng)分,通過(guò)序列轉(zhuǎn)換得到用戶序列f(u)和f(v)。用戶u和v之間的最長(zhǎng)公共子序列長(zhǎng)度C()的值通過(guò)公式(1)計(jì)算。當(dāng)匹配閾值δ=0時(shí),用戶u和v之間的最長(zhǎng)公共子序列長(zhǎng)度C(u,v)=1,根據(jù)公式(3)計(jì)算歸一化的用戶間相似性sim(u,v)=0.08??紤]到在評(píng)分相差不多的情況下,用戶間也具有一定的相似性,令δ=1,用戶u和v之間的最長(zhǎng)公共子序列長(zhǎng)度C(u,v)=2,用戶間相似性sim(u,v)=0.33。
表2 δ的取值對(duì)于用戶相似度的影響Tab.2 The influence of δ on user similarity
假設(shè)有M個(gè)用戶和N個(gè)項(xiàng)目,根據(jù)每個(gè)用戶對(duì)各個(gè)項(xiàng)目的評(píng)價(jià),生成一個(gè)M×N的稀疏評(píng)價(jià)矩陣R。矩陣中的項(xiàng)rui表示用戶u對(duì)項(xiàng)目i的評(píng)分,如果評(píng)分未知,就將rui標(biāo)記為null。定義Y∈RM×N為用戶-項(xiàng)目交互矩陣,Y的構(gòu)建方法為
(4)
不同于一般的深神經(jīng)網(wǎng)絡(luò)矩陣分解模型,在用戶u對(duì)項(xiàng)目i的評(píng)分rui有觀察值時(shí),Yui=1,本文令Yui=rui,當(dāng)評(píng)價(jià)未知時(shí),將其標(biāo)記為0。標(biāo)記為0并不意味著用戶不喜歡該項(xiàng)目,有可能是沒(méi)有接觸過(guò)該項(xiàng)目。
Yu*表示用戶u對(duì)所有項(xiàng)目的交互,可以在某種程度上表明用戶的全局偏好。Y*i代表一個(gè)物品與所有用戶的交互,可以在某種程度上表明一個(gè)項(xiàng)目的標(biāo)簽特征。以向量Yu*、Y*i為輸入,運(yùn)用深度神經(jīng)網(wǎng)絡(luò)架構(gòu),將用戶和項(xiàng)目投射到一個(gè)潛在的結(jié)構(gòu)化空間中,如圖1所示。
圖1 深度神經(jīng)網(wǎng)絡(luò)矩陣分解模型Fig.1 Deep neural network matrix factorization model
在實(shí)際應(yīng)用中,真實(shí)數(shù)據(jù)集往往來(lái)自非線性潛在變量模型,具有非線性結(jié)構(gòu),因此需要隱藏層來(lái)擬合這些非線性數(shù)據(jù)。根據(jù)多層感知機(jī)(MLP)的原理,構(gòu)造輸入層
h1=W1x+b1。
(5)
隱藏層有多層,具體層數(shù)將根據(jù)實(shí)驗(yàn)結(jié)果進(jìn)行參數(shù)調(diào)整。本文為了緩解梯度消失以及計(jì)算復(fù)雜性問(wèn)題,選取ReLU函數(shù)作為激活函數(shù),給每層結(jié)點(diǎn)引入非線性因素
g(x)=max(0,x),
(6)
隱藏層構(gòu)造公式
hL=g(WLhL-1+bL),L=2,…,N-1,
(7)
輸出層構(gòu)造公式
y=g(WNhN-1+bN),
(8)
式中:x表示MLP的輸入向量;hL表示第L個(gè)隱藏層;y表示MLP的輸出向量;W表示權(quán)重矩陣;b表示偏置量。
(9)
(10)
將交互矩陣Y的向量作為隱藏層的輸入代入式(5)—式(7),通過(guò)逐級(jí)映射,最后由式(9)—式(10)得到隱藏特征向量Pu,Qi,式中:WU、WI分別表示用戶深度網(wǎng)絡(luò)以及項(xiàng)目深度網(wǎng)絡(luò)的權(quán)重矩陣;bU、bI分別表示用戶深度網(wǎng)絡(luò)以及項(xiàng)目深度網(wǎng)絡(luò)的偏置量。
得到特征隱藏向量后,通過(guò)內(nèi)積的方式得到預(yù)測(cè)值,設(shè)定如下深度神經(jīng)網(wǎng)絡(luò)矩陣分解模型(DMF)可以補(bǔ)全缺失矩陣
(11)
本文在運(yùn)用深度神經(jīng)網(wǎng)絡(luò)模型對(duì)用戶-項(xiàng)目交互矩陣進(jìn)行分析的同時(shí),還考慮利用LCS算法,從而提供了一種新的視角來(lái)分析用戶行為,找到具有相似序列模式的其他用戶。將基于LCS的相似性計(jì)算方法運(yùn)用于協(xié)同過(guò)濾推薦算法中尋找相似用戶,對(duì)深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行約束,提高模型預(yù)測(cè)精度。模型結(jié)構(gòu)如圖2所示。
圖2 基于LCS相似度的深度神經(jīng)網(wǎng)絡(luò)矩陣分解模型Fig.2 LCS based similarity calculation deep neural network matrix factorization model
本文采用與 SocialMF算法[18]相同的假設(shè),即用戶偏好與他的相似用戶偏好的平均值相似,使用LCS相似度算法sim(u,v)代替原本的信任度Tu,v,
(12)
式中:Nu表示相似用戶集合;|Nu|表示相似用戶個(gè)數(shù)。由于本文在構(gòu)造輸入矩陣Y時(shí)并沒(méi)有將數(shù)據(jù)簡(jiǎn)化為0、1組合,而是繼承了原始評(píng)分?jǐn)?shù)值構(gòu)成回歸問(wèn)題,所以采用均方差損失函數(shù)來(lái)構(gòu)造代價(jià)函數(shù),
(13)
式中:Iui為指示函數(shù),當(dāng)用戶u對(duì)項(xiàng)目i有評(píng)價(jià)信息時(shí)Iui=1,否則Iui=0;P為用戶隱藏特征矩陣;Q為項(xiàng)目隱藏特征矩陣。
為了得到推薦模型,首先要運(yùn)用動(dòng)態(tài)規(guī)劃方法計(jì)算LCS的長(zhǎng)度,并且求出用戶間的相似度。為描述方便,用戶序列f(u)和f(v)分別記為Ia和Jb,最長(zhǎng)公共子序列長(zhǎng)度C(Ix,Jy)記為C(x,y),具體算法過(guò)程如下:
然后最小化代價(jià)函數(shù),按照逆誤差傳播算法即BP算法,訓(xùn)練基于LCS相似度的深度神經(jīng)網(wǎng)絡(luò)矩陣分解模型(SeqDMF),學(xué)習(xí)得到用戶、項(xiàng)目隱藏特征矩陣以及神經(jīng)網(wǎng)絡(luò)中的各項(xiàng)參數(shù)。具體算法過(guò)程如下:
本文采用Epinions數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集涵蓋了分布在美國(guó)和歐洲的消費(fèi)者對(duì)商品的評(píng)價(jià),數(shù)據(jù)集中,用戶數(shù)量為40 163個(gè),項(xiàng)目數(shù)量為139 738個(gè),評(píng)分稀疏度為0.011 8%。
采用數(shù)據(jù)集中的前70%作為訓(xùn)練集,之后的20%作為評(píng)估模型性能的測(cè)試集。驗(yàn)證集在剩下的10%中根據(jù)需要抽取,用于前期尋找模型最優(yōu)參數(shù)。
HR@n:命中率,能直觀地衡量用戶感興趣的項(xiàng)目是否在Top-N里。
NDCG@n:歸一化折損累計(jì)增益,是一個(gè)排序指標(biāo),用來(lái)衡量用戶對(duì)推薦列表的滿意程度,如果感興趣的項(xiàng)目放在了前面,該值就會(huì)較大。
MAE:平均絕對(duì)值誤差,評(píng)估推薦系統(tǒng)預(yù)測(cè)的評(píng)分與用戶給出的評(píng)分之間的差異。
(14)
(15)
(16)
3.3.1 實(shí)驗(yàn)參數(shù)選取
在驗(yàn)證集中隨機(jī)抽取數(shù)據(jù)進(jìn)行參數(shù)調(diào)優(yōu),不同數(shù)量隱藏層的對(duì)比實(shí)驗(yàn)如圖3所示。隱藏層為0明顯表現(xiàn)出其較差的推薦性能,沒(méi)有隱藏層意味著模型還是線性的,這證明通過(guò)MLP的多個(gè)隱藏層進(jìn)行非線性計(jì)算,將高維的交互矩陣降維映射到潛在空間中的低維向量是有必要的。雖然增加層數(shù)能使推薦結(jié)果繼續(xù)向好發(fā)展,但效果并不明顯,且增加了計(jì)算負(fù)擔(dān),考慮到內(nèi)存消耗,本文將隱藏層數(shù)定為3。
圖3 隱藏層層數(shù)對(duì)命中率的影響Fig.3 Effect of hidden layer number on the hit rate
輸出層的節(jié)點(diǎn)數(shù)量繼承自最后一層隱藏層并且保持不變,而輸出的節(jié)點(diǎn)數(shù)量代表了隱藏特征向量的長(zhǎng)度,即項(xiàng)目的標(biāo)簽數(shù)量,所以最后一層隱藏層的節(jié)點(diǎn)數(shù)量決定了模型的能力。本文假設(shè)最后一層隱藏層的節(jié)點(diǎn)數(shù)量為8、16、32、64,則隱藏層節(jié)點(diǎn)數(shù)對(duì)命中率的影響結(jié)果如圖4所示。
圖4 隱藏層節(jié)點(diǎn)數(shù)對(duì)命中率的影響Fig. 4 Effect of hidden layer nodes on the hit rate
根據(jù)實(shí)驗(yàn)結(jié)果,選擇將最后一層的節(jié)點(diǎn)數(shù)量設(shè)置為32。雖然隨著節(jié)點(diǎn)個(gè)數(shù)的增加,模型性能有所提升,但效果并不明顯,考慮到參數(shù)調(diào)優(yōu)選取的數(shù)據(jù)集是我們有所取舍之后形成的,稀疏度同原本數(shù)據(jù)集有一定差別,為防止之后在完整數(shù)據(jù)集上的模型過(guò)擬合,選擇3層隱藏層的節(jié)點(diǎn)數(shù)分別為[128,64,32] ,則隱藏特征矩陣的特征數(shù)量為32 。
圖5為迭代次數(shù)對(duì)命中率的影響,結(jié)果表明模型在迭代10次之前的性能是有明顯提高的,隨后命中率趨于平緩,在迭代18次之后出現(xiàn)起伏,說(shuō)明模型隨著迭代次數(shù)的增加會(huì)出現(xiàn)過(guò)擬合現(xiàn)象,所以本文選擇通過(guò)迭代18次來(lái)學(xué)習(xí)模型的參數(shù)。
圖5 迭代次數(shù)對(duì)命中率的影響Fig.5 Effect of iteration times on the hit rate
3.3.2 對(duì)比實(shí)驗(yàn)分析
SeqDMF算法與其它3種對(duì)比算法CBCF[5]、SPMF[10]、NeuMF[16]在Epinions數(shù)據(jù)集上的MAE測(cè)試效果如圖6所示。
圖6 Epinions數(shù)據(jù)集上MAE比較Fig.6 Comparison of MAE on Epinions dataset
CBCF算法與其他3種算法相比存在較大差距,且隨著推薦項(xiàng)目數(shù)量的增加而出現(xiàn)誤差增大的趨勢(shì)。因?yàn)镃BCF將用戶的評(píng)分通過(guò)聚類算法分類到幾個(gè)類別來(lái)減小基于用戶的CF算法計(jì)算復(fù)雜度,減少了運(yùn)算時(shí)間,但并不能保證預(yù)測(cè)精度。SPMF、NeuMF以及SeqDMF這3種運(yùn)用矩陣分解的基于模型的CF算法對(duì)于稀疏矩陣的推薦效果較好,相比之下SeqDMF算法擁有最小的誤差,并在推薦項(xiàng)目數(shù)量達(dá)到20時(shí)趨向于平穩(wěn)。
圖7所示的命中率強(qiáng)調(diào)預(yù)測(cè)的準(zhǔn)確性,隨著推薦項(xiàng)目的增多,測(cè)試集中每個(gè)用戶喜歡的項(xiàng)目被推薦的可能性越高,SeqDMF在項(xiàng)目數(shù)量達(dá)到10以后比其他算法更快趨于平穩(wěn),可以更好地適應(yīng)對(duì)推薦項(xiàng)目數(shù)量有要求的場(chǎng)景。
圖7 Epinions數(shù)據(jù)集上命中率比較Fig.7 Comparison of HR@n on Epinions dataset
如圖8所示NDCG@n是一個(gè)排序敏感的指標(biāo),對(duì)比可知4種方法在MAE上的差別并不明顯,SeqDMF顯然在NDCG@n這一評(píng)價(jià)標(biāo)準(zhǔn)上比其他3種算法更有優(yōu)勢(shì)。因?yàn)槲覀冊(cè)谙嗨贫鹊挠?jì)算方法上有較大的突破,將用戶相似計(jì)算從序列的角度出發(fā)摒棄傳統(tǒng)的基于離散分布求距離度量的方法,采用了基于LCS的相似度算法,還可以根據(jù)不同應(yīng)用場(chǎng)合的需求,自由設(shè)定一種合適的序列轉(zhuǎn)換方法。本文在設(shè)定轉(zhuǎn)換方法時(shí)考慮的是用戶興趣隨時(shí)間變化的不確定性,使推薦結(jié)果更接近近期的興趣,而深度神經(jīng)網(wǎng)絡(luò)與LCS的應(yīng)用讓符合用戶興趣的推薦結(jié)果出現(xiàn)在更靠前的位置。
圖8 Epinions數(shù)據(jù)集上歸一化折損累計(jì)增益比較Fig.8 Comparison of NDCG@n on Epinions dataset
為了解決數(shù)據(jù)稀疏以及Top-N推薦的排序指標(biāo)問(wèn)題,本文采用深度神經(jīng)網(wǎng)絡(luò)矩陣分解模型將用戶和項(xiàng)目交互矩陣投影到潛在空間中的低維向量中,并且將最長(zhǎng)公共子序列(LCS)方法引入到矩陣分解模型,進(jìn)而提出了一種基于LCS相似度的深度神經(jīng)網(wǎng)絡(luò)矩陣分解推薦算法。通過(guò)對(duì)Epinions數(shù)據(jù)集的實(shí)驗(yàn)分析表明,該算法能有效提升推薦性能,特別是在排序指標(biāo)上取得了明顯提高。但本文只考慮了相似用戶對(duì)推薦性能的影響,忽略了相似項(xiàng)目的作用。由于存在數(shù)據(jù)的稀疏性和大量缺失的未被觀察到的數(shù)據(jù),在下一步的研究工作中,應(yīng)考慮將額外的輔助數(shù)據(jù)整合到項(xiàng)目相似度中,如時(shí)間因素、評(píng)論文本等,利用項(xiàng)目的相似性,結(jié)合用戶的相似性更有效地為用戶進(jìn)行推薦。