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

?

融合成對(duì)損失函數(shù)與分級(jí)圖卷積網(wǎng)絡(luò)的協(xié)同排名模型

2024-03-01 08:53:50鄭升旻胡林發(fā)漆鑫鑫
現(xiàn)代電子技術(shù) 2024年4期
關(guān)鍵詞:卷積矩陣節(jié)點(diǎn)

鄭升旻,胡林發(fā),漆鑫鑫

(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,云南 昆明 650504)

0 引言

互聯(lián)網(wǎng)時(shí)代,用戶在網(wǎng)絡(luò)上經(jīng)常面對(duì)海量的商品信息,但過(guò)量的數(shù)據(jù)使得用戶難以從中篩選出自己所需要的商品。推薦系統(tǒng)[1]通過(guò)估計(jì)用戶對(duì)商品的偏好,向用戶推薦可能喜歡的商品,以此緩解用戶面臨的信息過(guò)載問(wèn)題。

實(shí)際應(yīng)用中,眾多推薦系統(tǒng)以用戶對(duì)項(xiàng)目評(píng)分的分值表示用戶的偏好程度,分值越大表示用戶的偏好程度越高,因此傳統(tǒng)推薦模型通常采用均方根誤差(Root Mean Squared Error,RMSE)作為指標(biāo),將評(píng)分預(yù)測(cè)準(zhǔn)確度作為優(yōu)化方向。但是用戶獲取推薦項(xiàng)目時(shí)更關(guān)心推薦結(jié)果是否符合自己的喜好,而非模型預(yù)測(cè)的分值。實(shí)際應(yīng)用中推薦系統(tǒng)為用戶推薦項(xiàng)目往往是返回給用戶一個(gè)top?k序列,即用戶未評(píng)分的項(xiàng)目中,模型預(yù)測(cè)的評(píng)分最高的k個(gè)項(xiàng)目。由此可見(jiàn),相較于預(yù)測(cè)評(píng)分的準(zhǔn)確度,項(xiàng)目的排名質(zhì)量更加關(guān)鍵。而評(píng)分預(yù)測(cè)準(zhǔn)確度與預(yù)測(cè)排名質(zhì)量之間并不一致,準(zhǔn)確度更高并不意味著偏好預(yù)測(cè)排序質(zhì)量更好[2?3]。

為解決這一問(wèn)題,出現(xiàn)了直接優(yōu)化排序質(zhì)量的協(xié)同排名模型(Collaborative Ranking),如List?MF(Listwise Matrix Factorization)[4]。List?MF 將訓(xùn)練排名序列和模型預(yù)測(cè)排名序列中項(xiàng)目top?1 概率的交叉熵作為損失函數(shù)來(lái)訓(xùn)練排名模型,直接優(yōu)化預(yù)測(cè)排名質(zhì)量。SQL?Rank(Stochastic Queuing Listwise Ranking)[3]則考慮具有相同評(píng)分的項(xiàng)目之間的位置關(guān)系,通過(guò)在訓(xùn)練過(guò)程中對(duì)評(píng)分相同的項(xiàng)目隨機(jī)排序以解決評(píng)分相同造成的歧義。但這類直接優(yōu)化排名的協(xié)同排名方法所采用的損失函數(shù)具有非凸性,因此只能得到局部最優(yōu)解,導(dǎo)致預(yù)測(cè)效果較差[3?4]。

