<!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>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Preference learning by matrix factorization on island models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Šteˇpán Balcar</string-name>
          <email>Stepan.Balcar@mff.cuni.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Charles University, Faculty of Mathematics and Physics, Czech Republic</institution>
          ,
          <addr-line>Prague</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>2203</volume>
      <fpage>146</fpage>
      <lpage>151</lpage>
      <abstract>
        <p>This paper presents island models, methods, implementation and experiments connecting stochastic optimization methods and recommendation task (collaborative one). Our models and methods are based on matrix factorization. Parallel run of methods optimizes the RMSE metric from an island model point-of-view. This paper comments on architecture and some implementation decisions. We dealt with two research hypotheses. First, whether island models bring always improvement. We will show that almost always yes. Second, whether evolutionary algorithm does or does not always find the best solution. This will be confirmed only on smaller data. Experiments were provided on Movie Lens 100k and 1M data.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>This paper studies recommender systems, especially
learning user/customer preferences. Main idea of this paper is
to connect this study to evolutionary island models. Here,
island models are a computational tool for matrix
factorization.</p>
      <p>Instances of one stochastic optimization method run in
parallel on island models, searching the same state space.
Such a method traverses the state space of solutions. The
actual state they visit is influenced by (mutually
independent) stochasticity. Hence, different instances can visit
different parts of the state space. Island model parallelization
is based on cooperation of methods during the
computation.</p>
      <p>This resembles ensemble and/or hybrid learning, where
different optimization methods are:
• run in parallel
• allowed to run in different state spaces
The solution (usually one of them) is chosen at the end by
an additional aggregation/decision method.</p>
      <p>
        Using evolutionary computing for recommendation is
surveyed in the paper of Horvath [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This survey shows
that usage of evolutionary methods is quite frequent in
recommendation systems (see also [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]). One of approaches is
model based. Our approach uses matrix factorization and
hence the model is constituted by factors. In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] they
mention only one paper [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] where evolution individuals are
matrix factors. Authors of the article [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] provide results
on ML100k data on minimizing squared error depending
on size of population and probability of mutation (other
parameters are fixed).
      </p>
      <p>In this paper, parameters of our methods were chosen
after experiments on sample data. We will try to improve
RMSE using parallelization. We will provide results on
both ML100k and ML1M data.</p>
      <p>Main contribution of this paper is:
• Multiple island model brings statistically significant
improvement of recommendation in comparison to
single instance optimization.
• Our implementation is able to handle individuals
(matrix factors). Size of our individuals is several
orders bigger than usual in evolutionary computation.</p>
      <p>This paper is organized as follows: Chapter 2 "Related
work" concerns recommender systems and matrix
factorization; evolutionary algorithms and island model.
Chapter 3 "Methods, models and parameters" sketches our view
of stochastic optimization methods; parameters and
settings of island model used in tests. Next section "Data"
describes realization of experiments and design of tests
and computing resources. Finally section 4 "Results" gives
both numeric and graphic presentation of our results and
discusses confirmation of our hypotheses. After
conclusions paper ends with Future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>This section gives basic notation for recommender
systems, evolutionary computation used and overviews some
relevant literature.
2.1</p>
      <sec id="sec-2-1">
        <title>Recommender systems and matrix factorization</title>
        <p>It was the Netflix price (announced in October 2006)
which excited public and changed the landscape of
recommender systems area research.</p>
        <p>
          The BellKor squad included Chris Volinsky and his
AT&amp;T colleagues Robert Bell and Yehuda Koren, along
with four other engineers from the United States, Austria,
Canada and Israel (BellKor’s Pragmatic Chaos) on June
26, 2009, finally crossed the 10% finish line. Main
ingredient of winning solution has been matrix factorization
(MF), see e.g. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>We focus on latent model based recommendation
which is a part of collaborative filtering technique (Co),
of evolutionary algorithms in combination with the
computation of latent factors.</p>
        <p>
          Motivated by this, in our paper individuals are
represented by concatenation of U| and I| (like a worm d-thick
and |U | + |I | long)
 ...
