日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

pytorch 笔记: 协同过滤user item bias 实现

發布時間:2025/4/5 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch 笔记: 协同过滤user item bias 实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0 原理部分

?

這里希望實現推薦系統筆記:無任何限制的矩陣分解_UQI-LIUWJ的博客-CSDN博客?中的兩個bias

也就是我們希望用以下這兩個矩陣的積來近似觀測矩陣

1 導入庫 & 數據集處理

import torcha_r=np.array([[1,1],[1,2],[1,3],[1,4]]) b_r=np.array([[4,3,2,1],[1,1,1,1]]) m_r=torch.Tensor(a_r@b_r)''' 我們希望我們最終能夠學到a_r中的第二列,b_r中的第一行 '''x=torch.arange(4)

2 模型部分

class Bias_MF(torch.nn.Module):def __init__(self):super(Bias_MF,self).__init__()self.f_a=torch.nn.Embedding(4,1)self.f_b=torch.nn.Embedding(4,1)def forward(self,x):a_x=self.f_a(x)b_x=self.f_b(x)#分別學習到第一個bias向量和第二個bias向量ones=torch.ones((4,1))self.a=torch.cat((ones,a_x),1)self.b=torch.cat((b_x,ones),1)print(self.a,'\n',self.b.T)return torch.matmul(self.a,self.b.T)

3 創建模型 & 訓練模型

bias=Bias_MF()optimizer=torch.optim.Adam(bias.parameters(),lr=0.2) #優化函數loss_func=torch.nn.MSELoss() #損失函數 for epoch in range(1000):prediction=bias(x)loss=loss_func(prediction,m_r)optimizer.zero_grad()loss.backward(retain_graph=True)optimizer.step()#pytorch老三樣

4 結果比較

bias.a @ bias.b.T,a_r@b_r ''' (tensor([[5.0000, 4.0000, 3.0000, 2.0000],[6.0000, 5.0000, 4.0000, 3.0000],[7.0000, 6.0000, 5.0000, 4.0000],[8.0000, 7.0000, 6.0000, 5.0000]], grad_fn=<MmBackward>),array([[5, 4, 3, 2],[6, 5, 4, 3],[7, 6, 5, 4],[8, 7, 6, 5]])) '''

可以很好地學到結果

總結

以上是生活随笔為你收集整理的pytorch 笔记: 协同过滤user item bias 实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。