class_docstr: SASRec is the first sequential recommender based on self-attentive mechanism.
  
  NOTE:
      In the author's implementation, the Point-Wise Feed-Forward Network (PFFN) is implemented
      by CNN with 1x1 kernel. In this implementation, we follows the original BERT implementation
      using Fully Connected Layer to implement the PFFN.
class_docstr_tok: ["SASRec","is","the","first","sequential","recommender","based","on","self-attentive","mechanism",".","NOTE",":","In","the","author","'s","implementation",",","the","Point-Wise","Feed-Forward","Network","(","PFFN",")","is","implemented","by","CNN","with","1x1","kernel",".","In","this","implementation",",","we","follows","the","original","BERT","implementation","using","Fully","Connected","Layer","to","implement","the","PFFN","."]
code: def predict(self, interaction):
      item_seq = interaction[self.ITEM_SEQ]
      item_seq_len = interaction[self.ITEM_SEQ_LEN]
      test_item = interaction[self.ITEM_ID]
      seq_output = self.forward(item_seq, item_seq_len)
      test_item_emb = self.item_embedding(test_item)
      scores = torch.mul(seq_output, test_item_emb).sum(dim=1)  # [B]
      return scores
  
file_path: RecBole/recbole/model/sequential_recommender/sasrec.py
imports: import torch
  from torch import nn
  from recbole.model.abstract_recommender import SequentialRecommender
  from recbole.model.layers import TransformerEncoder
  from recbole.model.loss import BPRLoss
label_desc: Use image node_id 5 for calling the SASRec obj's underlying member method code with example usage: obj.predict(interaction) and returns: scores