近年來(lái),基于成對(duì)比較(Pairwise Comparison)的個(gè)性化協(xié)同排名算法取得了很大的進(jìn)展。這類方法根據(jù)用戶評(píng)分?jǐn)?shù)據(jù)為每個(gè)用戶構(gòu)造項(xiàng)目之間的兩兩相互比較,借此將用戶的偏好序列轉(zhuǎn)化為不同項(xiàng)目之間的比較對(duì),通過(guò)這種方式將用戶偏好排名的優(yōu)化問(wèn)題轉(zhuǎn)化為成對(duì)比較的分類問(wèn)題。交替支持向量機(jī)(Alternating Support Vector Machine,AltSVM)[5]和Primal?CR(Primal Collaborative Ranking)[6]是成對(duì)比較類協(xié)同排名算法中極富代表性的方法。AltSVM 是一種非凸式協(xié)同排名算法,它顯式地以因子形式對(duì)低秩矩陣進(jìn)行參數(shù)化,并最小化合頁(yè)損失函數(shù)。AltSVM 算法會(huì)交替更新用戶和項(xiàng)目的潛在因子,算法每一步都可以被表示為一個(gè)標(biāo)準(zhǔn)的SVM 對(duì)兩個(gè)因子中的一個(gè)進(jìn)行更新。Primal?CR 算法則基于牛頓法快速計(jì)算損失函數(shù)梯度和Hessian 矩陣,之后利用坐標(biāo)下降法交替更新用戶和服務(wù)的隱向量,有效地降低了算法的時(shí)間復(fù)雜度。在Primal?CR 的基礎(chǔ)上,Primal?CR++[6]基于用戶信息多為評(píng)分?jǐn)?shù)據(jù)的特點(diǎn),繼續(xù)改進(jìn)梯度計(jì)算方法和Hessian 向量計(jì)算方法,進(jìn)一步降低了算法的計(jì)算速度。

上述協(xié)同排名方法一般基于矩陣分解,采用固定的線性函數(shù)(如內(nèi)積)作為交互函數(shù),而這類函數(shù)不能擬合非線性關(guān)系,但NCF(Neural Collaborative Filtering)[7]等方法已經(jīng)證實(shí),擬合非線性關(guān)系在建模用戶和項(xiàng)目交互時(shí)具有顯著效果。因此,基于生成對(duì)抗網(wǎng)絡(luò)的協(xié)同排名模 型(Collaborative Ranking Generative Adversarial Network,CRGAN)[7]選擇利用全連接網(wǎng)絡(luò)作為交互函數(shù)。CRGAN 通過(guò)生成對(duì)抗網(wǎng)絡(luò)擬合用戶的偏好分布,使用多層全連接神經(jīng)網(wǎng)絡(luò)作為模型的生成器與判別器。NCPL(Neural Collaborative Preference Learning)[8]則設(shè)計(jì)了深層和淺層兩種交互函數(shù),將兩種交互函數(shù)輸出的向量通過(guò)一層全連接層,得到預(yù)測(cè)得分。其中淺層的交互函數(shù)為Hadamard 積,深層的交互函數(shù)則包含多層的全連接神經(jīng)網(wǎng)絡(luò)。但用戶和項(xiàng)目之間的多級(jí)鄰接關(guān)系中具有豐富的交互信息,而上述算法對(duì)這些交互信息的挖掘不夠充分[9]。

圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)是一種圖結(jié)構(gòu)數(shù)據(jù)上的特征提取方法,現(xiàn)在已經(jīng)廣泛應(yīng)用于推薦模型中,如圖卷積矩陣補(bǔ)全模型(Graph Convolutional Matrix Completion,GCMC)[10]通過(guò)聚合異質(zhì)鄰接節(jié)點(diǎn)的信息,直接從二部圖中挖掘用戶和項(xiàng)目特征;輕量級(jí)圖卷積模型(Light Graph Convolution Network,LightGCN)[9]通過(guò)多層鄰接關(guān)系中的信息傳遞構(gòu)建用戶和項(xiàng)目的嵌入表示,并且利用可學(xué)習(xí)的權(quán)重系數(shù)來(lái)近似實(shí)現(xiàn)自連接。相較于傳統(tǒng)方法,圖卷積網(wǎng)絡(luò)能夠獲取用戶和項(xiàng)目之間潛在的交互信息,由此得到質(zhì)量更好的嵌入表[10]。

基于上述研究,本文提出一種融合成對(duì)損失函數(shù)與分級(jí)圖卷積網(wǎng)絡(luò)的協(xié)同排名模型(Hierarchical Graph Convolution Network with Pair?Wise Loss,HGCN?PW),通過(guò)分級(jí)圖卷積挖掘用戶?項(xiàng)目二部圖中異質(zhì)節(jié)點(diǎn)之間的交互信息,再充分利用用戶評(píng)分?jǐn)?shù)據(jù)中隱含的交互關(guān)系,提高嵌入向量的質(zhì)量。

