How to build a weakly godlike website


Say we have a set of users, and a set of statements. Each statement may have a truth value, say in the range 1-5, for each user. Users enter the truth values for some statements, then ask for predictions on the truth of other statements.

Some example statements: "I like 'The Princess Bride'", "Taking Prozac makes me feel better", "I enjoyed my holiday in Germany", whatever. Since there will be a large number of statements there will need to be some kind of tagging or classification scheme to keep things organized.

It's much like a movie rating prediction system (see MovieLens or NetFlix), except it has to scale somewhat more. Here's a scheme that is scalable:

Each user has a vector associated with them, as does each statement. The predicted truth value of a statement for a user is the dot product of the corresponding vectors.

Disclaimer: I can't claim this idea is original, see eg simonfunk, who has a good writeup of one possible implementation.

27/1/07: One possible spin on this would be an intransitive social network (see Geek Social Fallacy 4). In this, the questions take the form "I like Person X". Each person has two vectors: as a liker, and as a likee. The system could then suggest possible bi-directional friendships.

A further twist on this might be a reputation system (eg for eBay) which gives personalized trust-level predictions.