WO2019120578A1 - Client, server, and client-server system adapted for generating personalized recommendations - Google Patents

Client, server, and client-server system adapted for generating personalized recommendations Download PDF

Info

Publication number
WO2019120578A1
WO2019120578A1 PCT/EP2017/084491 EP2017084491W WO2019120578A1 WO 2019120578 A1 WO2019120578 A1 WO 2019120578A1 EP 2017084491 W EP2017084491 W EP 2017084491W WO 2019120578 A1 WO2019120578 A1 WO 2019120578A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
model
server
updated
updated model
Prior art date
Application number
PCT/EP2017/084491
Other languages
French (fr)
Inventor
Adrian Flanagan
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2017/084491 priority Critical patent/WO2019120578A1/en
Priority to EP17825542.8A priority patent/EP3698308A1/en
Priority to JP2020534387A priority patent/JP6985518B2/en
Priority to US16/956,258 priority patent/US20200342358A1/en
Priority to RU2020122720A priority patent/RU2763530C1/en
Priority to CN201780097874.5A priority patent/CN111492391A/en
Publication of WO2019120578A1 publication Critical patent/WO2019120578A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Definitions

  • the disclosure relates to an improved client, server, and client-server system allowing generation of personalized recommendations.
  • a client-server system is a structure in which the tasks of the system are divided between the provider of a service, i.e. a server, and service requesters, i.e. clients.
  • the server may run one or more programs which share their resources with the clients.
  • the client does not share any of its resources, but requests a server's content or service function.
  • the clients i.e. user devices such as mobile phones or tablets, are an important part of a machine learning process used in such a client-server system, since each client is a source of data, the data being used for building the models used in the machine learning process and for generating the results from the models.
  • the results may, e.g., be a recommendation of one or several specific items, taken from a larger set of items, which specific items are predicted, by one or several models, to be of interest to the user of the client.
  • An item is, e.g., a video available for viewing, an application available for downloading, or a physical object such as a piece of clothing available for purchase.
  • the clients and the items may be collected in a so-called client-item matrix.
  • the machine learning process comprises creating complex models and algorithms which may be used for prediction-making, e.g. by exploiting patterns found in historical and transactional data.
  • prediction-making e.g. by exploiting patterns found in historical and transactional data.
  • the predictions indicate the probability of the user viewing the video, downloading the application, or purchasing the piece of clothing, and may subsequently be used for generating recommendations to the user.
  • Each client is a user device such as a mobile phone or a tablet, and it is not only a source of data used for building models used in the machine learning process, but it is also the medium for delivering the results of the models, e.g. recommending the video clips or pieces of clothing, which have received the highest scores, to the user of the client.
  • the prior art approach to such model building comprises sending user data to a central server, where different algorithms are used to process the data, build the models, and generate results in the form of recommendations.
  • the recommendations are to be individual and personal, wherefore the more personal the data, the better the recommendations.
  • Clients such as mobile phones and tablets, comprise different kinds of personal user data, e.g., client location, which may be considered very sensitive personal data, and downloaded applications, which may be considered not particularly sensitive personal data. Regardless of the sensitivity levels, the data is still considered to be personal user data.
  • Providing results such as personalized recommendations to the user of a client is an important means of engaging users in a service, e.g., by helping users find video clips they would enjoy watching while filtering out content that they are not interested in, e.g. due to having already watched a video clip.
  • a client adapted for generating personalized item recommendations for a user of the client, the client being connected to a server utilizing a global set of items and at least one model, the client being configured to utilize at least one model downloaded from the server, and generate a recommendation set, comprising at least one of the items, by means of at least one of the downloaded model(s) and a local client data set stored on the client.
  • a client comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
  • the model(s) comprise Collaborative Filtering, Predictive Modeling, and/or Deep Learning Models, models which are well-established for different types of use.
  • the client data set comprises implicit user feedback and/or explicit user feedback, allowing estimates, used for generating personalized item recommendations, to be calculated on the basis of user actions, as well as allowing user reviews to be taken into account in the calculations.
  • the recommendation set is generated by means of a combination of two models and the client data set, wherein one model is Collaborative Filtering and the other model is Predictive Modeling, models which, when combined, allow a highly efficient generation of personalized item recommendations.
  • the recommendation set comprises a first recommendation set generated by means of one model and the client data set, and a second recommendation set generated by means of a further model, the first recommendation set, and the client data set, allowing the first recommendation set to be improved.
  • generating the second recommendation set comprises selecting and scoring individual items of the first recommendation set, allowing generation of a smaller, and/or more correct, recommendation set.
  • the client is configured to update each downloaded model by means of: calculating an updated model by means of the downloaded model and the local client data set, uploading the updated model to the server, wherein the updated model is used for the server calculating a new updated model, downloading the new updated model from the server, and calculating at least one further updated model by means of the new updated model and the local client data set.
  • a client comprising these features, allows for a machine learning process which is efficient, since it has access to the client data of all clients connected to a server, as well as secure, since the client data related to an individual client remains on the very same. Since the server, connected to the client, does not have to collect or store large amounts of client data, the process is time- and cost-effective as well.
  • the client is configured to calculate at least one update for each model by means of: calculating an update for each downloaded model by means of the local client data set, uploading the update to the server, wherein the update is used for the sever calculating an updated model, downloading the updated model from the server, calculating a new update for the updated model by means of the local client data set, calculating at least one further updated model by means of the updated model, the new update and the local client data set.
  • calculating an update comprises calculating a value for each item by means of a function f(i,j), allowing a value which is disengaged from any personal client data to be calculated.
  • the client is further configured to generate a recommendation set by means of the further updated model and the local client data set, allowing as much client data as possible to be used.
  • a server adapted for assisting in generating personalized item recommendations for a user of a client, on the client, the server being configured to utilize a global set of items and at least one model, the server being connected to a plurality of clients, each client being configured to download the model(s), and generate updated model(s) or updates for the model(s), the server further being configured to: generate new updated model(s) by means of updated models or updates uploaded by at least one of the clients, and transmit the new updated model(s) to the plurality of clients, wherein the new updated model(s) and a local client data set, stored on the client, are utilized for each client (i) generating the personalized item recommendations.
  • a server comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
  • the server is assigned the at least one model prior to utilizing the model(s), the act of assigning comprising one of selecting a random model or a previously known model, allowing use of either a new model or a previously used model as the starting point for the calculations.
  • the server is configured to generate the new updated model(s) by means of: determining several of the clients, each determined client being configured to calculate updated model(s) by means of the downloaded model(s) and the local client data set, and to upload the updated model(s) to the server, receiving updated model(s) uploaded by at least one of the determined clients, calculating the new updated model by means of averaging the received, updated model(s).
  • a server comprising these features, allows for a machine learning process which is efficient, since it has access to the client data of all clients connected to a server, as well as secure, since the client data related to an individual client remains on the very same. Since the server, connected to the client, does not have to collect or store large amounts of client data, the process is time- and cost-effective as well.
  • the server is configured to generate the new updated model(s) by means of: determining several of the clients, each determined client being configured to calculate an update for each model by means of the local client data set, and to upload the update(s) to the server, receiving the update(s) uploaded by at least one of the determined clients, calculating the new updated model by means of the model and an aggregate of the received updates.
  • a server comprising these features, allows for a machine learning process which is efficient as well as secure. Since the client does not have to download or upload entire models from the server, the process is particularly effective.
  • a machine learning client-server system adapted for generating personalized item recommendations for a user of a client, the client-server system comprising a plurality of clients, described above, and a server, described above.
  • a client-server system comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
  • Fig. 1 is a schematic drawing of a client-server system according to one embodiment of the present disclosure.
  • Fig. 2 is a schematic drawing of a client-server system according to a further embodiment of the present disclosure.
  • a client-server system is a structure in which the tasks of the system are divided between the provider of a service, i.e. a server, and service requesters, i.e. clients such as mobile phones or tablets.
  • the service to be provided may be a video service, all of the user data associated with the video service being stored on the server.
  • Prior art model building comprises sending personal user data from a client to a central server where the data is processed, models are built, and results are generated and sent back to the client.
  • the results may, e.g., be an estimate to be used for generating recommendations of one or several specific items, taken from a larger set of items, which specific items are predicted, by one or several models, to be of interest to the user of the client.
  • An item is, e.g., a video available for viewing, an application available for downloading, or a physical object such as a piece of clothing available for purchase.
  • the client-item matrix R may be sparse with many elements r unspecified.
  • One object of the present disclosure is to replace such unspecified elements with their estimates f t
  • the present disclosure generates such estimates while still maintaining all personal user data on the client, i.e. personal user data is neither used nor stored on a central server. Hence, the amount of data to be transferred to, and stored on, the server is reduced, and issues related to data collection and user privacy are avoided.
  • the elements r as well as the estimates t ⁇ are used for generating personalized item recommendations.
  • Collaborative Filtering a model is built from a user's past behavior, such as items previously purchased or selected and/or numerical ratings given to those items by the user, as well as similar decisions made by other users. This model is then used to predict which other items the user may have an interest in.
  • Collaborative Filtering is one of the most used models to generate recommendations for a user, either independently or in combination with other types of models such as, e.g., Predictive Modeling.
  • Predictive Modeling is, preferably, used to apply a predictive score, such as a rating, to the above-mentioned estimates f t ).
  • a Collaborative Filtering model A1 may be used to generate a first set of item recommendations R1 , a so-called candidate set comprising some, if not all, of the above-mentioned elements r and estimates r i whereafter a Predictive Modeling model A2 may be used to create the final, usable recommendations R2y by scoring the initially recommended items R1 y and sorting them by weight.
  • the estimates t ⁇ may be based on implicit and/or explicit feedback from not only the specific client but a plurality of clients, in one embodiment all possible clients.
  • Implicit feedback comprises actions taken by the user, e.g. downloading an application.
  • Explicit feedback comprises user reviews of items.
  • Collaborative Filtering only uses these two kinds of data, while the above-mentioned Predictive Modeling may use additional kinds of explicit feedback such as demographics, behavioral data, other user activity related data such as where and when an item was interacted with and what kind of device was used, and also personal user data such as name and login data.
  • the value r is derived from explicit feedback such as user reviews, e.g. r tj e (1, .... ,5).
  • ry 1 when user/client i downloaded application/item j, where 1 ⁇ i£N and 1 ⁇ j£M, while r is unspecified otherwise.
  • Collaborative Filtering is used to replace the unspecified ry with their estimates i 7 , e.g. by means of Matrix Factorization.
  • Matrix Factorization involves creating a client factor vector
  • a value py>0 means that the application/item j has been rated
  • the implicit feedback problem is, in other words, different from the standard explicit feedback problem in that the confidence levels Cy need to be taken into account.
  • the above described prior art method uses Y for calculating X, and X for calculating Y, repeating and alternating between the two equations at least until a suitable convergence criteria is met.
  • the convergence criteria is a predefined limit value, for example as 1 %.
  • C and p which are based on user/client data, are used for calculating both X and Y, wherefore all user data has to be located in the same place as X and Y, i.e. on the server. This is referred to as the ALS (Alternating Least Squares) method for Collaborative Filtering, and it is frequently used in prior art.
  • ALS Alternating Least Squares
  • the embodiments of the present disclosure shown schematically in Fig. 1 , comprises an adaptation of the ALS method such that a different approach is taken to calculating Y, which adaptation allows the calculations to be distributed to the client, hence avoiding the need to transfer client data back to the server.
  • All item factor vectors y, ⁇ e R kxl are located on the server, updated on the server, and thereafter distributed to each client i.
  • All client factor vectors x t e R kxl remain on the client i, are updated on the client using local client data Uj, and the item factor vectors from the server.
  • the updates are calculated from item j on each client i and transmitted to the server where they are aggregated and the are updated.
  • the cost function J is minimized by alternating the calculations of the client factor vector matrix X and the item factor vector matrix Y.
  • the first step of minimizing the cost function J is to differentiate J with regards to x, for all clients i and y j for all items j, by means of SJ/Sx, and SJ/Sy .
  • SJ/Sy comprises a component which is a summation over all clients i, said summation being defined as f(i,j).
  • Each client i reports back, to the server, an evaluation of the value f(i,j) calculated for each item j, whereafter all of the client evaluations are summarized, on the
  • the present disclosure relates, in other words, to training at least one model, e.g. a Collaborative Filtering model A1 , without having to transfer user data from the client to the server, and at the same time using the model A1 to calculate estimates t ⁇ for the unspecified elements of the client-item matrix R, the estimates to be used for generating personalized recommendations.
  • the machine learning model A1 is initially located on a centralized server, and distributed to each user device/client i.
  • the initial model A1 is updated, on each client i, using model A1 and client data u, located on the client.
  • Updates dA1 j, or complete updated models A12, generated on each user device/client, are transferred back to the server where they are aggregated across all determined clients to generate a new model component A12, which in turn is downloaded to the clients i and updated to form model A13,.
  • model is meant either an entire model, or a part of a model.
  • the model comprises at least two parts A1 , A2.
  • One individual part A1 is assigned to the client, and one part A2 is downloaded to the client i from the server.
  • the individual part A1 is updated by means of the downloaded server part and an element of local client data Uj, resulting in an updated individual part A12j.
  • An individual value for each item j is calculated on the client using the downloaded server part A2, the updated individual part A12,, and the element of local client data u,.
  • An evaluation of the value is uploaded to the server, from each client, such that the server part can be updated by means of an aggregate of such evaluations, forming updated server part A22.
  • the updated server part A22 is downloaded to the clients, and yet a further updated individual part A13, is calculated on the client, by means of the downloaded updated server part A22 and an element of local client data u,. Thereafter, at least one unspecified element of the client-item matrix R can be updated, by replacing the unspecified element with its estimate, by means of the further updated individual part A13, and the updated server part A22.
  • the model A13, stored locally on the client i, and the client data u, are used for calculating estimates replacing unspecified elements of the client-item matrix R.
  • the updated client-item matrix R is, in other words, used to generate a first recommendation set R1 .
  • a further model such as Predictive Modeling, is used to select, rescore, sort, and subsequently narrow down, the first recommendation set R1 y to a second recommendation set R2y.
  • One aspect of the present disclosure relates to a client adapted for generating personalized item recommendations for a user of the client i.
  • the client is connected to a server utilizing a global set of items ji , ... ,j M and at least one model A1 ,...,AK.
  • the client i is configured to utilize at least one model A1 ,...,AK downloaded from the server, and to generate a recommendation set Ry, comprising at least one j p of the items ji, ...,j M , by means of at least one of the downloaded model(s) A1 , ...,AK and a local client data set u, stored on the client i, as shown in Fig. 1.
  • the model(s) A1 , ...,AK comprise Collaborative Filtering, Predictive Modeling, and/or Deep Learning Models.
  • the client data set u comprises implicit user feedback and/or explicit user feedback.
  • the recommendation set Ry is generated by means of a combination of two models A1 , A2 and the client data set Uj, wherein one model A1 is Collaborative Filtering and the other model A2 is Predictive Modeling.
  • the recommendation set R comprises a first recommendation set R1 generated by means of one model A1 , A12, A13 and the client data set Uj, and a second recommendation set R2y generated by means of a further model A2, A22, the first recommendation set R1 y, and the client data set u,. This is shown schematically in Fig. 2.
  • Generating the second recommendation set R2y comprises selecting and scoring individual items j p of the first recommendation set R1 y.
  • the client i may be configured to update each downloaded model by means of the following steps, shown schematically in Figs. 1 and 2:
  • D. calculate at least one further updated model A13i, ...,AK3i by means of the new updated model A12,...,AK2 and the local client data set Uj.
  • the model A may be updated, on the client, as mentioned in steps A and D above.
  • the model A may be updated, on the server, as mentioned in step B above.
  • the updating is executed by averaging the updated models which were uploaded to the server, also in step B.
  • the client (i) may further be configured to calculate at least one update for each model by means of the following steps:
  • E. calculate at least one further updated model A13i, ...,AK3i by means of the updated model A12,...,AK2, the new update dA12i,...,dAK2i and the local client data set u,.
  • Calculating an update dA1 M dAK,, dA12ii, ...,dAK2i comprises calculating a value for each item ji, ...,j M by means of a function f(i,j).
  • the model A may be updated, on the client, as mentioned in steps A, D, and E above.
  • the model A may be updated, on the server, as mentioned in step B above.
  • Each model A e.g A1
  • J1 which is to be minimized with respect to the model parameter y. is given by the sum of dAT, i.e. the
  • the client i is further configured to generate a recommendation set R by means of the further updated model A13,, ... ,AK3, and the local client data set u,.
  • a further aspect of the present disclosure relates to a server adapted for assisting in generating personalized item recommendations for a user of a client i, on the client i, the server being configured to utilize a global set of items ji , ... ,j M and at least one model A1 ,...,AK.
  • the server is connected to a plurality of clients ii, ... ,i N , each client i being configured to download the model(s) A1 , ...,AK, and generate updated model(s) A12 , ...,AK2, or updates for the model(s)
  • the server is further configured to: generate new updated model(s) A12,...,AK2 by means of updated models A12i, ...,AK2i or updates dA1 dAK, uploaded by at least one of the clients h,...,i N , and transmit the new updated model(s) A12,...,AK2 to the plurality of clients ii , ... ,i N -
  • the new updated model(s) A12,...,AK2 and a local client data set Uj, stored on the client i, are utilized for each client i generating the personalized item recommendations. This is shown schematically in Figs. 1 and 2
  • the server is assigned the at least one model A1 ,...,AK prior to utilizing the model(s), the act of assigning comprising one of selecting a random model or a previously known model.
  • the server may be configured to generate the new updated model(s) by means of the following steps: A. determine several of the clients ii , ... ,i N , each determined client i being configured to calculate updated model(s) A12i,...,AK2i by means of the downloaded model(s) A1 ,...,AK and the local client data set Uj, and to upload the updated model(s) A12 ,...,AK2, to the server,
  • the server may furthermore be configured to generate the new updated model(s) by means of the following steps:
  • the model A may be updated, on the server, as mentioned in step C above.
  • FIG. 1 shows the flow of information in a client-server system adapted for updating a client-item matrix R schematically.
  • Value f(i,j) for item j, is calculated on the client i using local user data u,.
  • the values f(ij) for a plurality of items j, comprised in updated model A12, are transmitted back to the server S, from a plurality of clients, and aggregated, whereafter initial model A1 is updated to model A12.
  • no local client data u need be transferred out of the client i to update model A1.
  • the same procedure is thereafter executed for at least model A12, resulting in a model A13, on each client i, which model is used for generating personalized item recommendations directed towards the user of a client i.
  • the system comprises one server S and a N number of clients i.
  • Fig. 1 shows only two clients, h and i N , i.e. i N equals i 2 .
  • Client h utilizes local client data Uj, i.e. ui, as well as downloaded model A1.
  • client i 2 utilizes local client data u 2 , as well as model A1.
  • Fig 2 similarly shows the flow of information in a client-server system comprising one server S, one client and which utilizes two models A1 , A2 for generating personalized item recommendations.

