hopwise.model.sequential_recommender.gcsan¶
- Reference:
Chengfeng Xu et al. “Graph Contextualized Self-Attention Network for Session-based Recommendation.” in IJCAI 2019.
Classes¶
Module Contents¶
- class hopwise.model.sequential_recommender.gcsan.GNN(embedding_size, step=1)[source]¶
Bases:
torch.nn.Module
Graph 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¶
- linear_edge_in¶
- linear_edge_out¶
- GNNCell(A, hidden)[source]¶
Obtain latent vectors of nodes via gated graph neural network.
- 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
- class hopwise.model.sequential_recommender.gcsan.GCSAN(config, dataset)[source]¶
Bases:
hopwise.model.abstract_recommender.SequentialRecommender
- GCSAN captures rich local dependencies via graph neural network,
and learns long-range dependencies by applying the self-attention mechanism.
Note
In the original paper, the attention mechanism in the self-attention layer is a single head, for the reusability of the project code, we use a unified transformer component. According to the experimental results, we only applied regularization to embedding.
- n_layers¶
- n_heads¶
- inner_size¶
- attn_dropout_prob¶
- layer_norm_eps¶
- step¶
- device¶
- weight¶
- reg_weight¶
- loss_type¶
- initializer_range¶
- item_embedding¶
- gnn¶
- self_attention¶
- reg_loss¶
- calculate_loss(interaction)[source]¶
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)[source]¶
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)[source]¶
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