class_docstr: LINE is a graph embedding model.
  
  We implement the model to train users and items embedding for recommendation.
code: def __init__(self, config, dataset):
      super(LINE, self).__init__(config, dataset)
  
      self.embedding_size = config["embedding_size"]
      self.order = config["order"]
      self.second_order_loss_weight = config["second_order_loss_weight"]
  
      self.interaction_feat = dataset.inter_feat
  
      self.user_embedding = nn.Embedding(
          self.n_users, self.embedding_size
      )
      self.item_embedding = nn.Embedding(
          self.n_items, self.embedding_size
      )
  
      if self.order == 2:
          self.user_context_embedding = nn.Embedding(
              self.n_users, self.embedding_size
          )
          self.item_context_embedding = nn.Embedding(
              self.n_items, self.embedding_size
          )
  
      self.loss_fct = NegSamplingLoss()
  
      self.used_ids = self.get_used_ids()
      self.random_list = self.get_user_id_list()
      np.random.shuffle(self.random_list)
      self.random_pr = 0
      self.random_list_length = len(self.random_list)
  
      self.apply(xavier_normal_initialization)
  
imports: import random
  import numpy
  import torch
  import torch.nn
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.init import xavier_normal_initialization
  from recbole.utils import InputType
label_desc: Use image node_id 1 to create a new LINE object from inherited base classes: GeneralRecommender with example: obj = LINE(config, dataset)