Abstract

A client adapted for generating personalized item recommendations for a user of the client (i), the client being connected to a server utilizing a global set of items (j1,…,jM) and at least one model (A1,…,AK). The client (i) is configured to utilize at least one model (A1,…,AK) downloaded from the server, and generate a recommendation set (Rij), comprising at least one (jp) of the items (j1,…,jM), by means of at least one of the downloaded model(s) (A1,…,AK) and a local client data set (ui) stored on the client (i).

Description

CLIENT. SERVER. AND CLIENT-SERVER SYSTEM ADAPTED FOR GENERATING PERSONALIZED RECOMMENDATIONS
TECHNICAL FIELD
The disclosure relates to an improved client, server, and client-server system allowing generation of personalized recommendations.
BACKGROUND
A client-server system is a structure in which the tasks of the system are divided between the provider of a service, i.e. a server, and service requesters, i.e. clients. The server may run one or more programs which share their resources with the clients. The client, on the other hand, does not share any of its resources, but requests a server's content or service function. The clients, i.e. user devices such as mobile phones or tablets, are an important part of a machine learning process used in such a client-server system, since each client is a source of data, the data being used for building the models used in the machine learning process and for generating the results from the models.
The results may, e.g., be a recommendation of one or several specific items, taken from a larger set of items, which specific items are predicted, by one or several models, to be of interest to the user of the client. An item is, e.g., a video available for viewing, an application available for downloading, or a physical object such as a piece of clothing available for purchase. The clients and the items may be collected in a so-called client-item matrix.
The machine learning process comprises creating complex models and algorithms which may be used for prediction-making, e.g. by exploiting patterns found in historical and transactional data. There are several techniques for prediction-making, but one common feature is the application of a predictive score, such as a rating, to individual elements within a larger set of elements, such as e.g. video clips or pieces of clothing. The predictions indicate the probability of the user viewing the video, downloading the application, or purchasing the piece of clothing, and may subsequently be used for generating recommendations to the user.
It is difficult to achieve an efficient machine learning process, since it is hard to find patterns and oftentimes there is not sufficient training data available; as a result, machine learning processes often fail to deliver. Hence, it is important that as much data as possible is available to the machine learning process. For a client-server system, this translates to the server having access to as many clients, and their data, as possible. Each client is a user device such as a mobile phone or a tablet, and it is not only a source of data used for building models used in the machine learning process, but it is also the medium for delivering the results of the models, e.g. recommending the video clips or pieces of clothing, which have received the highest scores, to the user of the client.
The prior art approach to such model building comprises sending user data to a central server, where different algorithms are used to process the data, build the models, and generate results in the form of recommendations. The recommendations are to be individual and personal, wherefore the more personal the data, the better the recommendations.
Clients, such as mobile phones and tablets, comprise different kinds of personal user data, e.g., client location, which may be considered very sensitive personal data, and downloaded applications, which may be considered not particularly sensitive personal data. Regardless of the sensitivity levels, the data is still considered to be personal user data.
Regulations such as, e.g., the GDPR (General Data Protection Regulation) which is to be enforced in the EU countries in 2018, as well as general scrutiny of how companies collect, store, and use user data are issues which make generating personalized recommendations more difficult, and maybe even impossible when explicit user opt-in consent is required to collect the user’s data and to store and process it. With surveys disclosing opt-in rates as low as 20%, trying to generate such personalized recommendations may no longer be useful.
Furthermore, collecting gigabytes of user data daily, for a large number of clients, as well as storing and using the data securely, requires expensive infrastructure and administration solutions.
Providing results such as personalized recommendations to the user of a client is an important means of engaging users in a service, e.g., by helping users find video clips they would enjoy watching while filtering out content that they are not interested in, e.g. due to having already watched a video clip.
SUMMARY
It is an object to provide an improved client, server, and client-server system.
The foregoing and other objects are achieved by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description, and the figures.
According to a first aspect, there is provided a client adapted for generating personalized item recommendations for a user of the client, the client being connected to a server utilizing a global set of items and at least one model, the client being configured to utilize at least one model downloaded from the server, and generate a recommendation set, comprising at least one of the items, by means of at least one of the downloaded model(s) and a local client data set stored on the client. A client, comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
In a possible implementation form of the first aspect, the model(s) comprise Collaborative Filtering, Predictive Modeling, and/or Deep Learning Models, models which are well-established for different types of use.
In a further possible implementation form of the first aspect, the client data set comprises implicit user feedback and/or explicit user feedback, allowing estimates, used for generating personalized item recommendations, to be calculated on the basis of user actions, as well as allowing user reviews to be taken into account in the calculations.
In a further possible implementation form of the first aspect, the recommendation set is generated by means of a combination of two models and the client data set, wherein one model is Collaborative Filtering and the other model is Predictive Modeling, models which, when combined, allow a highly efficient generation of personalized item recommendations.
In a further possible implementation form of the first aspect, the recommendation set comprises a first recommendation set generated by means of one model and the client data set, and a second recommendation set generated by means of a further model, the first recommendation set, and the client data set, allowing the first recommendation set to be improved.
In a further possible implementation form of the first aspect, generating the second recommendation set comprises selecting and scoring individual items of the first recommendation set, allowing generation of a smaller, and/or more correct, recommendation set.
In a further possible implementation form of the first aspect, the client is configured to update each downloaded model by means of: calculating an updated model by means of the downloaded model and the local client data set, uploading the updated model to the server, wherein the updated model is used for the server calculating a new updated model, downloading the new updated model from the server, and calculating at least one further updated model by means of the new updated model and the local client data set.
A client, comprising these features, allows for a machine learning process which is efficient, since it has access to the client data of all clients connected to a server, as well as secure, since the client data related to an individual client remains on the very same. Since the server, connected to the client, does not have to collect or store large amounts of client data, the process is time- and cost-effective as well.
In a further possible implementation form of the first aspect, the client is configured to calculate at least one update for each model by means of: calculating an update for each downloaded model by means of the local client data set, uploading the update to the server, wherein the update is used for the sever calculating an updated model, downloading the updated model from the server, calculating a new update for the updated model by means of the local client data set, calculating at least one further updated model by means of the updated model, the new update and the local client data set.
As mentioned above, a client, comprising these features, allows for a machine learning process which is efficient as well as secure. Since the client does not have to download or upload entire models from the server, the process is particularly effective. In a further possible implementation form of the first aspect, calculating an update comprises calculating a value for each item by means of a function f(i,j), allowing a value which is disengaged from any personal client data to be calculated.
In a further possible implementation form of the first aspect, the client is further configured to generate a recommendation set by means of the further updated model and the local client data set, allowing as much client data as possible to be used.
According to a second aspect, there is provided a server adapted for assisting in generating personalized item recommendations for a user of a client, on the client, the server being configured to utilize a global set of items and at least one model, the server being connected to a plurality of clients, each client being configured to download the model(s), and generate updated model(s) or updates for the model(s), the server further being configured to: generate new updated model(s) by means of updated models or updates uploaded by at least one of the clients, and transmit the new updated model(s) to the plurality of clients, wherein the new updated model(s) and a local client data set, stored on the client, are utilized for each client (i) generating the personalized item recommendations.
A server, comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
In a possible implementation form of the second aspect, the server is assigned the at least one model prior to utilizing the model(s), the act of assigning comprising one of selecting a random model or a previously known model, allowing use of either a new model or a previously used model as the starting point for the calculations. In a further possible implementation form of the second aspect, the server is configured to generate the new updated model(s) by means of: determining several of the clients, each determined client being configured to calculate updated model(s) by means of the downloaded model(s) and the local client data set, and to upload the updated model(s) to the server, receiving updated model(s) uploaded by at least one of the determined clients, calculating the new updated model by means of averaging the received, updated model(s).
A server, comprising these features, allows for a machine learning process which is efficient, since it has access to the client data of all clients connected to a server, as well as secure, since the client data related to an individual client remains on the very same. Since the server, connected to the client, does not have to collect or store large amounts of client data, the process is time- and cost-effective as well.
In a further possible implementation form of the second aspect, the server is configured to generate the new updated model(s) by means of: determining several of the clients, each determined client being configured to calculate an update for each model by means of the local client data set, and to upload the update(s) to the server, receiving the update(s) uploaded by at least one of the determined clients, calculating the new updated model by means of the model and an aggregate of the received updates.
As mentioned above, a server, comprising these features, allows for a machine learning process which is efficient as well as secure. Since the client does not have to download or upload entire models from the server, the process is particularly effective.
According to a third aspect, there is provided a machine learning client-server system adapted for generating personalized item recommendations for a user of a client, the client-server system comprising a plurality of clients, described above, and a server, described above. A client-server system, comprising these features, allows efficient and secure generation of personalized item recommendations since some of the calculations, necessary for generating personalized item recommendations, are executed on the client, and some of the data used in the calculations is stored on the client.
These and other aspects will be apparent from the embodiments described below. BRIEF DESCRIPTION OF THE DRAWINGS
In the following detailed portion of the present disclosure, the aspects, embodiments and implementations will be explained in more detail with reference to the example embodiments shown in the drawings, in which:
Fig. 1 is a schematic drawing of a client-server system according to one embodiment of the present disclosure.
Fig. 2 is a schematic drawing of a client-server system according to a further embodiment of the present disclosure.
DETAILED DESCRIPTION
As mentioned in the background section, a client-server system is a structure in which the tasks of the system are divided between the provider of a service, i.e. a server, and service requesters, i.e. clients such as mobile phones or tablets. The service to be provided may be a video service, all of the user data associated with the video service being stored on the server. Prior art model building comprises sending personal user data from a client to a central server where the data is processed, models are built, and results are generated and sent back to the client. The results may, e.g., be an estimate to be used for generating recommendations of one or several specific items, taken from a larger set of items, which specific items are predicted, by one or several models, to be of interest to the user of the client. An item is, e.g., a video available for viewing, an application available for downloading, or a physical object such as a piece of clothing available for purchase.
The number of clients as well as available items is usually very large, and are preferably collected in a client-item matrix R = (ri7) e RNxM , N being the maximum number of clients i connected to the server, and M being the maximum number of items j available on the server.
Given the number of clients N can be several million, and the number of items M several thousand, the client-item matrix R may be sparse with many elements r unspecified. One object of the present disclosure is to replace such unspecified elements with their estimates ft
Contrary to prior art, and due to technological advancement such as a general increase in computational ability of clients, the present disclosure generates such estimates while still maintaining all personal user data on the client, i.e. personal user data is neither used nor stored on a central server. Hence, the amount of data to be transferred to, and stored on, the server is reduced, and issues related to data collection and user privacy are avoided. The elements r as well as the estimates t } are used for generating personalized item recommendations.
The above is achieved, in part, by means of Collaborative Filtering. In short, in Collaborative Filtering a model is built from a user's past behavior, such as items previously purchased or selected and/or numerical ratings given to those items by the user, as well as similar decisions made by other users. This model is then used to predict which other items the user may have an interest in. Collaborative Filtering is one of the most used models to generate recommendations for a user, either independently or in combination with other types of models such as, e.g., Predictive Modeling. Predictive Modeling is, preferably, used to apply a predictive score, such as a rating, to the above-mentioned estimates ft ).
In prior art, these models both require gathering all data to be used in building the model to be collected in a centralized server.
As previously mentioned, the number of clients as well as the number of items is usually very large, wherefore a combination of models may be used to provide only relevant, personalized item recommendations to the user of a specific client i. As an example, shown also in Fig. 2, a Collaborative Filtering model A1 may be used to generate a first set of item recommendations R1 , a so-called candidate set comprising some, if not all, of the above-mentioned elements r and estimates ri whereafter a Predictive Modeling model A2 may be used to create the final, usable recommendations R2y by scoring the initially recommended items R1 y and sorting them by weight.
The estimates t } may be based on implicit and/or explicit feedback from not only the specific client but a plurality of clients, in one embodiment all possible clients. Implicit feedback comprises actions taken by the user, e.g. downloading an application. Explicit feedback comprises user reviews of items. Collaborative Filtering only uses these two kinds of data, while the above-mentioned Predictive Modeling may use additional kinds of explicit feedback such as demographics, behavioral data, other user activity related data such as where and when an item was interacted with and what kind of device was used, and also personal user data such as name and login data.
The basis of all Collaborative Filtering recommender systems is the above- mentioned client-item matrix R = (t e RNxM. For the sake of simplicity, the description below will at times equate a client i with its user, and an item j with an application available for downloading.
In Collaborative Filtering, the value r is derived from explicit feedback such as user reviews, e.g. rtj e (1, .... ,5).
In the case of implicit feedback such as, e.g., the user downloading an application, ry=1 when user/client i downloaded application/item j, where 1 <i£N and 1 <j£M, while r is unspecified otherwise. Collaborative Filtering is used to replace the unspecified ry with their estimates i 7, e.g. by means of Matrix Factorization.
Matrix Factorization involves creating a client factor vector
Figure imgf000013_0001
Figure imgf000013_0003
is the number of factors, which is typically much lower than both M and N. The estimate for an unspecified ry is then given by
Figure imgf000013_0002
= xt Tyj.
The first model A1 is a factor matrix A 1 = X(i, k) comprising a plurality of client factor vectors (x,), and the second model A2 is a factor matrix A2 = Y(J, k ) comprising a plurality of item factor vectors ( ).
The client factor vectors are collected into a matrix X e RkxM where X=(x-i ,x2, ... ,Xj, ... ,XM)I and the item factor vectors are collected into a matrix Y e Rkx N where Y=(yi, Y2, - - - ,Yj, - - ,YN)- The client-item matrix R is, in other words, also defined as R = XTY.
For the case of explicit feedback, a set of binary variables p are introduced to indicate whether the user/client i has rated an application/item j or not, where
A value py>0 means that the application/item j has been rated,
Figure imgf000014_0001
while a value py=0 means that the user has not rated the application/item j or is simply not aware an application/item j exists.
For the case of implicit feedback, a set of binary variables p are introduced to indicate the preference of user/client i for application/item j, -
Figure imgf000014_0002
A value py=0 can have many interpretations including the user/client i not being interested in an application/item j or not being aware an application/item j exists. To account for this, a confidence parameter cy is introduced, defined as ci7- = 1+oc rtj where a>0. The implicit feedback problem is, in other words, different from the standard explicit feedback problem in that the confidence levels Cy need to be taken into account.
Any updates are to be made across all clients i and all items j rather than just the clients i for which there are downloads j.
In prior art Collaborative Filtering models, x, is updated by means of the equation j = ( YCiYT + lΐ ) 1YCip(i), where Y, Y e RkxN is the above-mentioned matrix of item factor vectors, C' is a diagonal matrix with Cjj = ctj, I is an identity matrix, and p(i) e RNxl is a binary preference variable vector for the client i.
Similarly, yj is updated by means of the equation
Figure imgf000014_0003
+ lΐ ) 1XCJp(j ) where X
Figure imgf000014_0004
above-mentioned matrix of client factor vectors, Cj is a diagonal matrix with CU J = ctj, and p(Q e RNxl is a binary preference variable vector for the client i.
In summary, the above described prior art method uses Y for calculating X, and X for calculating Y, repeating and alternating between the two equations at least until a suitable convergence criteria is met. The convergence criteria is a predefined limit value, for example as 1 %. C and p, which are based on user/client data, are used for calculating both X and Y, wherefore all user data has to be located in the same place as X and Y, i.e. on the server. This is referred to as the ALS (Alternating Least Squares) method for Collaborative Filtering, and it is frequently used in prior art.
The embodiments of the present disclosure, shown schematically in Fig. 1 , comprises an adaptation of the ALS method such that a different approach is taken to calculating Y, which adaptation allows the calculations to be distributed to the client, hence avoiding the need to transfer client data back to the server. All item factor vectors y,· e Rkxl are located on the server, updated on the server, and thereafter distributed to each client i. All client factor vectors xt e Rkxl remain on the client i, are updated on the client using local client data Uj, and the item factor vectors from the server. The updates are calculated from item j on each client i and transmitted to the server where they are aggregated and the are updated.
All of the values necessary for calculating xt = ( YCiYT + lΐ ) 1YCip(i ) are available on the client i, as long as a current set of item factor vectors y7- e Rkxl have been downloaded onto the client i, Y being the matrix of item factor vectors, C' a diagonal matrix with Cjj = ctj, l the regularization factor, I an identity matrix, and p(Q e RNxl is a binary preference variable vector for the client i. Furthermore, all of these values are independent from the corresponding values of any other client i. Hence, what corresponds to a first step of the ALS algorithm can be calculated on each individual client i without reference to any other client.
However, when using the ALS method, the calculation of y, y7- = ( XCjYXT +
Figure imgf000016_0001
requires the matrix of client factor vectors X, wherefore this update must take place on the server where all client data is available. Rather than directly calculating an update of y, as in the ALS method, the present disclosure applies a gradient descent approach to calculate the updated y on the server. More specifically, the present disclosure calculates the updated y, i.e. the updated matrix Y, by means of equation y7- = yj - g oy- j, y being a gain function
Figure imgf000016_0002
and SJ/Sy being calculated by means of equation = -2 å;[<¾ (p;7 -
Figure imgf000016_0003
*¾]*; + 2 Ay,·.
Figure imgf000016_0004
The above-mentioned equation originates from the cost function J, / =
Figure imgf000016_0005
where l is the regularization factor. The cost function J is minimized by alternating the calculations of the client factor vector matrix X and the item factor vector matrix Y. The first step of minimizing the cost function J is to differentiate J with regards to x, for all clients i and yj for all items j, by means of SJ/Sx, and SJ/Sy.
The initial starting value of x, is calculated directly by means of = 0, xt
Figure imgf000016_0006
( YCiYT + lΐ ) 1YCip(i ) as in the ALS method, which is possible since, as mentioned above, the values necessary are available on the client i. SJ/Sy, on the other hand, comprises a component which is a summation over all clients i, said summation being defined as f(i,j). f(i,j) is calculated on the client, based only on client data, by means of f(i,j ) = [ci7(pi7· - xfyj)]x , i.e. f(i,j) is calculated on each client i, independently of all other clients. Each client i reports back, to the server, an evaluation of the value f(i,j) calculated for each item j, whereafter all of the client evaluations are summarized, on the
+ 2 Ayj and thereafter applied to y7- = y7· -
Figure imgf000017_0001
The present disclosure relates, in other words, to training at least one model, e.g. a Collaborative Filtering model A1 , without having to transfer user data from the client to the server, and at the same time using the model A1 to calculate estimates t } for the unspecified elements of the client-item matrix R, the estimates to be used for generating personalized recommendations. As shown in Fig. 1 , the machine learning model A1 is initially located on a centralized server, and distributed to each user device/client i. The initial model A1 is updated, on each client i, using model A1 and client data u, located on the client. Updates dA1 j, or complete updated models A12,, generated on each user device/client, are transferred back to the server where they are aggregated across all determined clients to generate a new model component A12, which in turn is downloaded to the clients i and updated to form model A13,.
By model is meant either an entire model, or a part of a model. In the latter case, the model comprises at least two parts A1 , A2. One individual part A1 , is assigned to the client, and one part A2 is downloaded to the client i from the server. The individual part A1 , is updated by means of the downloaded server part and an element of local client data Uj, resulting in an updated individual part A12j. An individual value for each item j is calculated on the client using the downloaded server part A2, the updated individual part A12,, and the element of local client data u,. An evaluation of the value is uploaded to the server, from each client, such that the server part can be updated by means of an aggregate of such evaluations, forming updated server part A22. The updated server part A22 is downloaded to the clients, and yet a further updated individual part A13, is calculated on the client, by means of the downloaded updated server part A22 and an element of local client data u,. Thereafter, at least one unspecified element of the client-item matrix R can be updated, by replacing the unspecified element with its estimate, by means of the further updated individual part A13, and the updated server part A22.
The model A13,, stored locally on the client i, and the client data u, are used for calculating estimates replacing unspecified elements of the client-item matrix R. Hence the client data u, never leaves the client The updated client-item matrix R is, in other words, used to generate a first recommendation set R1 .
A further model, such as Predictive Modeling, is used to select, rescore, sort, and subsequently narrow down, the first recommendation set R1 y to a second recommendation set R2y.
One aspect of the present disclosure relates to a client adapted for generating personalized item recommendations for a user of the client i. The client is connected to a server utilizing a global set of items ji , ... ,jM and at least one model A1 ,...,AK. The client i is configured to utilize at least one model A1 ,...,AK downloaded from the server, and to generate a recommendation set Ry, comprising at least one jp of the items ji, ...,jM, by means of at least one of the downloaded model(s) A1 , ...,AK and a local client data set u, stored on the client i, as shown in Fig. 1.
The model(s) A1 , ...,AK comprise Collaborative Filtering, Predictive Modeling, and/or Deep Learning Models. The client data set u, comprises implicit user feedback and/or explicit user feedback. The recommendation set Ry is generated by means of a combination of two models A1 , A2 and the client data set Uj, wherein one model A1 is Collaborative Filtering and the other model A2 is Predictive Modeling.
The recommendation set R comprises a first recommendation set R1 generated by means of one model A1 , A12, A13 and the client data set Uj, and a second recommendation set R2y generated by means of a further model A2, A22, the first recommendation set R1 y, and the client data set u,. This is shown schematically in Fig. 2.
Generating the second recommendation set R2y comprises selecting and scoring individual items jp of the first recommendation set R1 y.
The client i may be configured to update each downloaded model by means of the following steps, shown schematically in Figs. 1 and 2:
A. calculate an updated model A12i, ...,AK2i by means of the downloaded model A1 ,...,AK and the local client data set Uj,
B. upload the updated model A12i, ...,AK2i to the server, wherein the updated model A12i, ...,AK2i is used for the server calculating a new updated model A12, ...,AK2,
C. download the new updated model A12,...,AK2 from the server,
D. calculate at least one further updated model A13i, ...,AK3i by means of the new updated model A12,...,AK2 and the local client data set Uj.
The model A may be updated, on the client, as mentioned in steps A and D above. The updating is executed, when the model is a Collaborative Filtering model, by means of equation xt = ( Ur(ΐ)Ut + lY1YRip i'), wherein p(i) is a binary preference variable vector for the client i, R' is a vector of known inputs for client i, I is an identity matrix, and l is a regularization parameter.
The model A may be updated, on the server, as mentioned in step B above. The updating is executed by averaging the updated models which were uploaded to the server, also in step B.
The client (i) may further be configured to calculate at least one update for each model by means of the following steps:
A. calculate an update dA1 dAK, for each downloaded model A1 , ... ,AK by means of the local client data set Uj,
B. upload the update dA1 dAK, to the server, wherein the update dA1 i, ...,dAKi is used for the sever calculating an updated model A12,...,AK2,
C. download the updated model A12,...,AK2 from the server,
D. calculate a new update dA12i,...,dAK2i for the updated model A12, ... ,AK2 by means of the local client data set Uj,
E. calculate at least one further updated model A13i, ...,AK3i by means of the updated model A12,...,AK2, the new update dA12i,...,dAK2i and the local client data set u,.
Calculating an update dA1 M dAK,, dA12ii, ...,dAK2i comprises calculating a value for each item ji, ...,jM by means of a function f(i,j).
The model A may be updated, on the client, as mentioned in steps A, D, and E above. The updating, when the model is a Collaborative Filtering model, is executed by means of equation xt = ( Ur(ϊ)Ut + 2/)_1Tbίr(ί), wherein p(i) is a binary preference variable vector for the client i, R' is a vector of known inputs for client i, I is an identity matrix, and l is a regularization parameter. The model A may be updated, on the server, as mentioned in step B above. The updating is executed by means of equation y,· = y,· - g -,
oy j wherein y is a gain function. Each model A, e.g A1 , has a cost function J1 which is to be minimized with respect to the model parameter y.
Figure imgf000021_0001
is given by the sum of dAT, i.e. the
Figure imgf000021_0002
dA1 provided by clients ii-iN.
The client i is further configured to generate a recommendation set R by means of the further updated model A13,, ... ,AK3, and the local client data set u,.
A further aspect of the present disclosure relates to a server adapted for assisting in generating personalized item recommendations for a user of a client i, on the client i, the server being configured to utilize a global set of items ji , ... ,jM and at least one model A1 ,...,AK. The server is connected to a plurality of clients ii, ... ,iN, each client i being configured to download the model(s) A1 , ...,AK, and generate updated model(s) A12 , ...,AK2, or updates
Figure imgf000021_0003
for the model(s)
A1 ,...,AK. The server is further configured to: generate new updated model(s) A12,...,AK2 by means of updated models A12i, ...,AK2i or updates dA1 dAK, uploaded by at least one of the clients h,...,iN, and transmit the new updated model(s) A12,...,AK2 to the plurality of clients ii , ... ,iN- The new updated model(s) A12,...,AK2 and a local client data set Uj, stored on the client i, are utilized for each client i generating the personalized item recommendations. This is shown schematically in Figs. 1 and 2
The server is assigned the at least one model A1 ,...,AK prior to utilizing the model(s), the act of assigning comprising one of selecting a random model or a previously known model.
The server may be configured to generate the new updated model(s) by means of the following steps: A. determine several of the clients ii , ... ,iN, each determined client i being configured to calculate updated model(s) A12i,...,AK2i by means of the downloaded model(s) A1 ,...,AK and the local client data set Uj, and to upload the updated model(s) A12 ,...,AK2, to the server,
B. receive updated model(s) A12i,...,AK2i uploaded by at least one of the determined clients ii, ... ,iN,
C. calculate the new updated model A12,...,AK2 by means of averaging the received, updated model(s) A12,, ...,AK2.
The server may furthermore be configured to generate the new updated model(s) by means of the following steps:
A. determine several of the clients ii , . . . N, each determined client i being configured to calculate an update dA1 dAK, for each model A1 , ...,AK by means of the local client data set Uj, and to upload the update(s) dA1 ,, ..., dAK, to the server,
B. receive the update(s)
Figure imgf000022_0001
uploaded by at least one of the determined clients ii, ... ,iN,
C. calculate the new updated model A12,...,AK2 by means of the model
A1 ,...,AK and an aggregate of the received updates dA1. dAK,.
The model A may be updated, on the server, as mentioned in step C above. The updating is executed by means of equation y7- = y7-— wherein y is a gain
Figure imgf000022_0002
function.
Yet another aspect of the present disclosure relates to a machine learning client- server system adapted for generating personalized item recommendations directed towards the user of a client i. The system comprises the above- mentioned server and a plurality of the above-mentioned clients. Fig. 1 shows the flow of information in a client-server system adapted for updating a client-item matrix R schematically. Value f(i,j), for item j, is calculated on the client i using local user data u,. The values f(ij) for a plurality of items j, comprised in updated model A12,, are transmitted back to the server S, from a plurality of clients, and aggregated, whereafter initial model A1 is updated to model A12. Hence, no local client data u, need be transferred out of the client i to update model A1. The same procedure is thereafter executed for at least model A12, resulting in a model A13, on each client i, which model is used for generating personalized item recommendations directed towards the user of a client i.
The system comprises one server S and a N number of clients i. For the sake of simplicity, Fig. 1 shows only two clients, h and iN, i.e. iN equals i2. Client h utilizes local client data Uj, i.e. ui, as well as downloaded model A1. Similarly, client i2 utilizes local client data u2, as well as model A1.
Fig 2 similarly shows the flow of information in a client-server system comprising one server S, one client and which utilizes two models A1 , A2 for generating personalized item recommendations.
The various aspects and implementations have been described in conjunction with various embodiments herein. However, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed subject-matter, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word“comprising” does not exclude other elements or steps, and the indefinite article“a” or“an” does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measured cannot be used to advantage. The reference signs used in the claims shall not be construed as limiting the scope.

Claims

1. A client adapted for generating personalized item recommendations for a user of said client (i), said client (i) being connected to a server utilizing a global set of items Gi . jM) and at least one model (A1 , ...,AK), said client (i) being configured to: utilize at least one model (A1 , ...,AK) downloaded from said server, and generate a recommendation set (R ), comprising at least one (jp) of said items GI , ... M), by means of at least one of said downloaded model(s) (A1 ,...,AK) and a local client data set (u,) stored on said client (i).
2. The client according to claim 1 , wherein said model(s) (A1 , ...,AK)
comprise Collaborative Filtering, Predictive Modeling, and/or Deep
Learning Models.
3. The client according to claim 1 or 2, wherein said client data set (u,)
comprises implicit user feedback and/or explicit user feedback.
4. The client according to any one of the previous claims, wherein said
recommendation set (Ry) is generated by means of a combination of two models (A1 , A2) and said client data set (Uj), wherein one model (A1 ) is Collaborative Filtering and the other model (A2) is Predictive Modeling.
5. The client according to any one of the previous claims, wherein said
recommendation set (Ry) comprises a first recommendation set (R1 y) generated by means of one model (A1 , A12, A13) and said client data set (Uj), and a second recommendation set (R2jj) generated by means of a further model (A2, A22), said first recommendation set (R1 y), and said client data set (u,).
6. The client according to claim 5, wherein generating said second
recommendation set (R2 ) comprises selecting and scoring individual items (jp) of said first recommendation set (R1 y).
7. The client according to any one of the previous claims, wherein said client (i) is configured to update each downloaded model by means of the following steps:
A. calculate an updated model (A12i, ...,AK2i) by means of said
downloaded model (A1 ,...,AK) and said local client data set (Uj),
B. upload said updated model (A12,, ...,AK2 ) to said server, wherein said updated model (A12,, ...,AK2 ) is used for said server calculating a new updated model (A12, ...,AK2),
C. download said new updated model (A12, ...,AK2) from said server,
D. calculate at least one further updated model (A13i, ...,AK3i) by
means of said new updated model (A12,...,AK2) and said local client data set (u,).
8. The client according to any one of claims 1 to 6, wherein said client (i) is configured to calculate at least one update for each model by means of the following steps:
A. calculate an update (dA1 dAK,) for each downloaded model (A1 , ... ,AK) by means of said local client data set (u,), B. upload said update (dA1 dAK,) to said server, wherein said update .
Figure imgf000027_0001
is used for said sever calculating an updated model (A12, ...,AK2),
C. download said updated model (A12,...,AK2) from said server,
D. calculate a new update (dA12i, ...,dAK2i) for said updated model (A12, ... ,AK2) by means of said local client data set (u,),
E. calculate at least one further updated model (A13i, ...,AK3i) by
means of said updated model (A12,...,AK2), said new update (dA12i, ...,dAK2i) and said local client data set (u,).
9. The client according to claim 8, wherein calculating an update
(dA1 ii , ... ,dAKj, dA12i-i, ...,dAK2i) comprises calculating a value for each item GI , ... JM) by means of a function f(i,j).
10. The client according to any one of claims 7 to 9, wherein said client (i) is further configured to generate a recommendation set (R ) by means of said further updated model (A13i, ...,AK3i) and said local client data set
(Ui).
1 1 . A server adapted for assisting in generating personalized item
recommendations for a user of a client (i), on the client (i), said server being configured to utilize a global set of items (ji , ... JM) and at least one model (A1 , ... ,AK), said server being connected to a plurality of clients (ii, ...,iN), each client (i) being configured to download said model(s) (A1 ,...,AK), and generate updated model(s) (A12,, ...,AK2|) or updates (dA1 dAK,) for said model(s) (A1 , ...,AK), said server further being configured to:
generate new updated model(s) (A12,...,AK2) by means of updated models (A12,, ...,AK2|) or updates
Figure imgf000028_0001
uploaded by at least one of said clients (ii, ...,iN), and
transmit said new updated model(s) (A12,...,AK2) to said plurality of clients (ii . iN), wherein said new updated model(s) (A12,...,AK2) and a local client data set (Uj), stored on said client (i), are utilized for each client (i) generating said personalized item recommendations.
12. The server according to claim 1 1 , wherein said server is assigned said at least one model (A1 , ...,AK) prior to utilizing said model(s), the act of assigning comprising one of selecting a random model or a previously known model.
13. The server according to claim 1 1 or 12, wherein said server is configured to generate said new updated model(s) by means of the following steps:
D. determine several of said clients (ii, ... N), each determined client (i) being configured to calculate updated model(s) (A12,, ...,AK2 ) by means of said downloaded model(s) (A1 , ...,AK) and said local client data set (u,), and to upload said updated model(s) (A12,, ...,AK2i) to said server,
E. receive updated model(s) (A12,, ...,AK2 ) uploaded by at least one of said determined clients (ii, ...,iN), F. calculate said new updated model (A12, ...,AK2) by means of averaging said received, updated model(s) (A12i, ...,AK2i).
14. The server according to claim 1 1 or 12, wherein said server is configured to generate said new updated model(s) by means of the following steps:
D. determine several of said clients (ii, ... N), each determined client (i) being configured to calculate an update (dA1 dAK,) for each model (A1 , ... ,AK) by means of said local client data set (u,), and to upload said update(s) .
Figure imgf000029_0001
.. dAK,) to said server,
E. receive said update(s) (dA1 ,, ... ,dAK,) uploaded by at least one of said determined clients (ii, ...,iN), F. calculate said new updated model (A12, ..., AK2) by means of said model (A1 ,...,AK) and an aggregate of said received updates
Figure imgf000029_0002
15. A machine learning client-server system adapted for generating
personalized item recommendations for a user of a client (i), said client- server system comprising a plurality of clients according to any one of claims 1 to 10 and a server according to any one of claims 1 1 to 14.
PCT/EP2017/084491 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations WO2019120578A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/EP2017/084491 WO2019120578A1 (en) 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations
EP17825542.8A EP3698308A1 (en) 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations
JP2020534387A JP6985518B2 (en) 2017-12-22 2017-12-22 Client, server, and client-server systems adapted to generate personalized recommendations
US16/956,258 US20200342358A1 (en) 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations
RU2020122720A RU2763530C1 (en) 2017-12-22 2017-12-22 Client, server and client-server system adapted to generate personalized recommendations
CN201780097874.5A CN111492391A (en) 2017-12-22 2017-12-22 Client, server and client-server system for generating personalized recommendations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/084491 WO2019120578A1 (en) 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations

