code: def init_emb2pos_index(walk_length, window_size, batch_size):
      """select embedding of positive nodes from a batch of node embeddings
  
      Return
      ------
      index_emb_posu torch.LongTensor : the indices of u_embeddings
      index_emb_posv torch.LongTensor : the indices of v_embeddings
  
      Usage
      -----
      # emb_u.shape: [batch_size * walk_length, dim]
      batch_emb2posu = torch.index_select(emb_u, 0, index_emb_posu)
      """
      idx_list_u = []
      idx_list_v = []
      for b in range(batch_size):
          for i in range(walk_length):
              for j in range(i - window_size, i):
                  if j >= 0:
                      idx_list_u.append(j + b * walk_length)
                      idx_list_v.append(i + b * walk_length)
              for j in range(i + 1, i + 1 + window_size):
                  if j < walk_length:
                      idx_list_u.append(j + b * walk_length)
                      idx_list_v.append(i + b * walk_length)
  
      # [num_pos * batch_size]
      index_emb_posu = torch.LongTensor(idx_list_u)
      index_emb_posv = torch.LongTensor(idx_list_v)
  
      return index_emb_posu, index_emb_posv
  
imports: import random
  import numpy
  import torch
  import torch.multiprocessing
  import torch.nn
  import torch.nn.functional
  from torch.multiprocessing import Queue
  from torch.nn import init
label_desc: Use image node_id 1 for calling a global function with example usage: init_emb2pos_index(walk_length, window_size, batch_size) and returns: index_emb_posu,  index_emb_posv