日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【推荐系统】User-Item CF:GC-MC

發(fā)布時間:2024/3/13 windows 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【推荐系统】User-Item CF:GC-MC 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

💡 本次解讀的文章是 2018 年發(fā)表于 KDD 的一篇基于圖卷積神經(jīng)網(wǎng)絡(luò)的用戶物品協(xié)同過濾推薦算法論文,本篇論文從圖鏈接預(yù)測的角度考慮推薦系統(tǒng)的矩陣填充問題,提出了一個基于二部交互圖上可微消息傳遞的圖自動編碼器框架。

一、背景介紹

在推薦算法方面,基于協(xié)同過濾(CF)的算法模型主要通過填充用戶-物品交互矩陣(評分矩陣或購買矩陣等表示用戶和物品交互行為的矩陣),來預(yù)測用戶對物品的評分或預(yù)測用戶購買物品的可能。本文將這種矩陣填充的方式看作圖上的鏈路預(yù)測問題,利用二分圖代替矩陣,將用戶-物品交互矩陣構(gòu)建二分圖(其中,二分圖的節(jié)點表示用戶或物品,二分圖的連邊表示觀察到的評分或購買交互行為),在二分圖的基礎(chǔ)上,預(yù)測可能存在的連邊,以此作為交互行為預(yù)測的結(jié)果。

二、本文貢獻(xiàn)

(1)提出了基于圖的矩陣填充自動編碼器框架(GC-MC),在二分交互圖上通過消息傳遞的形式產(chǎn)生用戶和物品節(jié)點的潛在特征,利用潛在特征對用戶-物品的交互行為進(jìn)行預(yù)測。

三、推薦流程

本文對用戶-物品交互行為的預(yù)測流程如上圖所示,利用 N u × N v N_{u} \times N_{v} Nu?×Nv? 的評分矩陣 M M M(其中, N u N_{u} Nu? 表示用戶的數(shù)量, N v N_{v} Nv? 物品的數(shù)量, M i j M_{ij} Mij? 表示用戶 i i i 對物品 j j j 的評分或未評分,0 表示未觀察到的行為)建立二分圖,將二分圖輸入圖自編碼器(GC-MC 模型),對二分圖中的連邊進(jìn)行預(yù)測,基于預(yù)測得到的連邊,為用戶推薦物品。

具體而言,將用戶-物品交互數(shù)據(jù)表示成無向圖 G = ( W , E , R ) G=(\mathcal{W}, \mathcal{E}, \mathcal{R}) G=(W,E,R) ,圖中用戶節(jié)點集表示為 u i ∈ U , i ∈ { 1 , … , N u } u_i \in \mathcal{U}, i \in\left\{1, \ldots, N_u\right\} ui?U,i{1,,Nu?},物品節(jié)點集表示為 v j ∈ V , j ∈ { 1 , … , N v } v_{j}\in\mathcal{V},j\in\left\{1,\ldots,N_{v}\right\} vj?V,j{1,,Nv?},則 U ∪ V = W \mathcal{U} \cup \mathcal{V}=\mathcal{W} UV=W,圖中邊 ( u i , r , v j ) ∈ E (u_{i},r,v{j})\in\mathcal{E} (ui?,r,vj)E 攜帶表示多評分值標(biāo)簽 r ∈ { 1 , … , R } = R r \in \left\{1, \ldots, R\right\}= \mathcal{R} r{1,,R}=R

四、GC-MC 框架

