hopwise.model.sequential_recommender.srgnn¶
- Reference:
Shu Wu et al. “Session-based Recommendation with Graph Neural Networks.” in AAAI 2019.
- Reference code:
Classes¶
Module Contents¶
- class hopwise.model.sequential_recommender.srgnn.GNN(embedding_size, step=1)¶
Bases:
torch.nn.ModuleGraph neural networks are well-suited for session-based recommendation, because it can automatically extract features of session graphs with considerations of rich node connections.
- step = 1¶
- embedding_size¶
- input_size¶
- gate_size¶
- w_ih¶
- w_hh¶
- b_ih¶
- b_hh¶
- b_iah¶
- b_ioh¶
- linear_edge_in¶
- linear_edge_out¶
- GNNCell(A, hidden)¶
Obtain latent vectors of nodes via graph neural networks.
- Parameters:
A (torch.FloatTensor) – The connection matrix,shape of [batch_size, max_session_len, 2 * max_session_len]
hidden (torch.FloatTensor) – The item node embedding matrix, shape of [batch_size, max_session_len, embedding_size]
- Returns:
Latent vectors of nodes,shape of [batch_size, max_session_len, embedding_size]
- Return type:
torch.FloatTensor
- forward(A, hidden)¶
- class hopwise.model.sequential_recommender.srgnn.SRGNN(config, dataset)¶
Bases:
hopwise.model.abstract_recommender.SequentialRecommenderSRGNN regards the conversation history as a directed graph. In addition to considering the connection between the item and the adjacent item, it also considers the connection with other interactive items.
Such as: A example of a session sequence(eg:item1, item2, item3, item2, item4) and the connection matrix A
- Outgoing edges:
1
2
3
4
1
0
1
0
0
2
0
0
1/2
1/2
3
0
1
0
0
4
0
0
0
0
- Incoming edges:
1
2
3
4
1
0
0
0
0
2
1/2
0
1/2
0
3
0
1
0
0
4
0
1
0
0
- embedding_size¶
- step¶
- device¶
- loss_type¶
- item_embedding¶
- gnn¶
- linear_one¶
- linear_two¶
- linear_three¶
- linear_transform¶
- _reset_parameters()¶
- _get_slice(item_seq)¶
- forward(item_seq, item_seq_len)¶
- calculate_loss(interaction)¶
Calculate the training loss for a batch data.
- Parameters:
interaction (Interaction) – Interaction class of the batch.
- Returns:
Training loss, shape: []
- Return type:
torch.Tensor
- predict(interaction)¶
Predict the scores between users and items.
- Parameters:
interaction (Interaction) – Interaction class of the batch.
- Returns:
Predicted scores for given users and items, shape: [batch_size]
- Return type:
torch.Tensor
- full_sort_predict(interaction)¶
Full sort prediction function. Given users, calculate the scores between users and all candidate items.
- Parameters:
interaction (Interaction) – Interaction class of the batch.
- Returns:
Predicted scores for given users and all candidate items, shape: [n_batch_users * n_candidate_items]
- Return type:
torch.Tensor