Publications (1)

Publication Number Publication Date
WO2019120578A1 true WO2019120578A1 (en) 2019-06-27

Family

ID=60935863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/084491 WO2019120578A1 (en) 2017-12-22 2017-12-22 Client, server, and client-server system adapted for generating personalized recommendations

Country Status (6)

Country Link
US (1) US20200342358A1 (en)
EP (1) EP3698308A1 (en)
JP (1) JP6985518B2 (en)
CN (1) CN111492391A (en)
RU (1) RU2763530C1 (en)
WO (1) WO2019120578A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021137657A1 (en) 2019-12-31 2021-07-08 Samsung Electronics Co., Ltd. Method and apparatus for personalizing content recommendation model
WO2021185427A1 (en) * 2020-03-16 2021-09-23 Huawei Technologies Co., Ltd. Generation of personalized recommendations
WO2021185428A1 (en) * 2020-03-16 2021-09-23 Huawei Technologies Co., Ltd. Enabling generation of personalized recommendations
WO2021208535A1 (en) * 2020-04-14 2021-10-21 华为技术有限公司 Recommendation method and device based on automatic feature grouping

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6699764B1 (en) * 2019-01-16 2020-05-27 株式会社富士通ゼネラル Air conditioning system
US11086754B2 (en) * 2019-07-02 2021-08-10 International Business Machines Corporation Automated feedback-based application optimization
CN112733181B (en) * 2020-12-18 2023-09-15 平安科技(深圳)有限公司 Product recommendation method, system, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030159A1 (en) * 2010-07-30 2012-02-02 Gravity Research & Development Kft. Recommender Systems and Methods
US20140129500A1 (en) * 2012-11-07 2014-05-08 Microsoft Corporation Efficient Modeling System

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475027B2 (en) * 2003-02-06 2009-01-06 Mitsubishi Electric Research Laboratories, Inc. On-line recommender system
JP4240096B2 (en) * 2006-09-21 2009-03-18 ソニー株式会社 Information processing apparatus and method, program, and recording medium
US7685232B2 (en) * 2008-06-04 2010-03-23 Samsung Electronics Co., Ltd. Method for anonymous collaborative filtering using matrix factorization
US20110060738A1 (en) * 2009-09-08 2011-03-10 Apple Inc. Media item clustering based on similarity data
HUP1000408A2 (en) * 2010-07-30 2012-03-28 Gravity Res & Dev Kft Recommender systems and methods
JP2013228947A (en) * 2012-04-26 2013-11-07 Sony Corp Terminal device, information processing device, recommendation system, information processing method, and program
US10261938B1 (en) * 2012-08-31 2019-04-16 Amazon Technologies, Inc. Content preloading using predictive models
US9691035B1 (en) * 2014-04-14 2017-06-27 Amazon Technologies, Inc. Real-time updates to item recommendation models based on matrix factorization
CN107113466A (en) * 2014-06-12 2017-08-29 慧与发展有限责任合伙企业 To user's recommended project
US10223727B2 (en) * 2014-10-20 2019-03-05 Oath Inc. E-commerce recommendation system and method
US10114824B2 (en) * 2015-07-14 2018-10-30 Verizon Patent And Licensing Inc. Techniques for providing a user with content recommendations
US20170061286A1 (en) * 2015-08-27 2017-03-02 Skytree, Inc. Supervised Learning Based Recommendation System
US10795900B1 (en) * 2015-11-11 2020-10-06 Twitter, Inc. Real time analyses using common features
JP6679415B2 (en) * 2016-05-30 2020-04-15 ヤフー株式会社 Selection device, selection method, and selection program
EP3475798A4 (en) * 2016-06-27 2020-05-06 Purepredictive, Inc. Data quality detection and compensation for machine learning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030159A1 (en) * 2010-07-30 2012-02-02 Gravity Research & Development Kft. Recommender Systems and Methods
US20140129500A1 (en) * 2012-11-07 2014-05-08 Microsoft Corporation Efficient Modeling System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIU MENGHAN ET AL: "A Collaborative Privacy-Preserving Deep Learning System in Distributed Mobile Environment", 2016 INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND COMPUTATIONAL INTELLIGENCE (CSCI), IEEE, 15 December 2016 (2016-12-15), pages 192 - 197, XP033078447, DOI: 10.1109/CSCI.2016.0043 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021137657A1 (en) 2019-12-31 2021-07-08 Samsung Electronics Co., Ltd. Method and apparatus for personalizing content recommendation model
WO2021185427A1 (en) * 2020-03-16 2021-09-23 Huawei Technologies Co., Ltd. Generation of personalized recommendations
WO2021185428A1 (en) * 2020-03-16 2021-09-23 Huawei Technologies Co., Ltd. Enabling generation of personalized recommendations
WO2021208535A1 (en) * 2020-04-14 2021-10-21 华为技术有限公司 Recommendation method and device based on automatic feature grouping
CN113536097A (en) * 2020-04-14 2021-10-22 华为技术有限公司 Recommendation method and device based on automatic feature grouping
CN113536097B (en) * 2020-04-14 2024-03-29 华为技术有限公司 Recommendation method and device based on automatic feature grouping

