The present invention is related to data systems and more particularly to recommendation systems utilized in data systems.
As more and more consumers have turned to the Internet to shop for goods, retailers have incorporated electronic commerce (e-commerce) systems into their marketing strategies to reach this vast market of potential consumers. In addition, e-commerce has given rise to a new form of marketing wherein sales transactions with consumers are almost exclusively handled electronically through the Internet. Many retail e-commerce systems incorporate recommendation systems to provide product recommendations to buyers or potential buyers.
A recommendation system is a system that recommends items to a user based on e.g., the user's observed behavior or the behavior of other users. This behavior may include past transactions of the user (e.g., the user's shopping behavior, documents viewed by the user, web pages visited by the user), a request from the user to provide recommendations, or the past transactions or requests of other uses. Recommendation systems may be deployed in a variety of environments including e-commerce, corporate intranets to e.g., provide help in finding expertise within a corporation, medical applications where e.g., patients are matched to doctors, and customer relationship management (CRM) systems where e.g., customer problems may be matched to certain experts within a support organization.
Many techniques are available that may be implemented in a recommendation system to produce recommendations for users. One such technique is described in P. Drineas, et al., “Competitive Recommendation Systems,” Proceedings 34th Association for Computing Machinery (ACM) Symposium on Theory of Computing (STOC), 2002, pp. 82-90. This technique employs a centralized solution for providing recommendations that is based on matrix reconstruction. The technique assumes that a user has a preference among all products presented to the user and that the preference may be represented by a real-valued number. Further, the technique assumes that most users have preferences which are close to one of a few dominant but unknown types. The technique chooses a committee of users, asks them to try various sets of product, uses their responses to classify the users according to type and uses the types to recommend products to the users. The technique maintains a preference matrix which represents the preferences of all the users.
One problem with the above-described technique is that user classification is based on powerful algebraic methods that are used to approximate the preference matrix. These methods are on the order of O(m·n) time complexity, wherein “O” is conventional big-O notation for “on the order of,” “m” is a number of users and “n” is a number of products. In systems where there are many users and many products, this technique may not be practical due to the high time complexity and computing power needed to provide recommendations.
The present invention overcomes shortcomings associated with the prior art by incorporating a technique for recommending products to a computer user that is less than O(m·n) in time complexity. According to the inventive technique, the computer user requests a recommendation for a product from a recommendation system. A recommended product is determined by the recommendation system using a technique whose time complexity is less than O(m·n). The recommended product is then presented to the computer user.
Illustratively, one of two techniques is used to determine the recommended product. A first technique involves (a) forming a committee of recommenders from a set of all recommenders, (b) having each recommender in the committee probe (test) all products in a set of products to identify a product to recommend and (c) generating the list of recommended products from products recommended by the recommenders in the committee. A second technique involves (a) “flipping a coin,” (b) if the results are “heads,” selecting a product at random to recommend, if the results are “tails,” choosing a recommender at random and recommending the product recommended by the chosen recommender.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
A description of preferred embodiments of the invention follows.
Processor 230 is illustratively a conventional processor that contains logic for executing instructions and manipulating data contained in memory 220. In addition, processor 230 contains logic that enables it to transfer data between the network interface 240 for transfer to and from the network 100. Network interface 240 contains logic configured to interface node 200 with the network 100 and enable data to be transferred between node 200 and the data network 100. I/O interfaces 250 contain logic configured to interface various I/O devices (not shown), such as storage devices (e.g., disk storage unit), output devices (e.g., display unit, printer) and input devices (e.g., keyboard, mouse), with the processor 230 to enable the processor 230 to transfer data between the processor 230 and the I/O devices.
The memory 220 is a computer-readable medium organized as a random-access memory (RAM) and implemented using various RAM devices, such as dynamic-random-access memory (DRAM) devices. The memory is configured to hold various computer executable instructions and data structures including computer executable instructions and data structures that implement aspects of the present invention. It should be noted that other computer readable mediums, such as disk units and flash memory, may be configured to hold computer readable instructions and data that implement aspects of the present invention. In addition, it should be noted that various electromagnetic signals may be encoded to carry instructions and data that implement aspects of the present invention.
Memory 220 contains an operating system 222 and a recommendation process 226. The operating system 222 is a conventional operating system that enables processes, such as process 226, to, inter alia, be scheduled for execution and to access various devices on node 200, such as network interface 240. The recommendation process 226 contains computer executable instructions and data structures that, as will be described further below, implement a recommendation system in accordance with the present invention.
The number of preference types is a value that measures how similar the recommenders are with respect to the way they rate products. Each time a recommender tests a product, it assigns a rating to the product. The rating may be, for example, “good” or “not good”, an integer between 1 and N or a real value between 0 and 1. Each recommender is described by a type that determines, for each product, what rating the user will assign to the product upon testing it. The value of K is the number of distinct types needed to describe the recommenders. For example, suppose the possible ratings are “good” and “not good” indicating whether a product is good or not, there are three recommenders R1, R2, and R3 and two products P1 and P2. If R1 and R2 like P1 and R3 likes P2, then the number of preference types is 2, that is, the type vector (good, not good) describes R1's and R2's preferences of the products, and the type vector (not good, good) describes R3's preferences of the products.
At step 320, each recommender in the committee probes each product in the set of products to identify a best product from the set of products. At step 330, a list is generated that contains the best products identified by each recommender. The sequence ends at step 395.
In accordance with the present invention, a product recommendation may be determined using a distributed technique. According to this technique, a product recommendation is made by (a) randomly choosing a product and recommending the chosen product or (b) randomly choosing a recommender and recommending a product that is recommended by the chosen recommender.
The sequence begins at step 505 and proceeds to step 510 where a coin is tossed (flipped), wherein one side of the coin is “heads” and another side is “tails,” to choose a result of either heads or tails. Illustratively, a selection is made between a heads and a tails result such that a result of heads has an equal probability of occurring as a result of tails. At step 515, a check is performed to determine if the result of the coin toss is heads. If not, (i.e., the result of the coin toss is tails), the sequence proceeds to step 520, where a recommender from a set of recommenders is chosen, and step 525, where a product recommended by the chosen recommender is recommended. Illustratively, the recommender is chosen in a uniformly random manner and the product recommended is the best product the recommender has found from the set of products at this time.
If, at step 515, the result of the coin toss is heads, the sequence proceeds to step 530, where a product from a set of products is chosen, and step 535, where the chosen product is recommended. Illustratively, the product is chosen in a uniformly random manner. The sequence ends at step 595.
Referring to
Now, assume at step 515 that the result of the coin toss is tails. The sequence proceeds to step 525 where S1 chooses a product illustratively at random from the set of products and recommends the chosen product (step 535). Assume S1 chooses product P3 as represented by line 620. At step 535, S1 recommends product P3 to U1.
For example, referring to
Specifically, referring to
Returning to
Now assume as above except that server 200 determines a recommendation using the above-described distributed technique. At step 720, server 200 illustratively determines a product to recommend using the distributed technique described in
Now assume the result of the coin toss is tails. At step 515, server 200 proceeds to step 520 where it chooses a recommender, illustratively at random, and selects a product recommended by the recommender. Assume server 200 chooses recommender 110b. Illustratively, server 200 sends a message to recommender 110b to request its product recommendation. Assume recommender 10b recommends product P3. Recommender 110b illustratively responds by sending a message to server 200 containing the recommended product (i.e., P3). At step 730 (
While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.