国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于生成對(duì)抗網(wǎng)絡(luò)的長(zhǎng)短興趣推薦模型

2020-06-16 00:24康嘉鈺蘇凡軍
關(guān)鍵詞:列表向量算法

康嘉鈺,蘇凡軍

(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)

0 引 言

目前在推薦算法領(lǐng)域,數(shù)據(jù)為驅(qū)動(dòng)的推薦系統(tǒng)受到越來(lái)越多的關(guān)注。這些系統(tǒng)會(huì)引導(dǎo)用戶從大量可能的選項(xiàng)中發(fā)現(xiàn)與用戶興趣相關(guān)度高的產(chǎn)品或服務(wù)[1-2]。隨著用戶對(duì)推薦技術(shù)依賴的加強(qiáng),推薦系統(tǒng)如何為用戶提供精準(zhǔn)的推薦成為亟待解決的重點(diǎn),在許多算法中往往都會(huì)忽視用戶的興趣漂移問(wèn)題[3]。比如一部電影的受歡迎程度會(huì)隨著時(shí)間變化而變化,用戶喜歡的電影類型也會(huì)受到短期的流行影響而變化。因此,在推薦系統(tǒng)中如何利用長(zhǎng)短期興趣變化達(dá)到精準(zhǔn)推薦顯得尤為重要。

針對(duì)推薦系統(tǒng)的長(zhǎng)短興趣問(wèn)題,文獻(xiàn)[4]描述了基于長(zhǎng)短期興趣的協(xié)同過(guò)濾方法的優(yōu)點(diǎn),并介紹了一種基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的長(zhǎng)短期興趣預(yù)測(cè)方法。文獻(xiàn)[5]將MF模型與RNN模型相結(jié)合來(lái)進(jìn)行推薦,其通過(guò)MF模型來(lái)挖掘用戶長(zhǎng)期興趣特征,利用RNN模型來(lái)挖掘用戶一段時(shí)間內(nèi)的興趣變化,同時(shí)考慮到了用戶長(zhǎng)短期的變化。文獻(xiàn)[3]提出了一種使用RNN來(lái)負(fù)責(zé)短期興趣,前饋神經(jīng)網(wǎng)絡(luò)負(fù)責(zé)長(zhǎng)期興趣的推薦模型。這些模型均采用一般的訓(xùn)練方法訓(xùn)練,Szegedy等人[6]發(fā)現(xiàn)在模型訓(xùn)練中添加一些輕微的干擾就可以輕易改變模型的預(yù)測(cè)結(jié)果。深度學(xué)習(xí)模型遭遇干擾時(shí)所表現(xiàn)的脆弱性,給推薦系統(tǒng)帶來(lái)了極大的風(fēng)險(xiǎn)。并且會(huì)使模型對(duì)歷史信息的利用不充分,對(duì)隱層特征的挖掘不精確。

最近,文獻(xiàn)[7]將對(duì)抗訓(xùn)練策略應(yīng)用于圖片解讀任務(wù)中,效果十分優(yōu)秀。文獻(xiàn)[8]提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的序列生成方法,使用強(qiáng)化學(xué)習(xí)的策略梯度來(lái)實(shí)現(xiàn)序列數(shù)據(jù)生成。文獻(xiàn)[9]提出了基于IRGAN框架的新生成檢索模型和判斷模型,使IRGAN在搜索項(xiàng)目、推薦項(xiàng)目方面得到了較大的提升。文獻(xiàn)[10]提出了一種GAN框架的流式推薦模型。由此可見,生成對(duì)抗網(wǎng)絡(luò)在各種任務(wù)中都具有有效性,且在推薦系統(tǒng)中同樣具有有效性。對(duì)于提升深度學(xué)習(xí)模型對(duì)干擾的魯棒性,使用對(duì)抗生成網(wǎng)絡(luò)也是行之有效的解決方法。

