Grouping high dimension Y-space to lower dimensions
You may find this resource helpful : https://xang1234.github.io/multi-label/

One possibility is to cluster similar labels together so that they are
processed together by the multilabel classification algorithms.
Community detection methods such as the Louvain algorithm allow us to
cluster the label graph. This is implemented in the
NetworkXLabelGraphClusterer with the parameter methods = louvain.

A resource for splitting your data into (hopefully) balanced train,val,test sets (not so easy because you are in a multi label setting) : http://scikit.ml/stratification.html