The present teaching relates to methods, systems and programming for estimating user interests. Particularly, the present teaching is directed to methods, systems, and programming for estimating interests of a plurality of users with respect to a new piece of information.
Recommendation techniques are increasingly being used to provide relevant and enjoyable information to users based on users' feedback and stated preferences. One of the most common and effective recommendation techniques is Collaborative Filtering (CF), which relies only on past user behavior (e.g., previous transactions or feedback), and does not require creations of explicit profiles.
A problem arising when employing CF techniques is the cold-start problem, which is caused by the system's incapability of dealing with new items or new users due to the lack of relevant transaction history. To mitigate the item-cold problem of CF, existing techniques focus on utilizing external content on top of users' feedback. When a new item comes, the existing techniques leverage the new item's attributes and combine them with the CF model. Thus, existing works require the new item's content or context data that may not be available. In addition, traditional systems for estimating user interests with respect to a new item did not provide a way to effectively select a subset of users for obtaining interests with respect to the new item and estimate interests of all users based on the obtained interests.
Therefore, there is a need to provide a solution for estimating user interests with respect to a new item to avoid the above-mentioned drawbacks.
The teachings disclosed herein relate to methods, systems and programming for estimating user interests. More particularly, the present teaching is directed to methods, systems, and programming for estimating interests of a plurality of users with respect to a new piece of information.
In one example, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for estimating interests of a plurality of users with respect to a new piece of information is disclosed. Historical interests of the plurality of users are obtained with respect to one or more existing pieces of information. One or more users are selected from the plurality of users. Historical interests of the one or more users can minimize an objective function over the plurality of users. Interests of the one or more users are obtained with respect to the new piece of information. Estimated interests of the plurality of users are generated with respect to the new piece of information based on the obtained interests of the one or more users.
In another example, a system, having at least one processor, storage, and a communication platform connected to a network for estimating interests of a plurality of users with respect to a new piece of information is disclosed. The system comprises a user interest retriever, a reviewer selection unit, a review receiver, and a user interest estimation unit. The user interest retriever is configured to obtain historical interests of the plurality of users with respect to one or more existing pieces of information. The reviewer selection unit is configured to select one or more users from the plurality of users. Historical interests of the one or more users can minimize an objective function over the plurality of users. The review receiver is configured to obtain interests of the one or more users with respect to the new piece of information. The user interest estimation unit is configured to generate estimated interests of the plurality of users with respect to the new piece of information based on the obtained interests of the one or more users.
Other concepts relate to software for estimating interests of a plurality of users. A software product, in accord with this concept, includes at least one machine-readable non-transitory medium and information carried by the medium. The information carried by the medium may be executable program code data regarding parameters in association with a request or operational parameters, such as information related to a user, a request, or a social group, etc.
In one example, a machine-readable tangible and non-transitory medium having information recorded thereon for estimating interests of a plurality of users with respect to a new piece of information is disclosed. The information, when read by the machine, causes the machine to perform the following. Historical interests of the plurality of users are obtained with respect to one or more existing pieces of information. One or more users are selected from the plurality of users. Historical interests of the one or more users can minimize an objective function over the plurality of users. Interests of the one or more users are obtained with respect to the new piece of information. Estimated interests of the plurality of users are generated with respect to the new piece of information based on the obtained interests of the one or more users.
The methods, systems and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present disclosure describes method, system, and programming aspects of effective user interest estimation with respect to a new item or new piece of information. A system, e.g. a recommender system, may estimate user interests based on CF to provide better modeling of users and items associated with considerable rating history. The lack of historical ratings regarding a new item results in the item cold-start problem.
According to various embodiments of the present teaching, an item cold-start problem is considered without assuming any availability of context or content-based information. For example, a publisher has a set of customers, and is aware of those customers' historical ratings of existing items (movies, books, etc.). The publisher is interested in evaluating a new item of which ratings are not available yet. The present teaching allows the publisher (maybe via a CF-based interest evaluation engine) to select a predetermined number (e.g. B) of reviewers from a pool of available reviewers, and obtain ratings of the new item from the B reviewers. Then, the publisher estimates how the customers (including the non-selected reviewers) will rate the new item.
In this example, we assume the publisher has no prior knowledge about the new item, e.g. no information regarding context or content of the new item is available, when selecting the reviewers. In addition, to mitigate the reviewing period, the B reviewers are selected at once, so that the publisher does not have the luxury to receive some ratings and then to adaptively select additional reviewers based on those ratings.
In accordance with various embodiments of the present teaching, the budget-constrained reviewer selection problem is formulated as an optimization problem, in which the objective function stands for the prediction error of the users' ratings. For example, the B reviewers are selected because historical interests of the B reviewers can minimize an expected mean square error (MSE) between estimated interests and real interests of all reviewers with respect to the new item. Two algorithms for efficiently selecting the B reviewers will be disclosed in detail in the present teaching. After selecting the B reviewers and obtaining interests or ratings of the new item from the B reviewers, the publisher in the present teaching may generate estimated interests of all users based on the obtained interests, e.g. according to a least squares model.
The methods described in the present teaching can also be applied to the user cold-start problem. In this case, the system may select the items and request the new user to rate the selected items. Then the system may estimate the new user's CF vector based on the new user's rating and the CF vectors of the selected items, in a way to minimize the new user's rating MSE over the other items.
Additional novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The novel features of the present teachings may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
It can be understood by one skilled in the art that the above method for selecting users may be applied to any new piece of information including a new item, a new idea, a new thing, a new style, a new way, etc. In addition, interest of a user regarding a new piece of information may be represented in different ways, e.g. by a real number between 0 and 1, by an integer in a predetermined range (e.g. from 1 to 5), by a binary number that is either +1 or −1, or by symbols showing like or dislike as in
Users 310 may be of different types such as users connected to the network 320 via desktop computers 310-1, laptop computers 310-2, a built-in device in a motor vehicle 310-3, or a mobile device 310-4. A user 310-4 may receive a request for rating or proving a degree of interest regarding an item from the publisher 330 and/or to the CF-based interest evaluation engine 340 via the network 320. The user 310-4 may send information about the user's interest regarding the item to the publisher 330 and/or to the CF-based interest evaluation engine 340 via the network 320. The information may be sent either in an explicit way, e.g. giving a score representing a degree of interest regarding the item, or in an implicit way e.g. performing a behavior implying a degree of interest regarding the item.
The publisher 330 may provide different information and different items to the users 310 and collect interests of the users 310 regarding the information and items. In one example, the publisher 330 sends an interest request to the CF-based interest evaluation engine 340 via the network 320, and receives estimated interests of the users 310 with respect to some items.
The CF-based interest evaluation engine 340 can help the publisher 330 to collect the interests of the users 310, with respect to either an existing item or a new item. In this embodiment, the CF-based interest evaluation engine 340 directly connects to the network 320 and can communicate with the users 310 directly via the network 320.
The CF-based interest evaluation engine 340 can retrieve user interests from the user interest database 350. The user interest database 350 stores user interests, e.g. CF model vectors, for different users of the publisher 330. The stored user interests may include information related to different users' interests regarding different pieces of information, including but not limited to: the users' ratings, measurements e.g. click-through-rate (CTR) based on the users' historical behaviors, and the users' feedbacks in any form regarding a piece of information. The CF-based interest evaluation engine 340 can predict a user's interest based on the historical interests stored in the user interest database 350 and save the predicted or estimated interest into the user interest database 350.
The content sources 360 include multiple content sources 360-1, 360-2 . . . 360-3, such as vertical content sources. A content source 360 may correspond to a website hosted by an entity, whether an individual, a business, or an organization such as USPTO.gov, a content item provider such as cnn.com and Yahoo.com, a social network website such as Facebook.com, or a content feed source such as tweeter or blogs. The publisher 330 and the CF-based interest evaluation engine 340 may access information from any of the content sources 360-1, 360-2 . . . 360-3. For example, the publisher 330 may fetch content, e.g., a book, from a content source 360-1 to build a web page for publishing the book.
The interest request analyzer 502 in this example may receive an interest request from the publisher 330 and analyze the interest request to identify an item or a piece of information regarding which the interest is requested and/or to identify one or more users whose interests are requested. The analyzed information can be sent to the user interest retriever 504 by the interest request analyzer 502.
The user interest retriever 504 in this example receives the analyzed information from the interest request analyzer 502 and retrieves interests of users from the user interest database 350. The interests may include ratings and CF model parameters, e.g. latent factor vectors of users and items. The users available for rating or reviewing the requested item are called reviewers. In one embodiment, all users of the publisher 330 are reviewers. In another embodiment, reviewers are a subset of the users of the publisher 330, when e.g. the reviewers are online users among the users of the publisher 330. Then, the user interest retriever 504 may just retrieve interests of the available reviewers from the user interest database 350. After retrieving the interests, the user interest retriever 504 may send the retrieved interests to the reviewer selection unit 506.
In one situation, the interests are retrieved by the user interest retriever 504 based on the analyzed information. For example, when the interest request is for a given user's interest with respect to an existing item, this interest can be retrieved from the user interest database 350 if it is already available based on the historical data in the user interest database 350. If it is not available, the user interest retriever 504 may retrieve other users' interest with respect to the existing item, especially the users who had similar historical interests as the given user. In another situation, when the interest request is with respect to a new item regarding which no user interest has been stored in the user interest database 350, the user interest retriever 504 may retrieve historical interests of reviewers with respect to existing items from the user interest database 350.
The reviewer selection unit 506 in this example selects one or more reviewers from the available reviewers for collecting interests regarding the new item. In one embodiment, quantity of the selected one or more reviewers is a predetermined number. The selection is based on interests of the available reviewers regarding the existing items. In one example, a predetermined number of reviewers are selected so that historical interests of the selected reviewers minimize or maximize an objective function over the available reviewers. The objective function may include but not limited to an expected MSE between the estimated interests and real interests of the available reviewers with respect to the new item. Different objective functions can be applied to select the reviewers so that other reviewers' interests can be accurately estimated based on the interests of the selected reviewers. In one embodiment, the reviewer selection unit 506 selects the reviewers with knowledge of how to estimate other reviewers' interests based on the selected reviewers' interests. The reviewer selection unit 506 may send the information about the selected reviewers to the review requestor 508 and/or the user interest estimation unit 512.
The review requestor 508 in this example transmits a review request to each of the selected reviewers. For example, the review requestor 508 sends the selected reviewers a request for reviewing a new item, e.g. a new book. After checking the new book, each reviewer may provide a review regarding the new book in terms of: a rating, a comment, or a user activity. User activities may include either an action or inaction from a user or a reviewer. An action from a user may include pressing, swiping, clicking, rotating, zooming, scrolling, etc. An example of inaction from a user may be a dwell time within which the user does not provide any input. In one example, a review may also be provided by a user activity like clicking on a like or dislike icon with respect to the new book.
The review receiver 510 in this example receives review information from each of the selected reviewers, e.g. with respect to the new book. The review information represents interests of the selected reviewers with respect to the new book. The review receiver 510 may then send the received review information to the user interest estimation unit 512 for estimating interests of other reviewers and/or other users.
The user interest estimation unit 512 in this example receives information about the selected reviewers from the reviewer selection unit 506 and receives reviews of the selected reviewers from the review receiver 510. The user interest estimation unit 512 can estimate interests of all reviewers and/or all users with respect to the new item, based on the reviews from the selected reviewers. The user interest estimation unit 512 may analyze the reviews from the selected reviewers to determine interests, e.g. in terms of ratings, of the selected reviewers regarding the new item. The user interest estimation unit 512 may then predict or estimate all reviewers' interests regarding the new item.
In one example, the estimated interests for the selected reviewers are same as the obtained interests of the selected reviewers based on their reviews, so that the user interest estimation unit 512 just estimates interests of the remaining or non-selected reviewers. In another example, after generating estimated interests of the reviewers, the user interest estimation unit 512 may estimate interests of all users, including reviewers and non-reviewers (e.g. offline users), with respect to the new item based on the estimated interests of the reviewers.
According to various embodiments, the user interest estimation unit 512 may predict the interests of the non-selected reviewers based on an interest prediction model. For example, the interest prediction model may be a least squares model. In one embodiment, the reviewer selection unit 506 has knowledge of the interest prediction model to be used by the user interest estimation unit 512, when selecting the reviewers.
After generating the estimated interests of the reviewers or the users, the user interest estimation unit 512 may send the estimated interests to the publisher 330 as a response to the interest request. In one embodiment, the user interest estimation unit 512 may also save the estimated interests into the user interest database 350 for future use.
The reviewer selection unit 506 in this example includes a reviewer selection controller 710, system configuration 720, an identical noise distribution based objective calculator 730, a non-identical noise distribution based objective calculator 740, and a reviewer determiner 750. The reviewer selection controller 710 in this example receives interests of available reviewers from the user interest retriever 504. The interests in this example may include ratings and CF model parameters, e.g. latent factor vectors. A prediction model for a rating is derived as below for this example.
In this example, I denotes the set of all items; denotes the set of all reviewers; denotes the set of all users. The cardinality of these sets is denoted by |I|=m, and ||+||=n. Accordingly, denotes a rating matrix of size n*m, where each element in is a rating. A rating rui indicates the preference of item i by user u; and a rating rvi indicates the preference of item i by reviewer v, where high values mean stronger preference. While it is assumed here that and do not have an overlap, it can be understood that the same model can be applied when they have an overlap, or when is a subset of . In one embodiment, the matrix is sparse, when most users rate just a small subset of the items.
A Latent Factor Model (LFM) is used in this example to represent each rating rui as the following:
rui=μ+bi+bu+QiTPu+ϵui, (1)
where μ∈ the overall average rating in ; bi∈ and Qi∈k are the bias and the latent factor vector of item i, respectively; bu∈ and Pu∈k are the bias and the latent factor vector of user u, respectively; ϵui is a zero-mean noise term; and k denotes dimension of the latent factor vector. Intuitively, the term QiTPu captures the interaction between user u and item i, where high values imply stronger preference and vice versa. A rating rvi can be represented in a similar way by replacing u with v in the above equation (1).
A bias for a user may represent a user's personal (biased) habit about rating, e.g. always rating between 3 and 5 although the range of rating is 0-5. A bias for an item may represent users' bias to an item, e.g. a shirt of one football player is rated by fans of another football player. A latent factor vector described above includes k latent factors that are related to a user or an item. For example, although a user has always rated items between 3 and 5, a latent factor may indicate that the user can give a rating of 1 when a new item comes.
In one embodiment, the values of μ, bu, and Pu are given by the prediction model (1), i.e. available by the retrieved historical interests from the user interest database 350, whereas bi and Qi are unknown since the new item i was not considered while training the model. Thus, following the model, a predicted or estimated rating {tilde over (r)}ui of the rui regarding the new item i can be generated by estimating bi and Qi. Based on the estimates ({tilde over (b)}i,{tilde over (Q)}iT), an estimate {tilde over (r)}ui can be generated as the following:
{tilde over (r)}ui=μ+{tilde over (b)}i+bu+{tilde over (Q)}iTPu. (2)
An item cold-start problem can be formulated as below. Let i be a new item (i∉I), and denote by νi⊂ν the pool of available reviewers to rate the new item i. A budget constraint is denoted by B, where B is the number of reviewers to be selected to rate the item i, and use the notation νB for subsets of νi, which are of size B. Given a budget constraint B, the item cold-start problem may be formulated to select B reviewers to rate item i in order to optimize an objective function. In this example, the reviewer selection unit 506 selects B reviewers to rate item i in order to minimize the expected MSE on the set of users . Mathematically, the reviewer selection unit 506 selects the B reviewers by solving the following optimization problem:
where {tilde over (r)}ui depends on the set of selected B reviewers νBi and their ratings of item i.
The reviewer selection unit 506 is configured to estimate the MSE over the users set for each selection of B reviewers, without exposing their actual ratings, and make the selection according to equation (3). A solution to the equation (3) is related to system configuration 720 stored in the reviewer selection unit 506. According to one exemplary system configuration, the noise terms {ϵui} are assumed to be zero-mean, independent and identically distributed (i.i.d.); while according to another exemplary system configuration, the noise terms {ϵui} are assumed to be zero-mean and independent (but not identically distributed).
After receiving the interests of the available reviewers, the reviewer selection controller 710 identifies the reviewer set νi and generates a latent factor vector Pv for each reviewer. The reviewer selection controller 710 retrieves system configuration 720 to determine whether the noise terms are assumed to be identically distributed. If so, the reviewer selection controller 710 sends information about the reviewer set and the generated latent factor vectors to the identical noise distribution based objective calculator 730 and the reviewer determiner 750 for selecting the B reviewers. Otherwise, the reviewer selection controller 710 sends information about the reviewer set and the generated latent factor vectors to the non-identical noise distribution based objective calculator 740 and the reviewer determiner 750 for selecting the B reviewers. In one embodiment, the reviewer selection controller 710 also sends system configuration to the non-identical noise distribution based objective calculator 740 and the reviewer determiner 750 for selecting the B reviewers.
When the noise terms {ϵui} are assumed to be i.i.d., the optimization problem considered in equation (3) can be reduced to the following simpler problem:
where PB denotes a matrix whose columns correspond to the latent factor vectors PB′ for υ∈νBi; [ϵui]=0; and [ϵui2]=σ2.
The identical noise distribution based objective calculator 730 and the reviewer determiner 750 cooperate to select B reviewers by solving an optimization problem, e.g. the one in equation (3) or the one in equation (4). As shown in the above equation (4), one method to select B reviewers is to minimize the term Trace((PBPBT)−1) which represents the error originating from a sub-optimal choice of the item's parameters, i.e., from the distance between (bi,QiT) and ({tilde over (b)}i,{tilde over (Q)}iT). In accordance with one embodiment, the identical noise distribution based objective calculator 730 and the reviewer determiner 750 select the B reviewers according to the following method, where νBALG\vj denotes a subset of reviewer set νBALG when the reviewer vj is excluded; PB\υ
This Method 1 may be realized by the identical noise distribution based objective calculator 730 and the reviewer determiner 750.
The νBALG reviewer subset generator/updater 802 in this example generates νBALG with an initial value νi based on the identified reviewers at the reviewer selection controller 710, and updates νBALG by removing a reviewer v determined according to the Method 1. The PB matrix generator/updater 804 in this example generates the matrix PB based on latent factor vectors generated at the reviewer selection controller 710, and updates PB by removing one column corresponding to the reviewer v determined according to the Method 1.
The objective function calculation unit 808 in this example receives latent factor vectors Pv from the reviewer selection controller 710, the updated νBALG from the νBALG reviewer subset generator/updater 802 and the updated PB from the PB matrix generator/updater 804. The objective function calculation unit 808 calculates an objective function according to an objective function model 809 by removing a reviewer v which is determined by the reviewer determiner 750. The reviewer determiner 750 may ask the objective function calculation unit 808 to try each reviewer in νBALG one by one in a predetermined order, based on known information of the reviewers or historical experience. The objective function model 809 may include but not limited to models according to equation (3), equation (4), and the equation described in line 5 of Method 1. After the objective function calculation unit 808 obtains each objective value by excluding each reviewer v, the objective function calculation unit 808 may send the objective values to the reviewer determiner 750. The reviewer determiner 750 may determine a reviewer vj with respect to which an optimal objective value can be achieved. For example, in Method 1, the reviewer vj should be selected to minimize the value Trace((PB\υPB\υT)−1). The objective function calculation unit 808 receives information about the selected reviewer vj from the reviewer determiner 750, sends the information to the νBALG reviewer subset generator/updater 802 for updating the νBALG and sends the information to the PB matrix generator/updater 804 for updating the PB. This happens iteratively as described in the Method 1 until the number of reviewers in the νBALG is reduced to the budget B, which can be controlled by the objective function calculation unit 808 or by the reviewer determiner 750. After the B reviewers are selected, the objective function calculation unit 808 sends the updated νBALG and the updated PB to the reviewer determiner 750. The reviewer determiner 750 then obtains a list of selected reviewers from the updated νBALG and sends it to the review requestor 508 for requesting reviews or ratings. The reviewer determiner 750 may also obtain interests or ratings of the selected reviewers from the updated PB and sends them to the user interest estimation unit 512 for estimating interests of other reviewers or users.
In another embodiment, the objective function calculation unit 808 sends the objective value corresponding to a reviewer v to the reviewer determiner 750 immediately after obtaining the objective value. The reviewer determiner 750 always keeps the optimal (minimal in terms of Method 1) value corresponding to reviewer vj among the received objective values. If a new objective value corresponding to reviewer v is smaller than the current optimal value at the reviewer determiner 750, the reviewer determiner 750 will update the optimal value with the received objective value, and update the reviewer vj with the reviewer v.
At 902, system configuration is retrieved. At 904, noises are determined to be identically distributed. At 906, user interests of available reviewers are obtained, e.g. in terms of ratings. At 908, the reviewer set νi including all available reviewers is identified. At 910, a reviewer subset νBALG is generated and initially set up with νi. At 912, a latent factor vector Pv is generated for each reviewer v. At 914, a matrix PB is generated with initial value Pν
At 916, a matrix PB\υ is generated for each reviewer v by excluding the column corresponding to v from the matrix PB. At 918, an objective function value is calculated based on each matrix PB\υ. At 920, the reviewer vj is determined to minimize the objective function. At 922, the reviewer set νBALG is updated with νBALG\υj by removing the reviewer vj from νBALG. At 924, the matrix PB is updated with PB\υ
At 926, it is checked whether the number of reviewers in νBALG is larger than the budget B. If so, the process goes back to 916 to determine another reviewer for removing from νBALG. Otherwise, the process goes to 928, where the reviewers in νBALG are selected for reviewing the new item i. At 930, the list of reviewers in νBALG and their interests or ratings are sent for collecting reviews and estimating interests.
It can be understood that the order of steps in
Back to
where PB denotes a matrix whose columns correspond to the latent factor vectors Pυ′ for υ∈νBi; CB denotes the square root of the covariance matrix that corresponds to ϵui for υ∈νBi; [ϵui]=0; and [ϵui2]=σu2.
The non-identical noise distribution based objective calculator 740 and the reviewer determiner 750 cooperate to select B reviewers by solving an optimization problem, e.g. the one in equation (3) or the one in equation (5). As shown in the above equation (5), one method to select B reviewers is to minimize the term Trace((PBCB−2PBT)−1) which represents the error originating from a sub-optimal choice of the item's parameters, i.e., from the distance between (bi,QiT) and ({tilde over (b)}i,{tilde over (Q)}iT) when the noise terms are not identically distributed. In accordance with one embodiment, the non-identical noise distribution based objective calculator 740 and the reviewer determiner 750 select the B reviewers according to the following method, where Cν
This Method 2 may be realized by the non-identical noise distribution based objective calculator 740 and the reviewer determiner 750.
The νBALG reviewer subset generator/updater 802 in this example generates νBALG with an initial value νi based on the identified reviewers at the reviewer selection controller 710, and updates νBALG by removing a reviewer v determined according to the Method 2. The PB matrix generator/updater 804 in this example generates the matrix PB based on latent factor vectors generated at the reviewer selection controller 710, and updates PB by removing one column corresponding to the reviewer v determined according to the Method 2. The CB matrix generator/updater 806 in this example generates the matrix CB based on system configuration about the noise terms ϵui for υ∈νBi, and updates CB with CB\υ
The 818 in this example receives latent factor vectors Pv from the reviewer selection controller 710, the updated νBALG from the νBALG reviewer subset generator/updater 802, the updated PB from the PB matrix generator/updater 804, and the updated CB from the CB matrix generator/updater 806. The 818 calculates an objective function according to an objective function model 819 by removing a reviewer v which is determined by the reviewer determiner 750. The reviewer determiner 750 may ask the 818 to try each reviewer in νBALG one by one in a predetermined order, based on known information of the reviewers or historical experience. The objective function model 819 may include but not limited to models according to equation (3), equation (5), and the equation described in line 5 of Method 2. After the 818 obtains each objective value by excluding each reviewer v, the 818 may send the objective values to the reviewer determiner 750. The reviewer determiner 750 may determine a reviewer vj with respect to which an optimal objective value can be achieved. For example, in Method 2, the reviewer vj should be selected to minimize the value Trace((PB\υCB\υ−2PB\υT)−1). The 818 receives information about the selected reviewer vj from the reviewer determiner 750, sends the information to the νBALG reviewer subset generator/updater 802 for updating the νBALG, sends the information to the PB matrix generator/updater 804 for updating the PB, and sends the information to the CB matrix generator/updater 806 for updating the CB. This happens iteratively as described in the Method 2 until the number of reviewers in the νBALG is reduced to the budget B, which can be controlled by the 818 or by the reviewer determiner 750. After the B reviewers are selected, the 818 sends the updated νBALG and the updated PB to the reviewer determiner 750. The reviewer determiner 750 then obtains a list of selected reviewers from the updated νBALG and sends it to the review requestor 508 for requesting reviews or ratings. The reviewer determiner 750 may also obtain interests or ratings of the selected reviewers from the updated PB and sends them to the user interest estimation unit 512 for estimating interests of other reviewers or users. In this example, the reviewer determiner 750 may also send the user interest estimation unit 512 information about system configuration including CB.
In another embodiment, the 818 sends the objective value corresponding to a reviewer v to the reviewer determiner 750 immediately after obtaining the objective value. The reviewer determiner 750 always keeps the optimal (minimal in terms of Method 2) value corresponding to reviewer vj among the received objective values. If a new objective value corresponding to reviewer v is smaller than the current optimal value at the reviewer determiner 750, the reviewer determiner 750 will update the optimal value with the received objective value, and update the reviewer vj with the reviewer v.
At 902, system configuration is retrieved. At 905, noises are determined to be not identically distributed. At 906, user interests of available reviewers are obtained, e.g. in terms of ratings. At 908, the reviewer set νi including all available reviewers is identified. At 910, a reviewer subset νBALG is generated and initially set up with νi. At 912, a latent factor vector Pv is generated for each reviewer v. At 914, a matrix PB is generated with initial value Pν
At 916, a matrix PB\υ is generated for each reviewer v by excluding the column corresponding to v from the matrix PB. At 917, a matrix CB\υ is generated for each reviewer v by excluding v from νBALG. At 919, an objective function value is calculated based on each matrix PB\υ and matrix CB\υ. At 920, the reviewer vj is determined to minimize the objective function. At 922, the reviewer set νBALG is updated with νBALG\υj by removing the reviewer vj from νBALG. At 924, the matrix PB is updated with PB\υ
At 926, it is checked whether the number of reviewers in νBALG is larger than the budget B. If so, the process goes back to 916 to determine another reviewer for removing from νBALG. Otherwise, the process goes to 928, where the reviewers in νBALG are selected for reviewing the new item i. At 930, the list of reviewers in νBALG and their interests or ratings are sent for collecting reviews and estimating interests.
It can be understood that the order of steps in
It can also be understood that methods other than Greedy Selection 1 and Greedy Selection 2 can be used for selecting the B reviewers. For example, the B reviewers can be selected randomly from the pool of available reviewers according to a random selection method. In another example, the B reviewers can be selected based on number or frequency of ratings provided by each reviewer, according to a frequent rating method. In another example, the B reviewers can be selected based on variance or diversity of ratings provided by each reviewer, according to an edgy rating method. In another example, the B reviewers can be selected by inviting all reviewers to review the new item and consider chronologically the first B reviewers who returned their ratings, according to an early birds rating method. In yet another example, the B reviewers can be selected by splitting all reviewers into multiple clusters and select reviewers from each cluster, according to a clustering method.
The interest analyzing unit 1002 in this example receives and analyzes the interests of selected reviewers from the reviewer selection unit 506. Based on the analysis, the interest analyzing unit 1002 may determine information about the selected reviewers, including their historical interests in terms of bias and/or latent factor vectors. The interest analyzing unit 1002 sends the analyzed interest to the user interest prediction unit 1006 for estimating and predicting interests of other users.
The rating generator 1004 in this example receives item reviews regarding the new item i from the selected reviewers and generate ratings based on the reviews. In one embodiment, the reviews from the selected reviewers include ratings about the item i. In another embodiment, the reviews from the selected reviewers do not include ratings about the item i; while the rating generator 1004 may generate a rating by analyzing a review. For example, a higher rating can be generated for a review including more praising words about the item i than other reviews. The rating generator 1004 can send the ratings to the user interest prediction unit 1006 for estimating and predicting interests of other users based on the generated ratings for the selected reviewers.
The user interest prediction unit 1006 in this example estimates interests of all users regarding item i based on the obtained interests of the selected reviewers regarding the item i from the rating generator 1004 and/or the historical interests of the selected reviewers from the interest analyzing unit 1002. In accordance with one embodiment, the user interest estimation unit 512 does not include the rating generator 1004 and the interest analyzing unit 1002. The selected reviewers' reviews (e.g. ratings) and historical interests (e.g. CF model parameters) can directly go into the user interest prediction unit 1006.
The user interest prediction unit 1006 may select one of the interest prediction models 1005 stored in the user interest estimation unit 512. An interest prediction model defines how to predict interests of users based on obtained interests. For example, an interest prediction model may be a linear squares model which minimizes the MSE over the set νBi. The linear squares model solves the following problem:
When the noise terms are i.i.d., an analytical solution to this minimization problem yields the following estimator:
where Pυ′ is a concatenated column vector (1,PυT)T. As discussed above, for each rating rui in equation (1), the unknowns are bi and Qi. Therefore, based on estimated bi and Qi, a rating of any user regarding item i can be estimated according to equation (2).
In case the term Συ∈ν
The user interest reporter 1008 in this example generates a user interest report based on the estimated user interests or ratings from the user interest prediction unit 1006. The report includes but not limited to: information about the selected reviewers' interests regarding the new item that are obtained via request, information about the other reviewers' interests regarding the new item that are estimated by the user interest prediction unit 1006, information about the other users' interests regarding the new item that are estimated by the user interest prediction unit 1006 (if some users are not reviewers), and/or information about historical interests of users regarding existing items. In one embodiment, the user interest reporter 1008 may send the report to the publisher 330 as a response to the interest request.
The estimators according to equations (7) and/or (8) can be realized by the user interest prediction unit 1006.
The νBi reviewer subset identifier 1104 in this example identifies the selected reviewer subset νBi based on the analyzed interest from the interest analyzing unit 1002. The Pv vector generator 1102 in this example generates vectors Pv for the selected reviewers in the subset νBi, based on the analyzed interest from the interest analyzing unit 1002. The bv bias generator 1106 in this example generates bias bv for each selected reviewer v in νBi based on the analyzed interest from the interest analyzing unit 1002. The information identified and generated at the Pv vector generator 1102, the νBi reviewer subset identifier 1104 and the bv bias generator 1106 are sent to the user rating predictor 1108 for predicting ratings of other users.
The user rating predictor 1108 in this example receives average rating μ through the analyzed interest from the interest analyzing unit 1002. The user rating predictor 1108 in this example also receives ratings rvi of each selected reviewer v in νBi from the rating generator 1004 and retrieves a least squares model from the interest prediction models 1005. Based on information received, the user rating predictor 1108 estimates or predicts ratings of users for the new item i, according to the retrieved least square model and following the estimator in equation (7) or (8). The user rating predictor 1108 then sends the predicted ratings to the user interest reporter 1008 for generating a user interest report and/or stores the predicted ratings to the user interest database 350 for future use. The user rating predictor 1108 may also store other CF model parameters, e.g. latent factor vectors, in the user interest database 350 for future use.
Starting at 1202, interests of selected reviewers are received and analyzed. At 1204, a least squares model is selected for rating prediction. At 1206, a latent factor vector Pv is obtained for each selected reviewer. At 1208, reviewer subset νBi is obtained. At 1210, the average rating μ for all users is obtained. At 1212, bias bv for each selected reviewer is obtained.
At 1214, rating rvi is obtained for new item i from each selected reviewer. At 1216, ratings of users for new item i are predicted based on the obtained ratings and historical interests included in the biases and latent factor vectors. Optionally at 1218, the obtained ratings and the predicted ratings are saved in a database, e.g. the user interest database 350. At 1220, a user interest report including estimated interests is generated. At 1222, the user interest report is sent as a response to the interest request.
If the noise terms are independent but not identically distributed, an analytical solution to the minimization problem in equation (6) yields the following estimator:
({tilde over (b)}i,{tilde over (Q)}iT)=rBTCB−2PBT(PBCB−2PBT)−1, (9)
where again, CB denotes the square root of the covariance matrix that corresponds to ϵυi for υ∈νBi.
The estimator according to equation (9) can be realized by the user interest prediction unit 1006, in accordance with another embodiment.
The νBi reviewer subset identifier 1104 in this example identifies the selected reviewer subset νBi based on the analyzed interest from the interest analyzing unit 1002. The Pv vector generator 1102 in this example generates vectors Pv for the selected reviewers in the subset νBi, based on the analyzed interest from the interest analyzing unit 1002. The bv bias generator 1106 in this example generates bias bv for each selected reviewer νBi in based on the analyzed interest from the interest analyzing unit 1002. The CB matrix obtainer 1107 in this example obtains matrix CB based on the analyzed interest from the interest analyzing unit 1002. As discussed above, the reviewer determiner 750 may also send information about system configuration including CB that can be analyzed by the interest analyzing unit 1002 and included in the analyzed interest to the user interest estimation unit 512. The information identified and generated at the Pv vector generator 1102, the νBi reviewer subset identifier 1104, the bv bias generator 1106 and the CB matrix obtainer 1107 are sent to the user rating predictor 1108 for predicting ratings of other users.
The user rating predictor 1108 in this example receives average rating μ through the analyzed interest from the interest analyzing unit 1002. The user rating predictor 1108 in this example also receives ratings rvi of each selected reviewer v in νBi from the rating generator 1004 and retrieves a least squares model from the interest prediction models 1005. Based on information received, the user rating predictor 1108 estimates or predicts ratings of users for the new item i, according to the retrieved least square model and following the estimator in equation (9). The user rating predictor 1108 then sends the predicted ratings to the user interest reporter 1008 for generating a user interest report and/or stores the predicted ratings to the user interest database 350 for future use.
Starting at 1202, interests of selected reviewers are received and analyzed. At 1204, a least squares model is selected for rating prediction. At 1206, a latent factor vector Pv is obtained for each selected reviewer. At 1208, reviewer subset νBi is obtained. At 1210, the average rating μ for all users is obtained. At 1212, bias bv for each selected reviewer is obtained. At 1213, matrix CB is obtained when noises are non-identically distributed.
At 1214, rating rvi is obtained for new item i from each selected reviewer. At 1216, ratings of users for new item i are predicted based on the obtained ratings and historical interests included in the biases and latent factor vectors. Optionally at 1218, the obtained ratings and the predicted ratings are saved in a database, e.g. the user interest database 350. At 1220, a user interest report including estimated interests is generated. At 1220, the user interest report is sent as a response to the interest request.
It can be understood that other interest prediction models can be used to generate other estimators for ({tilde over (b)}i,{tilde over (Q)}iT). For example, a mean rating predictor can be used to estimate bi and Qi as ({tilde over (b)}i,{tilde over (Q)}iT)=(0,0T). In another example, an item bias predictor can be used to estimate bi and Qi as the following:
In yet another example, a similarity based predictor can be used to yield the following estimator for bi and Qi:
where γ is a predetermined threshold (e.g. 4 or 5).
To implement the present teaching, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems, and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to implement the processing essentially as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment and as a result the drawings should be self-explanatory.
The computer 1600, for example, includes COM ports 1602 connected to and from a network connected thereto to facilitate data communications. The computer 1600 also includes a CPU 1604, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 1606, program storage and data storage of different forms, e.g., disk 1608, read only memory (ROM) 1610, or random access memory (RAM) 1612, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU 1604. The computer 1600 also includes an I/O component 1614, supporting input/output flows between the computer and other components therein such as user interface elements 1616. The computer 1600 may also receive programming and data via network communications.
Hence, aspects of the method of user interest estimation, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another. Thus, another type of media that may bear the software elements includes optical, electrical, and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the dynamic relation/event detector and its components as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Number | Name | Date | Kind |
---|---|---|---|
8301692 | Hamaker | Oct 2012 | B1 |
20030236734 | Guler | Dec 2003 | A1 |
20060074830 | Mojsilovic | Apr 2006 | A1 |
20100250556 | Park | Sep 2010 | A1 |
20110112981 | Park | May 2011 | A1 |
Entry |
---|
“An Efficient Neighbourhood Estimation Technique for Making Recommendations” Li_tung Weng et al Springer-Verlag Berlin Heidelberg 2009 (Year: 2009). |
Arkadiusz Paterek, Improving regularized singular value decomposition for collaborative filtering, KDDCup.07 Aug. 12, 2007, San Jose, California, USA. |
Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model, KDD'08, Aug. 24-27, 2008, Las Vegas, Nevada, USA. |
Natalie Aizenberg, Build Your Own Music Recommender by Modeling Internet Radio Streams, International World Wide Web Conference Committee, (IW3C2), '2012 Lyon, France. |
Michal Aharon, Dynamic Personalized Recommendation of Comment-Eliciting Stories, RecSys'12, Sep. 9-13, 2012, Dublin, Ireland. |
Number | Date | Country | |
---|---|---|---|
20160110646 A1 | Apr 2016 | US |