基于上述綜述,文中提出了一種基于生成對(duì)抗框架(GAN)的Top-N推薦模型L-GAN。采用對(duì)抗訓(xùn)練的策略優(yōu)化LSTM推薦模型,重點(diǎn)考慮用戶和項(xiàng)目之間的興趣漂移問(wèn)題。L-GAN模型使用生成器產(chǎn)生推薦列表,并用判斷器區(qū)別推薦列表與真實(shí)數(shù)據(jù),通過(guò)判斷器與生成器不斷對(duì)抗訓(xùn)練,使生成器最終產(chǎn)生的推薦列表與真實(shí)數(shù)據(jù)極為相似。提出的基于生成對(duì)抗網(wǎng)絡(luò)的L-GAN推薦算法,主要有幾點(diǎn)貢獻(xiàn):

(1)使用對(duì)抗訓(xùn)練策略來(lái)訓(xùn)練LSTM推薦模型,使用用戶行為周期數(shù)據(jù)作為輸入,由生成器生成推薦列表,判斷器來(lái)識(shí)別推薦列表是否合理;

(2)在判斷器中使用孿生神經(jīng)網(wǎng)絡(luò)來(lái)判斷生成列表的合理性;

(3)通過(guò)將數(shù)據(jù)分割為行為周期數(shù)據(jù),同時(shí)考慮了數(shù)據(jù)長(zhǎng)期與短期的興趣偏好變化,使數(shù)據(jù)的隱層特征獲取更加準(zhǔn)確。

1 LSTM模型

提出的模型主要使用LSTM模型來(lái)有效利用長(zhǎng)短期興趣漂移變化。LSTM模型是一種改進(jìn)的時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò),可以學(xué)習(xí)時(shí)間序列長(zhǎng)短期依賴信息,由于神經(jīng)網(wǎng)絡(luò)包含時(shí)間記憶單元,比較適合于對(duì)時(shí)間序列中的間隔和延遲事件進(jìn)行處理和預(yù)測(cè)[11]。每一個(gè)時(shí)刻t的LSTM單元由輸入門it、遺忘門ft、輸出門ot、細(xì)胞記憶單元ct和隱層狀態(tài)ht組成。這些門是根據(jù)先前的隱藏狀態(tài)ht-1和時(shí)刻t的輸入xt計(jì)算出來(lái)的。

it=sigmoid(W[ht-1,xt])

(1)

ft=sigmoid(W[ht-1,xt])

(2)

ot=sigmoid(W[ht-1,xt])

(3)

通過(guò)遺忘部分存在的細(xì)胞記憶和增加新的細(xì)胞記憶內(nèi)容來(lái)更新時(shí)刻t的細(xì)胞記憶??梢杂霉?4)表示遺忘過(guò)程,公式(5)表示細(xì)胞記憶更新過(guò)程。

It=tanh(W[ht-1,xt])

(4)

ct=ft⊙ct-1+it⊙It

(5)

當(dāng)更新完LSTM單元的記憶內(nèi)容后,時(shí)刻t的隱層狀態(tài)為:

ht=ot⊙tanh(ct)

(6)

每一個(gè)LSTM單元的更新可以由簡(jiǎn)式ht=LSTM(ht-1,xt)表示。在利用長(zhǎng)短期興趣做預(yù)測(cè)時(shí),輸入量xt應(yīng)該來(lái)自于用戶時(shí)刻t的行為周期,行為周期可以理解為一段時(shí)間內(nèi)用戶評(píng)價(jià)項(xiàng)目的評(píng)價(jià)記錄合集。

2 L-GAN推薦模型框架

假設(shè)行為周期中的矩陣R為用戶-項(xiàng)目評(píng)價(jià)矩陣,由用戶集U與項(xiàng)目評(píng)分集M組成,使用符號(hào)rij,t來(lái)表示時(shí)刻t時(shí),用戶i對(duì)項(xiàng)目j的評(píng)價(jià)。rij,t的數(shù)值越大,表示用戶i對(duì)項(xiàng)目j的興趣越大。文中提出的L-GAN模型主要是將LSTM模型應(yīng)用于GAN的框架中。

圖1 L-GAN模型結(jié)構(gòu)