i11 . . . i1|I | 
... . . . ... 
id1 . . . xd|I |
asked for in Netflix Price competition. Co was introduced
by [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          Let us denote U set of user ids and I the set of item ids.
Input data can be viewed as partial function r : U × I −→
P, here P is the preference scale (e.g. one to five stars
or real numbers). Alternative representation is in the form
of algebraic matrix R ∈ P|U |×|I | with dimensions
representing users and items respectively. Rating of user i ∈ U
of an item j ∈ I is content of corresponding cell of matrix
ri j ∈ P. Usually this matrix is very sparse, so in practice
input data are represented in a form of a database table R
with schema R(uid = user id, iid = item id, rating).
Although implementation uses database table formal model
of [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] description is easier in the language of matrices. The
matrix R is factorized to lower dimensional representation
        </p>
        <p>R ≈ U × I| = Rˆ
where U ∈ P|U |×d , I ∈ P|I |×d are user and item
latent factors matrices and × is a matrix product. d is much
smaller than |U | and |I |. Approximation of R by Rˆ is
measured by
ei2j = (ri j − rˆij)2 =</p>
        <p>d
ri j − ∑ uiki jk
k=1
!
here rˆij will serve as approximation of value ri j.</p>
        <p>
          Our main optimization method is SGD - stochastic
gradient descent method. For other approaches and
dimensions of research in recommender systems we reffer to [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Evolutionary algorithms</title>
        <p>
          Evolutionary algorithms became popular after 1970,
thanks to John Holland [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] as a means for solving
optimization problems. The solution is represented as an
individual, the set of individuals forms the population.
Evolutionary algorithm is formed by phases: initialization,
selection (parent selection for next generation offspring),
crossover, mutation and evaluation of the whole
population. The stochastic computing of individuals seeks
convergence to the global optimum.
        </p>
        <p>
          The contribution of evolutionary algorithms in the area
of recommender systems was reviewed by Horvath de
Carvalho in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. This review analyzed more than 65 research
papers using EC techniques for user recommendations. It
analyzed different approaches according to five aspects: (i)
recommendation technique used, (ii) datasets employed in
the experiments and (iii) evaluation methods used in the
experiments, (iv) baselines used to compare with the
proposed methods and (v) reproducibility of the research.
        </p>
        <p>
          Most of nature-inspired algorithms reviewed in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] find
application in solving partial problems such as feature
weighting extraction, model based approach, clustering
and function learning.
        </p>
        <p>
          Computing latent factor models by using of
evolutionary algorithms has emerged as a possible approach [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
Available publications do not mention the parallelization
(2)
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3 Island model</title>
        <p>v
uu ∑|iU=1| ∑|jI=1| ei2j
t
|U | ∗ |I |
(3)
Island models are one of approaches how parallelize
optimization algorithms. Their characterization is that there is
no central master and populations are distributed. Island
model consists of parallel algorithms enriched by
sending and accepting migrants. Migrants are individuals from
other islands population. The hope is that this propagation
of genetic material can speed up convergence and escape
from local optima trap.</p>
        <p>
          Parameters of island model are frequency of
sendingreceiving migrants and the way how the migrant is chosen
from local population (remember that parameters of
methods are fixed and are chosen after experiments on a sample
data). Optimal choice of these parameters depends on the
type of optimization method and is subject of study. These
aspects of island models are studied in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>
          Specific type of island models, heterogeneous, were
used in the application of multi-criteria optimization by
Martin Pilát and Roman Neruda [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. They designed a
new algorithm of MOGASOLS (Multiobjective Genetic
Algorithm with Single Objective Local Search) combining
multi-criteria genetic algorithm (MOGA) with a
singlecriteria genetic algorithm (SOGA). It is proved that
parallelization of time-consuming method MOGA achieves
worse results than parallel running MOGA and SOGA
methods. They were tested in NSGA-II [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and IBEA [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
algorithms. This was further developed in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>
          The first who come up with heterogeneous island
models (HeIM), the way we understand them, was Martin Pilat
([
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]). In these models, the islands may carry diverse
computational methods, differing not only in parameters but
also in the structure of the whole stochastic algorithm [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
For the choice of optimal methods for the given problem is
responsible the central planner, which replaces
unsuccessful method by more successful methods during the whole
computation. In publication [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] the original Balcar’s tool
[
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] was used.
        </p>
        <p>In this paper this tool is used with homogeneous islands
to find optimal user and item latent factor.</p>
        <p>Then different optimization techniques are used to
converge with factor to optimal one. For illustration we give
formulas for stochastic gradient descent. Recall ei2j, then
next generation values of user and item factors equal to
u´ik = uik + α</p>
        <p>∂
∂ uik
2
ei j
ik´j = ik j + α
∂
∂ ik j
2
ei j
(4)</p>
        <p>
          Note, that in our implementation we do not consider
normalization factor, this is left for future. Nevertheless,
some normalization effect is obtained by migration and
synergy of islands. α is not fixed, just bounded from
above. More on our system is in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Methods, models and parameters</title>
      <p>Island models where originally developed for
parallelization of evolutionary algorithms. In this paper we will use
also other stochastic optimization methods.
3.1</p>
      <sec id="sec-3-1">
        <title>Stochastic optimization methods</title>
        <p>
          Evolutionary algorithms try to balance trade off between
exploration and exploitation. This property should help
evolutionary algorithm to escape from local extremes and
simultaneously converge to optimal solution. For this
ability they pay a higher time complexity because of parallel
development of bigger population. Because of this fact,
on some types of problems, the winners are other
stochastic optimization methods. An example is TSP solution by
hill climbing with 2-opt ([
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]). So, this is the main
reason we consider several additional stochastic optimization
methods (see Table 1).
        </p>
        <p>
          All these methods use the stochastic gradient descent.
A general link to description of stochastic optimization
methods is [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>Our implementation of stochastic optimization methods
was changed in two ways. First, we had to create operators
to enable them to work with latent factor based
individuals. Second, methods were modified for parallel run in
island models with migration. They were enriched with
ability to cooperate. They receive individuals and enrich their
local population. Please notice, that only evolution and
differential evolution have bigger population. Remaining
methods have only one individual population. In this case
enrichment means replacement. They provide their
solution from local population to neighboring islands.
Methods manipulate incoming individuals in concordance with
basic algorithm idea. E.g. the tabu search method inserts
a newcomer to the tabu set.</p>
        <p>Individual equals solution. Solution is represented by
pair of latent factors of users and items (Figure 1).
Multiplying of these latent factor we get a matrix which
represents our estimation of ratings. Length of first vector is
the number of users and the length of second vector equals
number of items. Size of the individual depends on size
of input problem. Width of latent vector is an optional
parameter.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Parameters and settings of island model used in tests</title>
        <p>
          Now we describe island model - the environment in which
the above methods will be parallelized. It is the
environment which ensures dissemination of genetic material.
The main tool for this is the migration. This migration
does not mean only exchange of best solutions. We would
like to spread across the system (between islands) genetic
material which has the potential to contribute to further
improvement of population quality and to speed-up the
convergence. Migration is inspired by processes in nature
([
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]). Most of island models exchange migrants in a
synchronized way. In our system exchange of migrants is
not synchronized - so in fact our islands are more general.
        </p>
        <p>
          Key parameter of island models , as nature shows ([
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]),
is the frequency of migration and size of local populations.
The bigger the frequency of migration the bigger is the
chance that islands will help each other. On other side each
hardware and software is limited by data through put.
        </p>
        <p>
          Matrix factorization needs migration of much bigger
individuals than e.g. continuous optimization, where
individual is a point in an n-dimensional space. In this paper
we had to change architecture of model used in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] input problems were TSP (traveling salesman
problem of size cca. 1000 cities), BP (bin packing, one
dimensional with 1000 items), CO (continuous optimization,
10dimensional function) and vertex cover (1000 vertexes).
Solution of preference learning by matrix factorization on
island models is represented of much bigger individuals,
rough estimation of our state space is &gt; #TSP20.
Evolutionary algorithms use incoming individuals in groups and
after a while. Hence, it is advantageous to store them in a
front. As far as individuals are big and memory is limited
we had to limit the size of fronts (see Table 2).
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Data</title>
        <p>We used data from the movie recommendation domain in
the experiments. The effectiveness of parallelization has
been verified on datasets ml-100k1 and ml-1m2. Datasets
are formed by movie evaluation (1-5 stars), for trials we
use the trinity (user, movie, rating).</p>
        <p>The training set consists of four-fifths from the dataset,
the rest is the test set. Counting derivatives for SGD
lever</p>
        <sec id="sec-3-3-1">
          <title>1http://grouplens.org/datasets/movielens/100k/ 2https://grouplens.org/datasets/movielens/1m/</title>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>Algorithms</title>
        <p>HillClimbing
RandomSearch
Evolution</p>
      </sec>
      <sec id="sec-3-5">
        <title>Tool</title>
        <p>SGD random rating from each line
generation of latent vectors
uniform crossover + SGD</p>
      </sec>
      <sec id="sec-3-6">
        <title>Parameters</title>
        <p>numberOfNeighbors=10
popSize=10, mutationRate=0.9,
crossRate=0.1,
parentSelector=CompareTwoRandomSelectors</p>
        <sec id="sec-3-6-1">
          <title>BruteForce</title>
          <p>TabuSearch
Sim.Annealing
SGD according to the I-th rating
SGD random rating from each line
SGD random rating from each line</p>
        </sec>
        <sec id="sec-3-6-2">
          <title>Diff.Evolution</title>
          <p>differential crossover
tabuModelSize=50
temperature=10000,
coolingRate=0.002
popSize=50, F=0.25
ages the training set. The test set is used to evaluate
individuals.
3.4</p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>Realization of the experiment</title>
        <p>Our main idea is to increase stochasticity of searching the
state space (which is enormous for movie data). First
level of stochasticity is enabled by stochastic optimization
method. Second level is enabled by several independent
islands. The third level is attained by migration. Our system
enables all of these. Moreover, all of these run in parallel
with mutually assisting methods (not competitive).</p>
        <p>In order to be able to obtain the best solution from such
a computation resource, the computation must be
continuously monitored (Figure 2). Solutions represent
individuals that are unpredictably moving across the island model.
We can never know when and where the best solution will
appear (sometimes the best solution does not appear at the
end, see Figure 3).</p>
        <p>Our implementation uses agent middle-ware Jade3 for
achievement of higher adaptivity of methods (in our three
levels of stochasticity).</p>
        <p>Here we were facing main decision. Whether to prefer
higher adaptivity (based e.g. on Jade) or better use of
effectiveness of specific hardware (based e.g. on C). From
pure experimental curiosity we went along the agent based
middle-ware framework direction.</p>
        <p>The central brain of the multi-agent based system is a
manager of migration which directs the computation and
measures genetic material during evolution.</p>
        <sec id="sec-3-7-1">
          <title>3http://jade.tilab.com/</title>
          <p>Island 1
Method
(agent)</p>
          <p>I.</p>
          <p>Island 2
Method
(agent)</p>
          <p>II.</p>
          <p>Manager
(planner)</p>
          <p>Monitor
(statistic)
Island 3
Method
(agent)</p>
          <p>III.</p>
          <p>The use of this system is the implementation of methods
as an agent, who can develop methods as adaptive
computing resources. The infrastructure of the system is made
up of two central points, by Agent-manager that manages
computation and by Agent-monitor, that monitors genetic
material in the system.</p>
          <p>Software allows multiple ways of monitoring. The
monitor statistically processes the quality of the individuals.
Another way of observing what happens in the system is
to produce the pedigrees of an individual. The basic idea
is to enrich every individual of the pedigree that contains
information on the involvement of concrete islands in its
creation.</p>
          <p>For our experiments, were used statistics that are
computed from each monitored individuals in one iteration of
planner. We will present the results as a measure of the
system, which is monitoring follow-planner-iterations.</p>
          <p>Our evolutionary methods (Table 1) use uniform
crossover. In phase of mutation they apply stochastic
gradient descent on a randomly chosen rating.</p>
          <p>Differential evolution combines 3 latent vectors
(individuals which are models/solutions) LV1 which is a
concatenation of U1| and I1|, similarly LV2 and LV3. Result
of the differential operator is latent vector</p>
          <p>LVnew = LV1 + F ∗ (LV2 − LV3)
here F is 0.25.
Comparison of single methods - MFML1m</p>
          <p>Single-BruteForce
Single-Evolution
Single-Hil Climbing
Single-SimulatedAnnealing
Single-TabuSearch
3.5</p>
        </sec>
      </sec>
      <sec id="sec-3-8">
        <title>Test design and computing resources</title>
        <p>Two pairs of tests were created, comparing single
methods and island models, differing in the size of the input
Movieland dataset. The width of the latent vector was set
to 10 (best after initial experiments on smaller samples).
The tests run on all initial parameter settings (Table 3) 9
times. As far as our computations are nondeterministic
this makes difference (see Figures 4 and 5). These are
computationally demanding calculations.</p>
      </sec>
      <sec id="sec-3-9">
        <title>Parameter</title>
        <p>Number of runs
Computing nodes
Latent factor width
Datasets
value
9
AMD Opteron 6376, 64GB memory
10
ml-100k, ml-1m
Our experiments validated two hypotheses. First is that
evolution does not necessary give best solution and
second that island models improve results. We will present
results for two datasets separately. We will show the best
solution of 9 runs and average of all runs (for distribution
see Figures 4 and 5).</p>
        <p>On the smaller data set the winner is always Evolution
and Islands give always better solution.</p>
        <p>On the bigger dataset the single island winner is
simulated annealing (in both minimum and average). In Islands
the winner is hill climbing (in both minimum and
average). On bigger data we can not always observe advantage
brought by parallelization by islands and migration. This
can be observed especially by simulated annealing. One
possible explanation is that hill climbing does not risk that
much going in wrong direction as simulated annealing is
doing (sometimes). Bigger data bring bigger state space
and hence risk is necessary, but 50 iterations of the
planner is probably not enough. In future research we will run
island models with more iterations.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>We proved that island models are a good computing tool
for recommender systems. Our experiments have shown
following. Island models brought clear improvement on
smaller data set. On bigger data, it is also true except of
simulated annealing. Moreover on bigger data evolution
does not find best solution.</p>
      <p>
        Our implementation is publicly available on Github4
and hence enables repeatability of our experiments (see
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], requirement (v)).
      </p>
      <sec id="sec-4-1">
        <title>4https://github.com/sbalcar/distributedea</title>
        <p>1.7
1.6
In our future work we plan to extend this to heterogeneous
island models. We also plan to develop new planners
which will be specifically designed for recommendation
domain. We would like to consider also islands with
statistical learning methods. Challenge is extension to content
based recommendation.</p>
        <p>Single-SimulatedAnnealing</p>
        <p>Island-SimulatedAnnealing</p>
        <p>Acknowledgements. This work was supported by a
Ph.D grant SVV2018-260451 under supervision of Peter
Vojtas.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Tomáš</given-names>
            <surname>Horváth and André C. P. L. F. de Carvalho</surname>
          </string-name>
          .
          <article-title>Evolutionary computing in recommender systems: a review of recent research</article-title>
          .
          <source>Natural Computing</source>
          ,
          <volume>16</volume>
          (
          <issue>3</issue>
          ):
          <fpage>441</fpage>
          -
          <lpage>462</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rezaei</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Boostani</surname>
          </string-name>
          .
          <article-title>Using genetic algorithm to enhance nonnegative matrix factorization initialization</article-title>
          .
          <source>In 2010 6th Iranian Conference on Machine Vision and Image Processing</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          ,
          <year>Oct 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Dariush</given-names>
            <surname>Zandi</surname>
          </string-name>
          <string-name>
            <surname>Navgaran</surname>
          </string-name>
          , Parham Moradi, and
          <string-name>
            <given-names>Fardin</given-names>
            <surname>Akhlaghian</surname>
          </string-name>
          .
          <article-title>Evolutionary based matrix factorization method for collaborative filtering systems</article-title>
          .
          <source>2013 21st ICEE</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Y</given-names>
            <surname>Koren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R</given-names>
            <surname>Bell</surname>
          </string-name>
          , and Volinsky C.
          <article-title>Matrix factorization techniques for recommender systems</article-title>
          .
          <source>Computer</source>
          ,
          <volume>42</volume>
          (
          <issue>8</issue>
          ):
          <fpage>30</fpage>
          -
          <lpage>37</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Peska</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Vojtas</surname>
          </string-name>
          .
          <article-title>Using implicit preference relations to improve recommender systems</article-title>
          .
          <source>Journal on Data Semantics</source>
          ,
          <volume>6</volume>
          ,
          <issue>1</issue>
          :
          <fpage>15</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>John</surname>
            <given-names>H. Holland.</given-names>
          </string-name>
          <article-title>Adaptation in Natural and Artificial Systems</article-title>
          . MIT Press,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Darrell</given-names>
            <surname>Whitley</surname>
          </string-name>
          , Soraya Rana, and
          <string-name>
            <surname>Robert</surname>
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Heckendorn</surname>
          </string-name>
          .
          <article-title>The island model genetic algorithm: On separability, population size and convergence</article-title>
          .
          <source>J.Comp.Inf.Tech.</source>
          ,
          <volume>7</volume>
          :
          <fpage>33</fpage>
          -
          <lpage>47</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Martin</given-names>
            <surname>Pilát</surname>
          </string-name>
          and
          <string-name>
            <given-names>Roman</given-names>
            <surname>Neruda</surname>
          </string-name>
          .
          <article-title>Combining multiobjective and single-objective genetic algorithms in heterogeneous island model</article-title>
          .
          <source>In CEC 2010</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K.</given-names>
            <surname>Deb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pratap</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Meyarivan</surname>
          </string-name>
          .
          <article-title>A fast and elitist multiobjective genetic algorithm: Nsga-ii</article-title>
          .
          <source>Trans. Evol. Comp</source>
          ,
          <volume>6</volume>
          (
          <issue>2</issue>
          ):
          <fpage>182</fpage>
          -
          <lpage>197</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Eckart</surname>
            <given-names>Zitzler</given-names>
          </string-name>
          , Marco Laumanns, and Lothar Thiele.
          <article-title>Spea2: Improving the strength pareto evolutionary algorithm</article-title>
          .
          <source>Technical report, ETH Zurich</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S</given-names>
            <surname>Balcar</surname>
          </string-name>
          and
          <string-name>
            <given-names>M</given-names>
            <surname>Pilat</surname>
          </string-name>
          .
          <article-title>Heterogeneous island model with replanning of methods</article-title>
          .
          <source>In GECCO'18</source>
          , accepted as poster,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Stepan</given-names>
            <surname>Balcar</surname>
          </string-name>
          .
          <article-title>Heterogeneous island model with replanning of methods (in czech)</article-title>
          .
          <source>Master thesis</source>
          , Martin Pilát supervisor,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Croes</surname>
          </string-name>
          .
          <article-title>A method for solving traveling salesman problems</article-title>
          . Operations Research, page
          <volume>791</volume>
          -
          <fpage>812</fpage>
          ,
          <year>1958</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.K.</given-names>
            <surname>Arora</surname>
          </string-name>
          .
          <article-title>Optimization: Algorithms and Applications</article-title>
          . CRC Press,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Jinliang</given-names>
            <surname>Wang</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael C.</given-names>
            <surname>Whitlock</surname>
          </string-name>
          .
          <article-title>Estimating effective population size and migration rates from genetic samples over space and time</article-title>
          .
          <source>Genetics</source>
          ,
          <volume>163</volume>
          (
          <issue>1</issue>
          ):
          <fpage>429</fpage>
          -
          <lpage>446</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>William</given-names>
            <surname>Astle</surname>
          </string-name>
          and
          <string-name>
            <given-names>David J.</given-names>
            <surname>Balding</surname>
          </string-name>
          .
          <article-title>Population structure and cryptic relatedness in genetic association studies</article-title>
          .
          <source>Statist. Sci.</source>
          ,
          <volume>24</volume>
          (
          <issue>4</issue>
          ):
          <fpage>451</fpage>
          -
          <lpage>471</lpage>
          ,
          <year>11 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>John</given-names>
            <surname>Wakeley</surname>
          </string-name>
          .
          <article-title>The coalescent in an island model of population subdivision with variation among demes</article-title>
          .
          <source>Theoretical Population Biology</source>
          ,
          <volume>59</volume>
          (
          <issue>2</issue>
          ):
          <fpage>133</fpage>
          -
          <lpage>144</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>