圖自編碼器(GAE)由兩個部分組成:1)圖編碼器(Graph encoder);2)雙線性解碼器(Bilinear decoder)。在二分推薦圖 G = ( W , E , R ) G=(\mathcal{W}, \mathcal{E}, \mathcal{R}) G=(W,E,R) 中,編碼器表示為 [ U , V ] = f ( X , M 1 , … , M R ) [U,V]=f(X,M_{1},\ldots,M_{R}) [U,V]=f(X,M1?,,MR?),解碼器表示為 M ˇ = g ( U , V ) \check{M}=g(U,V) Mˇ=g(U,V),其中 X X X N × D N \times D N×D 的特征矩陣, M r ∈ { 0 , 1 } N u × N v M_r \in\{0,1\}^{N_u \times N_v} Mr?{0,1}Nu?×Nv? 表示多評分值矩陣(或多評分值鄰接矩陣), U , V U,V U,V 分別表示學(xué)習(xí)到的用戶嵌入表示和物品嵌入表示,大小分為 N u × E , N v × E N_{u} \times E,N_{v} \times E Nu?×E,Nv?×E M ˇ \check{M} Mˇ 表示大小為 N u × N v N_{u} \times N_{v} Nu?×Nv? 的預(yù)測評分矩陣。

4.1 Graph encoder

(1)鄰居聚合

在編碼器部分,該模型有效地利用了圖中不同位置的權(quán)重共享,并為每種邊類型 r ∈ R r \in \mathcal{R} rR 分配了單獨的處理通道,即每個評分類型分配一個特定的變換,從而產(chǎn)生從物品 j j j 到用戶 i i i 的邊特定消息傳播 μ j → i , r \mu_{j \rightarrow i, r} μji,r?,其形式如下:

μ j → i , r = 1 c i j W r x j \mu_{j \rightarrow i, r}=\frac{1}{c_{i j}} W_r x_j μji,r?=cij?1?Wr?xj?
其中, c i j c_{ij} cij? 表示歸一化常量,選擇 ∣ N i ∣ |\mathcal{N}_{i}| Ni? (left normalization)或 ∣ N i ∣ N j ∣ \sqrt{|\mathcal{N}_{i}|\mathcal{N}_{j}|} Ni?Nj? ?
(symmetric normalization)計算得到( N i \mathcal{N}_{i} Ni? 表示節(jié)點 i i i 的鄰居集), W r W_{r} Wr? 表示特定邊類型參數(shù)矩陣, x j x_{j} xj? 表示節(jié)點 j j j 的初始特征向量。

(2)信息更新

通過對特定邊類型 r r r 的所有鄰居 N i , r \mathcal{N}_{i,r} Ni,r? 求和,在每個節(jié)點積累傳入的消息,隨后將它們累加成單個向量表示:

h i = σ [ accum ? ( ∑ j ∈ N i , 1 μ j → i , 1 , … , ∑ j ∈ N i , R μ j → i , R ) ] h_i=\sigma\left[\operatorname{accum}\left(\sum_{j \in \mathcal{N}_{i, 1}} \mu_{j \rightarrow i, 1}, \ldots, \sum_{j \in \mathcal{N}_{i, R}} \mu_{j \rightarrow i, R}\right)\right] hi?=σ ?accum ?jNi,1??μji,1?,,jNi,R??μji,R? ? ?
其中, a c c u m ( ? ) accum(\cdot) accum(?) 表示累加操作, σ ( ? ) \sigma(\cdot) σ(?) 表示元素級激活操作。

(3)節(jié)點最終表示

為了得到用戶節(jié)點 i i i 的最終嵌入表示,這里對中間輸出 h i h_{i} hi? 進(jìn)行如下變換:

u i = σ ( W h i ) u_{i} = \sigma{(Wh_{i})} ui?=σ(Whi?)
需要注意的是,物品最終嵌入表示 v i v_{i} vi? 用相同的參數(shù)矩陣 W W W 進(jìn)行相似計算。另外,一般將信息更新部分稱為圖卷積層(graph convolution layer),節(jié)點最終表示部分稱為稠密層(dense layer),論文的實驗發(fā)現(xiàn)堆疊多個卷積層并沒有提高性能,簡單的卷積層和密集層的組合效果最好。綜上,以 left normalization 為例,編碼器編碼過程的向量化表示為( D D D 表示具有非零元素 D i i = ∣ N i ∣ D_{ii} = |N_{i}| Dii?=Ni? 的對角節(jié)點度矩陣):

