The present invention relates to an on-line method and system for recommending articles and products to users, based on user input.
A recommender system is a type of electronic data processing system. A recommender system recommends items including, without limitation, articles and products to a user.
In this patent application, “article” means any content, data or material that can be delivered on-line, and includes but is not limited to text, such as newspaper or magazine articles, books and book chapters, advertisements, which has textual content that can be read by (or to) an end user, or translated for their viewing or reading. Articles could also include blogs, tweets, PowerPoints or any computer file with meaningful textual data (words) that could be read by a reader.
In this patent application, “product” refers to any tangible or intangible ware, good or service that can be purchased on-line including books, music, movies, television shows, applications, mobile apps, video games, electronics, home and garden products, toys, sports, kids and baby products, tools, grocery products, automobiles, computers, office products, among many others. It could also include a variety of services, including without limitation, health-related services, financial planning advice, legal services, accounting services, etc.
Current recommender systems have a number of disadvantages and present a number of problems.
One disadvantage relates to recommending appropriate products and services. For example, when a user accesses the Internet to browse or otherwise read or interact with articles, opportunities to recommend appropriate or suitable products or services—such as products and services relevant to the browsing session—may be limited. One challenge is that often there is no appropriate fit between a user's browsing activities and the products and services being offered, leading to lost opportunities for commerce and reduced engagement by the user. Often product offerings directed to a user are not personalized or customized. Product offerings may not give the opportunity to purchase specific goods or services, or goods or services of interest to the user. As well, product offerings are often unattractively displayed alongside content which is being recommended or displayed.
A goal of the present application may be to address one or more the above-noted disadvantages and weaknesses of current recommender systems.
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
The present invention is directed to a method of recommending articles and products to a user, in a data processing system.
In one embodiment of the present invention, the method comprises (a) receiving content of an article at an input of a processor; (b) the processor creating a frequency occurrence vector in relation to the content; (c) receiving an intermediate data set in relation to each of one or more products at an input of the processor; (d) the processor creating intermediate data vectors in relation to each of the one or more products from the intermediate data; (e) the processor comparing the frequency occurrence vector to the intermediate data vectors to determine a content similarity measure between the frequency occurrence vector and each of the intermediate data vectors; and, (f) providing at an output of the processor, a list comprising one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector. In another embodiment of the present invention, the steps of the method may be carried out using an electronic recommender system.
In one embodiment, the method may further comprise: (a) receiving content of a second article at the input of the processor; (b) repeating steps b-f of claim 1, thereby producing a second list comprising a second set of one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector of the content of the second article; (c) the processor applying weighting factors to the products found on the list and second list; (d) the processor adding the weighting factors associated with products found on both the list and the second list, thereby combining the lists; and, (e) the processor presenting a list comprising the one or more products having the highest aggregate weighting factors.
In a further embodiment of the present invention, the method uses a cosine similarity measure to determine the content similarity measure between the frequency occurrence vector and each of the intermediate data vectors.
In a further embodiment of the present invention, the information about the article may be included in the list comprising one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector. In a yet further embodiment of the present invention, a link to each vendor offering said one or more products for purchasing the said one or more products on the list may be included.
In one embodiment of the present invention, the list comprising one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector, is determined by selecting those products having the highest n content similarity measures, where n is an integer. In another embodiment, the list is determined by selecting those products having a content similarity measure which exceeds an operator determined threshold.
In a further embodiment of the present invention, the method further comprises displaying, in a user recommendation electronic widget, the list comprising the article and the one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector on a user display screen.
In a yet further embodiment, the method further comprises: (a) receiving from a user of said user recommendation electronic widget, a signal indicating the user's desire to purchase one of the one or more products; and, (b) transmitting to a vendor of said desired product, using a user recommendation electronic widget, a signal indicating the user's desire to purchase the said one desired product.
A method of recommending articles and products to a user and facilitating user purchase of one or more of the recommended products is also disclosed. The method comprises: (a) receiving at a user display a list comprising a recommended article and one or more recommended products; (b) receiving from a user using a user recommendation electronic widget, a signal indicating the user's desire to purchase one of the recommended products; (c) transmitting to a vendor of said desired product, using a user recommendation electronic widget, a signal indicating the user's desire to purchase the said product.
In a further embodiment of the present invention, a method of recommending products is disclosed. This method comprises: (a) receiving an article using an electronic user recommendation system; (b) receiving information for each of one or more products using said electronic user recommendation system; (c) determining a content similarity measure between the article and the information for each of said plurality of products using said electronic user recommendation system; and (d) generating a list comprising the article and one or more of said plurality of products having the highest content similarity measure using said electronic user recommendation system. In one embodiment, this method may further comprise: (a) receiving input from a plurality of users on items co-visited within a given time interval using an electronic user recommendation system; (b) receiving input from a new user on an item visited; and (c) generating a recommended product to the new user by selecting the product which is most frequently co-visited with the item visited by the new user. In another embodiment, this method may further comprise (a) determining the total number of unique visits for each item visited; and, (b) applying a weighting factor to the number of determined co-visits by dividing the number of co-visits by the number of visits to the item visited by the new user. In yet another embodiment, this method may comprise: (a) receiving input from a plurality of users on items co-visited within a given time interval using an electronic user recommendation system; (b) receiving a history of items visited by a new user using an electronic user recommendation system; (c) calculating a personal co-visitation score for the new user, according to the following formula using an electronic user recommendation system:
where (a, b, . . . n are items visited by the user); f(n,candidate) is the number of people who have co-visited item n and the candidate product; and, f(n) is the number of people who have visited item n; and n is the total number of items visited by the user.
In another aspect of the present invention, an electronic data processing system for recommending articles and products to a user is disclosed. The system comprises: (a) an article information receiver module, for receiving content of an article; (b) a correlation module for creating a frequency occurrence vector in relation to the article content; (c) a product information receiver module for receiving intermediate data in relation to each of one or more products; (d) said correlation module creating intermediate data vectors in relation to each of the products from the intermediate data; (e) said correlation module comparing the frequency occurrence vector to the intermediate data vectors to determine a content similarity measure between the frequency occurrence vector and each of the intermediate data vectors; and, (f) a multiplexer module for providing a list comprising the article and the one or more products associated with the intermediate data vectors having the highest content similarity measure to the frequency occurrence vector. In one embodiment, the correlation module also determines a correlation measure between the article and the one or more products and wherein the list comprises one or more products having the highest correlation measure. In a more particular embodiment, the correlation measure is determined by a co-visitation approach.
In a further embodiment of the present invention, an electronic data processing system for recommending articles and products to a user is disclosed wherein the list provided by the multiplexer module also comprises popular articles as determined by click-through data captured by a user recommendation electronic widget.
The present invention will be more readily understood from the following detailed description when read in conjunction with the accompanying drawings, in which:
It is a goal of the present invention to provide one or more of the following features or benefits:
As used in this application, the terms “step”, “module”, “component”, “model”, “system”, and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a module may be, but is not limited to being, a process running on a processor (CPU), a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a module. One or more modules may reside within a process and/or thread of execution and a module may be localized on one computer and/or distributed between two or more computers. Also, these modules can execute from various computer readable media having various data structures stored thereon. The modules may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one module interacting with another module in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). The processor (CPU) is the portion of a computer system that carries out the instructions of a computer program, and is the primary element carrying out the computer's functions.
The present invention is directed to an electronic data processing system for recommending items to a user and to a method of recommending items to a user.
The electronic data processing system for recommending items to a user and the method of recommending items to a user is suited for any computation environment. It may run in the background of a general purpose computer. In one aspect, it has CLI (command line interface), however, it could also be implemented with a GUI (graphical user interface) or together with the operation of a web browser or other application (or mobile “app”).
In an embodiment of the present invention, as is shown in
It has been discovered that user engagement may be increased if more articles are presented to the user. As such, there is a need to allow the user to view more articles 140a . . . 140n on the display 130 via the user recommendation electronic widget 130. However, the display 110 or user recommendation electronic widget 130 (or both) typically have size restrictions, and as such, there is a trade-off as to the number of articles 140a . . . 140n that may be presented versus the information about articles 140a . . . 140n that may be presented to the user.
In respect of this embodiment of the invention, it has been discovered that some content is more suited for either a “grid view” presentation (as shown in
According to one aspect of the present invention, and as shown in
One or more maximize buttons 194 may be provided to increase the working area of the user recommendation electronic widget 130 (the expanded and unexpanded views are shown in
Optionally, a grid view button 196 and a text view button 198 may be provided to permit the user to select from either a “grid view” presentation or a “text view” presentation, which is described in more detail below.
According to another aspect of the present invention, and as shown in
Although two types of presentations have been described in considerable detail, namely the “grid view” and “text view” presentations, the skilled reader will appreciate that other types of views fall within the scope of this patent. For example, additional views could include but are not limited to, showing just a thumbnail images (image view), showing additional details such as an article summary (detailed view), showing a flip style view (coverflow view), showing article titles with varying sizes depending on which ones are recommended the most (cloud view). If additional presentation views are available, then the skilled reader will appreciate that user interface elements such as toggles, sliders, or buttons may be used to select a current view or cycle between the views, etc.
Still with reference to
The information about articles 140a . . . 140n is stored in a database. A subset (e.g. selected portions) of the information is displayed according to default view, or the view selected (e.g. as selected by the buttons 196 or 198). The selected or default view is stored as a variable (not shown). The variable determines which view mode the current displayed articles (or items) have, and renders each article according to that view mode. When the user recommendation electronic widget 130 first loads, the variable is populated by the default view mode that is set for all articles. If the user changes the view mode, then the variable may be overwritten by the newly selected mode.
The user recommendation electronic widget 130 evaluates whether the selected view (e.g. whether it is a “grid view” according to button 196 or “text view” according to button 198), accesses the database to query the portion of information that should be displayed and then sends the result of the query data to display the portion of information on the selected view.
Articles 140a . . . 140n may comprise articles that are frequently viewed, listened to or read. They may also comprise articles that are new or more recent. In an embodiment, the user may apply one or more filters (via a user interface which is not shown). These filters could select categories of articles a user is interested in, for example, only sports-related articles or no sports-related articles.
An important aspect of the present invention is that upon receiving input from the user on one or more of articles 140a to 140n the system and method, in the same session, provides one or more new (refreshed or replacement) articles to the user in place of one or more articles 140a to 140n. For example, in an embodiment, where a user gives a thumbs-up to one or more of articles 140a to 140n, the system and method will replace one or more articles 140a to 140n with a new article based on this user input. Similarly, in an embodiment, where a user gives a thumbs-down to one or more of articles 140a to 140n, the system and method will replace one or more of articles 140a to 140n with a new article based on this user input. In an embodiment, where the user gives a thumbs-up, one or more replacement articles are provided which are similar to the article given the thumbs-up.
Where an article is given a thumbs-down, one or more replacement articles are provided which are similar to an article previously given a thumbs-up. In an embodiment, after an article is rated (given a thumbs-up or thumbs-down), it remains displayed until the user clicks on a related button or icon containing text such as “show another article”.
In step 205, information is received regarding articles of possible interest.
In step 210, information on articles of possible interest is displayed to a user.
In step 220, input is received from the user on one or more of the displayed articles. In an embodiment of the present invention, this input is a click (via a mouse or other input device) on a thumbs-up or thumbs-down icon.
In step 230, one or more of the displayed articles (or information about them) is replaced, based on the user input. Typically, a new article or articles would be provided.
As mentioned above, in an embodiment, when a user provides a thumbs-up, one or more similar articles are provided in user recommendation electronic widget 130. These replace articles originally displayed in widget 130. In an embodiment, a portion of articles 140a to 140n are used for this purpose.
The article receiving the thumbs-up may optionally be pre-processed in step 221. The data pre-processing 221 may comprise stop-word deletion, stemming and title and link extraction, which transforms or presents each article as a document vector in a bag-of-words data structure. With stop-word deletion, selected “stop” words (i.e. words such an “an”, “the”, “they” that are very frequent and do not have discriminating power) are excluded. The list of stop-words can be customized. Stemming converts words to the root form, in order to define words that are in the same context with the same term and consequently to reduce dimensionality. Such words may be stemmed by using Porter's Stemming Algorithm but other stemming algorithms could also be used. Text in links and titles from web pages can also be extracted and included in a document vector.
For each document, in step 225 of the invention a vector is created, setting out the frequency of occurrence of each of the words found in the article. In other words for each article of interest a vector is created {F1, F2, . . . FX}, where F1 represents the frequency in the document of the word, W1. Where a word is not found in the article, the frequency is zero.
In another embodiment, the vector may only be created for a portion of the article, such as the title and first paragraph, or for a brief description or abstract of it.
Vectors are then created using the same words, to represent other potentially similar articles. Then the vectors are compared in step 228 to determine those most similar. In an embodiment, a cosine similarity measure may be used to compare the two article vectors.
For example:
For example:
Other measures of similarity are also possible for example:
In another embodiment, the publisher of articles, such as a newspaper publisher, provides the information which is received in step 205. In another embodiment, this is provided via an extension to the RSS feed version 2.0. For each article, the publisher may provide the following information:
In another embodiment, articles (or information about them) are not displayed after the final date of publication received from the publisher.
Further information on the RSS specification can be found at http://cyber.law.harvard.edu/rss/rss.html. In another embodiment, the information from this RSS feed is stored on table 340 as partially shown in
In another embodiment, related to each article is a table, stored in a database, which stores stemmed words and the associated word count for each article. This is shown in
In another embodiment, each user is given a unique user ID, which is stored as a cookie on the user's computer system. Database 330 also contains a table 370, which sets out information such as the user ID, article ID, and the input or rating received on the article.
In another embodiment, database 330 also contains a table which stores the IDs for first and second articles and the associated similarity measure.
The format of tables described as occurring in database 330 are exemplary only—other formats are possible and within the scope of the present invention.
Recommender system 300 also contains a CPU 370 for calculating similarity measures and for carrying out other tasks.
When a user gives one or more of articles 140a . . . 140n a less favourable rating, for example, a thumbs-down, the system then checks table 370 and determines a previous article given a more favourable rating. One or more articles (or information about them) similar to a previously favourably rated article is then displayed to the user. The displayed articles will be ones meeting a specified criteria. The most similar article or articles may be displayed as replacement articles. Alternatively, articles exceeding a threshold level of the similarity metric may be displayed.
Turning now to
As with the previously mentioned embodiments, user recommendation electronic widget 130 may provide or display information about one or more items such as articles 140a . . . 140n that may be of interest to the user. In the embodiment shown in
An important aspect of the embodiments of
In another embodiment, the recommended products or services may be displayed in addition to recommended on-line content from one or more publishers. According to this embodiment, information about third party products or services may be displayed along with the information about articles in the user recommendation electronic widget 130. For example, if a user was reading an article about US national politics, then the user recommendation electronic widget 130 may display to them information about Sarah Palin's book Going Rogue or about David Plouffe's book, and then offer links to facilitate a purchase. Referring to
A participating vendor may offer referral fees and provide a tag to identify the source of the referral. The tag may be included in a request sent to the vendor when the user is sent to or links to the vendor's site in order to track referrals made from the user recommendation electronic widget 130 which may be necessary or facilitate referral fees paid by the vendor to the provider of the user recommendation electronic widget 130.
The information displayed about an article will typically be different than the information displayed about a product in the user recommendation electronic widget 130. For a product, the information capable of being displayed (also referred to as data items) about one or more products 141a . . . 141n may be different. As shown in
In the embodiments shown in
If an article or product is closed after the user clicks the close icon 182, then one or more replacement articles or products may be provided which are similar to an article previously favourably rated. In an embodiment of the invention, a queue or list of articles to be recommended is created. However, the user recommendation electronic widget 130 may not have space or room to display all the items in the queue or list. In this embodiment of the invention, the one or more replacement articles or products are the next highest ranked article or product from the queue or list that has not yet been displayed. Both the products or services available from vendor(s) and the articles from the publisher(s) may vary and update continuously, according to one of a number of approaches which correlate articles read to products or services recommended, as described in more detail below.
In step 205, information is received from one or more publishers regarding articles of possible interest. Alternatively, content may be obtained from crawling web-sites available via the internet. As is further illustrated in
The publisher of articles, such as a newspaper publisher, provides the information which is received in step 205. In another embodiment, this is provided via an extension to an RSS feed version 2.0. For each article, the publisher may provide the following information:
In another embodiment, articles (or information about them) are not displayed after the final date of publication received from the publisher.
Further information on the RSS specification can be found at http://cyber.law.harvard.edu/rss/rss.html. The World Wide Web Consortium (W3C) has published an RSS specification which can be found at http://validator.w3.org/feed/docs/rss2.html.
In step 405, information is received regarding products of possible interest. As is further illustrated in
For example, system 14000 may extract information through an online vendor's application public interface or API (e.g. Amazon's Product Advertising API gives access to its catalog of 20 million products). Different vendors may employ different APIs and, as is known to those skilled in the art, the API will have to be used differently in order to extract the desired information. A “tree walker” may periodically scan the vendor's categorization tree in which a product can appear in multiple tree nodes (categories) of the tree. The scan's frequency may be set to comply with the vendor's terms of service (e.g. at least once every 24 hours) or by a desire to have quite current information (e.g. where prices are quite volatile). The tree walker may “walk” the tree looking for popular products (or new products, etc.) in each category or in all categories (such as bestsellers). The tree walker may identify products that ought to be included in that category. Once popular products within each category are identified, descriptions or product attributes (such as price, average user rating, a link to the vendor, etc.) provided by the vendor or elsewhere may be downloaded or otherwise received. The system of the present invention is not restricted to an Amazon-type service; it may take any feed of data containing information about products for sale from any vendor. In this way, and as will be explained, a personalized/contextual advertisement can be provided for the vendor, provided that the vendor's catalog is, at least in part, available to provide data to the system.
The intermediate data associated with the product does not have to be provided, or provided solely by, the vendor of the product. It could also be provided by third parties. In this case, the system of the present invention would determine an association between the product and the third party intermediate data and then download the third party information via product receiver module 14040 for storage in database 14050, in association with that product.
In an embodiment of the invention, a location-based filter may be applied to include just products available in the jurisdiction of interest. For example, for products to be advertised among articles from a Canadian publisher targeting users from a particular city, a coarse-grain filter may be applied to include products for sale in that jurisdiction but not elsewhere. Sometimes, however, a local publication with a major local presence will target a global audience, and may not require such filtering. In an embodiment of the present invention, the user's IP address is employed in a way known to those skilled in the art to determine or estimate the user's geographical location. This geographical location can be interpreted by the location-based filter as is set out above.
An important feature of the recommendation system of the present invention is that a “description-based” correlation can be made between the items (be they products or articles) such as, for example, the content of articles found in database 14030 and the intermediate data, such as a product description, associated with each of the products found on database 14050 (in
This correlation between items is carried out in correlation module 14060 shown in
As is shown in
In step 17010 of
In step 17020, weighting factors are applied to the items on each list. For example, more weight may be given to products associated with a more recent article.
In step 17030, the lists are combined using the weighting factors.
In step 17040, those products in the combined list with the highest aggregate weighting factors are presented to the user. For example, a number of scored lists of products may be generated for each article, according to one or more approaches described below (content similarity, personal co-visitation, item co-visitation, new items, popular items, business logic, etc.). When the user recommendation electronic widget 130 is to generate a new recommendation for a user, these lists may be consulted for the last n items the user has viewed including the current item. These lists may be combined by weighting scores according to position in the history. If a product appears in multiple lists, its scores may be added together. The result is a single combined list ranked by the weighted scores. These steps 17010-17040 may be carried out in a background or off-line process, with the single combined list ranked by the weighted scores being generated on a periodic basis, for example, in a preferred embodiment, daily.
As is seen in the flow chart in
In step 410, the system correlates candidate items (e.g. products) and other items (e.g. articles) of interest. In one embodiment of the present invention, a content similarity approach is used to determine similarity (or correlation) between an article of interest (found in database 14030) and products of interest (described in database 14050). A tag cloud approach is an example of a content similarity approach.
In step 15040, intermediate data vectors are then created using the same words (W1-WX), for each of the intermediate data which describes each of the products in database 14050. Then the article vector is compared in step 15050 to determine those products most similar to the article. In an embodiment, cosine similarity may be used to compare the two article vectors.
For example:
For example:
Other measures of similarity are also possible for example:
In step 15060, one or more most similar products to the articles are stored or displayed. This correlation function is carried out in correlation module 14060 by a computer processor which makes the above calculations.
Besides the content similarity approach described above, another approach to obtain a correlation measure between two items is to use a co-visitation approach. Co-visitation is defined as an event in which two items (e.g. articles) are viewed or clicked by the same user within a certain time interval (typically set to a few hours). Imagine a graph whose nodes represent items and weighted edges represent the time discounted number of co-visitation instances. In other words, as more time elapses since the co-visitation has occurred, a lower weighting is provided. Alternatively, a lower weight could be allocated as the elapsed time increases between the visits comprising a co-visitation pair. The edges could be directional to capture the fact that one item was clicked after the other, or not if we do not care about the order. This graph may be maintained as an adjacency list that is keyed by the item id. On item sk, the user's recent click history Cui may be retrieved and iterated over the items in it. For all such items sj ε Cui, the adjacency lists are modified for both sj and sk to add an entry corresponding to the current click. If an entry for this pair already exists, an age discounted count is updated. Given an item s, its near neighbours are effectively the set of items that have been co-visited with it, weighted by the age discounted count of how often they were co-visited. This captures the following simple intuition: “user who viewed this item also viewed the following items”.
For a user ui, the co-visitation based correlation measure may be generated for a candidate item (e.g. article or product) s as follows: the user's recent click history Cu is fetched, limited to past few hours or days. For every item si in the user's click history, the entry for the pair si is looked up, s in the adjacency list for si stored in the adjacency list. To the correlation measure, the value stored in this entry is normalized by the sum of all entries of si is added. Finally, all the co-visitation scores are normalized to a value between 0 and 1 by linear scaling (for example, by dividing by the number of viewed articles).
An embodiment of the invention may employ a “item co-visitation” approach or a “personal co-visitation” approach (or both). The item co-visitation approach is a simpler case—the item ID(s) with the highest co-visitation value(s) are selected for recommendation. Personal co-visitation introduces more complexity. A further total views article table is maintained representing the total number of views for each article and a further calculation may be made: for each article in the viewing history, the co-visitation value from the co-visitation table is compared to the total number of views for that article. If the co-visitation value is high, but the total number of views is much larger, then the co-visitation value will be discounted accordingly. In other words, the total number of views is a weight that is applied to the co-visitation value to provide a more meaningful co-visitation value.
For each item viewed in the user's history, i ε viewed, the co-visitation count f is calculated (i.e., the count of how many unique users visited a pair of items or visited just one item) in respect of each possible candidate item (a candidate item could be an article or product), and this count is divided by the total number of viewed items to give a score:
For example, to calculate the score for candidate item 2 for a user having user history a, b, . . . n, where each a, b, . . . n is an item viewed or displayed by the user) the score would be calculated as follows:
In the above example, n is the total number of items visited by other users who have also visited item 2. In an embodiment of the invention, it may be desirable to calculate candidate items that are products only, or products that are associated with an image only, for example, or other configurable parameters. Even where the candidate items are products only, the co-visitation algorithm may still use articles viewed as input.
The correlation measures for all candidate items are compared, and the candidate item(s) with the highest score(s) may be presented to the user or queued in a list for presentation to the user when display space on the user electronic recommendation widget 130 is available. Intuitively, the candidate item with the highest score represents the item where, given the user's viewing history, the user would be most likely to view the item if the user behaved in a similar manner to other users.
The co-visitation algorithm may be run on the server as a separate process on a periodic basis, e.g. once per day. This algorithm runs in O(users×candidate items×viewed items) computational time. In other words, on a periodic basis, based on an updated user history, a new list of candidate items to be recommended to the user is generated. This newly generated list depends on both the user's history as well as the behaviour of other users of the system. It is the behaviour of the other users of the system that provides the number of viewed items in paragraph [00113] above. The time interval may be set at 2 weeks. Where there are small number of articles, or where traffic to a site is small, it may be desirable to set a longer time interval in order to have more input to the co-visitation algorithm.
An alternative embodiment of the invention may be implemented to handle incremental correlation. For example, if an item description changes, then all previous correlations may be invalid and the system may require new correlation measures be generated. However, if the item description remains the same, then the system will only need to generate a correlation measure against new products (not all products).
Besides co-visitation, other approaches may be used to generate a correlation measure. For example, the “most popular” approach may refer to the “Item total views table” maintained by the co-visitation approach to select items popular among all users, excluding the articles viewed by the user in question. The item total views table is maintained by the provided of user recommendation electronic system 14000. This permits a determination of “most popular” that does not depend on extensive access to the publisher's website and click-stream.
In accordance with an aspect of the invention, it will be appreciated that the system may generate a correlation measure based on intermediate data. This intermediate data may be drawn from, among other things, the item itself (e.g. an article's content), from item descriptions (e.g. a product description, a movie review, etc.), or from user “opinions” (e.g. as determined by user ratings, click-through data, conversion data, etc.). It will be appreciated that click-through behaviour, as with other data, may be inputs to a cosine similarity algorithm (or some other similarity algorithm) to generate a correlation measure. If the system maintains the following table of user click-through data, where the number 1 represents a given user's interest in a given item (such as having clicked on an article or product), then these “opinions” may be used to generate a correlation measure:
In step 420 (shown in
Those products 141a . . . 141n having the highest correlation measures to articles 140a . . . 140n may be determined by selecting those products having the highest n correlation measures, where n is an integer. Alternatively, they may be determined by selecting those products having a correlation measure which exceeds an operator determined threshold.
In an embodiment of the invention, the multiplexer module 14080 may further present article recommendations from one or more algorithms in a round-robin format, the algorithms being selected from a plurality of approaches, such as the content similarity approach, the personal co-visitation approach, the product co-visitation approach, and the most popular approach. For example, the multiplexer module can take five algorithms and arrange the algorithms in a “batting order” such that four recommendations are selected from algorithm #1, then three recommendations are selected from algorithm #2, and so on. This is called a round-robin technique. Alternatively, “slots” in the user recommendation electronic widget 130 may be dedicated to a particular algorithm. The multiplexer module may be pre-configured to display a pre-defined number of products. The multiplexer module may be configured from business rule module 14090 so that, for example, the user recommendation electronic widget 130 does not present a screen where the top four articles are products, or where no products are presented. The business rule module 14090 may provide instructions to multiplexer module 14080 in respect of use of ordinal slots in the user recommendation electronic widget 130 (e.g. positions 3, 5 and 8 are reserved for products from Amazon, iTunes™, and LL Bean™, respectively). The multiplexer module 14080 may elevate or insert product information, rather than article information, depending on the vendor, publisher or other requirements as provided by business rule module 14090. In an embodiment of the invention, the multiplexer module 14080 may be located on a server and may be controlled by configurable parameters, including image present, algorithm list, recency, etc. of the multiplexer module 14080, which may be stored in an XML file stored on the server, permitting fast distribution of the business rules from business rule module 14090 without requiring re-publication of the client application (the user recommendation electronic widget 130).
Business rule module may also provide other rules for determining products to be recommended to an end user. For example, it could provide that one product be from a “bestseller” list. Or during a holiday season, it could provide that one or more products recommended be holiday-related.
In step 430 (shown in
In step 440 (shown in
In step 460, the system may find an article or product similar to an article favourably rated. This may be performed using any content-related algorithm such as the content similarity approaches described above. A favourable rating may be an indication that the user has clicked on the article or clicked to display the entire article. Alternatively, the input received in step 440 could be user ratings or indications a user has dismissed products or articles.
In step 470, one or more of the displayed articles and products (or information about them) is replaced, based on the user input. Typically, a new article or articles or a new product or products would be provided.
Referring again to
Referring to
In another embodiment, the computer system will include a receiver module for receiving information regarding one or more articles. The system will also include a processor module, for determining replacement information to be displayed, based on the user input. The system will also include a changer module, for switching between views to be displayed.
What has been described above includes examples of the present invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the present invention, but one of ordinary skill in the art may recognize that may further combinations and permutations of the present invention are possible. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.
It will be understood that the above description of the present invention is susceptible to various modifications, changes and adaptations, and the same are intended to be comprehended within the meaning and range of equivalents of the appended claims.
This application claims priority to and is a continuation-in-part of U.S. application Ser. No. 12/558,132 entitled “METHOD AND SYSTEM FOR RECOMMENDING ARTICLES,” filed Sep. 11, 2009, which claims the priority of U.S. application Ser. No. 12/501,221 entitled “METHOD AND SYSTEM FOR RECOMMENDING ARTICLES,” filed Jul. 10, 2009, both of which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 12558132 | Sep 2009 | US |
Child | 12698087 | US | |
Parent | 12501221 | Jul 2009 | US |
Child | 12558132 | US |