Embodiments of the invention relate to methods of recommending items for use.
Modern communication networks, such as mobile phone networks and the Internet, and the plethora of devices that provide access to services that they provide have inundated people with a surfeit of information and options for satisfying any from the simplest to the most complex needs and desires. Whereas in the not too distant past, information available to an individual was relatively sparse and generally expensive in time and/or resources to acquire, today, information is relatively inexpensive. All too often, the information is overwhelmingly abundant and diluted with irrelevant information. Whereas, the cost of acquiring information has plummeted, managing its copiousness to determine its relevance has become an increasingly complex and expensive task.
Various recommender systems and algorithms have been developed to attempt to deal with the challenges and opportunities that the abundance of inexpensive information has generated, and to automatically focus and filter information in order to recommend items for a user's consumption or use that match the user's interests and needs. The recommender systems typically process data acquired for a population of users to determine characteristics of the users and their consumer histories that may be used to infer user preferences for various items comprised in a catalog of items. Generally, processing the data, involves constructing a user-item model that generates representations for users in the population and items in the catalog, and provides rules for relating the representations that relate the users to the items. Applying the rules to relate the representation of a given user to representations of items in the catalog identifies catalog items for recommendation to the user.
An amount of data gathered and processed to construct a user-item model that may be used to recommend items to a user can be very large and may for example, involve processing data indicative of preferences for tens of millions of users, for each of thousands of items. In practice, a computer having large processing resources is generally required to process the data and construct the user-item model. Often the model is not scalable.
An aspect of an embodiment of the invention, relates to providing a recommender system comprising, or having access to, a database of transactions engaged in by users with items in a first catalog of items and transactions engaged in by users with items in a second catalog of items. The recommender system, optionally referred to as a direct association (DAS) recommender system, comprises a processor configured to process data in the database to determine values for a measure of statistical association between user transactions with items in the first catalog and user transactions with items in the second catalog. The DAS recommender system recommends items from the first catalog to a user who has engaged in a transaction with a given item in the second catalog based on degree to which the measures of statistical association determined by the processor indicate that transactions with the items in the first catalog exhibit enhanced statistical association with user transactions with the given item in the second catalog. A user transaction with a catalog item may refer to any use of the catalog item by a user, and includes by way of example, such transactions as purchasing, renting, borrowing, or using the catalog item for a purpose for which it is intended or may be adapted.
In an embodiment sufficient data for determining values for the measures of statistical association may not be available, and the processor may be configured to compensate for unavailable data by generating “replacement data” based on data available in the database. Optionally, the database comprises time resolved transaction data which the processor uses to generate replacement data. In an embodiment, time resolved transaction data may comprise a date and optionally a time at which at least one transaction engaged in by a user with an item in a catalog was transacted. Optionally the time resolved transaction data comprises ordinal data indicates whether the transaction is the user's 1st, 2nd, 3rd . . . n-th, transaction. In an embodiment, a measure of associations between transactions with catalogue items is provided by determinations of values for a Lift function.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Non-limiting examples of embodiments of the invention are described below with reference to figures attached hereto that are listed following this paragraph. Identical features that appear in more than one figure are generally labeled with a same label in all the figures in which they appear. A label labeling an icon representing a given feature of an embodiment of the invention in a figure may be used to reference the given feature. Dimensions of features shown in the figures are chosen for convenience and clarity of presentation and are not necessarily shown to scale.
In the detailed description below a configuration of a DAS recommender system in accordance with an embodiment of the disclosure is discussed with reference to
In the discussion, unless otherwise stated, adjectives such as “substantially” and “about” modifying a condition or relationship characteristic of a feature or features of an embodiment of the disclosure, are understood to mean that the condition or characteristic is defined to within tolerances that are acceptable for operation of the embodiment for an application for which the embodiment is intended. Wherever a general term in the disclosure is illustrated by reference to an example instance or a list of example instances, the instance or instances referred to, are by way of non-limiting example instances of the general term, and the general term is not intended to be limited to the specific example instance or instances referred to. Unless otherwise indicated, the word “or” in the description and claims is considered to be the inclusive “or” rather than the exclusive or, and indicates at least one of, or any combination of more than one of items it conjoins.
Users 21 may access and/or be accessed by catalog W, catalog A, and/or DAS recommender system 20 using any of various stationary or mobile communication devices, such as by way of example, a smartphone, laptop, notebook, or desktop computer. A numeral 22 labels the communication devices in
DAS recommender system 20 in accordance with an embodiment of the disclosure may comprise a memory device 30 having stored therein a transactions database 32, a processor 34, and a “recommender watchman” 36. DAS recommender system 20 receives and stores in transactions database 32 transactions data characterizing purchases made by users 21 of items Gg from catalog X and purchases made by users 21 of items Aa from catalog W. Data characterizing a purchase transaction, also referred to as a purchase, that a user 21 makes may comprise data identifying the user, the item from catalog X or catalog W that the user purchased, and time resolution data. Time resolution data for a purchase may comprise data indicating a time at which the purchase was made and/or data indicating whether the purchase is the user's 1st, 2nd, 3rd . . . n-th, purchase of an item in catalog X or catalog W. Memory 30 may be a centralized or distributed memory. The memory may comprise or have access to any electronic and/or optical circuitry suitable for storing data and/or computer executable instructions. Memory 30 may, by way of example, comprise and/or have access to any one or any combination of more than one of a flash memory, random access memory (RAM), read only memory (ROM), and/or erasable programmable read-only memory (EPROM). DAS recommender system 20 may comprise catalog X and/or catalog W, or may be comprised in catalog X and/or catalog W. DAS recommender system 20 may communicate with catalogs X and W and/or with administrators of catalogs X and W to receive transactions data via any suitable wireless or wire communications channel.
Processor 34 is configured to process transactions data in transactions database 32 to provide values of statistical association, which may be referred to as values for SASS or simply SASS, that provide statistical indications for how strongly purchases by users 21 of items Gg from catalog X are associated with purchases by users 21 of items Aa from catalog W. In an embodiment SASS values written as SASS(Aa|Gg)represent a measure of association between purchase of item Aa subsequent to purchase of item Gg. SASS values written as SASS(Gg|Aa) represent a measure of association between purchase of item Gg subsequent to purchase of item Aa. SASS(Aa|Gg)and SASS(Gg|Aa) may generically be written SASS(Aa,Gg) or SASS.
In an embodiment, processor 34 is operable to determine values for SASS based on at least one or any combination of more than one measure of statistical association. A measure of statistical association for which processor 34 determines values for SASS may be any of various measures of statistical association such as, by way of example, measures of support or confidence, an Odds Ratio (OR), Risk Ratio (RR), Absolute Risk Reduction (ARR), mutual information, a hypergeometric probability, and Lift. Processor 34 may comprise any electronic and/or optical processing circuitry known in the art, and may by way of example, comprise any one or any combination of more than one of a microprocessor, an application specific circuit (ASIC), field programmable array (FPGA), and/or system on a chip (SOC). In an embodiment, values for SASS determined by processor 34 are stored in memory 30.
In an embodiment, recommender watchman 36 comprises processing and/or control circuitry configured to generate and communicate recommendations to users 21 for purchase of items Gg and Aa based on values of SASS(Gg,Aa). In an embodiment, recommender watchman 36 is configured to repeatedly access transactions database 32 to review data in the database and generate recommendations to users 21 based on what items they have purchased from one of catalogs X and W, what items they have not purchased from the other of the catalogs, and SASS values between items purchased and items not purchased. Optionally, recommender watchman 36 periodically accesses transactions database 32 to generate recommendations for users 21.
In an embodiment, DAS recommender system 20 comprises at least one monitoring agent schematically represent by a circle 23 that monitors access of users 21 to catalogs X and W and transmits transaction data based on access of users to the catalogs addressed to processor 34 for processing and storage in memory device 30 or addressed directly to memory device 30 for storage. Recommender watchman 36 may receive an alert from the at least one monitoring agent 23 when a user 21 accesses catalog X or catalog W. In response to the alert, recommender watchman 36 may generate a recommendation for the user based on items the user has purchased from catalog X and/or W and SASS values associated with the purchased items comprised in transactions database 32.
In a block 101 DAS recommender system 20 receives data for user transactions with items Gg in catalog X and items Aa in catalog W and stores the transaction data in transactions database 32. Optionally, in a block 103 processor 34 processes the stored transaction data and determines SASS(Gg,Aa) for catalog items in catalogs X and W. In a block 105, processor 34 may, optionally in response to a query from recommender watchman 36, determine which items Gg* given user 21 has purchased from among items Gg in catalog X and which items Aa* the user has not purchased from among items Aa in catalog W. Optionally, in a block 107, processor 34 determines for which pair of items Gg* and Aa*, SASS(Aa*|Gg*) is maximum. If in block 107 SASS(Aa*|Gg*) is found to be maximum for Aa*′, in a block 109, recommender watchman 36 may recommend item Aa*′ to given user 21. Whereas, in block 109 recommender watchman 36 recommends to given user 21 item Aa*′ for which SASS(Aa*|Gg*) is maximum, in an embodiment, the recommender watchman may, in addition, recommend to the given user items Aa* for which SASS(Aa*|Gg*) is relatively enhanced. For example, if SASS(Aa*|Gg*) is greater than at least one standard deviation from an expected value of SASS(Aa*|Gg*) assuming that that Aa* and Gg* are statistically uncorrelated.
In a block 202 processor 34 may determine a number, U(X,W), of users 21 for which transactions are stored in transactions database 32 that use both catalog X and catalog W, and a number U(X,
In an embodiment, in a block 208 processor 34 determines a number, U(X,W,Gg), of users U(X,W) of both catalogs X and W who have purchased an item Gg and uses U(X,W,Gg) to estimate a probability P(Gg|X,W) that a user U(X,W) has purchased item Gg in accordance with an expression P(Gg|X,W) =U(X,W,Gg)/U(X,W). Similarly, optionally in a block 210, processor 34 determines a number, U(X,W,Aa), of users U(X,W) of both catalogs X and W who have purchased an item Aa, and uses U(X,W, Aa) to estimate a probability P(Aa|X,W) that a user U(X,W) has purchased item Aa in accordance with an expression P(Gg|X,W)=U(X,W,Gg)/U(X,W).
Optionally, in a block 212 processor 34 determines a number of users U(X,
Whereas the various probabilities discussed above may be estimated from transaction data stored in transactions database 32, for certain probabilities that may be advantageous in determining SASS(Aa|Gg), data in transactions database 32 may be incomplete and the probabilities may not readily be determined from transactions data in the database. In an embodiment, data to complete incomplete data and is optionally “guesstimated” in blocks 216 and 218.
In block 216 processor 34 guesstimates a probability, P′(Aa,Gg|X,
P′(Aa,Gg|X,
P′(Aa,Gg|X,
where P(Aa) is estimated as a fraction of the population of users of X and W who have purchased Aa. IF U(W) are the number of users of catalog W having transactions stored in database 32, then, optionally, P(Aa) =U(W,Aa)]/U(W)], where U(W,Aa) are the numbers of users of catalogs W who have purchased Aa.
P′(Aa,Gg|X,
The guesstimate assumes that a user of X but not W who has item Gg has an equal probability of having any one of the A items that are available from catalog W.
P′(Aa,Gg|X,
where U(X,W,τ) is a number of users of catalog X who have purchased have first started using catalog W within a last period of time “τ”. U(X,W,τ,Aa,Gg) is the number of users U(X,W,τ) who during the period τ who have item Gg and have purchased Aa from catalog W.
P′(Aa,Gg|X,
where U(X,W Aa,1,Gg) represents a number of users of the total number of users U(X) whose first purchase from catalog W upon first using catalog W after using catalog X to purchase Gg, was Aa.
In block 218 processor 34 guesstimates a probability, P′(Aa|X,
P′(Aa|X,
P′(Aa|X,
which estimates a probability that a user of X but not W having item Aa is equal to a probability P(Aa|W) that a user of catalog W has item Aa.
P′(Aa|X,
The guesstimate assumes that a user of X but not W has an equal probability of having any one of the A items that are available from catalog W.
P′(Aa|X,
where U(X,W,τ) are the number of users of catalog X who have started using catalog W for the first time within a last period of time “τ”, and U(X,W,τ,Aa) is the number of users U(X,W,τ) who have purchased Aa from catalog W.
P′(Aa|X,W)=U(X,W,Aa,1,Gg)/U(X), 10)
where U(X,W,Aa,1,Gg) represents a number of users of the total number of users U(X) whose first purchase from catalog W upon first using catalog W after using catalog X to purchase Gg, was Aa.
Optionally, in a block 220 processor 34 estimates a probability P(Gg|X) that a user of X has purchased item Gg in accordance with an expression P(Gg|X)=P(Gg|X,W)·P(W|X)+P(Gg|X,
In an embodiment, processor 34, optionally in a block 226, determines a statistical association, SASS(Aa|Gg), between purchasing item Aa after having purchased item Gg as a value of a Lift function, LIFT(Aa|Gg) of Aa and Gg, where LIFT(Aa|Gg)=P(Aa,Gg|X)/[P(Aa|X)·P(Gg|X)]. For circumstances in which a particular item Aa is very popular, change in value of LIFT(Aa|Gg) for change in P(Aa,Gg|X) may be reduced to a degree that obscures enhanced association of a given item Aa with respect to Gg relative to association between Gg to other items Aa in catalog W. Under such circumstances, to improve contrast between values of association for items Aa and Gg and improve recognition for enhanced associations, optionally in a block 228, processor 34 determines LIFT(Aa|Gg) in accordance with an expression LIFT(Aa|Gg)=P(Aa,Gg|X)/[P(Aa|X)γ·P(Gg|X)] in which P(Aa|X) is raised to a power y. By way of example, γ may have a value greater than 1 and, optionally, less than or equal to 2, for situations in which a number of user transactions with Aa is greater than a sum of the numbers of user transactions for two of the most popular items other than Aa.
In the description and claims of the present application, each of the verbs, “comprise” “include” and “have”, and conjugates thereof, are used to indicate that the object or objects of the verb are not necessarily a complete listing of components, elements or parts of the subject or subjects of the verb.
Descriptions of embodiments of the invention in the present application are provided by way of example and are not intended to limit the scope of the invention. The described embodiments comprise different features, not all of which are required in all embodiments of the invention. Some embodiments utilize only some of the features or possible combinations of the features. Variations of embodiments of the invention that are described, and embodiments of the invention comprising different combinations of features noted in the described embodiments, will occur to persons of the art. The scope of the invention is limited only by the claims.