code: def get_msd_taste_profile():
      """Returns the taste profile subset from the million song dataset:
      https://labrosa.ee.columbia.edu/millionsong/tasteprofile
  
      Data returned is a tuple of (trackinfo, user, plays) where
      plays is a CSR matrix of with the rows being the track, columns being
      the user and the values being the number of plays.
  
      Trackinfo is a an array of tuples (trackid, artist, album, song name),
      with the position corresponding to the rowid of the plays matrix. Likewise
      users is an array of the user identifiers.
      """
  
      filename = os.path.join(
          _download.LOCAL_CACHE_DIR, "msd_taste_profile.hdf5"
      )
      if not os.path.isfile(filename):
          log.info("Downloading dataset to '%s'", filename)
          _download.download_file(URL, filename)
      else:
          log.info("Using cached dataset at '%s'", filename)
  
      with h5py.File(filename, "r") as f:
          m = f.get("track_user_plays")
          plays = csr_matrix(
              (m.get("data"), m.get("indices"), m.get("indptr"))
          )
          return np.array(f["track"]), np.array(f["user"]), plays
  
file_path: implicit/implicit/datasets/million_song_dataset.py
imports: import logging
  import os
  import time
  import h5py
  import numpy
  from scipy.sparse import coo_matrix, csr_matrix
  from tqdm.auto import tqdm
  from implicit.datasets import _download
label_desc: Use image node_id 1 for calling a global function with example usage: get_msd_taste_profile() and returns: np,  np,  plays