<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Meta-Learning Service for Recom mender Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lukas Wegmeth</string-name>
          <email>lukas.wegmeth@uni-siegen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Joeran Beel</string-name>
          <email>joeran.beel@uni-siegen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Intelligent Systems Group, University of Siegen</institution>
          ,
          <addr-line>Adolf-Reichwein-Straße 2, 57076 Siegen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <abstract>
        <p>We present CaMeLS, a proof of concept of a cooperative meta-learning service for recommender systems. CaMeLS leverages the computing power of recommender systems users by uploading their metadata and algorithm evaluation scores to a centralized environment. Through the resulting database, CaMeLS then ofers meta-learning services for everyone. Additionally, users may access evaluations of common data sets immediately to know the best-performing algorithms for those data sets. The metadata table may also be used for other purposes, e.g., to perform benchmarks. In the initial version discussed in this paper, CaMeLS implements automatic algorithm selection through meta-learning over two recommender systems libraries. Automatic algorithm selection saves users time and computing power and does not require expertise, as the best algorithm is automatically found over multiple libraries. The CaMeLS database contains 20 metadata sets by default. We show that the automatic algorithm selection service is already on par with the single best algorithm in this default scenario. CaMeLS only requires a few seconds to predict a suitable algorithm, rather than potentially hours or days if performed manually, depending on the data set. The code is publicly available on our GitHub https://camels.recommender-systems.com.</p>
      </abstract>
      <kwd-group>
        <kwd>machine learning</kwd>
        <kwd>recommender systems</kwd>
        <kwd>benchmark</kwd>
        <kwd>model selection</kwd>
        <kwd>algorithm selection</kwd>
        <kwd>meta-learning</kwd>
        <kwd>automated</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Model selection is an essential technique with many advantages for machine learning and, by
extension, recommender systems (RecSys). It can reduce the required time to build a meaningful
predictor, reduce user expertise requirements and increase prediction performance. Standard
methods for model selection, like random search, require expertise from the user to set up the
search space and require additional time and processing power as many rounds of validation
need to be completed. Additionally, depending on the task, these techniques may be ineficient
or yield sub-optimal results [
        <xref ref-type="bibr" rid="ref1 ref17 ref23">1</xref>
        ]. With the rise of automated machine learning (AutoML), new
methods like Bayesian hyperparameter optimization [
        <xref ref-type="bibr" rid="ref18 ref2 ref24">2</xref>
        ] were adopted, improving results but
still having similar requirements [
        <xref ref-type="bibr" rid="ref19 ref25 ref3">3</xref>
        ]. When there are multiple algorithms to choose, these
requirements get even more complicated.
      </p>
      <p>
        It is not yet possible to quickly and easily achieve results similar to state-of-the-art
hyperparameter optimization techniques by other means. However, it is possible to warm-start this
Perspectives on the Evaluation of Recommender Systems Workshop (PERSPECTIVES 2022), September 22nd, 2022,
optimization through meta-learning [
        <xref ref-type="bibr" rid="ref20 ref26 ref4">4</xref>
        ]. Some state-of-the-art AutoML tools employ
metalearning for this and many other purposes due to its power to transfer knowledge from one
task to another [
        <xref ref-type="bibr" rid="ref21 ref22 ref27 ref28 ref5 ref6">5, 6</xref>
        ]. Meta-learning and AutoML only recently surfaced in RecSys, but have
already proved to be valuable in diferent model selection tasks [
        <xref ref-type="bibr" rid="ref10 ref11 ref29 ref30 ref31 ref32 ref7 ref8 ref9">7, 8, 9, 10, 11</xref>
        ].
      </p>
      <p>
        Meta-learning is an application of machine learning. It is bound to the same constraints, e.g.,
the requirement for a suficient amount of data. AutoML tools like Auto-sklearn [
        <xref ref-type="bibr" rid="ref20 ref26 ref4">4</xref>
        ] manually