GAN[12]是由生成器G和判斷器D構(gòu)成的。文中模型中的判斷器D用來(lái)區(qū)分訓(xùn)練集中的真實(shí)高評(píng)分項(xiàng)目與生成器G預(yù)測(cè)的高評(píng)分項(xiàng)目或推薦列表;生成器G使用預(yù)測(cè)出的高評(píng)分項(xiàng)目或推薦列表來(lái)欺騙判斷器D。生成對(duì)抗訓(xùn)練策略的目的是,通過(guò)生成出的推薦列表不斷地與用戶真實(shí)歷史評(píng)價(jià)對(duì)抗訓(xùn)練,使推薦列表中的項(xiàng)目與用戶歷史喜歡的項(xiàng)目特征達(dá)到高度接近或重合。結(jié)構(gòu)如圖1所示。

具體的目標(biāo)可以用如下公式表示:

Ez~P(z)[log(1-D(G(z)))]

(7)

其中,x為來(lái)自訓(xùn)練集的真實(shí)數(shù)據(jù),G(z)表示由生成器生成的高評(píng)價(jià)項(xiàng)目或推薦列表,z也是來(lái)自訓(xùn)練集的真實(shí)數(shù)據(jù)。為了使生成器G產(chǎn)生更加真實(shí)的推薦列表且判斷器D的判斷結(jié)果更加準(zhǔn)確,將LSTM模型運(yùn)用于生成器G與判斷器D中,加強(qiáng)對(duì)數(shù)據(jù)長(zhǎng)短期興趣偏好的敏感度,以提高對(duì)隱層特征的挖掘。

2.1 生成器G

生成器將一個(gè)行為周期的用戶-項(xiàng)目評(píng)價(jià)矩陣R作為輸入,生成用戶i的推薦列表。但是用戶-項(xiàng)目評(píng)價(jià)矩陣一般為高維稀疏的,不利于模型的訓(xùn)練??梢韵韧ㄟ^(guò)矩陣分解降維的方法預(yù)處理矩陣R。文中使用具有自編碼器的編碼網(wǎng)絡(luò)對(duì)矩陣進(jìn)行預(yù)處理[13],將其降維拆分為向量xi,t和向量xj,t,xi,t為用戶i在一定時(shí)間內(nèi)對(duì)所有評(píng)價(jià)過(guò)的項(xiàng)目的評(píng)價(jià)向量,xj,t為在一定時(shí)間內(nèi)所有評(píng)價(jià)過(guò)項(xiàng)目j的用戶對(duì)項(xiàng)目j的評(píng)價(jià)向量。在時(shí)刻t,評(píng)分rij,t取決于用戶時(shí)間狀態(tài)hi,t和項(xiàng)目時(shí)間狀態(tài)hj,t。因?yàn)橛脩舻臅r(shí)間狀態(tài)變化依賴于用戶評(píng)價(jià)向量的變化,同理項(xiàng)目的時(shí)間狀態(tài)變化也是由項(xiàng)目評(píng)價(jià)向量變化決定的。所以可以使用兩個(gè)LSTM模型分別輸入兩個(gè)向量,分別得到用戶時(shí)間狀態(tài)hi,t和項(xiàng)目時(shí)間狀態(tài)hj,t。為了同時(shí)考慮用戶與項(xiàng)目的變化,文中將它們的內(nèi)積作為預(yù)測(cè)時(shí)刻t用戶i對(duì)項(xiàng)目j的評(píng)分rij,t。

xi,t,xj,t=Encoder(R)

(8)

hi,t=LSTM(hi,t-1,xi,t)

(9)

hj,t=LSTM(hj,t-1,xj,t)

(10)

rij,t=hi,t⊙hj,t

(11)

通過(guò)這樣的方法,按照時(shí)間戳的順序,依次將行為周期的評(píng)價(jià)矩陣輸入,對(duì)一定時(shí)間段內(nèi)用戶i沒有評(píng)價(jià)過(guò)的項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分,預(yù)測(cè)評(píng)分最高的前幾個(gè)項(xiàng)目按預(yù)測(cè)評(píng)分從高到低排序,即可視為生成出的推薦列表。生成器的模型如圖1所示。生成器的目標(biāo)函數(shù)可以表示為:

(12)

