docs: def recommend(self, userid, user_items,
                    N=10, filter_already_liked_items=True, filter_items=None, recalculate_user=False):
          """
          Recommends items for a user
  
          Calculates the N best recommendations for a user, and returns a list of itemids, score.
  
          Parameters
          ----------
          userid : int
              The userid to calculate recommendations for
          user_items : csr_matrix
              A sparse matrix of shape (number_users, number_items). This lets us look
              up the liked items and their weights for the user. This is used to filter out
              items that have already been liked from the output, and to also potentially
              calculate the best items for this user.
          N : int, optional
              The number of results to return
          filter_items : sequence of ints, optional
              List of extra item ids to filter out from the output
          recalculate_user : bool, optional
              When true, don't rely on stored user state and instead recalculate from the
              passed in user_items
  
          Returns
          -------
          list
              List of (itemid, score) tuples
          """
          pass