gather such data and craft a diverse meta-learner specific to the task at hand. However, these
tools are not directly applicable to RecSys because the data and tasks difer drastically from
regular machine learning, e.g., in sparsity.
      </p>
      <p>Due to the success of meta-learning for general machine learning, we hypothesize that, if
suficient data were present in a RecSys context, these techniques would also excel in the RecSys
domain. Of course, acquiring vast amounts of diverse data is challenging. There is no abundance
of public data sets for RecSys, and the list only grows slowly1. Additionally, the quality of
available data sets may not be suficient. Furthermore, private data sets may difer from public
ones, making generalizing a meta-learner to these even harder.</p>
      <p>
        To circumvent the problems mentioned above, we present the concept of a cooperative
metalearning service for RecSys and a proof of concept that we call CaMeLS. Our group introduced
the idea for use with general machine learning and implemented a proof of concept in a previous
publication. It shows that the system provides an immense advantage in terms of time and
computing power [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. With CaMeLS, we extend on this, specifically for RecSys, and provide
the first meta-learning performance evaluation. CaMeLS is an automatic algorithm selection
service, which solves a sub-task of model selection. Our evaluation of CaMeLS shows that it is
on par with the single best algorithm directly out of the box. Additionally, getting the correct or
suitable algorithm with CaMeLS merely takes a few seconds, compared to potentially multiple
hours if done manually.
      </p>
      <p>Conceptually, we envision an environment where users share relevant information about
RecSys data sets without the need to share sensitive, personal, and private data. Therefore,
CaMeLS collects only the metadata of input data sets and their performance metrics on a set of
algorithms. Users perform the training and evaluation on their machine, and CaMeLS collects
the results in a centralized environment open to anyone to read and write. This procedure
leverages the computing power of contributing users by making results available to everyone.
This cooperative efort converges into a collection of metadata sets and performance values
from which a powerful meta-learner can be built and continuously extended, fully accessible by
the community. Such a collection has many additional benefits. It saves time for everyone since
users can retrieve stored results instead of repeatedly computing evaluations for common tasks.
It also serves as a tabular metadata set that users can retrieve to develop and perform thorough
benchmarks on.</p>
    </sec>
    <sec id="sec-2">
      <title>2. CaMeLS</title>
      <p>While there are multiple ways to realize the introduced concept, we present a prototypical
implementation of CaMeLS as proof of concept. We implemented CaMeLS as a traditional</p>
      <sec id="sec-2-1">
        <title>1https://cseweb.ucsd.edu/~jmcauley/datasets.html</title>
        <p>client-server model with an open API. CaMeLS stores the metadata of RecSys data sets and their
evaluation scores on RecSys algorithms. It immediately returns the best algorithm if evaluations
for the input data set are already stored. Otherwise, predicting the best algorithm for unseen
data only takes a few seconds. Using CaMeLS is easy: uploading evaluations and predicting
algorithm performance need a single function call.</p>
        <p>Server
Client
dictates standards Database</p>
        <p>manages
Evaluation procedures</p>
        <p>Verification
Metadata acquisition</p>
        <p>Meta-learner</p>
        <p>enables</p>
        <p>Model selection service
RecSys Library 1</p>
        <p>RecSys Library 2
RecSys Library 1 RecSys Library 2</p>
        <p>RecSys Library 1 RecSys Library 2</p>
        <p>RecSys Library 1
RecSys Library 2
Donating User</p>
        <p>Donating User
Donating User
Submitting data</p>
        <p>Consuming User Consuming User</p>
        <p>Using the service</p>
        <p>Consuming User</p>
        <p>The workflow in CaMeLS depends on whether the user is submitting evaluation data or using
the service. It is shown in Figure 1. We call these users donors and consumers, respectively. If
users volunteer as donors, their input data set passes through a server-dictated preprocessing
to standardize the metadata extraction process. Should the data hash already be present on the
server, the user decides if they repeat the evaluation. Next, the metadata is calculated and stored
on the server. The user then trains the selected algorithms on their input data and evaluates
them. The splitting of the data set into a train and test set and the evaluation of predictions
from the trained models are standardized through shared, configurable functions. Standardized
metric computations ensure that the performance of each algorithm, no matter from which
library, is computed equally, which makes performance scores of diferent libraries comparable.
Finally, the user uploads the evaluation scores to the server. The server finally verifies the
upload and stores the values.</p>
        <p>If a user wishes to consume the service, they must pass their input data set through the same
standardized preprocessing steps that the donors originally went through. So, the metadata
is calculated and uploaded to the CaMeLS server. If the server knows the data by its hash, it
returns a recommended algorithm for the input data. Otherwise, a trained meta-learner for the
targeted user setup has to exist on the server to continue. If one does not exist, the management
policy decides if it is trained on-demand or scheduled by a controlling administrator. The
user chooses the meta-learner that then predicts the algorithm performance for the previously
unknown input metadata and returns the predicted performance of all algorithms to the client.
The client may then, for example, automatically construct a model with default parameters
based on the algorithm with the highest predicted performance.</p>
        <p>
          The meta-learner is a multi-label regressor that predicts the performance score of the metadata
set on each algorithm. By default, CaMeLS uses random forest regression by scikit-learn [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]
for the meta-learner. Alternatively, CaMeLS also allows the integration of other meta-learners.
The meta-learner learns the relationship between the complexity of data sets and algorithm
performances. The metadata set contains one training instance for each available data set. The
features of the metadata set correspond to 17 complexity measures listed in Appendix A. The
ground truth of the metadata set corresponds to the evaluation scores of one metric for each
algorithm. As a result, there are separate meta-learners and metadata sets for every available
metric. Consequently, a meta-learner predicts the evaluation scores of the associated metric for
each algorithm on unseen data.
        </p>
        <p>
          For now, CaMeLS supports algorithms from the RecSys libraries Lenskit [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] and Surprise
[
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Appendix C lists all algorithms with their oficial descriptions. In addition, it uses the
generalized Movielens 2 data loading routines provided by Lenskit and extends these with more
routines for some common data sets and data set families like Amazon 3. Appendix B contains
an organized list of the data sets. As a result, CaMeLS supports more than 30 data sets right
away. The implemented evaluation metrics are the runtime, normalized mean absolute error
(NMAE), mean absolute error (MAE), normalized root mean squared error (NRMSE), and root
means squared error (RMSE). Currently, CaMeLS supports the task of predicting explicit ratings
with the option to extend to implicit ranking prediction and any other user-defined tasks. The
CaMeLS database has a simple and extensible structure to store more complex relations in the
future, e.g., a more complex metadata system presented by Amazon [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Evaluation</title>
      <p>To evaluate CaMeLS, we simulated a client donating metadata and evaluation scores of 20 of the
supported data sets. The evaluated data sets and additional information about the metadata and
algorithms is listed in the Appendix. We collected the performance metrics for the 16 supported
algorithms. Due to resource constraints, we collected the data with holdout validation and
configured data pruning where each user in each data set has to have at least five and at most
1000 ratings. With five performance metrics, this yields a total of 1600 evaluations. Since
each meta-learner trains on one metric at a time and because we treat the model selection
problem as a multi-label regression problem, there is only one instance per metadata set for the
meta-learner training. Hence, the meta-learner for each metric only learns from 20 instances
with 16 labels each in this procedure.</p>
      <p>We evaluate the meta-learners’ predictive performance by performing leave-one-out
crossvalidation. Because randomness afects the evaluation due to the small size of our metadata set,
we average the results over 50 evaluation repetitions. We show the evaluation results for the
random forest meta-learner on the MAE and RMSE metrics in Table 1. The evaluation shows
that the RMSE meta-learner outperforms the single best algorithm in selection accuracy by
4.2% and is on par with its average error. The MAE meta-learner is worse than the single best
algorithm with a 5.1% lower selection accuracy and 0.01 higher average error. However, the</p>
      <sec id="sec-3-1">
        <title>2https://grouplens.org/datasets/movielens/</title>
        <p>3https://nijianmo.github.io/amazon/index.html
diference between the meta-learner and single best algorithm is marginal for both, especially
considering the average error. In algorithm selection, beating the single best algorithm is a
standard minimum requirement. And we can surpass it with CaMeLS for the RMSE meta-learner
even with scarce data and basic complexity measures.</p>
        <p>In addition to its predictive capabilities, CaMeLS saves time and computing power. Manually
reading the data sets into two diferent libraries and performing evaluations on each algorithm
may take multiple hours or days, depending on the size of the input data set. Contrarily, CaMeLS
can predict a suitable algorithm in a few seconds from reading the data.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Discussion</title>
      <p>While meta-learning provides an opportunity for model selection in RecSys, there are still many
challenges to overcome with our presented concept. Model selection through meta-learning
in RecSys is not an easy task and requires further research into, e.g., metadata acquisition.
Suficient data must be collected to start up and improve the service. However, the evaluation
has shown that even a small amount of data may already provide an immediate benefit. Of
course, the initial data collection task can be performed automatically on popular data sets,
similar to what we did for CaMeLS.</p>
      <p>The idea is that users also contribute data voluntarily. A simple incentive can be the implicitly
assumed benevolence of users to improve the service for everyone. But more tangible incentives
may be found. Depending on the use case, there must be considerations for whether the upload
should be an opt-in or opt-out procedure. At the same time, the upload routine must be easily
accessible, so users will not feel a burden when uploading their data. Additionally, if there are
no restrictions on usage, the server host should consider the free-rider problem.</p>
      <p>There is a range of other research questions to be answered, e.g., what are the best complexity
measures considering their computational efort, and what is the ideal setup for the meta-learner?
Right now, metadata acquisition and meta-learner training are both relatively high-speed due
to their simplicity. When more complex metadata is involved, the metadata calculation will
take longer and possibly discourage users from donating data. The benefit-cost ratio of any
task performed with this system is especially significant for the clients.</p>
    </sec>
    <sec id="sec-5">
      <title>A. Complexity Measures</title>
      <p>The list of the complexity measure that CaMeLS calculates and uses as metadata.</p>
    </sec>
    <sec id="sec-6">
      <title>B. Data Sets</title>
      <p>The list of data sets supported by CaMeLS. Bold text indicates that the data set was used in the
evaluation.</p>
      <sec id="sec-6-1">
        <title>Movielens Source:https://grouplens.org/datasets/movielens/</title>
        <sec id="sec-6-1-1">
          <title>1. Movielens 100K</title>
          <p>2. Movielens 1M
3. Movielens 10M
4. Movielens 20M
5. Movielens Latest Small
Amazon Source:https://nijianmo.github.io/amazon/index.html
BookCrossing Source:https://grouplens.org/datasets/book-crossing/
EachMovie Source:http://www.gatsby.ucl.ac.uk/~chuwei/data/EachMovie/eachmovie.html
Jester Source:http://eigentaste.berkeley.edu/dataset/</p>
        </sec>
        <sec id="sec-6-1-2">
          <title>1. Jester3 2. Jester4</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>C. Algorithms</title>
      <sec id="sec-7-1">
        <title>The list of algorithms supported by CaMeLS.</title>
        <p>
          Lenskit [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] algorithms with descriptions from their oficial documentation:
        </p>
        <p>
          Surprise [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] algorithms with descriptions from their oficial documentation:
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bergstra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bengio</surname>
          </string-name>
          ,
          <article-title>Random search for hyper-parameter optimization</article-title>
          .,
          <source>Journal of machine learning research 13</source>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.-Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , L.
          <string-name>
            <surname>-D. Xiong</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Lei</surname>
            ,
            <given-names>S.-H.</given-names>
          </string-name>
          <string-name>
            <surname>Deng</surname>
          </string-name>
          ,
          <article-title>Hyperparameter optimization for machine learning models based on bayesian optimizationb</article-title>
          ,
          <source>Journal of Electronic Science and Technology</source>
          <volume>17</volume>
          (
          <year>2019</year>
          )
          <fpage>26</fpage>
          -
          <lpage>40</lpage>
          . URL: https://www.sciencedirect.com/science/ article/pii/S1674862X19300047. doi:h t t p s : / / d o i .
          <source>o r g / 1 0 . 1 1</source>
          <volume>9 8</volume>
          9 / J E S T .
          <volume>1 6 7 4 - 8 6 2 X . 8 0 9 0 4 1 2 0 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Matuszyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Castillo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kottke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spiliopoulou</surname>
          </string-name>
          ,
          <article-title>A comparative study on hyperparameter optimization for recommender systems</article-title>
          ,
          <source>in: Workshop on Recommender Systems and Big Data Analytics (RS-BDA'16)</source>
          , volume
          <volume>13</volume>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Feurer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Eggensperger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Falkner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lindauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hutter</surname>
          </string-name>
          ,
          <article-title>Auto-sklearn 2.0: The next generation</article-title>
          , CoRR abs/
          <year>2007</year>
          .04074 (
          <year>2020</year>
          ). URL: https://arxiv.org/abs/
          <year>2007</year>
          .04074.
          <article-title>a r X i v : 2 0 0 7 . 0 4 0 7 4</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Grobelnik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanschoren</surname>
          </string-name>
          ,
          <article-title>Warm-starting darts using meta-learning</article-title>
          ,
          <year>2022</year>
          . URL: https: //arxiv.org/abs/2205.06355.
          <source>doi:1 0 . 4 8</source>
          <volume>5 5</volume>
          <fpage>0</fpage>
          <string-name>
            <surname>/ A R X I</surname>
          </string-name>
          <article-title>V . 2 2 0 5 . 0 6 3 5 5</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Zimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lindauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Hutter</surname>
          </string-name>
          ,
          <article-title>Auto-pytorch: Multi-fidelity metalearning for eficient and robust autodl</article-title>
          ,
          <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>
          <volume>43</volume>
          (
          <year>2021</year>
          )
          <fpage>3079</fpage>
          -
          <lpage>3090</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Luo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chen</surname>
          </string-name>
          , P. Cheng,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Dong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>He</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <article-title>Metaselector: Meta-learning for recommendation with user-level adaptive model selection</article-title>
          , CoRR abs/
          <year>2001</year>
          .10378 (
          <year>2020</year>
          ). URL: https://arxiv.org/abs/
          <year>2001</year>
          .10378.
          <article-title>a r X i v : 2 0 0 1 . 1 0 3 7 8</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Nechaev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Meltsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zhukova</surname>
          </string-name>
          ,
          <article-title>Utilizing metadata to select a recommendation algorithm for a user or an item</article-title>
          ,
          <source>in: CEUR Workshop Proceedings</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Bharadhwaj</surname>
          </string-name>
          ,
          <article-title>Meta-learning for user cold-start recommendation</article-title>
          , in: 2019
          <source>International Joint Conference on Neural Networks (IJCNN)</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>0</volume>
          <fpage>9</fpage>
          <string-name>
            <surname>/ I J C N</surname>
          </string-name>
          <article-title>N</article-title>
          .
          <volume>2 0 1 9 . 8 8 5 2 1 0 0 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Collins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Tkaczyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Beel</surname>
          </string-name>
          ,
          <article-title>One-at-a-time: A meta-learning recommender-system for recommendation-algorithm selection on micro level</article-title>
          , arXiv preprint arXiv:
          <year>1805</year>
          .
          <volume>12118</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>R.</given-names>
            <surname>Anand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Beel</surname>
          </string-name>
          ,
          <article-title>Auto-surprise: An automated recommender-system (autorecsys) library with tree of parzens estimator (tpe) optimization</article-title>
          ,
          <source>in: Fourteenth ACM Conference on Recommender Systems</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>585</fpage>
          -
          <lpage>587</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Arambakam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Beel</surname>
          </string-name>
          ,
          <article-title>Federated meta-learning: Democratizing algorithm selection across disciplines and software libraries</article-title>
          ,
          <source>in: 7th ICML Workshop on Automated Machine Learning (AutoML)</source>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pedregosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Varoquaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gramfort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Thirion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grisel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blondel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Prettenhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Weiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dubourg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderplas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Passos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cournapeau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brucher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Perrot</surname>
          </string-name>
          , E. Duchesnay,
          <article-title>Scikit-learn: Machine learning in Python</article-title>
          ,
          <source>Journal of Machine Learning Research</source>
          <volume>12</volume>
          (
          <year>2011</year>
          )
          <fpage>2825</fpage>
          -
          <lpage>2830</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>M. D. Ekstrand</surname>
          </string-name>
          ,
          <article-title>Lenskit for python: Next-generation software for recommender systems experiments</article-title>
          ,
          <source>in: Proceedings of the 29th ACM international conference on information &amp; knowledge management</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>2999</fpage>
          -
          <lpage>3006</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Hug</surname>
          </string-name>
          ,
          <article-title>Surprise: A python library for recommender systems</article-title>
          ,
          <source>Journal of Open Source Software</source>
          <volume>5</volume>
          (
          <year>2020</year>
          )
          <article-title>2174</article-title>
          . URL: https://doi.org/10.21105/joss.02174.
          <source>doi:1 0 . 2 1 1 0 5 / j o s s . 0 2</source>
          <volume>1 7 4 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Schelter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-H.</given-names>
            <surname>Boese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kirschnick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Seufert</surname>
          </string-name>
          ,
          <article-title>Automatically tracking metadata and provenance of machine learning experiments</article-title>
          ,
          <source>in: Machine Learning Systems Workshop at NIPS</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>27</fpage>
          -
          <lpage>29</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          1. UserUser:
          <article-title>User-user nearest-neighbor collaborative filtering</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          2. ItemItem:
          <article-title>Item-item nearest-neighbor collaborative filtering</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          3. BiasedMF:
          <article-title>Biased matrix factorization trained with alternating least squares</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          4. BiasedSVD:
          <article-title>Biased matrix factorization for implicit feedback using SciKit-Learn's SVD solver</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          5. FunkSVD:
          <article-title>Algorithm class implementing FunkSVD matrix factorization</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bias</surname>
          </string-name>
          :
          <article-title>A user-item bias rating prediction algorithm</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          1. NormalPredictor:
          <article-title>Algorithm predicting a random rating based on the distribution of the training set, which is assumed to be normal</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          2. Baseline:
          <article-title>Algorithm predicting the baseline estimate for given user and item</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          3. KNNBasic:
          <article-title>A basic collaborative filtering algorithm</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          4. KNNWithMeans:
          <article-title>A basic collaborative filtering algorithm, taking into account the mean ratings of each user.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          5. KNNWithZScore:
          <article-title>A basic collaborative filtering algorithm, taking into account the z-score normalization of each user.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          6. KNNBaseline:
          <article-title>A basic collaborative filtering algorithm taking into account a baseline rating</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          7. SVD:
          <article-title>The famous SVD algorithm, as popularized by Simon Funk during the Netflix Prize</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          8. NMF:
          <article-title>A collaborative filtering algorithm based on Non-negative Matrix Factorization</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          9. SlopeOne:
          <article-title>A simple yet accurate collaborative filtering algorithm</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          10.
          <article-title>CoClustering: A collaborative filtering algorithm based on co-clustering.</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>