Patent Publication Number: US-11023947-B1

Title: Generating product recommendations using a blend of collaborative and content-based data

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation-in-part of U.S. patent application Ser. No. 14/213,741 filed on Mar. 14, 2014, which claims the benefit of U.S. Provisional Application No. 61/798,813, filed Mar. 15, 2013, both of which are hereby incorporated by reference herein in their entireties, including but not limited to those portions that specifically appear hereinafter, the incorporation by reference being made with the following exception: In the event that any portions of the above-referenced applications are inconsistent with this application, this application supercedes said above-referenced application. 
    
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not Applicable. 
     BACKGROUND 
     1. The Field of the Present Disclosure 
     The present disclosure relates generally to electronic commerce (“e-commerce”), and more particularly, but not necessarily entirely, to systems and methods for making product recommendations to online consumers. 
     2. Description of Related Art 
     An important feature of e-commerce websites is to provide product recommendations to online users. “Collaborative filtering” is one technique of using click or purchase behavior of users to generate product recommendations for other users. In one form, collaborative filtering comprises a matrix with all items represented on the X axis and all of the same items represented on the Y axis. The data points in the matrix comprise the number of users who interacted (by clicking, purchasing, etc.) with both items. The website then keys off one item and uses it to recommend other items highly correlated to it in the user behavior matrix. These user correlations provide very effective recommendations generally accepted to be the most effective on e-commerce websites. 
     An exemplary matrix  10  used in collaborative filtering is shown in  FIG. 1 . Products P 1 -PN are listed along the X axis. The same products, i.e., products P 1 -PN, are also listed along the Y-axis. The entries in the matrix represent the number of users who interacted with both the corresponding products in both the X and Y axes. Using the matrix, if a user expresses interest in a product on the X axis, other products with the highest recorded interest in the Y axis may be recommended to the user on an e-commerce website. 
     A disadvantage to this technique is that collaborative filtering only works when a statistically useful volume of users has interacted with the item. That is, an e-commerce website is unable to use collaborative filtering for some products due to lack of reliable data. 
     “Content-based recommendations” is another technique for recommending products to users. Content-based recommendations work off of a similar methodology as collaborative filtering but are somewhat more complex. In one form, the technique comprises a matrix stored in a database of all items but, instead of matching the item by correlation with user interest, it matches by correlation of item attributes (brand, price range, color, size, material, use, etc.). The website recommends those products that are most similar to the product(s) that the user has purchased or expressed an interest in. Accordingly, the various product attributes must be properly weighted so that the important attributes, from the viewpoint of the users, are assigned a higher worth. 
     Referring to  FIG. 2 , there is depicted an exemplary matrix  12  used in content-based recommendations. Products P 1 -PN are listed along the X axis. The same products, i.e., products P 1 -PN, are also listed along the Y axis. The entries in the matrix represent the number of similar product attributes between two products. Using the matrix, if a user expresses interest in a product in the X axis, other products with the highest number of similar attributes in the Y axis may be recommended to the user on an e-commerce website. 
     Advantageously, using content-based recommendations product recommendations can be generated for any item in the absence of historical user interaction. A major flaw, however, in this technique is that product attributes that attract a user&#39;s interest are often hard to classify in a systematic way. This makes the output of this technique useful, but often inferior, to product recommendations directly driven by user behavior through collaborative filtering. 
     It would be an improvement over the prior art to provide novel systems, methods, and computer-readable media that generate product recommendations to online users that provide the benefits of both collaborative filtering and content-based recommendations. 
     The prior art is thus characterized by several disadvantages that are addressed by the present disclosure. The present disclosure minimizes, and in some aspects eliminates, the above-mentioned failures, and other problems, by utilizing the systems, methods, computer-readable media and structural features described herein. 
     The features and advantages of the present disclosure will be set forth in the description that follows, and in part will be apparent from the description, or may be learned by the practice of the present disclosure without undue experimentation. The features and advantages of the present disclosure may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The features and advantages of the disclosure will become apparent from a consideration of the subsequent detailed description presented in connection with the accompanying drawings in which: 
         FIG. 1  depicts an exemplary data matrix for use in collaborative-based recommendations; 
         FIG. 2  depicted an exemplary data matrix used in content-based recommendations; 
         FIG. 3  is as block diagram of a product recommendation system according to an illustrative embodiment of the present disclosure; 
         FIG. 4  depicts an exemplary data matrix generated by a product recommendation system according to an illustrative embodiment of the present disclosure; and 
         FIG. 5  depicts a flow diagram of a process for providing product recommendations according to an illustrative embodiment of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     For the purposes of promoting an understanding of the principles in accordance with the disclosure, reference will now be made to the embodiments illustrated in the drawings, and specific language will be used to describe them. It will nevertheless be understood that no limitation of the scope of the disclosure is thereby intended. Any alterations and further modifications of the inventive features illustrated herein, and any additional applications of the principles of the disclosure as illustrated herein, which would normally occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the disclosure claimed. 
     In describing and claiming the present disclosure, the following terminology will be used in accordance with the definitions set out below. As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. As used in this specification and the appended claims, the terms “comprising,” “including,” “containing,” “characterized by,” and grammatical equivalents thereof are inclusive or open-ended terms that do not exclude additional, unrecited elements or method steps. 
     Referring now to  FIG. 3 , there is depicted a product recommendation system  20  for providing product recommendations to users. According to examples of embodiments of the present invention, the system  20  can be positioned to provide product recommendations on an online retailer/wholesaler website, sometimes referred to as an e-commerce website. For example, such a system  20  can include an online retailer or wholesale services e-commerce server. The system  20  may further include a product recommendation server  21  that includes a processor  22  and memory  23 . One or more second computers, e.g., user computers  27 , positioned remotely from and in communication with the product recommendation server  21  through an electronic communication network  30  such as the Internet or other internetwork. It will be appreciated that other intervening servers, such as an e-commerce server, may be interposed between the server  21  and the user computers  27 . 
     The system  20  can also include a product recommendation program  24  stored on a tangible computer medium, such as, for example, one or more various types of memory, such as, for example, memory  23  of the server  21 . The program  24  may contain instructions, that when executed by the processor  22 , cause the server  21  to recommend products to users on the remote computers  27 . The system  20  can also include a plurality of database servers (not shown) that warehouse data regarding e-commerce conducted through the system  20 . 
     As understood by those skilled in the art, the memory  23  of the server  21  can include volatile and nonvolatile memory known to those skilled in the art including, for example, RAM, ROM, and magnetic or optical disks, just to name a few. It should also be understood by those skilled in the art that, although illustrated as a single server, the illustrated configuration of the server  21  is given by way of example and that other types of servers or computers configured according to various other methodologies known to those skilled in the art can be used. The server  21  shown schematically in  FIG. 3  represents a server or server cluster or server farm and is not limited to any individual physical server. The server  21  may be part of a server cluster that provides an e-commerce website accessible from user computers  27 . The server site may be deployed as a server farm or server cluster managed by a server-hosting provider. The number of servers and their architecture and configuration may be increased based on usage, demand, and capacity requirements for the system  20 . 
     Similarly, the database servers (not shown) each represent a server or server cluster or server farm and are not limited to any individual physical server or configuration. As also understood by those skilled in the art, user computers  27  in these embodiments can be a laptop, desktop, personal digital assistants or PDAs, cell phones, servers, computers, smart phones, internet-enabled devices, or other types of computers. 
     As known and understood by those skilled in the art, the network  30  can include an internet or world wide web of a plurality of computers/servers in communication with one or more other computers through a communication network, and/or portions of a local or other area network. 
     As further understood by those skilled in the art, the program  24  can be in the form of microcode, programs, routines, and symbolic languages that provide a specific set or sets of ordered operations that control the functioning of the hardware and direct its operation. The program  24 , according to an illustrative embodiment of the present invention, also need not reside in its entirety in volatile memory, but can be selectively loaded, as necessary, according to various methodologies as known and understood by those skilled in the art. As further understood by those skilled in the art, the term “computer-readable medium” encompasses distribution media, intermediate storage media, execution memory of a computer, and any other medium or device capable of storing the program  24  implementing the functionality or processes of various embodiments of the present invention for later reading by a computer. 
     The program  24  can be copied from the computer-readable medium to a hard disk or a similar intermediate storage medium. When the program  24 , or portions thereof, is to be run, it can be loaded either from its distribution medium or its intermediate storage medium into the execution memory of the computer, configuring the computer to act in accordance with the functionality or method of various embodiments of this invention. All such operations are well known to those skilled in the art of computer systems. 
     According to an exemplary embodiment of the present invention, the product recommendation program  24  can include a set of instructions that, when executed by the processor  22 , cause the server  21 , to perform the operations of: providing a user one or more product recommendations regarding products for sale on an e-commerce website. The product recommendations may be displayed to users on the remote computers  27  on a webpage, as viewed, for example, on a display  26  of one or more remote user computers  27 , through the communication network  30 , e.g., Internet. 
     Product Recommendation 
     To generate product recommendations, the program  24  causes the server  21  to maintain, in an electronic database, user preference data that may include a product matrix generated using collaborative filtering. An exemplary product matrix  10  representing collaborative filtering is depicted in  FIG. 1 . In particular, the collaborative matrix represents all products on the X axis and all products on the Y axis. The data points in the matrix comprise the number of users who interacted (by clicking, purchasing, viewing, etc.) with both products. For example, a user that purchased one product also purchased another product. 
     The program  24  further causes the server  21  to further maintain, in an electronic database, attribute correlation data that may include a product matrix generated using product attributes. The attribute correlation data comprise an attribute-based matrix representing all products but, instead of matching the product by correlation of user interest, it matches according to correlation of item attributes (brand, price range, color, size, material, etc.). That is, the attribute correlation data indicate similarity of products based on their product attributes. An exemplary attribute-based matrix  12  is shown in  FIG. 2 . 
     The program  24  then causes the server  21  to form a blended matrix by combining the user preference data and the attribute correlation data. In particular, the program  24 , when executed by the processor  22 , may first normalize the collaborative matrix and the attribute-based matrix so that the measures of attribute similarity can be combined and appropriately weighted with measures of user preference correlations. 
     When blended together appropriately, wherever there is strong user preference data, those correlations will drive the recommendations with only minor input from other users. Where there is a weak collaborative filtering correlation or no collaborative filtering data, the product attributes play a larger role and improve the quality of recommendations for less popular products. 
     It will be appreciated that a significant obstacle in blending the output of two different similarity measures (such as the output of an item-item collaborative filter &amp; a content-based recommender) is that of distribution and scale. Some degree of normalization is desirable to preserve the strongest relationships under both measures for presentation to the user. Two exemplary algorithms to achieve this result are included below. 
     Algorithm I: Simple Scaling 
     Consider the output of some finite number of similarity calculations a, b, . . . , ordered from “most similar” to “least similar.” Without loss of generality, it may be assumed that the largest measures are most similar (in the alternate case one may apply an appropriate transformation to the output scores.) Select the first n recommendations in each case and label their scores a 1 , . . . , a n , b 1 , . . . , b n , . . . . Up to n missing values are allowable in each output (n may be different for each similarity output), as they will be accounted for in the scaling. Consider each of the n-dimensional vectors a, b, . . . (including potentially missing coordinates) as columns of matrix S. For each column of S do the following:
         1. Center each column: for column x, subtract the mean value of column x from each entry ( x =x− x ).   2. Scale each column: For column x divide each entry by the root mean square error for the column       

             (         x   ⋓     =           ∑   i     ⁢       x   ~     i   2         n   -   1           ,           
where the n non-missing values in vector  x  are the  x   i ).
         3. Assemble a new matrix whose columns are the vectors constructed in (2).       

     Each of the columns is now on the same scale, and one may now select the largest outputs from each algorithm for presentation as a blended algorithm. 
     Algorithm II: Quantile Normalization 
     As above, consider the output of some finite number of similarity calculations a, b, . . . , ordered from “most similar” to “least similar.” Without loss of generality, it may be assumed that largest measures are most similar (in the alternate case one may apply an appropriate transformation to the output scores.) Select the first n recommendations in each case and label their scores a 1 , . . . , a n , b 1 , . . . , b n , . . . . If missing values exist, then the outputs should either be filled with 0-score entries to pad all algorithm outputs to the same length, or one should truncate all outputs to the length of the shortest output list. Again, organize these into a matrix where the output scores are the columns.
         1. For each column, assign the rank (from largest to smallest) of each score. Retain these ranks for later use.   2. Rearrange each column such that it ranges from largest to smallest.   3. Calculate the arithmetic mean of each row to determine the row rank (again, from largest to smallest).   4. From (1), replace each value by the value for its rank calculated in (3).
 
After applying this method, each column is now drawn from an identical distribution and the largest scores may be selected for presentation to a user as a blended algorithm.
       

     Referring now to  FIG. 4 , there is depicted an exemplary matrix  100  generated from combining collaborative-based data and attribute correlation data. The matrix  100  has all products, P 1 -PN, represented on the X axis and all of the same products represented on the Y axis. The data points in the matrix  100  represent normalized user relevance values between the products, P 1 -PN. Using the matrix  100 , an e-commerce website keys off one item and uses it to recommend other items highly relevant to it in the matrix  100 . That is, the product in the column with the highest user relevance value is recommend to a user. 
     Referring now to  FIG. 5 , there is depicted a flow diagram depicting a process  200  for combining collaborative-based data and attribute correlation data. The process  200  may be performed by the processor  22  when executing the instructions contained in the program  24 . At step  202 , the process  200  provides user preference data and attribute correlation data for a catalog of products offered for sale on an e-commerce website. At step  204 , the process  200  normalizes the user preference data and attribute correlation data. At step  206 , the process  200  combines the normalized user preference data and attribute correlation data to generate product recommendation data. In an illustrative embodiment, the process  200  stores the product recommendation data in a table or matrix defined in a database stored on an electronic storage medium. At step  208 , the process  200  determines a user&#39;s interest in a first product based on the user&#39;s interactions with an e-commerce website. For example, the interaction may include the user placing the first product in an e-shopping cart for purchase or viewing an online product listing for the first product or purchasing the first product. At step  210 , the process  200  recommends a second product based on the first product and the product recommendation data. For example, the process  200  may display the second product, in the form of an advertisement, to the user on a webpage of an e-commerce website. 
     According to an illustrative embodiment, the present disclosure provides a system for providing product recommendations to a user of an e-commerce website, said system comprising: a processor; a memory coupled to the processor; computer-readable instructions stored in the memory, that when executed by the processor, cause the processor to generate product recommendations based on both (i) user preference data, and (ii) product attribute correlation data. The present disclosure further provides the system described above, wherein the computer-readable instructions are further operable, when executed, to cause the processor to track users&#39; website interactions. The present disclosure further provides the system described above, wherein the user preference data are generated using collaborative filtering. The present disclosure further provides the system described above, wherein the user preference data are based on user purchases. The present disclosure further provides the system described above, wherein the user preference data are based on user interactions with an e-commerce website. The present disclosure further provides the system described above, wherein the product attribute data are based on similar product attributes of products offered for sale online. The present disclosure further provides the system described above, wherein the product attributes comprise one or more of: brand information, price information, color information, and size information. The present disclosure further provides the system described above, wherein the product recommendations comprise products offered for sale through an e-commerce website. 
     According to an illustrative embodiment, the present disclosure provides a method of providing product recommendations to a user of an e-commerce website, the method comprising: processing user interactions with product data to generate user preference data; processing product attribute data to generate product attribute correlation data; processing the user preference data and the product attribute correlation data to generate product recommendation data; and generating a product recommendation for the user based on the product recommendation data. The present disclosure further provides the method described above, wherein the user interactions comprises one of clicks and views. The present disclosure further provides the method described above, wherein the product data define product listings regarding products offered for sale on an e-commerce website. The present disclosure further provides the method described above, wherein the product attribute data comprise information regarding similar product attributes of products offered for sale on the e-commerce website. The present disclosure further provides the method described above, wherein the product attributes comprise one or more of: brand information, price information, color information, and size information. The present disclosure further provides the method described above, further comprising storing the product recommendation data in a table or matrix. The present disclosure further provides the method described above, further comprising displaying the product recommendation on a webpage on a display of the user device. The present disclosure further provides the method described above, further comprising normalizing the user preference data and the product attribute correlation data. The present disclosure further provides the method described above, wherein the product attribute data comprise one or more of: brand information, price information, color information, and size information. The present disclosure further provides the method described above, wherein the product recommendation comprises at least one product offered for sale on the e-commerce website. The present disclosure further provides the method described above, wherein the product data comprise product listing information for products offered for sale on the e-commerce website. The present disclosure further provides the method described above, further comprising tracking user interactions with the product data. 
     Those having ordinary skill in the relevant art will appreciate the advantages provided by the features of the present disclosure. For example, it is a feature of the present disclosure to provide product recommendations to online visitors of an e-commerce website. 
     In the foregoing Detailed Description, various features of the present disclosure are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed disclosure requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the following claims are hereby incorporated into this Detailed Description of the Disclosure by this reference, with each claim standing on its own as a separate embodiment of the present disclosure. 
     It is to be understood that the above-described arrangements are only illustrative of the application of the principles of the present disclosure. Numerous modifications and alternative arrangements may be devised by those skilled in the art without departing from the spirit and scope of the present disclosure, and the appended claims are intended to cover such modifications and arrangements. Thus, while the present disclosure has been shown in the drawings and described above with particularity and detail, it will be apparent to those of ordinary skill in the art that numerous modifications, including, but not limited to, variations in size, materials, shape, form, function and manner of operation, assembly and use may be made without departing from the principles and concepts set forth herein.