其中,M為項(xiàng)目集,D(xi,t,xm,t,xn,t)為判斷器的模型,xn,t為生成器產(chǎn)生的推薦列表中的高評(píng)分項(xiàng)目向量。訓(xùn)練生成器是為了與判斷器對(duì)抗,從而使判斷器無(wú)法區(qū)分出推薦結(jié)果與真實(shí)數(shù)據(jù),即為使G(z)產(chǎn)生的結(jié)果更接近真實(shí)數(shù)據(jù),則目標(biāo)是使判斷器判斷的相似度D(G(z))最大,為了便于計(jì)算可求得log(1-D(xi,t,xm,t,xn,t))最小化結(jié)果。

2.2 判斷器D

判斷器使用孿生神經(jīng)網(wǎng)絡(luò)框架(siamese network framework)。孿生神經(jīng)網(wǎng)絡(luò)可以很好地區(qū)分隱層特征,常用于特征之間的對(duì)比任務(wù)。該框架分為特征提取網(wǎng)絡(luò)和相似度計(jì)算兩個(gè)部分[14]。為了更精準(zhǔn)地識(shí)別項(xiàng)目間基于長(zhǎng)短興趣偏好的隱層特征的區(qū)別,孿生網(wǎng)絡(luò)框架中的特征提取網(wǎng)絡(luò)使用類似于生成器中LSTM模型的用法,這時(shí)的輸入應(yīng)該使用用戶向量xi,t,用戶歷史評(píng)價(jià)高分項(xiàng)目向量xm,t和生成器預(yù)測(cè)的高分項(xiàng)目向量xn,t,如圖1所示。通過(guò)對(duì)比時(shí)刻t用戶評(píng)價(jià)過(guò)的高分項(xiàng)目與推薦出的項(xiàng)目狀態(tài)的相似度來(lái)判斷生成器推薦是否準(zhǔn)確。特征提取網(wǎng)絡(luò)的公式可表示為:

xi,t,xm,t=Encoder(R)

(13)

rim,t=LSTM(hi,t-1,xi,t)⊙LSTM(hm,t-1,xm,t)

(14)

rin,t=LSTM(hi,t-1,xi,t)⊙LSTM(hn,t-1,xn,t)

(15)

在孿生網(wǎng)絡(luò)內(nèi)特征提取網(wǎng)絡(luò)中使用的權(quán)重是共享的[15]。文中模型選用了對(duì)比損失函數(shù)(contrastive loss)[16]作為求得相似度的方法。根據(jù)其計(jì)算出的相似度,可以判斷生成器預(yù)測(cè)結(jié)果是否準(zhǔn)確。判斷器模型可以表示為:

max(1-d,0)2

(16)

d=‖rim,t-rin,t‖2

(17)

其中,d為對(duì)比樣本的歐氏距離,y表示兩個(gè)樣本是否相似,y為1時(shí)表示兩個(gè)樣本相似,為0則表示不相似。需要注意的是,在訓(xùn)練優(yōu)化判斷器的階段,需要使用用戶評(píng)價(jià)過(guò)的其他項(xiàng)目向量xl,t代替預(yù)測(cè)項(xiàng)目向量xn,t。目的是為了用真實(shí)的數(shù)據(jù)來(lái)更新優(yōu)化判斷模型中的共享權(quán)重。因此判斷器的目標(biāo)函數(shù)表示為:

(18)

其中,U為用戶集。公式中的第一項(xiàng),來(lái)源均為真實(shí)數(shù)據(jù),得到的相似度概率D(x)越大越好。而第二項(xiàng)是判斷生成器的推薦列表與真實(shí)數(shù)據(jù)的相似度,判斷器的作用是鑒別它們的區(qū)別,所以其鑒別的相似度結(jié)果D(G(z))應(yīng)越小越好,為了統(tǒng)一形式方便計(jì)算,第二項(xiàng)改為1-D(G(z)),這樣整個(gè)公式不會(huì)出現(xiàn)矛盾。

2.3 訓(xùn)練算法流程

算法訓(xùn)練流程總結(jié)如下(在訓(xùn)練模型的時(shí)候,判斷器與生成器通過(guò)對(duì)抗訓(xùn)練的策略交替進(jìn)行更新優(yōu)化):

算法:算法訓(xùn)練流程。

輸入:訓(xùn)練集S

初始化:使用隨機(jī)數(shù)來(lái)初始化生成器G與判斷器D的權(quán)重,預(yù)處理訓(xùn)練集S

訓(xùn)練生成器G:

(a)生成時(shí)刻t用戶i的項(xiàng)目推薦列表

(b)從推薦列表中選出預(yù)測(cè)高分項(xiàng)目樣本集N

(c)forn∈{1,2,…,N}:

用戶i的歷史高分項(xiàng)目m來(lái)自訓(xùn)練集S

使用判斷器D來(lái)區(qū)分k,m

End for

(d)通過(guò)生成器的目標(biāo)函數(shù)(12)來(lái)更新生成器G

訓(xùn)練判斷器D:

(a)用戶i的歷史高分項(xiàng)目m與評(píng)價(jià)過(guò)的其他項(xiàng)目l均來(lái)自訓(xùn)練集S

(b)判斷器D判斷m,l的相似度

(c)通過(guò)判斷器的目標(biāo)函數(shù)(18)來(lái)更新判斷器D

until兩個(gè)模型均收斂

3 實(shí) 驗(yàn)

3.1 實(shí)驗(yàn)數(shù)據(jù)集

為了驗(yàn)證文中算法的推薦效果,選擇了兩個(gè)公開的數(shù)據(jù)集(MovieLens-100K(http://grouplens.org/datasets/movielens)和Netflix-3M(https://www.kaggle.com/netflix-inc/netflix-prize-data))進(jìn)行實(shí)驗(yàn)。這兩個(gè)數(shù)據(jù)集均有用戶對(duì)電影的評(píng)級(jí),評(píng)價(jià)等級(jí)為從1到5,5為最高評(píng)分。并且它們還提供了電影的發(fā)行時(shí)間以及詳細(xì)的用戶信息。對(duì)每個(gè)數(shù)據(jù)集,去掉沒有明顯信息的用戶及電影,按照時(shí)間戳粒度隨機(jī)分為若干個(gè)訓(xùn)練集與測(cè)試集。其中MovieLens-100K的時(shí)間戳粒度設(shè)為5天,Netflix-3M的時(shí)間戳粒度設(shè)為1天。兩個(gè)數(shù)據(jù)集的詳細(xì)信息如表1所示。

表1 數(shù)據(jù)集信息

3.2 實(shí)驗(yàn)評(píng)估標(biāo)準(zhǔn)

為了對(duì)推薦效果進(jìn)行定量的評(píng)價(jià),使用推薦精度(precision)、NDCG、MRR作為推薦算法的度量標(biāo)準(zhǔn)。這些評(píng)價(jià)指標(biāo)的值越大,推薦算法的效果越好[17-18]。

推薦精度可以表示用戶喜歡項(xiàng)目在推薦列表中的比例,對(duì)于推薦列表大小為k的推薦精度公式為:

(19)

其中,R(k)為生成推薦列表的數(shù)量,T(k)為實(shí)現(xiàn)正確推薦的推薦列表數(shù)量。

NDCG(normalized discounted cumulative gain)廣泛作為對(duì)Top-N推薦系統(tǒng)的推薦列表的評(píng)價(jià)指標(biāo)。用公式可以表示為:

(20)

(21)

其中,reli為推薦列表位置i的推薦結(jié)果的相關(guān)性。如果排名i的項(xiàng)目相關(guān)性好,reli=1,否則等于0。IDCG為理想情況下的DCG,即為DCG的最大值。

MRR(mean reciprocal rank)是將推薦列表中一個(gè)預(yù)測(cè)準(zhǔn)確的結(jié)果的位置的倒數(shù)作為準(zhǔn)確度,再對(duì)所有準(zhǔn)確度求平均值。

(22)

其中,Q為推薦項(xiàng)目的數(shù)量,rankq為第q個(gè)推薦項(xiàng)目第一次出現(xiàn)在推薦列表中的位置。

3.3 實(shí)驗(yàn)對(duì)比模型

實(shí)驗(yàn)選用TimeSVD++[19]、R-RNN[20]和IRGAN[9]模型進(jìn)行對(duì)比。TimeSVD++推薦算法是一種對(duì)于靜態(tài)的基于矩陣分解技術(shù)的推薦算法的改進(jìn)算法。R-RNN模型采用與文中生成器類似的推薦算法,并通過(guò)Adam算法對(duì)其參數(shù)進(jìn)行優(yōu)化。IRGAN用于信息檢索領(lǐng)域,可以生成出按偏好相關(guān)的推薦列表。

3.4 實(shí)驗(yàn)結(jié)果

在實(shí)驗(yàn)中進(jìn)行Top-N推薦時(shí),對(duì)推薦列表長(zhǎng)度k取不同值分別進(jìn)行實(shí)驗(yàn),以k為3、6、9時(shí)的實(shí)驗(yàn)結(jié)果作為樣本,各項(xiàng)實(shí)驗(yàn)結(jié)果如表2和表3所示。

實(shí)驗(yàn)結(jié)果表示,文中提出的L-GAN模型相對(duì)于對(duì)比模型在推薦精度和準(zhǔn)確度上都有較明顯的提升。TimeSVD++推薦算法和R-RNN模型推薦效果明顯低于使用GAN訓(xùn)練的模型,證明通過(guò)生成對(duì)抗訓(xùn)練可以更好地獲取隱層特征。L-GAN雖采用與R-RNN模型類似的推薦列表生成方式,但在訓(xùn)練時(shí)通過(guò)判斷器的反饋會(huì)提升推薦列表的精度。L-GAN在各個(gè)指標(biāo)對(duì)比中均略微高于IRGAN,顯示了L-GAN較好的推薦效果。這是因?yàn)長(zhǎng)-GAN模型的優(yōu)勢(shì)在于能夠考慮用戶和電影之間短期和長(zhǎng)期聯(lián)系,尤其是模型中LSTM部分明確考慮了用戶行為的動(dòng)態(tài)性。在實(shí)驗(yàn)結(jié)果中,當(dāng)推薦列表容量大小增加時(shí),三個(gè)模型的推薦效果均呈現(xiàn)不同程度的下降。

表2 推薦結(jié)果(MovieLens-100K)

表3 推薦結(jié)果(Netflix-3M)

4 結(jié)束語(yǔ)

在生成對(duì)抗網(wǎng)絡(luò)框架的基礎(chǔ)上,提出了一種L-GAN推薦模型,通過(guò)生成器產(chǎn)生推薦列表,判斷器區(qū)分真?zhèn)卧u(píng)分項(xiàng)目的方法,準(zhǔn)確挖掘數(shù)據(jù)基于長(zhǎng)短期興趣偏好變化的隱層特征,使推薦列表更加精準(zhǔn)。在兩個(gè)大型開源數(shù)據(jù)集上的實(shí)驗(yàn),證明了該模型推薦效果的有效性與準(zhǔn)確性,且對(duì)數(shù)據(jù)的隱層特征挖掘更精準(zhǔn)。實(shí)驗(yàn)結(jié)果也顯示了隨著推薦列表增加,推薦效果出現(xiàn)降低的問(wèn)題,因此今后會(huì)針對(duì)這一問(wèn)題展開研究。

猜你喜歡
列表向量算法
向量的分解
哪種算法簡(jiǎn)便
聚焦“向量與三角”創(chuàng)新題
擴(kuò)列吧
Travellng thg World Full—time for Rree
算法框圖的補(bǔ)全
算法初步知識(shí)盤點(diǎn)
列表法解分式方程問(wèn)題探索
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
汉寿县| 朝阳县| 岑巩县| 清苑县| 开原市| 兰州市| 双桥区| 舒城县| 新巴尔虎左旗| 台南市| 文昌市| 玛纳斯县| 达州市| 东宁县| 芜湖县| 吴忠市| 济南市| 灌阳县| 昌平区| 磴口县| 秭归县| 治县。| 日照市| 宁海县| 西平县| 永修县| 芜湖县| 清苑县| 崇礼县| 库伦旗| 合作市| 凤凰县| 宣城市| 萨嘎县| 仙游县| 罗甸县| 阿拉善盟| 石首市| 东兰县| 阳朔县| 布拖县|