其次,將評(píng)分?jǐn)?shù)據(jù)構(gòu)造成項(xiàng)目間的成對(duì)比較,基于成對(duì)比較優(yōu)化模型以直接提高模型預(yù)測(cè)排序的質(zhì)量。針對(duì)分級(jí)圖卷積網(wǎng)絡(luò)設(shè)計(jì)了對(duì)應(yīng)的自連接策略,實(shí)現(xiàn)對(duì)用戶和項(xiàng)目信息的充分利用;并結(jié)合內(nèi)積與神經(jīng)網(wǎng)絡(luò)以作為用戶與項(xiàng)目間的交互函數(shù),使其得以擬合非線性關(guān)系。

1 融合成對(duì)損失函數(shù)與圖卷積網(wǎng)絡(luò)的協(xié)同排名

HGCN?PW 包括嵌入傳播層和預(yù)測(cè)層。嵌入傳播層中的圖卷積層利用分級(jí)圖卷積直接挖掘異質(zhì)圖上的交互信息,相比挖掘用戶與項(xiàng)目交互矩陣可利用更多信息;接著通過(guò)全連接層融入輔助信息,得到用戶和項(xiàng)目的嵌入向量。預(yù)測(cè)層根據(jù)嵌入向量,結(jié)合非線性變換與內(nèi)積預(yù)測(cè)用戶對(duì)項(xiàng)目的偏好程度,再利用成對(duì)比較數(shù)據(jù)訓(xùn)練模型。HGCN?PW 的模型框圖如圖1 所示。

圖1 融合成對(duì)損失函數(shù)與分級(jí)圖卷積網(wǎng)絡(luò)的協(xié)同排名模型框圖

1.1 符號(hào)及定義

給定用戶集合U和項(xiàng)目集合V,其中m=||U、n=|V|分別表示用戶數(shù)和項(xiàng)目數(shù),并設(shè)定相應(yīng)的評(píng)分信息,以構(gòu)建相應(yīng)的評(píng)分矩陣R∈Zm×n,評(píng)分取值范圍為Rij∈{1,2,…,L}。按照評(píng)分取值范圍,為每一類評(píng)分構(gòu)建分級(jí)矩陣Rl∈Zm×n:

式中l(wèi)∈{1,2,…,L},由分級(jí)矩陣可以得到對(duì)應(yīng)的分級(jí)鄰接矩陣Al:

式中:Al∈Z(m+n)×(m+n),每一個(gè)分級(jí)鄰接矩陣都對(duì)應(yīng)著一個(gè)分級(jí)交互圖。圖1 中包含用戶和項(xiàng)目?jī)煞N節(jié)點(diǎn),每條邊連接著一個(gè)用戶節(jié)點(diǎn)和一個(gè)項(xiàng)目節(jié)點(diǎn),表示用戶對(duì)項(xiàng)目給出的評(píng)分為l,所有分級(jí)鄰接矩陣集合A={Al|l=1,2,…,L}。用戶的特征信息為,項(xiàng)目特征信息為。為統(tǒng)一用戶和項(xiàng)目的特征向量維度,本文中將它們記為XU=[,0],XU∈Rm×d,XV=表示用戶和項(xiàng)目特征信息,xui和xvj分別表示用戶ui和項(xiàng)目vj的特征向量。

為解決協(xié)同過(guò)濾模型不能直接優(yōu)化用戶偏好序列的問(wèn)題,本文根據(jù)用戶評(píng)分?jǐn)?shù)據(jù)為每個(gè)用戶構(gòu)造項(xiàng)目之間非數(shù)值的成對(duì)比較,基于這些成對(duì)比較優(yōu)化模型。傳統(tǒng)的RMSE 獨(dú)立計(jì)算每個(gè)預(yù)測(cè)評(píng)分與真實(shí)值之間的差距,本質(zhì)是一種點(diǎn)比較損失函數(shù),因此無(wú)法直接優(yōu)化項(xiàng)目排序。成對(duì)比較(Pairwise Comparison)方法將排序轉(zhuǎn)化為項(xiàng)目間成對(duì)比較的分類問(wèn)題:首先由U、V可以構(gòu)造用戶和相應(yīng)項(xiàng)目的成對(duì)比較三元組集合Ω={(i,j,k)|ui∈U;vj,vk∈V,j≠k},(i,j,k)表示用戶ui在項(xiàng)目vj、vk中更偏好vj,如果項(xiàng)目vj、vk的優(yōu)劣關(guān)系正確則為正例,錯(cuò)誤即為負(fù)例。成對(duì)比較方法相對(duì)于點(diǎn)比較方法考慮到了項(xiàng)目間的相對(duì)位置關(guān)系,更加符合優(yōu)化用戶偏好排名的需要。具體的,可根據(jù)評(píng)分矩陣R為Ω中每個(gè)三元組賦予標(biāo)簽:

式中:Ri,j>Ri,k表示用戶ui給項(xiàng)目vj的評(píng)分比項(xiàng)目vk高,即用戶ui在項(xiàng)目vj、vk中更偏好vj;為1 表示對(duì)應(yīng)的三元組(i,j,k)為正例,反之為負(fù)例;Y={}表示Ω中所有成對(duì)比較的標(biāo)簽。模型的優(yōu)化目標(biāo)是減少錯(cuò)誤分類的成對(duì)比較數(shù)量。

1.2 嵌入傳播層

1.2.1 異質(zhì)交互圖中的信息傳遞

GCMC 中所采用的圖卷積操作為:對(duì)圖中每個(gè)節(jié)點(diǎn)執(zhí)行只考慮一階鄰域的局部圖卷積操作。這種局部圖卷積可以被看作是一種異質(zhì)節(jié)點(diǎn)之間的消息傳遞[11],節(jié)點(diǎn)的特征向量作為節(jié)點(diǎn)信息,以向量形式在交互圖中沿著邊傳遞和轉(zhuǎn)換,這樣的卷積方式可以通過(guò)疊加圖卷積層簡(jiǎn)便地將圖卷積范圍擴(kuò)展到高階鄰域。因此本文采用同樣的圖卷積策略,根據(jù)邊類型構(gòu)造不同的交互圖,為不同交互圖上分配不同的卷積權(quán)值參數(shù)矩陣,以實(shí)現(xiàn)不同的邊上具有不同的消息傳遞方式,即分級(jí)圖卷積。從項(xiàng)目節(jié)點(diǎn)vj到用戶節(jié)點(diǎn)ui,沿著評(píng)分為l的邊所傳遞的信息可表示為:

式中:cij是正則化常量,值為,Nui是用戶ui節(jié)點(diǎn)的鄰接節(jié)點(diǎn)集合,Nvj是項(xiàng)目vj節(jié)點(diǎn)的鄰接節(jié)點(diǎn)集合;Wl是分值l對(duì)應(yīng)的卷積權(quán)值參數(shù)矩陣,表示鄰接矩陣Al對(duì)應(yīng)的交互圖上的消息轉(zhuǎn)換規(guī)則。由用戶節(jié)點(diǎn)ui到項(xiàng)目節(jié)點(diǎn)vj的信息傳遞為:

在缺失節(jié)點(diǎn)特征或者節(jié)點(diǎn)特征不足以區(qū)分各個(gè)不同節(jié)點(diǎn)時(shí),以節(jié)點(diǎn)序號(hào)獨(dú)熱編碼(one?hot encoding)作為節(jié)點(diǎn)特征,輸入圖卷積層就可獲得良好的效果[10]。但不同分級(jí)矩陣下的各用戶和項(xiàng)目相關(guān)的評(píng)分?jǐn)?shù)量往往相差較多,而在以獨(dú)熱編碼為節(jié)點(diǎn)特征輸入圖卷積層時(shí),會(huì)導(dǎo)致Wl的某些列被優(yōu)化的頻率明顯低于其他列。因此,需要在不同l對(duì)應(yīng)的Wl之間采取某種形式的權(quán)重共享,以緩解這一優(yōu)化問(wèn)題。本文采用文獻(xiàn)[12]所提出的權(quán)重共享方案:

1.2.2 節(jié)點(diǎn)的信息聚合與自連接

消息傳遞后,需要聚合節(jié)點(diǎn)收到的消息。對(duì)于用戶ui,首先將其在鄰接矩陣Al上所有鄰接點(diǎn)Nui,l的消息求和,得到該節(jié)點(diǎn)在Al對(duì)應(yīng)的交互圖上的消息向量μui,l;接著將所有交互圖上的消息向量聚合為用戶的中間向量,具體為:

式中:accum(·)表示聚合操作,可以通過(guò)堆疊stack(·)實(shí)現(xiàn),即將多個(gè)向量串聯(lián)成一個(gè)向量,或者通過(guò)sum(·)實(shí)現(xiàn),即對(duì)所有向量求和;σ(·)則代表一個(gè)激活函數(shù),可選擇ReLU=max(0,·)或其他形式。

GCMC 中直接用hui替換原節(jié)點(diǎn)信息,但是這種更新方式并未考慮節(jié)點(diǎn)自身信息的作用,當(dāng)圖卷積層多于一層時(shí),相當(dāng)于丟棄上一層圖卷積所聚合的鄰接點(diǎn)信息。因此為保證節(jié)點(diǎn)自身信息充分表達(dá),需要在聚合鄰接節(jié)點(diǎn)信息的同時(shí)考慮自連接信息。自連接信息的加入方式[9]是:將鄰接矩陣與單位矩陣相加,以在圖卷積操作中實(shí)現(xiàn)自連接,但是本文將評(píng)分矩陣轉(zhuǎn)化成多個(gè)分級(jí)矩陣,直接在每個(gè)分級(jí)鄰接矩陣中加入單位矩陣,這將會(huì)使得圖卷積過(guò)程中重復(fù)加入自身節(jié)點(diǎn)信息。因此本文不修改分級(jí)鄰接矩陣,直接對(duì)節(jié)點(diǎn)的特征向量執(zhí)行一次特征變換,將其作為自連接信息加入圖卷積操作中,其中特征變換矩陣選擇權(quán)重共享矩陣TL。項(xiàng)目節(jié)點(diǎn)也執(zhí)行同樣操作。

圖卷積層最終輸出的用戶中間向量為:

式中:μui?self為節(jié)點(diǎn)的特征向量經(jīng)過(guò)一次特征變換后的自連接向量。給定用戶?項(xiàng)目評(píng)分矩陣R∈Zm×n,用戶和項(xiàng)目的特征信息為。嵌入傳播層的矩陣形式為:

1.3 預(yù)測(cè)層

預(yù)測(cè)層利用嵌入傳播層輸出的嵌入矩陣ZU、ZV,預(yù)測(cè)用戶?項(xiàng)目排名得分矩陣,即用戶和項(xiàng)目之間的交互函數(shù)。傳統(tǒng)的協(xié)同過(guò)濾方法中,通常使用內(nèi)積作為交互函數(shù),但內(nèi)積作為交互函數(shù)有著無(wú)法擬合非線性關(guān)系的明顯缺陷。因此本文在內(nèi)積的基礎(chǔ)上,通過(guò)增加非線性激活函數(shù),使得預(yù)測(cè)層具有擬合非線性關(guān)系的能力。同時(shí),由于本文方法只是利用預(yù)測(cè)分值來(lái)得到項(xiàng)目排序,不需要保證預(yù)測(cè)分值的準(zhǔn)確度,因此加入Sigmoid 層控制分值預(yù)測(cè)范圍。預(yù)測(cè)層公式如下:

式中:f1是以ReLU 為激活函數(shù)的隱層;f2是以Sigmoid 為激活函數(shù)的隱層;是模型預(yù)測(cè)的排名得分矩陣,包括所有用戶對(duì)所有項(xiàng)目的預(yù)測(cè)得分,根據(jù)預(yù)測(cè)得分由高到低排序可得用戶的預(yù)測(cè)偏好排名。

1.4 模型訓(xùn)練

與直接優(yōu)化RMSE 不同,本文基于成對(duì)比較數(shù)據(jù)來(lái)優(yōu)化每個(gè)用戶對(duì)不同項(xiàng)目的偏好排名。因此需要先計(jì)算同一用戶不同項(xiàng)目間預(yù)測(cè)得分的差值:

式中m為預(yù)定義的得分差值間距。

2 實(shí)驗(yàn)及結(jié)果分析

為了驗(yàn)證HGCN?PW 的性能,采用Pytorch 框架,在Ubuntu 20.04 64 位操作系統(tǒng),PyCharm 2020,Intel?CoreTMi7?9700F CPU @3.0 GHz,8 GB 內(nèi)存,RTX 2060 GPU,Python 3.8 的環(huán)境下進(jìn)行對(duì)比實(shí)驗(yàn)。

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

