Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PROCESSING A RECOMMENDATION REQUEST AND RECOMMENDATION ENGINE
Document Type and Number:
WIPO Patent Application WO/2017/009683
Kind Code:
A1
Abstract:
The present invention relates to a method for processing a recommendation request from a user of an equipment (1) connected to a recommendation platform (2) also connected to at least one item server (3) referencing a plurality of items, to at least one internal rating server (4), and to at least one external rating server (5), the platform (2) comprising a storage unit (22) storing a preference profile of said user, and a processing unit (21), The method being characterized in that it comprises performing by the processing unit (21) steps of: (a) receiving from the equipment (1 ) the recommendation request, comprising at least one attribute of a requested item, an identifier of the user and a time length; (b) selecting a subset of the items referenced by the item servers (3) matching said attribute and the preference profile of the user; (c) determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server (4) and said external rating server (5); (d) dynamically updating said initial ranking; (e) when said time limit is over or when the user requests interrupting the updating, transmitting the current ranking as a final ranking to the equipment (1). The present invention also relates to a system for carrying out said method.

Inventors:
NOHRA CHINA CATHERINE (FR)
Application Number:
PCT/IB2015/001818
Publication Date:
January 19, 2017
Filing Date:
July 16, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
B2CLOUD (FR)
International Classes:
G06Q30/02
Domestic Patent References:
WO2003007205A22003-01-23
WO2012138266A12012-10-11
Foreign References:
EP2466496A12012-06-20
US20150127660A12015-05-07
US20110289088A12011-11-24
EP2466496A12012-06-20
EP1014282A12000-06-28
Attorney, Agent or Firm:
REGIMBEAU (FR)
Download PDF:
Claims:
CLAIMS

1. A method for processing a recommendation request from a user of an equipment (1 ) connected to a recommendation platform

(2) through a public network (10), the recommendation platform (2) being also connected through a secured network (20) to at least one item server

(3) referencing a plurality of items and to at least one internal rating server

(4) , the recommendation platform (2) being also connected through a public network (10) to at least one external rating server (5), the platform (2) comprising a storage unit (22) storing a preference profile of said user, and a processing unit (21 ),

The method being characterized in that it comprises performing by the processing unit (21 ) steps of:

(a) receiving from the equipment (1 ) the recommendation request, comprising at least one attribute of a requested item, an identifier of the user and a time length;

(b) selecting a subset of the items referenced by the item servers (3) matching said attribute and the preference profile of the user;

(c) determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server (4) or said external rating server (5);

(d) dynamically updating said initial ranking so as to take into account the evolution of the preference profile of the user and of the scores provided by said internal rating server (4) and said external rating server (5);

(e) when said time limit is over or when the user requests interrupting the updating, transmitting the current ranking as a final ranking to the equipment (1 ).

2. A method according to claim 1 , wherein a plurality of internal and external rating servers (4, 5) is involved, step (c) comprising calculating a plurality of rankings and aggregating these rankings. 3. A method according to claim 2, wherein each of the aggregated rankings is associated with a weight representing a trust level of the ranking.

4. A method according to claim 3, wherein each weight is provided by the internal of external rating server (4, 5) associated with the ranking of the weight.

5. A method according to any one of claims 3 and 4, wherein step (d) comprises measuring by the processing unit (21 ) the precision and/or the recall of a ranking, and dynamically updating the associated weight accordingly to said measurement.

6. A method according to any one of claims 2 to 5, wherein calculating a ranking associated with an internal or external rating server (4, 5) comprises determining scores of items of the selected subset from rating data.

7. A method according to claim 6, wherein determining scores of items of the selected subset from rating data published by an external rating server (5) comprises verifying said data, so as to discard data identified as fake or corrupted.

8. A method according to any one of claims 1 to 7, wherein step (d) consists of iteratively calculating a plurality of successive rankings, each successive ranking being calculated as a function of at least the previous ranking, the preference profile of the user and scores provided by said internal and external rating servers (4, 5).

9. A method according to claim 8 in combination with one of claims 2 to 7, wherein calculating a ranking also comprise aggregating a plurality of rankings into the current ranking.

10. A recommendation platform (2) connected through a public network (10) to at least one equipment (1 ) and at least one external rating server (5), and also connected through a secured network (20) to at least one item server (3) referencing a plurality of items and to at least one internal rating server (4), the platform (2) comprising a storage unit (22) storing at least the user of equipment (1 ) of said user and a processing unit (21 ),

characterized in that the processing unit (21 ) is configured to perform:

- a reception module for receiving a recommendation request from the equipment (1 ), the request comprising at least one attribute of a requested item, an identifier of the user and a time length;

- a selection module selecting a subset of the items referenced by the item servers (3) matching said attribute and the preference profile of the user;

- a determination module determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server (4) and said external rating server (5);

- an update module dynamically updating said initial ranking so as to take into account the evolution of the preference profile of the user and of the scores provided by said internal rating server (4) and said external rating server (5);

- a transmission module transmitting the current ranking as a final ranking to the equipment (1 ) when said time limit is over or when the user requests interrupting the updating. 11. A system comprising a recommendation platform (2) according to claim 10 and at least one equipment (1 ).

Description:
Method for processing a recommendation request and recommendation engine

FIELD OF THE INVENTION

The field of this invention is that of recommendation engines.

More precisely, the invention relates to a method for processing a recommendation request. BACKGROUND OF THE INVENTION

Recommendation engines are real time information filtering systems that aim at automatically identifying items/contents which could interest users, for example as a function of their past choices.

Such systems are in particular used in "Business-to-Consumer"

(B2C) context, for example to increase sales of electronic commerce platforms.

Known recommendation engines therefore propose to:

- Predicting a score of the user for a given item;

- Ranking items so as to compare them.

In such B2C context, the most important feature of recommendation engines is reactivity, i.e. the promptness of the system for taking into account, user preferences, interactions with the system, etc.

Such user-centric recommendation system is referred to as "memory- based", because the ratings database is persistently maintained so as to be used directly for generate recommendations towards active users. By contrast, in a "model-based" system, i.e. item-centric, data are pre-treated offline. When the service is executed by a user, le "learnt" model is used for predictions. However in a "Business-to-Business" (B2B) context, in which the addressee of recommendations is not a consumer, the requirements are quite different.

In particular, the engine should maximize the quality, the trustworthiness and the transparency of recommendations over the reactivity. Moreover, the engine should assure a good resilience against noise, corrupted data and spam.

Known B2B engines are for example described in the European patent applications EP2466496 or EP1014282.

However, known engines still require improving the quality or the reliability of their results (over the reactivity), and suffer from a phenomenon called "cold start": these engines need a huge quantity of data for starting being performant. Moreover, when only a few items have been rated by users, the known recommendation engines are likely to use pseudo-rating or default votes on available items, which may generate mistrust.

Consequently, there is a strong need for an improved recommendation engine which overcomes these drawbacks.

SUMMARY OF THE INVENTION

For these purposes, the present invention provides a method for processing recommendation request from a user of an equipment connected to a recommendation platform through a public network, the recommendation platform being also connected through a secured network to at least one item server referencing a plurality of items and to at least one internal rating server, the recommendation platform being also connected through the public network to at least one external rating server, the platform comprising a storage unit storing a preference profile of said user, and a processing unit,

The method being characterized in that it comprises performing by the processing unit steps of: (a) receiving from the equipment the recommendation request, comprising at least one attribute of a requested item, an identifier of the user and a time length;

(b) selecting a subset of the items referenced by the item servers matching said attribute and the preference profile of the user;

(c) determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server and said external rating server;

(d) dynamically updating said initial ranking so as to take into account the evolution of the preference profile of the user and of the scores provided by said internal rating server (4) and said external rating server (5);

(e) when said time limit is over or when the user requests interrupting the updating, transmitting the current ranking as a final ranking to the equipment.

Preferred but non limiting features of the present invention are as follow:

• a plurality of internal and external rating servers is involved, step (c) comprising calculating a plurality of rankings and aggregating these rankings

• each of the ranking is associated with a weight representing a trust level of the ranking or of the providing internal or external rating server;

• each weight is provided by the internal or external rating server associated with the ranking of the weight;

· step (d) comprises measuring by the processing unit the precision and/or the recall of a ranking, and dynamically updating the associated weight accordingly to said measurement.