[ U V ] = f ( X , M 1 , … , M R ) = σ ( [ H u H v ] W T ) , \left[\begin{array}{l}U \\ V\end{array}\right]=f\left(X, M_{1}, \ldots, M_{R}\right)=\sigma\left(\left[\begin{array}{c}H_{u} \\ H_{v}\end{array}\right] W^{T}\right), [UV?]=f(X,M1?,,MR?)=σ([Hu?Hv??]WT),
w i t h [ H u H v ] = σ ( ∑ r = 1 R D ? 1 M r X W r T ) , with \left[\begin{array}{l}H_{u} \\ H_{v}\end{array}\right]=\sigma\left(\sum_{r=1}^{R} D^{-1} \mathcal{M}_{r} X W_{r}^{T}\right), with[Hu?Hv??]=σ(r=1R?D?1Mr?XWrT?),
a n d M r = ( 0 M r M r T 0 ) . and \mathcal{M}_{r}=\left(\begin{array}{cc}0 & M_{r} \\ M_{r}^{T} & 0\end{array}\right). andMr?=(0MrT??Mr?0?).

4.2 Bilinear decoder

為了在二分交互圖中重構(gòu)鏈接,本文考慮使用雙線性解碼器,并將每個評分類型視為一個單獨的類, M ˇ i j \check{M}_{ij} Mˇij? 表示用戶 i i i 和物品 j j j 之間的重構(gòu)評分,通過雙線性操作和使用 softmax 函數(shù)生成可能的評分類型概率分布:

p ( M ˇ i j = r ) = e u i T Q r v j ∑ s ∈ R e u i T Q s v j p\left(\check{M}_{i j}=r\right)=\frac{e^{u_i^T Q_r v_j}}{\sum_{s \in R} e^{u_i^T Q_s v_j}} p(Mˇij?=r)=sR?euiT?Qs?vj?euiT?Qr?vj??
其中, Q r Q_{r} Qr? 是一個大小為 E × E E \times E E×E 的可訓(xùn)練參數(shù)矩陣, E E E 表示用戶和物品的嵌入表示維度,最終預(yù)測分?jǐn)?shù)計算為:
M ˇ i j = g ( u i , v j ) = E p ( M ˇ i j = r ) [ r ] = ∑ r ∈ R r p ( M ˇ i j = r ) \check{M}_{i j}=g\left(u_i, v_j\right)=\mathbb{E}_{p\left(\check{M}_{i j}=r\right)}[r]=\sum_{r \in R} r p\left(\check{M}_{i j}=r\right) Mˇij?=g(ui?,vj?)=Ep(Mˇij?=r)?[r]=rR?rp(Mˇij?=r)

4.3 模型訓(xùn)練

(1)損失函數(shù)

在模型訓(xùn)練過程中,本文最小化以下預(yù)測評分的負(fù)對數(shù)似然:

L = ? ∑ i , j ; Ω i j = 1 ∑ r = 1 R I [ r = M i j ] log ? p ( M ˇ i j = r ) \mathcal{L}=-\sum_{i, j ; \boldsymbol{\Omega}_{i j}=1} \sum_{r=1}^R I\left[r=M_{i j}\right] \log p\left(\check{M}_{i j}=r\right) L=?i,j;Ωij?=1?r=1R?I[r=Mij?]logp(Mˇij?=r)
其中, I [ k = l ] = 1 I[k=l]=1 I[k=l]=1 當(dāng) k = 1 k=1 k=1 時,否則等于 0,矩陣 Ω ∈ { 0 , 1 } N u × N i \boldsymbol{\Omega}\in\{0,1\}^{N_{u} \times N_{i}} Ω{0,1}Nu?×Ni? 表示掩碼,當(dāng)取值為1時,表示該節(jié)點為標(biāo)簽節(jié)點。

(2)節(jié)點 dropout

為了使模型很好地泛化到未觀測到的評分,在去噪設(shè)置中通過以概率為 p d r o p o u t p_{dropout} pdropout? 隨機丟棄特定節(jié)點的所有發(fā)送消息來訓(xùn)練模型,這一過程稱為節(jié)點丟棄(node dropout)。在最初的實驗中,論文發(fā)現(xiàn)節(jié)點丟棄比消息丟棄更有效,即單個傳出消息被獨立地丟棄,使得嵌入對單邊的存在或不存在更加魯棒。

