code: def create_model(numNodes, embedding_size, order="second"):
      v_i = Input(shape=(1,))
      v_j = Input(shape=(1,))
  
      first_emb = Embedding(numNodes, embedding_size, name="first_emb")
      second_emb = Embedding(
          numNodes, embedding_size, name="second_emb"
      )
      context_emb = Embedding(
          numNodes, embedding_size, name="context_emb"
      )
  
      v_i_emb = first_emb(v_i)
      v_j_emb = first_emb(v_j)
  
      v_i_emb_second = second_emb(v_i)
      v_j_context_emb = context_emb(v_j)
  
      first = Lambda(
          lambda x: reduce_sum(x[0] * x[1], axis=-1, keep_dims=False),
          name="first_order",
      )([v_i_emb, v_j_emb])
      second = Lambda(
          lambda x: reduce_sum(x[0] * x[1], axis=-1, keep_dims=False),
          name="second_order",
      )([v_i_emb_second, v_j_context_emb])
  
      if order == "first":
          output_list = [first]
      elif order == "second":
          output_list = [second]
      else:
          output_list = [first, second]
  
      model = Model(inputs=[v_i, v_j], outputs=output_list)
  
      return model, {"first": first_emb, "second": second_emb}
  
file_path: GraphEmbedding/ge/models/line.py
imports: import math
  import random
  import numpy
  from deepctr.layers.utils import reduce_sum
  from tensorflow.python.keras import backend
  from tensorflow.python.keras.layers import Embedding, Input, Lambda
  from tensorflow.python.keras.models import Model
  from ..alias import create_alias_table, alias_sample
  from ..utils import preprocess_nxgraph
label_desc: Use image node_id 2 for calling a global function with example usage: create_model(numNodes, embedding_size, order) and returns: model,  dict