code: def pairwise(self, batch_size, num_parallel_calls=1, take=None):
      output_types = {
          "user_id": tf.int32,
          "p_item_id": tf.int32,
          "n_item_id": tf.int32,
      }
      output_shapes = {"user_id": [], "p_item_id": [], "n_item_id": []}
  
      return self._build_dataset(
          generator=_pairwise_generator,
          generator_params=(self.datastore,),
          output_types=output_types,
          output_shapes=output_shapes,
          batch_size=batch_size,
          num_parallel_calls=num_parallel_calls,
          take=take,
      )
  
file_path: openrec/openrec/tf2/data/dataset.py
imports: from openrec.tf2.data import _ParallelDataset
  from openrec.tf2.data import _DataStore
  import tensorflow
  import numpy
  import random
label_desc: Use image node_id 3 for calling the Dataset obj's underlying member method code with example usage: obj.pairwise(batch_size, num_parallel_calls, take) and returns: self