(3)Mini-batching

在訓(xùn)練模型時,論文的方法只從用戶物品對的總和中抽樣固定數(shù)量的貢獻(xiàn),通過只考慮對損失函數(shù)的固定數(shù)量的貢獻(xiàn),可以刪除 M 1 , … , M R M_{1},\ldots,M_{R} M1?,,MR? 中當(dāng)前批次沒有出現(xiàn)的用戶和物品行。這既是一種有效的正則化手段,又降低了訓(xùn)練模型的內(nèi)存需求。

(4)權(quán)重共享

對于一個特定的評分值 r r r,權(quán)重矩陣 W r W_{r} Wr? 的列對每個單獨的節(jié)點起到潛在因子的作用,這些潛在因子通過消息傳遞的方式傳遞給相連的用戶或物品節(jié)點。然而,并不是所有的用戶和物品對于每個評分等級都有相同數(shù)量的評分。這導(dǎo)致 W r W_{r} Wr? 的某些列被優(yōu)化的頻率明顯低于其他列。因此,對于不同的 r r r,矩陣 W r W_{r} Wr? 之間的某種形式的權(quán)重共享可望緩解這個優(yōu)化問題:
W r = ∑ s = 1 r T s W_{r} = \sum^{r}_{s=1}{T_{s}} Wr?=s=1r?Ts?
這里將這種類型的權(quán)重共享稱為序數(shù)權(quán)重共享(ordinal weight sharing),其中更高的評分級別所包含的權(quán)重矩陣的數(shù)量不斷增加。另外,作為成對雙線性解碼器正則化的一種有效手段,這里采用一組基權(quán)重矩陣 P s P_{s} Ps? 的線性組合形式的權(quán)重共享:
Q r = ∑ s = 1 n b a r s P s Q_{r}=\sum^{n_{b}}_{s=1}{a_{rs}P_{s}} Qr?=s=1nb??ars?Ps?
其中 s ∈ ( 1 , … , n b ) s\in(1,\ldots,n_{b}) s(1,,nb?) n b n_{b} nb? 為基權(quán)重矩陣的個數(shù), a r s a_{rs} ars? 是確定解碼器每個權(quán)重矩陣 Q r Q_{r} Qr? 的線性組合的可學(xué)習(xí)系數(shù)。需要注意的是,為了避免過擬合和減少參數(shù)個數(shù),基權(quán)重矩陣的個數(shù) n b n_{b} nb? 自然應(yīng)該低于評分等級的個數(shù)。

4.4 輔助信息添加

將節(jié)點的特征信息(內(nèi)容信息)直接作為模型的輸入有時并不是一個好的選擇,當(dāng)內(nèi)容信息中包含的信息不足以區(qū)分不同的用戶(或物品)及其興趣時,這種做法會導(dǎo)致嚴(yán)重的信息流瓶頸,在這種情況下,可以通過單獨的處理通道將用戶和物品特征向量 x i f x^{f}_{i} xif? 作為輔助信息添加到稠密隱藏層中:
u i = σ ( W h i + W 2 f f i ) w i t h f i = σ ( W 1 f x i f + b ) u_{i}=\sigma\left(W h_{i}+W_{2}^{f} f_{i}\right) \quad with \quad f_{i}=\sigma\left(W_{1}^{f} x_{i}^{f}+b\right) ui?=σ(Whi?+W2f?fi?)withfi?=σ(W1f?xif?+b)
其中, W 1 f , W 2 f W^{f}_{1},W^{f}_{2} W1f?,W2f? 表示可訓(xùn)練的權(quán)重, b b b 表示偏置,權(quán)重矩陣和偏置向量對于用戶和物品是不同的。

總結(jié)

以上是生活随笔為你收集整理的【推荐系统】User-Item CF:GC-MC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。