class_docstr: NAIS is an attention network, which is capable of distinguishing which historical items
  in a user profile are more important for a prediction. We just implement the model following
  the original author with a pointwise training mode.
  
  Note:
      instead of forming a minibatch as all training instances of a randomly sampled user which is
      mentioned in the original paper, we still train the model by a randomly sampled interactions.
docstr: get the user history interaction information
  
  Args:
      dataset (DataSet): train dataset
  
  Returns:
      tuple: (history_item_matrix, history_lens, mask_mat)
docstr_tok: ["get","the","user","history","interaction","information","Args",":","dataset","(","DataSet",")",":","train","dataset","Returns",":","tuple",":","(","history_item_matrix",",","history_lens",",","mask_mat",")"]
code: def get_history_info(self, dataset):
      """get the user history interaction information
  
      Args:
          dataset (DataSet): train dataset
  
      Returns:
          tuple: (history_item_matrix, history_lens, mask_mat)
  
      """
      (
          history_item_matrix,
          _,
          history_lens,
      ) = dataset.history_item_matrix()
      history_item_matrix = history_item_matrix.to(self.device)
      history_lens = history_lens.to(self.device)
      arange_tensor = torch.arange(history_item_matrix.shape[1]).to(
          self.device
      )
      mask_mat = (arange_tensor < history_lens.unsqueeze(1)).float()
      return history_item_matrix, history_lens, mask_mat
  
imports: import torch
  import torch.nn
  from torch.nn.init import constant_, normal_, xavier_normal_
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.layers import MLPLayers
  from recbole.utils import InputType
label_desc: Use image node_id 4 for calling the NAIS obj's underlying member method code with example usage: obj.get_history_info(dataset) and returns: history_item_matrix,  history_lens,  mask_mat