本文在一些常見(jiàn)的協(xié)同過(guò)濾基準(zhǔn)數(shù)據(jù)集上,將HGCN?PW 與其他模型相比較,所采用的數(shù)據(jù)集包含用戶對(duì)項(xiàng)目(如電影)的評(píng)分。實(shí)驗(yàn)數(shù)據(jù)集情況如表1所示。

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

表1 中:ML?100K 數(shù)據(jù)集[10]包含用戶和項(xiàng)目的輔助信息(如用戶的年齡、職業(yè)、項(xiàng)目的時(shí)間、類型等);Douban 數(shù)據(jù)集是由文獻(xiàn)[13]提供的Douban 數(shù)據(jù)集的子集,包括3 000 用戶和3 000 項(xiàng)目,并將用戶間的社交關(guān)系作為輔助信息;Yahoo!R3 為雅虎音樂(lè)的評(píng)分?jǐn)?shù)據(jù)集,沒(méi)有輔助信息[3]。

2.2 評(píng)價(jià)指標(biāo)及對(duì)比算法

本文采用的評(píng)價(jià)指標(biāo)包括歸一化折損累計(jì)增益NDCG 和預(yù)測(cè)成對(duì)比較錯(cuò)誤率(Pairwise Error)[6]。其中用戶ui的NDCG@K定義為:

式中:πi為用戶ui根據(jù)預(yù)測(cè)得分由高到低對(duì)項(xiàng)目排序得到的排名;πi(k)為πi中排第k位的項(xiàng)目序號(hào);Rij表示用戶ui對(duì)項(xiàng)目vj的真實(shí)評(píng)分;表示根據(jù)用戶ui的真實(shí)評(píng)分最大化DCG@K的項(xiàng)目順序;NDCG@K以預(yù)測(cè)排名的DCG 值與理想的最大化DCG 之比表示預(yù)測(cè)排名的質(zhì)量,數(shù)值越接近1,預(yù)測(cè)效果越好。這種方法只計(jì)算預(yù)測(cè)排名中的前K個(gè)項(xiàng)目,并且由于衰減項(xiàng),排名越靠前的項(xiàng)目權(quán)重越大。

Pairwise Error 定義為:

式(18)表示在測(cè)試數(shù)據(jù)集Γ的所有成對(duì)比較中,模型預(yù)測(cè)錯(cuò)誤的成對(duì)偏好比較的比例。

AltSVM、PrimalCR、PrimalCR++是近年來(lái)成對(duì)比較類協(xié)同排名算法中極富代表性的方法,三種方法憑借其優(yōu)秀的推薦效果而常被作為協(xié)同排名的基線方法[3]。CRGAN、NCPL 是基于神經(jīng)網(wǎng)絡(luò)的協(xié)同排名模型中的最新方法,因此本文選取這5 種方法為對(duì)比方法。

2.3 實(shí)驗(yàn)設(shè)置

與文獻(xiàn)[6]相同,對(duì)于實(shí)驗(yàn)中用到的數(shù)據(jù)集,首先篩選出評(píng)分?jǐn)?shù)超過(guò)20的用戶,然后每個(gè)用戶隨機(jī)選取20個(gè)評(píng)分作為測(cè)試集,剩余的評(píng)分?jǐn)?shù)據(jù)作為訓(xùn)練集。在所有實(shí)驗(yàn)中,用戶和項(xiàng)目的特征信息都用其序號(hào)對(duì)應(yīng)的獨(dú)熱編碼表示,模型嵌入傳播層部分由兩層圖卷積層組成,第一層使用串聯(lián)聚合消息,第二層采用求和聚合消息,兩層網(wǎng)絡(luò)都加入自連接,失活率都設(shè)置為0.7,激活函數(shù)都采用LeakyReLU。優(yōu)化器使用Adam[14],學(xué)習(xí)率為0.001。模型兩層圖卷積層的維度分別為64 和32,每一輪訓(xùn)練隨機(jī)選取固定數(shù)量的成對(duì)比較數(shù)據(jù),用于計(jì)算損失值。本文所有實(shí)驗(yàn)中成對(duì)比較數(shù)據(jù)數(shù)量均設(shè)置為2 048,得分間距差值m設(shè)置為1.5。ML?100K 數(shù)據(jù)集運(yùn)行500 輪迭代,Douban、Yahoo!R3 運(yùn)行300 輪迭代。

