Oracle® Application Server Personalization User's Guide
10g Release 2 (10.1.2) B14052-01 |
|
Previous |
Next |
This appendix contains descriptions of the two algorithms used by Oracle Application Server Personalization (OracleAS Personalization) to create models. Models are used to generate personalized recommendations. The two algorithms are
Predictive Association Rules
Transactional Naive Bayes
OracleAS Personalization automatically picks the best algorithm to for a particular type of recommendation.
The most familiar use of association rules is what we know as "market basket analysis," that is, rules about what goes with what in a shopping cart, such as "eighty percent of people who buy beer also buy potato chips."
The association rules algorithm finds combinations of items that appear frequently in transactions and describes them as rules of the following "if-then" form: "If A, then B," where A is the antecedent and B is the consequent. (Note that the two sides of the proposition can be more than one item each; for example, "If A, B, and C, then D and E." For Predictive Association Rules, there is only one item in the consequent.)
It turns out that many such rules can be found -- the challenge is to find those that are meaningful or interesting and that also lead to actionable business decisions. An example is "eighty percent of people who buy beer and pretzels also buy chocolate." This combination is not obvious, and it can lead to a change in display layout, for example, moving the chocolate display closer to where beer is on sale.
On the other hand, a rule like "eighty percent of people who buy paint also buy paint brushes" is not very useful, given that it's obvious and doesn't lead you to change the arrangement of these items in your store -- they're probably already displayed near each other.
Similarly, "eighty percent of people who buy toothpaste and tissues also buy tomatoes" is not obvious, and is probably not useful as it may not lead to any actionable business decision.
To identify rules that are useful or interesting, three measures are introduced: support, confidence, and lift.
Support: First, determine which rules have strong support, that is, rules that are based on many examples in the database. Support is the percentage of records that obey the rule, that is, baskets that contain both A and B.
Confidence: Next, determine which rules have high confidence, that is, instances that obey the rule (contain both A and B) as a percentage of all instances of A. For example, assume you have 10 instances of A, 8 of which also have B; the other 2 do not have B. Confidence is 8 out of 10, or 80 percent.
Lift: Lift compares the chances of having B, given A, to the chances of having B in any random basket. Of the three, lift is the most useful because it improves predictability.
Naive Bayes is a type of supervised-learning module that contains examples of the input-target mapping the model tries to learn. Such models make predictions about new data based on the examination of previous data. Different types of models have different internal approaches to learning from previous data. The Naive Bayes algorithm uses the mathematics of Bayes' Theorem to make its predictions.
Bayes' Theorem is about conditional probabilities. It states that the probability of a particular predicted event, given the evidence in this instance, is computed from three other numbers: the probability of that prediction in similar situations in general, ignoring the specific evidence (this is called the prior probability); times the probability of seeing the evidence we have here, given that the particular prediction is correct; divided by the sum, for each possible prediction (including the present one), of a similar product for that prediction (that is, the probability of that prediction in general, times the probability of seeing the current evidence given that possible prediction).
A simplifying assumption (the "naive" part) is that the probability of the combined pieces of evidence, given this prediction, is simply the product of the probabilities of the individual pieces of evidence, given this prediction. The assumption is true when the pieces of evidence work independently of one another, without mutual interference. In other cases, the assumption merely approximates the true value. In practice, the approximation usually does not degrade the model's predictive accuracy much, and it makes the difference between a computationally feasible algorithm and an intractable one.
Compared to other supervised-learning modules, Naive Bayes has the advantages of simplicity and speed. It also lends itself to future extensions supporting incremental learning and distributed learning.
"Transactional Naive Bayes" refers to the way the input is formatted; the algorithm is the same. The following table shows an example of traditional data format, with columns for the items (customer, apples, oranges, pears, and bananas) and rows for the customers (Joe, Jim, Jeff), and zeroes or ones in each table cell, indicating whether, for example, Joe bought an apple (no), an orange (no), a pear (no), or a banana (yes):
Customer | apples | oranges | pears | bananas |
---|---|---|---|---|
Joe
|
0
|
0
|
0
|
1
|
Jim
|
1
|
0
|
0
|
1
|
Jeff
|
0
|
1
|
0
|
0
|
Traditional data layout often produces a sparse matrix because of all those zeroes; it takes up more space in the database, and therefore takes more time in calculations.
Transaction-based format has basically two columns: customer and "hits." For Joe, the table cell contains "bananas":
Customer | "Hits" |
---|---|
Joe
|
bananas
|
Jim
|
apples
|
Jim
|
bananas
|
Jeff
|
oranges
|
Transactional format looks like a "shopping basket" rather than a checklist and is better in cases where the customers buy only subsets of products. OracleAS Personalization transforms data into transactional format, if necessary, before building a package.