• calculating a ranking associated with an internal or external rating server comprises determining scores of items of the selected subset from rating data; • determining scores of items of the selected subset from data published by an external rating server (5) comprises verifying said data, so as to discard data identified as fake or corrupted;

• step (d) consists of iteratively calculating a plurality of successive rankings, each successive ranking being calculated as a function of at least the previous ranking, the preference profile of the user and scores provided by said internal and external rating servers;

• calculating ranking also comprises aggregating a plurality of plurality of rankings into the current ranking.

In a second aspect, the invention provides a recommendation platform connected through a public network to at least one equipment and at least one external rating server, and also connected through a secured network to at least one item server referencing a plurality of items and to at least one internal rating server, the platform comprising a storage unit storing at least the user of equipment of said user and a processing unit, characterized in that the processing unit is configured to perform:

- a reception module for receiving a recommendation request from the equipment, the request comprising at least one attribute of a requested item, an identifier of the user and a time length;

- a selection module selecting a subset of the items referenced by the item servers matching said attribute and the preference profile of the user;

- a determination module determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server and said external rating server;

- an update module dynamically updating said initial ranking so as to take into account the evolution of the preference profile of the user and of the scores provided by said internal rating server and said external rating server);

- a transmission module transmitting the current ranking as a final ranking to the equipment when said time limit is over or when the user requests interrupting the updating. According to a third aspect, the invention proposes a system comprising a recommendation platform according to the second aspect and at least one equipment.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, features and advantages of this invention will be apparent in the following detailed description of an illustrative embodiment thereof, with is to be read in connection with the accompanying drawings wherein:

- Figure 1 represents a system for performing the method according to the invention;

- Figure 2 is a diagram representing steps of the method according to the invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

Referring to the drawings, a method according to a possible embodiment of the invention will now be described.

System overview

The present method aims at providing a user with a "recommendation report" from a recommendation request, i.e. providing the user with a list of items which can fit a need of the user expressed through the search request. The present "items" may be goods, products, multimedia contents, services, and generally anything that could be solution to a user's problem.

As depicted by figure 1 , the present method is performed by a platform 2, implementing a recommendation engine. The platform 2 comprises a processing unit 21 (for example a processor, on any other data processing means) and a storage unit 22 (a memory, typically a hard drive) storing among others a database of preference profiles of users.

The platform 2 is connected to numerous equipment and servers through a secured network 20 (in particular a Virtual Private Network, VPN), which is preferably under Internet Protocol, within a public IP network 10

In particular, each user uses an equipment 1 , typically a personal workstation, a smartphone or a tablet. Each equipment 1 comprises its own processing unit, a Human-computer interface, HCI (typically a screen, a keyboard, a mouse, etc.), and is connected to the platform 2 through the network 10.

At its first connection to the platform 2, the user is invited to create an account and to fill a search preference profile using said HCI. This interface also enables the user to generate a recommendation request (see later) and to be delivered the results (said recommendation report). The preference profile may for example included relevancy preferred scores, response time preferences, type of external rates, internal rates from expert knowledge bases, etc.

Are further connected to the platform 2 at least one item server 3, at least one internal rating server 4, also called knowledge server (both are local servers connected to the platform 2 through the secured local network 20), and at least one external rating server 5.

The item servers 3 are local servers each referencing a plurality of items which could possibly suits the user, i.e. candidate items. They include a data quality base of the items. Among them, there are "eligible items" i.e. potentially matching items, as it will be explained later. The item servers 3 are typically presenting products or services.

Each candidate item is defined by a plurality of attributes enabling to compare the items together. In particular, the recommendation report presents a (ranked) subset of these candidate items so as to respond to a search request generated by a user requesting items.

Each of the internal rating servers 4 and external rating servers 5 is a source of data from which a ranking of the eligible items can be determined. More precisely, these internal and external servers 4, 5 are respectively local and remote third-party servers providing various ratings/scorings/rankings of some of the referenced items. The servers 5 might be those of consumers' forums, experts' websites, social networks, etc. It is to be noted that an item server 3 can act as an internal rating server 4.

The processing unit 21 consequently processes numerous and heterogeneous sources to calculate different rankings of eligible items. Advantageously, these sources are generally classified into four groups:

S1 = Eligible content database (i.e. data from item servers 3) and preference profiles;

S2= Various rating, scoring and performance key indicators (from external rating servers 5);

S3= Expert's knowledge and rating (from internal rating servers 4) S4= User's feedback and user's interactions (from internal rating servers 4 and external rating server 5 such as a social network).

In particular, a ranking may be determined by group of sources (i.e. a ranking by set S1 , S2, etc.), and/or by source (i.e. each internal or external ranking server 4, 5).

It is to be noted that scores may be directly provided by servers 4 and 5, or deduced by the platform 2 from data published by each of these servers. To this end, the platform 2 may use tools which are able to extract from the servers 4 and 5 the rating data. For example, these tools may perform text analysis so as to read comments and identify drawback or advantages of items, and from this they may elaborate a score.

As it will be explained, it is preferable to have numerous and heterogeneous internal/external rating sources, so as to lower the impact of spam, noise or corrupted data, and improve the robustness of the system. Method

The steps of the present method are represented by figure 2. In a first step (a), the user first generates a recommendation request, and transmits it to the platform 2.

The recommendation request defines a need expressed by the user, in particular in natural language. Alternatively, the search request may be expressed as directly defining one or more features of a requested item (filtering). In any case, the search request shall comprise at least one attribute of the item requested by the user. Furthermore, the search request comprises a time length, i.e. the duration of a time period.

Indeed, as it will be explained, the present recommendation method defines a "dynamic session" with a predefined length, for example a week. This time length is chosen by the user, along with the attributes of the item he wishes to find. As it will be explained, this time length defines the duration the platform 2 has at disposal for providing the recommendation report. In other words, the processing unit 21s of the platform 2 processes data during this time length so as to refine the results and make them more accurate.

As we are in a B2B context, the quality of the results is preferred over the reactivity, and this time length is accepted by the user. Moreover, the user can arbitrate between reactivity and quality by changing the time length: the longer the duration, the higher the quality. Subset of items

In a further step (b), the processing unit 21 selects a subset of the items referenced by the item servers 3 matching said attribute and the preference profile of the user, i.e. identifying the eligible items among the candidate items. This step consists in particular in a filtering, wherein items which are obviously not suitable for user are discarded. Advantageously, the platform 2 applies predetermined eligibility rules to identity the eligible items.

Initial and successive rankings

In a third step (c), the processing unit 21 determines an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server 4 and external rating server 5. By ranking it is meant a sorting of the eligible items: from the highest score (i.e. the item is the most recommended to the user) to the lowest score (i.e. the item is the least recommended to the user).

This initial ranking is a first ranking, immediately available if the user wants, but not the optimal one. This ranking may be obtained by known ranking algorithms.

In particular, rating data from internal sources (preference profile, knowledge base) and external sources (external rating servers, users feedback) are preferably aggregated.

For example, a "supervised ensemble-ranking" method may be applied to merge the different obtained rankings. By using an aggregation ranking method, the processing unit 21 of the platform 2 processes different rankings defined on the same set of items, and computes a ranking with least possible disagreement with each of input rankings.

Let R = {R1 Rn} a set of n different rankings defined over the same set of items (i.e Ri are permutations defined over the set of items). An ensemble ranking method computes a new permutation R* out of the set R such as:

R * = argmin ^ M d{R*,Ri) .

Where d is a distance function defined over rankings. A Kendal-tau distance measure may be used as follows: d(R1 ,R2) = I (x,y) s.t. R1 (x) < R1 (y) and R2(x)>R2(y)|

Each used source S1 , S2, S3, S4 (or each internal or external rating server 4, 5) processed by the processing unit 21 of the platform 2 could thus be associated with a weight representing the trust value of the ranking provided by that source (and more generally the trust level of the source).

Then is applied a weighted ensemble-ranking method. Initially, all sources are assigned with equal weights (or weights provided by the servers 4, 5). Periodically, the precision and the recall of rankings provided by each source are measured for a batch of recent requests. Precision (respectively recall) is given by the ratio of true positive over the sum of true positive and false positive (respectively False negative).The size of the batch and the period of update are automatically set up by the processing unit 21 .

