docstr: Parameters:
      users: users list 
      pos: positive items for corresponding users
      neg: negative items for corresponding users
  Return:
      (log-loss, l2-loss)
docstr_tok: ["Parameters",":","users",":","users","list","pos",":","positive","items","for","corresponding","users","neg",":","negative","items","for","corresponding","users","Return",":","(","log-loss",",","l2-loss",")"]
code: def bpr_loss(self, users, pos, neg):
      """
      Parameters:
          users: users list
          pos: positive items for corresponding users
          neg: negative items for corresponding users
      Return:
          (log-loss, l2-loss)
      """
      raise NotImplementedError
  
imports: import paddle
  import paddle.nn
  from dataloader import BasicDataset
  import numpy
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import pgl
  from pgl.nn import functional
  from tqdm import tqdm
label_desc: Use image node_id 2 for calling the PairWiseModel obj's underlying member method code with example usage: obj.bpr_loss(users, pos, neg) without return types