GNN在推荐系统的应用——>GC-MC与STAR-GCN
GNN ——> 推薦系統(兩個算法)
文章目錄
- GNN ——> 推薦系統(兩個算法)
- 前言
- 一、GC-MC
- 1、總體結構
- 2、Graph Encoder部分
- 3、Graph Decoder部分
- 4、損失函數
- 5、實驗結果
- 6、不足
- 二、STAR-GCN
- 1、總體架構(比較)
- 2、Transductive 和 Inductive(歸納和直推)
- 如何實現直推?——mask
- 3、LOSS部分
- 4、leakage Issue的避免
- 5、實驗結果
前言
部分資源來自于Youtube
一、GC-MC
1、總體結構
首先進行one-hot編碼,得到X矩陣,結合M(用戶-商品交互矩陣)進行編碼工作,得到U和V矩陣
然后對U和V進行解碼工作,得到一個新的交互矩陣,其中原本的空白值也得到了填充
2、Graph Encoder部分
對一個用戶u來說,評分過的商品得到了不同的分數,將相同評分的商品統一的利用Wi矩陣進行轉化取平均,將不同分數得到的向量結果進行累加、激活,和矩陣W進行相乘,就得到了hui的表示,如下圖所示(對于商品v也一樣)
3、Graph Decoder部分
對于useri和Itemj對不同的評分定義為Mij,對應的不同概率通過softmax計算出來,Qr和QS都是可訓練的參數矩陣,便于結合u和v的維度
最后將基于不同評分下的預測矩陣進行有權值的累加,就得到了最后的預測值
4、損失函數
損失函數的定義如下:
通過已知的評分對預測結果進行誤差計算,即評分對應的Mij概率p對應的logp作為損失進行梯度下降,注意這里的概率p是0~1區間的,logp<0
5、實驗結果
6、不足
輸入維度過高,和用戶、商品數息息相關
對于新的用戶和商品有冷啟動問題
二、STAR-GCN
根據以上的不足,STAR-GCN做了很多改進
1、總體架構(比較)
比GCMC相對而言,stacking了很多對編碼器和解碼器,并且權重矩陣是共享的
2、Transductive 和 Inductive(歸納和直推)
GC-MC是transductive
STAR-GCN 是 Inductive
如何實現直推?——mask
訓練過程中一定幾率下把部分的輸入節點的embedding變成全0,這樣模型就有了可以對低信息節點預測的能力,當新進來節點的時候,只需要少量的連接關系產生,就可以產生還不錯的預測結果
下圖可以直觀的看出兩個模型解碼器的區別,GCMC如前文所說,主要是對已知評分鏈路的預測,而STAR-GCN主要是對X矩陣的還原(圖中綠色的公式)
3、LOSS部分
L是所有編碼解碼器對中產生的Lt和Lr累加產生的公式
Lt是在編碼后根據預測值產生的誤差。公式在下圖中可以看到,其實就是通過編碼之后產生的User與Item的embedding進行內積運算(我們認為這就是我們需要的預測值,很常見的想法),然后與真實的評分作差值
Lr是在解碼后與原本X相比產生的誤差
公式如下圖所示
4、leakage Issue的避免
預測的時候可能會遇到這樣的問題:預測值已經在訓練中就已經被納入計算了
這個事GCN常見的問題,因為GCN訓練的時候會將所有的邊通過鄰接矩陣納入進來,答案就被涵蓋進來,就會出現過擬合問題
如何解決:把需要預測的邊直接拿掉
下圖中U1和V1之間有邊,但是訓練時候不能放進去
5、實驗結果
從實驗結果來看可以發現,Lr和Leakage Issue的避免都是有顯著作用的
recurrent指標代表的是每對編解碼器是否通用參數,但是不同數據下是否相同差別不是很明顯,所以為了降低時間復雜度,可以共享參數
可用的訓練數據的信息越大,對模型的提升效果不明顯,代表了該算法較好地解決了cold start的問題。
總結
以上是生活随笔為你收集整理的GNN在推荐系统的应用——>GC-MC与STAR-GCN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L1-078 吉老师的回归 (15 分)
- 下一篇: 沈阳市委书记邀请深兰科技赴沈建厂,助力东