Thursday, October 30, 2003

Recommendations

I was idly leafing through a book on probabilistic theory and the Web this evening - it was more than a bit beyond my maths, to be honest - and it set me thinking a little bit about recommendation and trust. [NB: I wrote a related piece about search a while ago, trust to my mind being the missing factor (after precision - i.e. accuracy of match between search query and returned results - and recall - i.e. number of references returned related to search query, whether full or partial matches) in search.]


From what I understand - and I might be miles out here - recommendation systems work on probability and/or pattern-matching. The probability side of it appears to key in to Bayes Theorem, which I seem to remember was a British reverend's realisation that you can make accurate forecasts by starting with a proposition and then amending that proposition as you receive a greater amount of information on that proposition. In the case of a recommender system for purchases, the more purchases the user makes, the greater certainty with which the system can predict accurate recommendations.


The other approach is pattern matching, where you have a matrix of users against purchasers and you can essentially say: ah, this user A bought X item and Y item and this user B bought X item, Y item and Z item, let's recommend item Z to user A (grossly oversimplified explanation, I know). Obviously this approach can be boosted by an ontological approach where the items are also related in an ontological scheme: this is really the approach with those books where you look up the title of an item that you liked and you get a "if you like this, you'll like these other books related by genre, theme, author etc. I don't know if the recommender systems use this, but I guess they do.


(Of course there's the self-evaluation method whereby you rate items you have bought or might buy, but that's a lot of items to rate. Trust networks would let a relatively small number of people rate a broad range of items for you with less effort)


My theory is that a far greater response to the accuracy of recommender systems would again come if you could associate trust in another's purchases via these systems. In this case, user A might thus far have purchased items X and Y, but he trusts his friend C's opinion, who has bought items X, Xa and Xb. In this case, if A could initiate a "bond of trust" between himself and C, the system could give a greater rating to C's purchases. If A trusted C and D (where D had bought items Xa, and Z, the recommender would have a great deal of information to go on.

Make recommendations to A: user B has a similar purchase pattern, but is not "trusted", weight his recommendation of Z as 1. A has bought items X and Y in a series (Bayesian approach), so is likely to buy Z, Bayesian rating 0.5. A trusts C and D who have each bought Xa, rating 3. A trusts C, who bought Xb, rating 1.5. A trusts D, who bought Z, rating 1.5.

Result: Z - 3; Xa - 3; Xb - 1.5 : strongly recommend items Z and Xa, recommend Xb if it is related in the ontology or if further purchasing evidence boosts its rating!


I know weightings are not usually additive, but I think it's a nice argument. The difficulties come in in displaying and storing the trust information (and for users to identify those they trust) - plus would people "trust" a store that asked them to give up relatively important (and, to an extent, confidential information: data protection laws spring to mind).


Just a thought anyway.

No comments: