Being a python neophyte, my recommendation system is pretty basic, but works well -- yielding interesting websites that I have had fun exploring. The main thing I experimented with while designing my system were different "weighting" mechanisms.
First, my algorithm gathers data from del.icio.us. I use the get_urlposts and get_userposts commands to extract the lists of users who have bookmarked or tagged weigend.com. Also, I make a simple list of the urls obtained, ignoring the other information contained in these data structures.
Next, I wrote two functions that compute the "agreement" level and time since last log-in, respectively. The getAgreement function determines how well a user who bookmarked weigend.com agrees with the userid, or the set of urls. If they have lots of urls in common, their weight will be increased. The lastLogin function simply determines the amount of time since the user last logged into del.icio.us. Their weight decreases logarithmically for every day that they haven't logged in.
The main code actually re-weights users' values and then recommends urls that have the highest rankings on a weighted basis.
These urls are then sorted and printed to the monitor.
One of the things I really wanted to implement was a mechanism to weed out urls that a user has already bookmarked.
Furthermore, my system currently works with only one degree of seperation. I wanted to design a system that would look at multiple degrees of seperation. For example, say two users who have totally different tastes in websites/information were both enrolled in Prof. Weigend's class, and therefore both had bookmarked his url. Under my system, both of these users' preferences will influence the recommendations. However, my mutual agreement weighting will take away some of the influence of users with distinct diferences from the user_id. The problem with this system is that users' who may have extremely similar interests as the user_id may not have much overlap in one degree of seperation if they have only sparsely bookmarked sites. I wanted to add in multiple degrees of seperation so that users like this would be able to influence the recommendations. I feel like by doing this, the recommender might do much better at recommending interesting sites that don't get a huge volume of traffic.
Another idea I had, was to decrease the weight of sites that have been bookmarked by many people. If two users have both bookmarked google, they don't necessarily have as similar of interests as if they have both bookmarked the physics blog cosmicvariance.com.
http://stanford2008.wikispaces.com/
http://slashdot.org/
http://en.wikipedia.org/wiki/Data_mining
http://www.economist.com/
http://www.pandora.com/
http://weigend.com/
http://online.wsj.com/home/us
http://www.datawrangling.com/
http://en.wikipedia.org/wiki/HITS_algorithm
http://classifier.rubyforge.org/
http://www.wikipedia.org/
http://gregmankiw.blogspot.com/
http://www.nytimes.com
http://arstechnica.com/index.ars
http://freakonomics.blogs.nytimes.com/
http://digg.com/
http://reddit.com
http://www.anandtech.com
http://learning.eng.cam.ac.uk/zoubi
http://captology.stanford.edu/
http://www.go2web20.net/
http://research.microsoft.com/mlas/
http://www.technologyreview.com/index.aspx
http://www.lifehacker.com/software/books/browse-and-recommend-books-with-shelfari-229355.php