2.4 性能對(duì)比

為了評(píng)估HGCN?PW 的性能,本文將其與目前成對(duì)比較類CR 算法中的AltSVM 和PrimalCR、PrimalCR++、CRGAN、NCPL 在相同環(huán)境下進(jìn)行比較,NDCG@10 作為評(píng)價(jià)指標(biāo)。在4 個(gè)數(shù)據(jù)集上分別進(jìn)行10 次實(shí)驗(yàn),取其平均值作為實(shí)驗(yàn)結(jié)果。NDCG@10 對(duì)比實(shí)驗(yàn)結(jié)果如表2 所示,Pairwise Error 對(duì)比實(shí)驗(yàn)結(jié)果如表3 所示。

表2 NDCG@10 對(duì)比實(shí)驗(yàn)結(jié)果

表3 Pairwise Error 對(duì)比試驗(yàn)結(jié)果

由表2、表3 可知,本文所提出的HGCN?PW 算法相較其他方法有著顯著的優(yōu)勢(shì),在ML?100K、Douban、Yahoo!R3 數(shù)據(jù)集上都獲得了最佳的效果。HGCN?PW通過(guò)異質(zhì)節(jié)點(diǎn)之間的消息傳遞挖掘用戶?項(xiàng)目交互,兩層卷積層增加了卷積范圍,使得模型對(duì)用戶和項(xiàng)目的潛在特征具有更強(qiáng)的表達(dá)能力;同時(shí),在利用用戶和項(xiàng)目的嵌入向量計(jì)算內(nèi)積之前,將兩者輸入帶非線性激活函數(shù)的全連接層,令模型的交互函數(shù)具有內(nèi)積無(wú)法比擬的非線性擬合能力。正是由于這兩點(diǎn),HGCN?PW 的性能顯著優(yōu)于其他算法。

2.5 損失函數(shù)有效性

損失函數(shù)的優(yōu)化以最小化損失為目標(biāo)。過(guò)去的許多工作[5?6]已經(jīng)表明,采用合頁(yè)損失函數(shù),最小化損失能有效地優(yōu)化模型,提高預(yù)測(cè)排名質(zhì)量。不同于傳統(tǒng)的成對(duì)比較類協(xié)同排名算法,HGCN?PW 利用圖卷積獲取用戶與項(xiàng)目的嵌入,再通過(guò)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)排名得分矩陣,并且每一輪訓(xùn)練選取不同的成對(duì)比較數(shù)據(jù),因此仍然需要討論最小化損失是否能夠優(yōu)化HGCN?PW 模型,使其輸出一個(gè)好的排名。出于這個(gè)原因,在ML?100K 數(shù)據(jù)集上,本文在模型優(yōu)化迭代過(guò)程中同時(shí)展示損失值和NDCG@10 的變化。為便于展示,對(duì)損失值進(jìn)行歸一化(Min?Max Normalization)處理,結(jié)果如圖2 所示。

圖2 HGCN?PW 通過(guò)最小化合頁(yè)損失以優(yōu)化NDCG@10 的有效性

由圖2 可知:在優(yōu)化損失函數(shù)時(shí),隨著損失值下降,模型的預(yù)測(cè)排名質(zhì)量不斷上升,在開(kāi)始的50 個(gè)輪次左右,模型所采樣的成對(duì)比較三元組之間區(qū)別較大,因此排名質(zhì)量上升較快;隨著訓(xùn)練的進(jìn)行,模型采樣所得三元組中的用戶或項(xiàng)目開(kāi)始與之前三元組中的用戶或項(xiàng)目產(chǎn)生重復(fù),因此排名質(zhì)量上升速度變慢。同時(shí),實(shí)驗(yàn)中NDCG@10 在大約450 次迭代后成為近似最優(yōu),表明HGCN?PW 基于成對(duì)比較數(shù)據(jù)優(yōu)化排名質(zhì)量是有效的。

2.6 預(yù)測(cè)層消融實(shí)驗(yàn)

為驗(yàn)證預(yù)測(cè)層中非線性激活層的作用,本文選取ML?100K、Douban、Yahoo!R3 數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,設(shè)計(jì)了如下消融實(shí)驗(yàn):

