GRU4Rec:基于循环网络的会话级推荐
FreeGuideOnline
最新
2026-06-23
python class GRU4Rec(nn.Module): def init(self, n_items, emb_dim, hidden_dim, n_layers): self.emb = nn.Embedding(n_items, emb_dim, padding_idx=0) self.emb_dropout = nn.Dropout(0.25) self.gru = nn.GRU(emb_dim, hidden_dim, n_layers, batch_first=True) self.output = nn.Linear(hidden_dim, n_items)
def forward(self, item_seq):
# item_seq: (batch, seq_len)
x = self.emb_dropout(self.emb(item_seq))
gru_out, final_h = self.gru(x)
session_vec = final_h[-1] # 取最后层的最终隐藏状态
logits = self.output(session_vec)
return logits