referring to fig1 , there is shown therein a schematic view of a recommendation system 2 according to a preferred embodiment of the invention . the recommendation system 2 comprises a requesting terminal 4 . the requesting terminal 4 may be a user terminal such as a personal computer , a laptop , a tablet , a smart - phone , etc . the requesting terminal 4 can also be a server terminal requesting a recommendation from a service provider for the user . besides , the recommendation system 2 comprises a first server 6 . the first server 6 is , according to a preferred embodiment , a dedicated server used exclusively by the recommendation service provider who installs and manages it . this first server 6 is typically billed on a month basis . the requesting terminal 4 and the first server 6 communicate through transmission links 8 , 10 . the link 8 is used for the transmission of information from the requesting terminal 4 to the first server 6 while the link 10 is used for the transmission of information from the first server 6 to the requesting terminal 4 . furthermore , the recommendation system 2 comprises a second server 12 . the second server 12 is , according to a preferred embodiment , an on - demand server , i . e . a virtual machine that can be instantiated on - demand . this second server 12 is typically billed on an hour basis . the first server 6 and the second server 12 communicate through transmission links 14 , 16 . the link 14 is used for the transmission of information from the second server 12 to the first server 6 while the link 16 is used for the transmission of information from the first server 6 to the second server 12 . the flowchart of fig2 illustrates the steps of the recommendation method of the invention implemented by the recommendation system 2 , according to an embodiment . according to this embodiment , the recommendation method is based on singular value decomposition ( svd ) of the rating matrix . as already well - known in the art , the rating matrix a is a matrix wherein the columns represent items and the rows represent users . it is stored and used by the recommender system 2 to produce recommendations . the rating matrix contains real ratings , i . e . ratings provided by the users , as well as predicted ratings computed by the recommender system 2 . each rating is a value that represents the interest of a given user for a given item . for instance , in movie recommendations , the rating is usually an integer from 1 to 5 , where 1 means that the user does not like the movie at all , and 5 means that the user really likes the movie . at step 20 , the first server 6 decomposes the rating matrix a according to the svd factorization into a product of three matrices u , s and v : where k is the rank of the rating matrix a and the singular values s 1 , . . . , s k are sorted in descending order . preferably , the first server keeps only the r largest singular values along with the first r rows of u and s : by removing the small singular values , the noise and bias are effectively removed in the original matrix a , making it easier to correlate the users and the items , thus making better predictions . the resulting three matrices u , s , v are much smaller than a , thus making it easier to work with those matrices . after this factorization , it can be interpreted that the r singular values kept by the first server 6 represent r characteristics of the items . each row in the u matrix represents a user and his / her level of preferences for these r characteristics , while each row in the v matrix represents an item and how much that item possesses these r characteristics . the first server 6 stores the produced matrices u , s and v . then , the processing differs according to the first server &# 39 ; s load . for instance , it is assumed that the load varies over time with a diurnal pattern . thus , two periods of the day are distinguished here : peak hours , for example from 7 : 00 am to 12 : 00 pm , and off - peak hours , for example from 12 : 00 pm to 7 : 00 am . at the beginning of the peak hours , for example at 7 : 00 am , or at any time when the first server &# 39 ; s load reaches a critical threshold value , the first server 6 transmits , at step 22 , the matrices s and v to the second server 12 through the link 16 . at step 24 , the requesting terminal 4 transmits a recommendation request to the first server 6 through the link 8 , said request containing a user profile , i . e . data about the user requesting an item recommendation . the user profile preferably comprises a rating vector consisting in a list of & lt ; item , rating & gt ; pairs , corresponding to the ratings provided by the user . the number of items rated by a user is typically very small compared to the total number of items that can be recommended . alternatively , the recommendation request comprises only a user identifier that allows the first server 6 to retrieve the user &# 39 ; s rating vector by other means , for example by consulting a user profile database stored within said first server 6 . the first server 6 stores the received user &# 39 ; s rating vector for future update of the matrices u , s and v during the off - peak hours . according to the present embodiment , the first server 6 is provisioned for less than the peak load and excess demand is forwarded to the second server 12 . preferably , the requests from users whose rating vectors contain a large number of ratings are forwarded to the second server 12 . this choice improves the accuracy of the recommendation provided by the second server 12 . it is assumed that the recommendation request received at step 24 satisfies this condition . thus , it will be processed by the second server 12 , as described in the following . at step 26 , the first server 6 distorts the rating vector received within the recommendation request . according to a particular embodiment , the first server 6 performs this distortion by adding a random noise . advantageously , the added noise comprises an aggregation of information obtained from all the users of the recommendation system . advantageously , the amount of added noise is chosen by the first server 6 in order to control the trade - off between privacy and accuracy . if the request comes from a user whose rating vector had been already distorted when processing a previous request , the first server may distort the rating vector by re - applying the same noise employed to distort the rating vector in previous requests . for this , the first server 6 needs to persistently store the noise that it applies when a user &# 39 ; s rating vector is distorted for the first time . advantageously , reapplying the same noise to the same user profile protects the system from attackers which attempt to subtract the noise from several noisy vectors of the same user . at step 28 , the first server 6 transmits the distorted rating vector to the second server 12 through the link 16 . at step 30 , the second server 12 computes a recommendation result using the distorted user &# 39 ; s rating vector and the matrices s and v received at step 22 . at step 32 , the second server 12 transmits the computed recommendation result to the first server 6 through the link 14 . said first server 6 then transmits this recommendation result to the requesting terminal 4 through the link 10 . then , during the peak hours , the computation of the recommendation results for multiple recommendation requests for a plurality of users is split between the first server 6 and the second server 12 , the requests whose rating vectors contain a large number of ratings being preferably processed by the second server 12 using a distorted version of said rating vector , as explained above . a small degradation in recommendation accuracy is possible for the requests processed by the second server 12 due to the noise added to the rating vector forwarded to said second server 12 . however , the split of the computation between both servers is still advantageous as it permits a trade - off between performance and cost , as the size of the first server 6 is chosen according to the recommendation service provider needs between the minimum and the fully dedicated provisioning . for example , the service provider can choose a first server size close to the minimum to minimize costs , or a first server size close to the maximum to minimize accuracy loss due to noise . moreover , the threshold of the first server utilization beyond which the second server 12 is solicited can be chosen to control the amount of requests that may be delayed until the second server 12 finishes “ booting ” and starts processing requests . choosing a lower threshold decreases the fraction of such delayed requests at the expense of a higher operational cost . of course , the recommendation requests that are handled by the first server 6 do not suffer from any accuracy degradation as no noise is added to them . during the off - peak hours , the first server 6 becomes underloaded . then , the second server 12 is shut down at step 34 so that all the recommendation requests are processed entirely by the first server 6 . this is clearly advantageous as the second server 12 is billed on an hour basis . thus , only a little extra cost is necessary to deal with the excess recommendation requests , which further improves the trade - off between performance and cost . this cost is typically less than the cost of a dedicated server provisioned for the peak load , so underutilized most of the time . at step 36 , during the off - peak hours , the first server 6 updates the matrices u , s and v using the rating vectors that were received in recommendation requests during the peak hours , by implementing an optimized version of the brand algorithm . the brand algorithm permits a quick update of the matrices u , s and v from their changes without having to compute the whole svd model . according to the optimized version of the brand algorithm , used in an embodiment of the present invention , the rating matrix is decomposed in four matrices u , u ′, s , v , such that a = uu ′ sv t . matrices u and u ′ are constructed according to the method described in the aforementioned paper “ fast low - rank modifications of the thin singular value decomposition ” by brand . matrices s and v are the same as in the conventional svd factorization according to the brand algorithm . at step 36 , updates when adding a new user are performed according to : where p is defined in the aforementioned paper “ fast low - rank modifications of the thin singular value decomposition ” by brand . updates which do not add a new user are handled differently as per the conventional brand technique . adding a large number of users will result in a matrix u with a large number of columns , increasing the computational complexity of further operations . to overcome this problem , whenever u reaches a given column threshold , the first server 6 re - computes matrices u and u ′ as follows : u ⇄ uu ′ and u ′⇄ i where i is the identity matrix . this operation lowers the number of columns in u , thereby speeding up future operations . while there has been illustrated and described what are presently considered to be the preferred embodiments of the present invention , it will be understood by those skilled in the art that various other modifications may be made , and equivalents may be substituted , without departing from the true scope of the present invention . additionally , many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central inventive concept described herein . furthermore , an embodiment of the present invention may not include all of the features described above . therefore , it is intended that the present invention not be limited to the particular embodiments disclosed , but that the invention includes all embodiments falling within the scope of the appended claims . expressions such as “ comprise ”, “ include ”, “ incorporate ”, “ contain ”, is and “ have ” are to be construed in a non - exclusive manner when interpreting the description and its associated claims , namely construed to allow for other items or components which are not explicitly defined also to be present . reference to the singular is also to be construed as a reference to the plural and vice versa . a person skilled in the art will readily appreciate that various parameters disclosed in the description may be modified and that various embodiments disclosed and / or claimed may be combined without departing from the scope of the invention . more particularly , while the svd recommendation algorithm is implemented in the above description , alternative recommendation algorithms may be implemented as well . different matrix factorization techniques , such as alternating least squares ( als ): contrary to the svd , the als factorization produces two matrices x and y . in this case , the second server 12 stores and uses y to compute recommendations during peak hours . traditional collaborative filtering techniques such as nearest neighbor with user or item similarity : in this case , a noisy version of the entire rating matrix is stored in the second server 12 to produce recommendations . clustering techniques : in this case , a clustered version of the rating matrix is stored in the second server 12 . the clustered rating matrix may be stored as it is , i . e ., without noise , on the second server 12 as it does not contain any original user rating vectors . besides , alternative techniques to add noise to both the rating vectors and the matrices forwarded to the second server may be used so that an observer cannot infer certain characteristics about the user , such as gender , sexual orientation , political affiliation , etc . substituting at least one of the ratings by another rating drawn from a suitable probability distribution ; and / or suppressing at least one of the ratings ; and / or adding at least one further rating that is drawn from a suitable probability distribution .