A pattern often employed in e.g. scikit-learn is allowing models to receive parameters which don't affect model outputs to maintain a consistent API. For an example, see the groups parameter in sklearn.model_selection.KFold.split:
groups: object
Always ignored, exists for compatibility.
Doing something similar with recommender models that do not use the ICM could make interacting with multiple recommenders easier, since we would not need to check whether the recommender takes the ICM and then pass it, but instead pass it every time and leave the implementation to ignore it.
Scripts such as HyperparameterTuning/run_hyperparameter_search.py could then benefit and not require multiple implementations of the same logic only because some models accept the ICM while others don't.
A pattern often employed in e.g. scikit-learn is allowing models to receive parameters which don't affect model outputs to maintain a consistent API. For an example, see the
groupsparameter insklearn.model_selection.KFold.split:Doing something similar with recommender models that do not use the ICM could make interacting with multiple recommenders easier, since we would not need to check whether the recommender takes the ICM and then pass it, but instead pass it every time and leave the implementation to ignore it.
Scripts such as
HyperparameterTuning/run_hyperparameter_search.pycould then benefit and not require multiple implementations of the same logic only because some models accept the ICM while others don't.