## 4 The Cooperative Optimization Algorithm
### Evaluation Component  
The EC processes the user feedback obtained from the FC and provides the means for evaluating candidate solutions without relying on users in particular within the OC. The exact objective function \(f\) from (2), which is based on the mostly unknown suitability values \(w_{r,p}\) with \(r\in R\), \(v\in V\), is approximated by the surrogate objective function \(\tilde{f}_{\Theta}\), cf. (11), making use of the following _surrogate suitability function_  
\[\tilde{w}_{\Theta}(r,v)= \begin{cases}w_{r,v}&\text{if }(r,v)\in K\\ \max(0,\min(w_{r,v}^{\text{UB}},g_{\Theta}(r,v)))&\text{else.}\end{cases}  \tag{13}\]  
Generally speaking, \(g_{\Theta}\) is here a learnable function with weight parameters \(\Theta\) approximating \(w_{r,v}\) for all unknown pairs \((r,v)\
ot\in K\). The above definition, thus, ensures that \(\tilde{w}_{\Theta}\) always returns known values \(w_{r,v}\) and otherwise respects lower bounds zero and upper bounds \(w_{r,v}^{\text{UB}}\), giving function \(g\) more freedom. Upper bounds \(w_{r,v}^{\text{UB}}\) are initially set to one. In Section 4.3, discussion is given on how tighter upper bounds are derived. Suitability values are approximated by exploiting similarities of SPRs among users. In general, we cannot expect that there exist users having the same needs in all respects, i.e., the users have the very same use cases with the same demands. However, given a sufficiently large user base, it is realistic that there are users having similar SPRs and associated preferences concerning suitable locations. A popular collaborative filtering technique for exploiting similarities among user preferences is _matrix factorization_[39], which we also apply here. Given an incomplete matrix containing ratings \(\mathcal{R}=(w_{i,j})_{i\in U,j\in P}\) for a set of users \(U\) over a set of products \(P\), the idea behind matrix factorization is to decompose this matrix into two smaller matrices, a user/feature matrix \(\xi\) and a product/feature matrix \(\
u\), such that the product of these two matrices approximates the original matrix. An unknown rating, i.e., a rating not contained in the original matrix \(\mathcal{R}\), can then be estimated as the dot product of the corresponding feature vectors in matrix \(\xi\) and matrix \(\
u\), respectively. Moreover, we also want to exploit the fact that only a small fraction of the locations in \(V\) is typically relevant for the SPR of a user and that unknown ratings are not missing at random. In our problem users are always asked to rate the most suitable location of a scenario. Therefore, known ratings tend to be biased towards more positive values, while unrated locations are likely to have a low suitability for a user w.r.t. an SPR. A matrix factorization approach that takes such considerations into account has been suggested by Reference [17]. Traditionally, the rating matrix \(\mathcal{R}\) is factorized by solving the optimization problem  
\[\min_{\xi,\
u}\sum_{i,j\mid\lvert w_{i,j}\in\mathcal{R}}E(w_{ij},\xi_{i}\
u_{ j}^{\text{T}})+\rho(\xi,\
u), \tag{14}\]  
where \(E\) is a loss function for measuring the error between the actual and the predicted ratings, and \(\rho\) is a regularization term. In Reference [17], this minimization problem is expanded by adding a bias term for unknown ratings towards a certain value \(\tilde{w}\), i.e.,  
\[\min_{\xi,\
u}\sum_{i,j\mid\lvert w_{i,j}\in\mathcal{R}}E(w_{i,j},\xi_{i}\
u_{ j}^{\text{T}})+\alpha\sum_{i,j\mid\lvert w_{i,j}\in\mathcal{R}}E(\tilde{w},\xi_{i}\
u_{ j}^{\text{T}})+\rho(\xi,\
u). \tag{15}\]  
Parameter \(\alpha\) controls the impact of this new term in the optimization. The authors show for selected loss functions how this new optimization problem can be solved in the same time complexity as the traditional optimization problem. In order to apply matrix factorization for approximating suitability values \(w_{r,v}\) in our case, we start from the sparsely filled matrix \(W=(w_{r,v})_{(r,v)\in K}\) containing all so far known suitability values.