Also Published As

Publication number Publication date
US20200342358A1 (en) 2020-10-29
JP6985518B2 (en) 2021-12-22
RU2763530C1 (en) 2021-12-30
CN111492391A (en) 2020-08-04
JP2021508395A (en) 2021-03-04
EP3698308A1 (en) 2020-08-26

Similar Documents

Publication Publication Date Title
EP3698308A1 (en) Client, server, and client-server system adapted for generating personalized recommendations
US11042946B2 (en) Identity mapping between commerce customers and social media users
US20170109642A1 (en) Particle Thompson Sampling for Online Matrix Factorization Recommendation
EP3371765A1 (en) End-to-end deep collaborative filtering
WO2016015444A1 (en) Target user determination method, device and network server
US20120023045A1 (en) Recommender System with Training Function Based on Non-Random Missing Data
US20130046623A1 (en) Method For Providing a Recommendation, Recommender System, and Recommender Computer Program Product
US20150248721A1 (en) Recommendation engine with profile analysis
US10438114B1 (en) Recommending content using neural networks
US20180053210A1 (en) Personalization of Digital Content Recommendations
CN109903103B (en) Method and device for recommending articles
US20160042428A1 (en) Personalized product recommendation based on brand personality scale
CN111159570B (en) Information recommendation method and server
CN111008335B (en) Information processing method, device, equipment and storage medium
JP2016042297A (en) Learning device, learning method, and learning program
US10839313B2 (en) Identity prediction for unknown users of an online system
US20150039539A1 (en) Method and Apparatus For Propagating User Preference Information in a Communications Network
JP2016062489A (en) Information processing device, terminal device, information processing method, and information processing program
CN111324812A (en) Federal recommendation method, device, equipment and medium based on transfer learning
JP5858874B2 (en) Recommendation program, apparatus and method capable of acquiring user usage history information useful for recommending items
Raghebi et al. A new trust evaluation method based on reliability of customer feedback for cloud computing
US11270329B2 (en) System and method for providing relevant electronic offers in a mobile banking application
WO2013190379A1 (en) User identification through subspace clustering
US10366088B2 (en) Method and system for mining frequent and in-frequent items from a large transaction database
US20150310530A1 (en) Navigation and recommendation on payment checkout in a professional social network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17825542

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017825542

Country of ref document: EP

Effective date: 20200519

ENP Entry into the national phase

Ref document number: 2020534387

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE