Client-side recommendations on one-way broadcast networks

09749691 · 2017-08-29

Assignee

Inventors

Cpc classification

International classification

Abstract

A method and a client-side Recommender system on One-Way Broadcast Network includes at least a one-way channel connecting a broadcasting station to a set-top-box device of a first set of users, the set-top-box including a memory, a computation and driving unit for tracking the user activity, storing a user profile, generating and displaying a ranking of recommended media items, the ranking being determined by the computation unit through a recommender model stored on the memory. The system further includes a collaborative dual module, a first back-end module running on a auxiliary server connected to a two-way network and belonging to an auxiliary domain, this first back-end module leveraging external data sources to collect community based information on at least part of the media items, while the recommender model stored on the memory being a second front-end module, wherein the broadcasting station and the set-top-box device belong to a target domain.

Claims

1. A recommender system on a one-way broadcast network, comprising: a set-top-box (STB) device of a first set of users of the one-way broadcast network, the set-top-box (STB) device of the first set of users operatively connected to a television (TV) set of the first set of users, the set-top-box (STB) device of the first set of users comprising i) a memory that stores a user profile, and ii) a computation device that tracks the first set of users' activity, generates, and displays a ranking of recommended media items on the TV set, said ranking being determined by said computation device through a recommender model stored on said memory; a broadcasting station connected to the set-top-box (STB) device of the first set of users via a one-way channel that transmits data to the set-top-box (STB) device of the first set of users; an auxiliary server connected to a bidirectional network, the auxiliary server and the bidirectional network both belonging to an auxiliary domain; a first back-end module running on the auxiliary server, the first back-end module belonging to the auxiliary domain and leveraging external data sources to collect community based information; a collaborative dual module comprising first and second modules, said first module being said first back-end module, leveraging external data sources to collect community based information belonging to the auxiliary domain on at least part of said media items, and said recommender model stored on said memory of the set-top-box (STB) device of the first set of users being said second module comprised of a second front-end module, wherein, the broadcasting station and said set-top-box device of the first set of users belong to a target domain, said auxiliary server is part of said bidirectional network, comprising at least two channels to gather feedback data from a second set of users belonging to the auxiliary domain on at least part of said media items, said first back-end module is processed by said auxiliary server through collaborative techniques including said feedback data collected from said second set of users, said first back-end module is transformed in a compact representation by said auxiliary server and one-way broadcast to said set-top-box (STB) device of the first set of users, wherein users' preferences of the auxiliary domain are compactly stored in a n×m user rating matrix R (URM) that is a collection of all ratings implicitly or explicitly expressed by “n” users of the second set of users registered with an external provider about the “m” items available in a catalog of the auxiliary domain, wherein said user rating matrix R (URM) is factorized by means of a singular value decomposition (SVD) model to decompose the user rating matrix R (URM) into a product of lower rank matrices to be approximated in a f-dimensional feature space by the product:
U.Math.S.Math.Q* where “U” is a n×f orthonormal matrix, Q* is the transpose of “Q” which is a m×f orthonormal matrix, “S” is a f x f diagonal matrix containing the first “f” singular values, in order of decreasing magnitude, where “n”, “m”, and “f” are greater than zero, and wherein Q is representing the recommender model to be transferred from said auxiliary domain to said target domain.

2. The recommender system as in claim 1, wherein said second set of users is different from said first set of users.

3. The recommender system as in claim 2, wherein said computation capacity unit, through said second front-end module, tracks locally behavior of the user of said first set of users and compares the behavior of the user of said first set of users with the behavior of the other users of said second set of users, in order to provide said ranking of recommended media items.

4. The recommender system as in claim 3, wherein said first back-end module is processed through hybrid recommender algorithms by combining both collaborative and content-based techniques including additional items different from said media items.

5. The recommender system as in claim 2, wherein said first back-end module is processed through hybrid recommender algorithms by combining both collaborative and content-based techniques including additional items different from said media items.

6. The recommender system as in claim 1, wherein said computation capacity unit, through said second front-end module, tracks locally behavior of the user of said first set of users and compares the behavior of the user of said first set of users with the behavior of the other users of said second set of users, in order to provide said ranking of recommended media items.

7. The recommender system as in claim 6, wherein said first back-end module is processed through hybrid recommender algorithms by combining both collaborative and content-based techniques including additional items different from said media items.

8. The recommender system as in claim 1, wherein said first back-end module is processed through hybrid recommender algorithms by combining both collaborative and content-based techniques including additional items different from said media items.

9. A one-way broadcast program recommendation method comprising: providing a one-way channel connecting a broadcasting station to a set-top-box (STB) device of a first set of users of the one-way broadcast network, wherein said set-top-box (STB) device of the first set of users is arranged for tracking the user activity, storing a user profile, generating and displaying on a television (TV) set a ranking of recommended media items, said ranking being determined by a computation unit of said set-top-box (STB) device of the first set of users through a recommender model stored in a memory thereof, including operating a collaborative dual module comprising a first module and a second module, connecting an auxiliary server to a bidirectional network, the auxiliary server and the bidirectional network both belonging to an auxiliary domain, running the first module on the auxiliary server as a first back-end module, the first back-end module leveraging external data sources to collect community based information belonging to the bidirectional network both on at least part of said media items, with the second module being a second front-end module representing said recommender model stored on said memory of the set-top-box (STB) device of the first set of users belonging to a target domain, and using at least two channels of said auxiliary server to gather feedback data from a second set of users belonging to the bidirectional network both on at least part of said media items, using said auxiliary server to process said first back-end module through collaborative techniques including said feedback data collected from said second set of users, and using said auxiliary server to transform said first back-end module into a compact representation and one-way broadcast to said set-top-box (STB) device of the first set of users where the compact representation is the recommender model implemented as said second front-end module, wherein users' preferences of the auxiliary domain are compactly stored in a n×m user rating matrix R (URM) that is a collection of all ratings implicitly or explicitly expressed by “n” users of the second set of users registered with an external provider about the “m” items available in a catalog of the auxiliary domain, wherein said user rating matrix R (URM) is factorized by means of a singular value decomposition (SVD) model to decompose the user rating matrix R (URM) into a product of lower rank matrices to be approximated in a f-dimensional feature space by the product:
U.Math.S.Math.Q* where “U” is a n x f orthonormal matrix, Q* is the transpose of “Q” which is a m x f orthonormal matrix, “S” is a f x f diagonal matrix containing the first “f” singular values, in order of decreasing magnitude, where “n”, “m”, and “f” are greater than zero, and wherein Q is representing the recommender model transferred from said auxiliary domain to said target domain.

10. A one-way broadcast program recommendation method, comprising: connecting a set-top-box (STB) device of first set of users to a television (TV) set of a first user of the first set of users, the set-top-box (STB) device of the first set of users comprising i) a memory that stores a first user profile, and ii) a computation device that, through a front-end module, tracks the first user's activity, generates, and displays a ranking of recommended media items on the TV set, said ranking being determined by said computation device through the front-end module, the front-end module comprised of a recommender model stored on said memory, the set-top-box (STB) device of the first set of users belonging to a target domain; operating a broadcasting station with a one-way channel that transmits data to the set-top-box (STB) device of the first set of users, wherein no user activity data is received by the broadcasting station from the set-top-box (STB) device of the first set of users, the broadcasting station belonging to the target domain; operating an auxiliary server connected to a bidirectional network and to the broadcasting station, the auxiliary server comprising a back-end module that collects community-based information belonging to an auxiliary domain from external data sources, the auxiliary server and the bidirectional network both belonging to the auxiliary domain separate from the target domain; using the auxiliary server to gather feedback data from behavior of a second set of users belonging to the auxiliary domain on at least part of said media items, to transform the back-end module into a compact representation, and to provide the compact representation to the set-top-box in a one-way communication via the one-way channel, the compact representation provided to the set-top-box being an updated recommender model; and using the computation device and the first user profile in the set-top-box (STB) device of the first set of users to compare the first user's tracked activity with the behavior of the second set of users to generate and display the ranking of recommended media items on the TV set, wherein preferences of the auxiliary domain users are compactly stored in a n×m user rating matrix R (URM) that is a collection of all ratings implicitly or explicitly expressed by “n” users of the second set of users registered with an external provider about the “m” items available in a catalog of the auxiliary domain, wherein said user rating matrix R (URM) is factorized by means of a singular value decomposition (SVD) model to decompose the user rating matrix R (URM) into a product of lower rank matrices to be approximated in a f-dimensional feature space by the product:
U.Math.S.Math.Q* where “U” is a n x f orthonormal matrix, Q* is the transpose of “Q” which is a m x f orthonormal matrix, “S” is a f×f diagonal matrix containing the first “f” singular values, in order of decreasing magnitude, where “n”, “m”, and “f” are greater than zero, and wherein Q is representing the updated recommender model being transferred from said auxiliary domain to said target domain.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Further features and advantages of the system and method according to the invention will in any case be more evident from the following detailed description of a preferred embodiment of the same, given by way of example and illustrated in the enclosed drawings, wherein:

(2) FIG. 1 is a diagrammatic view showing integrating collaborative recommendations schema in a one-way communication channel according to the invention;

(3) FIG. 2 is a flow-chart diagram showing one-way filtered feature augmentation technique applied in an embodiment of the invention; and

(4) FIG. 3 is a flow-chart diagram showing one way similarity injection Knn technique applied in another embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

(5) The invention overcomes both the limitations explained in relation with the prior art methods, by adopting an original two-module collaborative recommender system.

(6) The first module of the recommender system runs on a centralized computer connected to the Internet: this first module leverages external data sources to collect community based information required for collaborative recommendations. This external information is transformed into a compact representation of users' tastes (referred to as the model) and broadcast to the set-top-boxes STB of the system. The second module of the recommender system runs on each user's STB. These users can be different from the users analyzed by first module. The second module is a lightweight program that tracks locally, on the STB, the user's activities and compares them with the behavior of other users (in terms of the model processed and installed in the same STB) in order to provide recommendations to the TV watcher. The behavior of the other users is included into the model processed by the first module of the recommender system.

(7) More in detail, according to the invention the recommendation model is built by a back-end component having access to a Internet based two-way environment (where collaborative model can be easily processed using known technologies) and regularly sent to the STB (e.g., daily or weekly), that uses it together with the user preferences in order to select the items to display to the user.

(8) Since the model is built by the back-end, a classical recommender algorithm cannot be used but a new recommendation method is developed which is decomposed into two phases: the first phase is devoted to the creation of a model; the second phase provides recommendations from the model and the target user's profile. Because of the one-way communication characteristics of the TV scenario, the second phase needs to be totally decoupled by the first phase, with the exception of the model.

(9) The broadcast recommender method allows implementing also hybrid recommender algorithms by combining both collaborative and content-based recommendations.

(10) In the following detailed description, a specific notation is used having the meaning to explained in table 1.

(11) TABLE-US-00001 TABLE 1 Domain T Target domain with a one-way communication channel. Provider T operates in this domain. Domain A Auxiliary domain with a two-way communication channel. Provider A operates in this domain. u, e Indexes of the users. Conventionally, u indicates a user in domain T to be recommended, while e indicates a user in domain A. i, j Indexes of items. b.sub.ui Rating bias for user u about item i. N Number of users in domain A's customer base. M Number of items available in domain T's catalog (i.e., suitable to be recommended). m Number of items available in domain A's catalog. r.sub.u User-u profile. A m-dimensional vector whose non-zero values correspond to the unbiased ratings of user u. R User rating matrix (URM). Collection of ratings expressed by users in domain A. W Item content matrix (ICM). Collection of content features of items in domain T. Operator* It denotes the transpose of a matrix or a vector (e.g., Q* is the transpose of matrix Q). Operator.Math. It denotes the inner product between two matrices or vectors (e.g., U .Math. S is the inner product between matrix U and matrix S). Function Function applied to vector a that norm(a) normalizes the vector by its Euclidean norm. Function Function applied to matrix A that norm(A) normalizes all columns of the matrix by their respective Euclidean norms.

(12) The broadcast recommender system is composed by a back-end and a front-end module. The back-end module runs on a centralized server and it is responsible for delivering all data required by the front-end to generate recommendations. The front-end module runs on each user's STB (set top box) and it is responsible for tracking the user activity, storing the user profile, generating and displaying recommendations, and showing the media content selected by the user (generically referred to as items).

(13) In addition to the media content stream, the key data sent by the back-end component to the STB is the recommendation model to be used for providing recommendations.

(14) The back-end component communicates to the front-end via a one-way broadcast network, where the communication is unidirectional from the back-end to the front-end, while no data can be sent by the STB to the back-end.

(15) It is provided that the STB tracks user activity and represents user preferences in the form of a sparse vector. For each item (e.g., a movie), the user can express a rating, i.e., an integer value in the 1-to-5 scale. This rating is referred to as explicit rating. For instance, after watching a movie the user is given the possibility to give a rating by clicking on a standard 1-to-5 star rating schema. If the user simply watches the item (e.g., in the case of a TV program) without expressing a rating, an implicit rating is saved. The value of the implicit rating varies from 3 to 5 and it is linearly proportional to the percentage of content the user has watched. If the user has watched less than 5 minutes the STB discards such activity. For each view greater or equals to 5 minutes, the implicit rating is computed as:
3+2.Math.t/l
where t is the time (in minutes) spent by the user watching the item, while/is the total length (in minutes) of the item.

(16) Let us denote with r.sub.u the m-dimensional vector of ratings collected for a generic user u in the target domain. Element r.sub.ui of the user profile vector represents the rating (either explicit or implicit) of user u for item i, properly adjusted as follows: for all non-missing ratings, r.sub.ui is equals to the rating subtracted the constant b.sub.ui. The value b.sub.ui is the rating bias and depends on: average users' rating bias, subjective user rating tendency, and item rating tendency. The bias can be defined per each (u,i) pair. In our invention we have set b.sub.ui equals to 2.5 for all (u,i) pairs. for all unknown ratings, r.sub.ui is set to zero. In fact, while pursuing a top-N recommendation task we do not care exact rating prediction, but we are only interested in correctly ranking items. The choice of zeros, that do not impact predictive power, gives the opportunity to use software tools optimized for sparse matrices.

(17) User profile sparse vectors are stored in a data structure optimized for sparse values. For each rated item a pair of fields is stored: the TV program unique ID (e.g., a 32-bit long integer data) and the related—either implicit or explicit—unbiased user rating (e.g., a 32-bit float data), corresponding to a 8-byte requirement per watched item. For example, a user who has watched 500 items requires 4 Kbytes to store his/her preferences.

(18) The method allows deploying both collaborative filtering and hybrid approaches, where collaborative and content-based filtering are used together within the same algorithm.

(19) Every time the STB has to compute recommendations for a user, the STB:

(20) 1. uses the most updated recommendation model in order to predict the score s.sub.ui for each item i unrated by the user. The model has been previously sent by the back-end module via the broadcast communication channel.

(21) 2. sorts items in decreasing order of score.

(22) 3. selects the first N items of this sorted list and displays them to the user. For instance, the STB shows 10 items to the users.

(23) Note that items already rated by the user are ignored and not recommended.

(24) Collaborative

(25) In a one-way TV system the service provider cannot centrally collect the preferences of users of the TV system. Such data represents the information required to use collaborative recommender systems.

(26) Since this information is not available, the collaborative method according to the invention is based on transferring the required knowledge from an external, two-way domain—where user interactions can be globally collected—to the one-way domain where we want users to be recommended using a collaborative technique. Making reference to FIG. 1, the one-way domain is referred to as target domain (domain T) and the two-way domain is referred to as auxiliary domain (domain A) or as external source. The provider operating in the target domain is the provider T, while the provider operating in the auxiliary domain is the provider A.

(27) For each item, provider T is supposed to know a set of information related to the content (e.g., the title, the set of actors, the directory, the plot), while provider A is supposed to known the preferences of its customer bases about items in the catalog.

(28) As shown in FIG. 1, the process is decomposed in three steps:

(29) 1. Provider A collects preferences of users in domain A about the set of items common to domain T. Preferences about items existing in domain A but not existing in domain T can be preferably also collected. In fact, despite they will not be recommended, they can leverage indirect relationships among user preferences. A community model is built using such data and a suitable recommendation algorithm (known per se).
2. The community model is sent to provider T and adapted to domain T.
3. The adapted community model is broadcast to the STBs in order to enable recommendations.

(30) For instance, domain A is consisting of a web portal through which a number of users can give their rating to a number of items (movies, shows, . . . ) while domain T is a back-end server of a TV broadcasting company. It is not prevented that the same TV broadcaster could also manage a web portal where users can watch TV programs, read the description, and express a rating. It shall be noted that there is no need for the users of the two systems (e.g., the traditional TV set and the catch-up TV web portal in domain A) to be the same. There is not even the need to identify them. Consequently, not necessarily the external source (auxiliary domain) must be managed by the same provider as the one that manages the target domain.

(31) This opens the opportunity to implement a sort of recommendation model market, where behavioral patterns of users in a domain (domain A) can be sold/transferred to another domain (domain T) where this information is lacking or poor due to the one-way channel.

(32) The auxiliary domain allows the external provider to collect preferences of its customer base.

(33) Auxiliary domain users' preferences are compactly stored in a n×m user rating matrix (URM), denoted by R, i.e., a collection of all ratings implicitly or explicitly expressed by the n users registered with the external provider about the m items available in domain A's catalog. Note that R stores the unbiased user ratings, i.e., each rating of user e about item i is subtracted the bias b.sub.ei.

(34) Provider A runs a collaborative recommendation algorithm over the collected URM and obtains a community recommendation model. Thus, the only data required to be shared with the target domain's provider is the recommendation model. Since such model contains only a representation of user behavioral patterns this ensures the highest level of privacy.

(35) In order to properly use the data coming from the auxiliary domain, it is preferably provided to align the items in the two domains.

(36) If it is assumed there exists a (third-party) unique identifier common to provider A and T, that allows to uniquely identify an item with an independent identifier, data coming from the external source can be straightforwardly aligned to the catalog in the target domain. As a non-limiting example, movies and TV programs can be uniquely identified via the IMDb (Internet Movie Database, http://www.imdb.com/) identifier. In such a way, both the target and the auxiliary domain are able to map their movies and TV programs to the IMDb identifier.

(37) By contrast, if provider A and provider T do not share a common, unique identifier, let us suppose that:

(38) the catalogs of items in the target and auxiliary domains are composed by the same sets of m items (e.g., m video-on-demand movies); however the item indexes in the two catalogs might not correspond (e.g., item i in the target domain can be different from item i in the auxiliary domain). the collaborative model built on the auxiliary domain is represented by a k×m matrix, denoted with M, where the m columns of M model the m items in the catalog. imdbid(c,i) is a mapping function that, given an item index i and a catalog c, returns the IMDb identifier for item i in catalog c. The item index i is in the range [0, m], while c is either the ‘target’ or the ‘auxiliary’ domain.

(39) Given this set of information, a model M suitable for the target domain starting from model M can be built.

(40) 1. For each item jε[1, m] a IMDb identifier is derived by calling imdbid(‘target’, j). Let us denote the identifier with id.sub.j.

(41) 2. For each item iε[1, m] the IMDb identifier is derived by calling imdb(‘auxiliary’, i). When an item i is found such that imdbid(‘target’, j) is equals to imdbid(‘auxiliary’, i) the i-th column of M is assigned to the j-th column of M.

(42) Every time there is a data exchange between domain A and domain T it is needed to align such data using the previous mechanism. For simplicity, in the rest of the discussion it is assumed that: Domain A's catalog corresponds to domain B's catalog and m=m. Items have already been aligned, i.e., imdbid(‘target’,i)=imdbid(‘auxiliary’,i) for all items.
One Way SVD (OWSVD)

(43) Latent factor models—also informally known as SVD models—try to explain ratings by characterizing items and users with factors that are automatically inferred from user feedback. A preferred embodiment of the invention, provides that a Singular value decomposition (SVD), a particular matrix factorization technique used in different fields, is employed in the first step of the process to build the community model.

(44) The key idea of OWSVD is to factorize by means of SVD the user-item rating matrix R built with the auxiliary domain data. The user rating matrix is decomposed into the product of two lower rank matrices, one containing the so-called ‘user factors’, while the other one containing the so-called ‘item-factors’.

(45) It is assumed that users and items can be represented by means off features. Thus, each user e is represented with an f-dimensional user factors vector p.sub.eεcustom characterf. Similarly, each item i is represented with an item factors vector q.sub.iεcustom characterf. Given the sparse matrix R, i.e., the URM of the auxiliary domain, provider A can use existing highly optimized software packages for performing conventional SVD on sparse matrices (e.g., experiments have been carried out with SVDLIBC based on the SVDPACKC library; see M. W. Berry. “Large-scale sparse singular value computations”. The International Journal of Supercomputer Applications, 6(1):13-49, Spring 1992.).

(46) By means of SVD, the user rating matrix R is approximated in the f-dimensional feature space by the product:
U.Math.S.Math.Q*
where, U is a n×f orthonormal matrix, Q is a m×f orthonormal matrix, and S is a f×f diagonal matrix containing the first f singular values, in order of decreasing magnitude.

(47) Matrix Q is computed by provider A and it represents the model to be transferred from the auxiliary domain to the target domain. Thus, the set-top-box STB is sent this matrix Q that will be used in order to recommend the user at real-time.

(48) Remember that Q is to be aligned to target-domain item indexes when transferred from domain A to domain T.

(49) The storage requirements of the recommendation model Q linearly depend on the number of items. For each item it is required to store f features, e.g., f 32-bit floats per item. For example, assuming a catalog of TV programs composed by 10,000 items, it would need about 8 Mbytes to store the recommendation model. Such 8-Mbyte model is regularly broadcast by Provider T to every STB in order to update the recommendation model.

(50) Once model Q has been received by STB, it can be used by the embedded software module in order to recommend the users interacting with such apparatus.

(51) In fact, let us define P=U.Math.S, so that the e-th row of P represents the user factors vector p.sub.e, while the i-th row of Q represents the item factors vector q.sub.i. In addition, since U and Q have orthonormal columns, it can be straightforwardly derived that:
P=U.Math.S=R.Math.Q

(52) Due to these properties, the STB can eventually predict the score s.sub.ui of user u for any item i performing the next two-step computation:
r.sub.u=r.sub.u.Math.Q  (step 1)
where r.sub.u is the m-dimension vector of known ratings and r.sub.u represents user-u model in a f-dimensional space
s.sub.ui=b.sub.ui+r.sub.u.Math.q.sub.i*  (step 2)

(53) The above two mathematical operations, executed in that specific order, make the computation feasible on every STB, regardless the computational and memory capabilities.

(54) In fact, supposing user u has rated |r.sub.u| items:

(55) Step 1 requires f.Math.|r.sub.u| multiplications and f.Math.|r.sub.u| sums.

(56) Step 2 requires f multiplications and f sums.

(57) Note that step 1 is common to all items it is needed to compute the score for; so, in order to compute score for any other item, we only need to run step 1 once and repeat step 2 for each item.

(58) The items with the highest scores will be recommended to the user.

(59) One Way SVD offers the benefits of representing users as a combination of item features without any user-specific parameterization. It also offers convenient optimization, which does not require tuning learning constants. The only parameter of OWSVD is f, i.e., the number of features used to represent users and items. Such parameter can be tuned via cross-validation. However, in typical applications a value of f in the range [200, 300] generally leads to good-quality recommendations. The fact that OWSVD requires a single parameter to be set makes the algorithm particularly suitable to be transferred across different domains, as in the settings of the one-way system of the invention where the algorithm is trained with domain-A users, but used on domain-T users.

(60) Hybrid Collaborative+Content

(61) Some catalogs have a large number of items with no ratings at all. In particular, TV applications deal with a catalog of available items (e.g., TV programs) that is very dynamic and the percentage of rated items is as low as 20%. Furthermore, can it be the case that some items existing in the target domain do not exist in the auxiliary domain where pure collaborative model is to be computed, leading to a URM (built with the auxiliary domain data) only partially complete. In particular, all columns of R related to items existing in the target domain but not existing in the auxiliary will be unfilled.

(62) On the other way, all items existing in the auxiliary domain but not existing in the target domain can optionally be maintained in the URM. In fact, despite they will not be recommended, they can leverage indirect relationships among ratings.

(63) In the following two hybrid (collaborative+content) techniques tailored for broadcast recommender systems are provided: a first one called One Way Filtered Feature Augmentation (OWFFA) and a second one called One Way Similarity Injection Knn (OWSIKNN). The main idea behind the first hybrid technique is to use content-based filtering to augment the existing ratings used for the training of the collaborative algorithm. On the other hand, the second hybrid technique merges together the item-to-item similarities computed with collaborative and content-based filtering.

(64) The two hybrid techniques have been developed in order: (i) to work on both implicit and explicit datasets, (ii) to grant good recommendations even when only content information is available (e.g., items in the target domain not existing in the auxiliary domain), (iii) to have on-line complexity comparable to that of non-hybrid techniques, (iv) to have no user-specific parameters. All the above properties grant to use such techniques in lightweight STBs operating in one-way channels.

(65) One Way Filtered Feature Augmentation (OWFFA)

(66) OWFFA is a feature augmentation method. Differently from other hybrid techniques, OWFFA approach does not need any user-specific parameter to be learned.

(67) OWFFA computes user behavioral patterns on the basis of the ratings augmented with pseudo-ratings derived from the content-based filtering, but it uses the original user profiles for predicting ratings.

(68) FIG. 2 shows a flow chart explaining the learning process:

(69) 1. On the target domain, the Content-Based Filtering CBF module is composed by a content-based algorithm that receives as input the available content data W, i.e., the item content matrix ICM. Provider T trains the content-based algorithm with W and obtains the content-based model, that it is denoted by L. Such model is shared with provider A in the auxiliary domain A.

(70) 2. For each user in the auxiliary domain, provider A uses L in the Content-Based Filtering Recommender CBFrec module in order to predict all his/her unknown ratings. We refer to these additional ratings as pseudo-ratings.

(71) 3. Part of the pseudo-ratings is added to the original user rating matrix URM (built with auxiliary domain data). The filter component is in charge of selecting the subset of pseudo-ratings to be inserted in matrix R. The URM incremented with the pseudo-ratings selected by the filter is denoted by augmented URM (namely, aURM).

(72) 4. The augmented URM (aURM) is used as input for a collaborative filtering algorithm, implemented in the Collaborative Filtering CF module. Provider A runs the algorithm in CF module and obtains a model Q, that is shared with provider T. Such model will be sent to the STB by means of the broadcast module and used to compute recommendations.

(73) In detail, CBFrec module computes content-based recommendations for users in the auxiliary domain. It is assumed that for each item such information is represented in a BOW (bag of words) vector, which neglects “semantic structure” of the item's description (e.g., the “meaning” of terms and their relationships). All item content vectors are compactly stored in a matrix, referred to as ICM (item content matrix), denoted by W, whose i-th column corresponds to item-i BOW vector. Element w.sub.xi represent the importance of content feature x for item i. As an example, w.sub.xi can be set to 1 whether feature x exists in item i and to 0 if such feature is not present. Content data are directly available in target domain, for instance in the form of EPG (Electronic Programming Guide). It is assumed W has dimension w×m, where w is the number of content features and m the number of items in the target domain catalog. Matrix W is to be shared with the auxiliary domain's provider in order to enrich data. The next steps are performed by the auxiliary domain's provider in order to obtain a recommendation model.

(74) The correlation between user's and item's BOWs is related to the interest of the user for the item. The CBF module is based on LSA (Latent Semantic Analysis), a technique extensively used in information retrieval. LSA uses SVD (singular value decomposition) to represent the BOW vectors in a low-dimensional space, where data noise is attenuated and correlations between related content features are strengthened.

(75) Given the ICM as input, using LSA the target domain's provider computes matrix L, which represents items in a low-dimensional space. L is a k×m matrix modeling the item latent features. Item i-th is represented in a k-dimension feature space by the i-th column of L. Matrix L is computed as follows. Given W (w×m), throughout SVD decomposition it can approximated as the product B.Math.G.Math.V*, where G is a k×k diagonal matrix formed by the highest k singular values (in decreasing order of magnitude), B is a w×k matrix so that B*B=I.sub.k, and V is a m×k matrix so that V*V=I.sub.k, with I.sub.k representing the k×k identity matrix. Finally it is defined L:=norm(G.Math.V*), where each column of the product G.Math.V* is normalized by the Euclidean norm.

(76) Matrix L is shared with the auxiliary domain's provider that computes the pseudo-rating of the each unknown rating value of its users. The pseudo-rating p.sub.ei related to user e about item i is computed using the formula:
p.sub.ei=norm(r.sub.e.Math.L*).Math.l.sub.i
where l.sub.i indicates the i-th column of matrix L.

(77) Once pseudo-ratings are computed, the filter selects only the most relevant ones to be added to the URM. Two different filters are implemented: FFAt and FFAg. The former (FFAt) excludes all the pseudo-ratings whose value is lower than a fixed threshold. On the other hand, the latter uses the Gini impurity measure in order to add both high and low pseudo ratings to increase the intrinsic information to the item profiles (FFAg). FFAg is to be preferred in the case most ratings received by the item are explicit, while FFt is to be preferred in the case most ratings received by the item are implicit.

(78) For each item i, the Gini impurity value g, is computed as a function depending on the number of ratings collected for such item—denoted by β. The function is defined so that: (i) each item has at least β.sub.min ratings, (ii) known user ratings have priority over pseudo-ratings, and (iii) also items with many ratings are enhanced with a number of pseudo-ratings. The formula for g.sub.i is:
g.sub.i=β.sub.min−β+(h.Math.β) if β<=β.sub.min
(h.Math.β.sup.2)/β otherwise
where h is an additional parameter that can be optimized through cross-validation (we have experimented with h=0.3). Furthermore, β.sub.min is set equal to the average number of ratings per item.

(79) Once the augmented URM has been built, the collaborative algorithm One Way SVD can be used in order to compute a portable model. In particular, One Way SVD algorithm is used where the input matrix R is the augmented URM. The output model is matrix Q that is sent to the STB in order to be used at real-time to recommend the user. The storage requirements of Q are the same of the ones discussed for OWSVD, i.e, for each item it is required to store f features, e.g., f 32-bit floats per item.

(80) The STB is broadcast the model Q that allows predicting the score of user u for item i with the following two-step computation:
r.sub.u=r.sub.u.Math.Q  (step 1)
s.sub.ui=b.sub.ui+r.sub.u.Math.q.sub.i*  (step 2)
The complexity of this two-step computation is the same as of OWSVD, so that it can be computed by any STB.
Finally, the items with the highest scores are selected by the STB and recommended to the user.
One Way Similarity Injection Knn (OWSIKNN)

(81) OWSIKNN builds a model using item-to-item similarities obtained by one collaborative and one content-based technique. The basic idea is to merge the following two data:

(82) The item-to-item similarities computed by means of collaborative filtering trained on the auxiliary domain ratings. Such similarities can be compactly stored in a m×m matrix that it is denoted by Z.sup.A, whose element z.sub.ij.sup.A represents the similarity between item i and item j according to the ratings available in the auxiliary domain. Such matrix is computed by the auxiliary domain's provider and shared with the target domain's provider.

(83) The item-to-item similarities computed by means of content-based filtering trained on the content data retrieved by the EPG (Electronic Programming Guide) available to the target domain's provider. Such similarities can be compactly stored in a m×m matrix that it is denoted by Z.sup.T, whose element z.sub.ij.sup.T represents the similarity between item i and item j according to the content description available in the target domain. Such matrix is computed by the target domain's provider.

(84) FIG. 3 summarizes the process. In detail, similarity matrix Z.sup.A is computed by CF module according to the following steps:

(85) Provider A uses the OWSVD technique in order to compute the collaborative model Q over the auxiliary domain's URM. Vector q.sub.i represents again the i-th row of Q. For each item 1:

(86) in the i-th column of Z.sup.A, denoted by z.sub.i.sup.A, the similarities of i with all items jε[1, m] are stored; the column is computed as z.sub.i.sup.A=norm(Q).Math.norm(q.sub.i*);

(87) the highest k non-zeros values of z.sub.i.sup.A is selected, setting the value of the remaining element of the i-th column to zeros; this step is required in order to control and limit the size of Z.sup.A.

(88) Similarity matrix Z.sup.A is shared with the target domain's provider.

(89) On the other hand, similarity matrix Z.sup.T is computed by the provider T using the item content data (i.e., the ICM) with a content-based algorithm implemented in the CBF module. In particular:

(90) using the same LSA-based technique described for OWFFA, matrix L is computed using the ICM as input. For each item i: in the i-th column of Z.sup.T, denoted by z.sub.i.sup.T, the similarities of i with all items jε[1, m] are stored; the column is computed as z.sub.i.sup.T=norm(L*).Math.norm(l.sub.i), with l.sub.i i-th column of L; the highest k non-zeros values of z.sub.i.sup.T is selected, setting the value of the remaining element of the i-th column to zeros; this step is required in order to control and limit the size of Z.sup.T.

(91) Once the two similarity matrices have been computed the target domain's provider can merge them into a unique item-to-item similarity matrix Z by adopting the following two-step process: for each column of Z.sup.A, the top-k the elements are copied into Z; thus, each column is filled with the highest k similarity values deriving from the collaborative filtering computed on the auxiliary domain data; for each column of Z.sup.T, the top elements are inserted into the corresponding empty (e.g., zeros) elements of Z in such a way to have, for each item, a total of 2 k non-zeros similarity values.

(92) Finally, matrix Z represents the recommendation model that has to be sent by the broadcast module to the set-top-box STB in order to generate recommendations. The storage requirements of the recommendation model Z linearly depends on the number of items. For each item it is needed to store k features, e.g., k 32-bit floats per item. For example, assuming a catalog of TV programs composed by 10,000 items, about 8 Mbytes are needed to store the recommendation model. Such 8-Mbyte model is regularly broadcast by Provider T to each of its set-top-boxes STBs in order to update the recommendation model.

(93) The STB, given the user rating vector r.sub.u with known ratings of the user u to be recommended, can compute score for any unrated item i as:
s.sub.ui=b.sub.ui+r.sub.u.Math.z.sub.i*
where z.sub.i indicates the i-th column of matrix Z.

(94) The complexity of computing the score depends on: (i) the number of known user ratings |r.sub.u| and (ii) the parameter k. The optimal k can be computed by means of cross-validation. However, in typical applications a value of k in the range [150, 300] generally leads to good-quality recommendations. In the worst case, the computation of s.sub.ui requires k.sub.s multiplications and k.sub.s sums, with k.sub.s equals to the minimum between |r.sub.u| and 2.Math.k. This makes also OWSIKNN feasible in any STB.

(95) Finally, the items with the highest scores will be recommended to the user by the STB.

(96) As can be evinced from the above-reported description, the system and method according to the invention allows to achieve the desired results.

(97) As a matter of fact, through the composition of a dual-module collaborative recommender system, a collaborative model can be applied also to broadcast one-way communication channels, so as to efficiently recommend items to users. The first module of the recommender system runs on a centralized computer connected to the Internet, which module can leverage external data sources to collect community based information required for collaborative recommendations, without any computational constrain. The external information gathered by the first module in a auxiliary domain, is transformed into a compact representation of users' tastes (the model) and easily broadcast to the set-top-boxes STB of the system. The second module, supplying the actual and final recommendation, can easily run on each user's STB giving a reliable recommendation even if the users is different from the users analyzed by first module.

(98) The key differentiating points and advantages of the invention over the prior art are:

(99) 1. Recommendations are generated on the STB on the basis of a recommendation model that is generated by a back-end service and regularly sent to the STB.

(100) 2. Advanced recommendations can be generated by STBs regardless their limited capability in terms of computation and memory.

(101) 3. The framework allows the use of both ‘content-based filtering’ and ‘collaborative filtering’ recommender systems, the latter not explored in prior art solutions.

(102) 4. Recommendations based on ‘Collaborative filtering’ can be generated by the STB on the basis of a collaborative recommendation model sent by the back-end service to the STB. Such model can either be built on the basis of data (e.g., ratings, user views) retrieved in alternative domains that work in two-way channels, or even be exchanged among content providers. This leads to a potential recommendation model market.

(103) 5. ‘Content-based’ recommendation algorithms are mainly based on the available metadata that describe the items. In particular, in the settings of TV programs, such metadata are usually extracted from the EPG (Electronic Programming Guide), where the available information does not typically go over the ‘genre’ (e.g., TV show, TV series, newscast). Poor metadata means poor recommendations. On the contrary, collaborative solutions applied according to the invention are known to be independent from the presence of metadata, and to be able to produce recommendations with a general quality higher than content-based approaches.

(104) Another advantage of the invention, is connected with privacy concerns. Traditional recommender systems collect and use sensible user information, representing a possible issue for privacy. The use of the invention on one-way distribution channels significantly changes this scenario because user preferences and activities are stored client-side (in the STB) and never shared in a centralized server, removing all privacy problems. Note that the model built with domain-A users' data and shared with provider T and all connected STBs does not contain any user-specific data, but only aggregate information of the customer base behavioral patterns, still preserving privacy.

(105) It is nevertheless understood that the invention is not limited to the particular embodiments illustrated above, which represent only a non-limiting example of the scope of the invention, but that a number of variants are possible, all within the reach of a person skilled in the field, without departing from the scope of the invention as defined by the attached claims.