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