1)PDT,僅使用內(nèi)積預(yù)測(cè)排名得分矩陣。

2)PDT?R,嵌入表示經(jīng)帶ReLU 激活函數(shù)的全連接層后計(jì)算內(nèi)積。

3)PDT?S,嵌入表示經(jīng)帶Sigmoid 激活函數(shù)的全連接層后計(jì)算內(nèi)積。

4)PDT?RS,嵌入表示連續(xù)經(jīng)過(guò)ReLU 和Sigmoid 作為激活函數(shù)的全連接層后計(jì)算內(nèi)積。

HGCN?PW 的參數(shù)設(shè)置與前文保持一致,不同情況下的模型表現(xiàn)如表4 所示。

表4 預(yù)測(cè)層消融實(shí)驗(yàn)結(jié)果

如表4 中所示,在所有數(shù)據(jù)集上僅使用內(nèi)積的預(yù)測(cè)表現(xiàn)最差,加入帶非線性激活函數(shù)的全連接層后,模型預(yù)測(cè)效果有顯著提升。具體的,在實(shí)驗(yàn)所用的3 個(gè)數(shù)據(jù)集上,PDT?R 相較于內(nèi)積NDCG@10 分別提升1.3%、9.1%、5.7%,PDT?S 相較于內(nèi)積分別提升0.9%、8.9%、7.0%。將兩種激活函數(shù)都加入預(yù)測(cè)層后,PDT?RS 相較于內(nèi)積分別提升1.4%、9.2%、7.3%,預(yù)測(cè)質(zhì)量達(dá)到最優(yōu)。由此可以看出,加入非線性激活層之后,預(yù)測(cè)層得以擬合非線性關(guān)系,因此預(yù)測(cè)表現(xiàn)更好。結(jié)合不同的非線性激活函數(shù)便可以使得模型達(dá)到最佳預(yù)測(cè)效果。

3 結(jié)語(yǔ)

現(xiàn)有的協(xié)同排名算法對(duì)于用戶與項(xiàng)目間的交互信息挖掘不足且難以擬合非線性關(guān)系,針對(duì)這一問(wèn)題,文中提出一種融合成對(duì)損失函數(shù)與圖卷積網(wǎng)絡(luò)的協(xié)同排名模型(HGCN?PW)。模型根據(jù)用戶評(píng)分信息構(gòu)建分級(jí)評(píng)分矩陣和成對(duì)比較數(shù)據(jù);接著通過(guò)分級(jí)圖卷積挖掘用戶?項(xiàng)目二部圖中節(jié)點(diǎn)的異質(zhì)交互信息,并利用特殊的自連接策略,得到相應(yīng)的用戶、項(xiàng)目嵌入矩陣;之后將2 個(gè)矩陣輸入神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)層得到預(yù)測(cè)排名得分矩陣;再基于成對(duì)比較數(shù)據(jù),利用合頁(yè)損失函數(shù)訓(xùn)練模型。HGCN?PW 在ML?100K、Douban、Yahoo!R3 數(shù)據(jù)集上相較于現(xiàn)有的同類方法均體現(xiàn)出明顯優(yōu)勢(shì)。

猜你喜歡
卷積矩陣節(jié)點(diǎn)
CM節(jié)點(diǎn)控制在船舶上的應(yīng)用
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的門窗節(jié)點(diǎn)圖快速構(gòu)建
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
初等行變換與初等列變換并用求逆矩陣
抓住人才培養(yǎng)的關(guān)鍵節(jié)點(diǎn)
矩陣
南都周刊(2015年1期)2015-09-10 07:22:44
矩陣
南都周刊(2015年3期)2015-09-10 07:22:44
疏勒县| 临汾市| 莱阳市| 泸水县| 兴山县| 宣城市| 青铜峡市| 祥云县| 莱阳市| 库尔勒市| 全州县| 班戈县| 门头沟区| 浑源县| 唐河县| 博罗县| 汝州市| 岱山县| 东方市| 贵港市| 威远县| 蓬安县| 庆云县| 青田县| 班玛县| 石门县| 凉城县| 衡东县| 肃宁县| 色达县| 娄烦县| 柳江县| 财经| 漠河县| 通渭县| 徐水县| 罗山县| 康定县| 茶陵县| 申扎县| 平利县|