The weight of each source is advantageously updated, preferably in function of its induced precision and recall. This monitoring process allows detecting spammed or ill-performing ranking sources (ex. fake external ratings). The fact of using a weighted ensemble-ranking method allows the system to be less sensitive to errors induced by few rankings sources. This enables also to avoid the "cold start" phenomenon since initial rankings can always be calculated with enough workable data from the knowledge base source.

Furthermore, the present method gives the ability to always adjust the weight of various data sources and ranking, according to their completeness and to strengthen the engine scalability and reliability

It is to be noted that an external rating is preferably further checked by the processing unit 21 so as identity fake users and pseudo-ratings. Suspicious external ratings are not taken into account for calculating a ranking.

As already explained, the ranking with be refined during the inputted time length. To this end, in a step (d) the initial ranking is dynamically updated, in other words successive rankings are calculated. ] 1

More precisely, the ranking evolves through iterations taking into account evolutions of the items specifications (as provided by items servers 3), evolutions of the user preference profile, evolutions of internal rating servers 4 and external rating servers 5 (sources can be added or removed), and evolutions of the data from these sources. In particular, as explained weights associated with sources can vary over time. More precisely, the step (d) advantageously comprises dynamically updating the weights and consequently dynamically updating the plurality of rankings to aggregate.

The "up-to-date" ranking is therefore calculated according to previously calculated rankings, the preference profile of the user and scores provided by said internal rating servers 4 and external rating servers 5. More precisely, this is not a simple recalculation of the ranking, but an iterative calculation of it, depending from previous values.

For example, sources which appear to be biased (lots of fake data, high variability of ratings) will have a limited impact on further ranking calculations. To this end, their weight in the fusion is lowered.

Therefore, the ranking slowly "converges" towards an optimum. Advantageously, the formulas and rules used to calculate the ranking are first predetermined according to a model, an then inferred by automatic learning, so as to not limit it and gradually improve its quality.

The recalculation of a ranking may be either periodically performed, or at each evolution of the data quality base.

Recommendation reports

When said time limit is over, the processing unit 21 interrupts the calculation of the ranking and prepared said recommendation report. More precisely, it transmits as "final ranking" the current ranking to the equipment 1 , for outputting. The final ranking may be accompanied with synthesis and/or graphical representation of the recommendation data. Should the user not satisfied of the result, the session may be prolonged by a new time length. It is to be noted that at any moment before the end of the given time period, the user may requests interrupting the updating, and the current ranking become the final ranking, even if such ranking could have been further refined.

In any case, the final report is transmitted to the user as a message, such as an e-mail, a SMS (Short message service etc.).

During the whole proceeding (i.e. before the expiration of the time period) "updated reports" may be transmitted to the user if he wished to. Such reports are notifications sent to the equipment 1 containing a current ranking. For example, it may be decided that at each time the ranking changes (i.e. if at least one item has its rank modified after an update), then a report is transmitted to the user for notifying it. Therefore, the user is aware of the gradual improvement of the recommendation he has requested.

Platform and system

According to a second aspect, the invention proposes the platform 2 for performing the method according to the first aspect.

As explained, said recommendation platform 2 is connected through a secured network 20 to at least one item server 3 referencing a plurality of items, and to at least one internal rating server 4. Said recommendation platform 2 is also connected to at least one equipment 1 and to at least one external rating server 5 through a public network 10.

The platform 2 comprises a storage unit 22 storing a preference profile of at least the user of equipment 1 and a processing unit 21

The processing unit 21 is configured to perform:

- a reception module for receiving a recommendation request from the equipment 1 , the request comprising at least one attribute of a requested item, an identifier of the user and a time length;

- a selection module selecting a subset of the items referenced by the item servers 3 matching said attribute and the preference profile of the user; - a determination module determining an initial ranking of the items of said subset as a function of the preference profile of the user and scores provided by said internal rating server 4 and/or external rating server 5;

- an update module dynamically updating said initial ranking;

- a transmission module transmitting the current ranking as a final ranking to the equipment 1 when said time limit is over or when the user requests interrupting the updating.

In case of a plurality of rankings aggregated, the processing means may also perform as explained a supervision module monitoring the weight of sources/rankings.