Content Recommedation Engine
Link to code
Student name
Student's member profile on PlanetSoC
Mentor's name
Mentor's member profile on PlanetSoC
Description
This engine is designed to allow web site administrators to help guide their users to content that is more relevant and interesting. It is a Collaborative Filtering Approach using the VotingAPI.
Pretty simple goal....very tough to accomplish.
Proposal
My Google Proposal. It has changed but this is it
========================================
Drupal already has the basic modules needed to design a recommendation module in the VotingAPI and the SimpleVote. I would like to design a recommendation engine that uses these two modules and incorporates page views (and maybe a new voting module) to recommend content to users. This will allow web site administrators to help guide their users to content that is more relevant and interesting. Ideally, the module should keep track of the users page views to track their interests. Oftentimes, a user does not rate content that s/he found interesting. It should also use this information in conjunction with those that have similar interests to rate different content. It should work much like Findory, which rates content on the people that read it. But, it should strive not to be a popularity contest. Sometimes the most interesting items are those hidden from the popular view. It is an important function but a very difficult one to implement.
Goals:
1. Deliverables:
Determine a strong algorithm using users votes, current user peferences and page views.
Create ContentRecommendationEngine module
Design a road map for further development
2. Optional:
Develop an additional voting APIs to better extract important information
Time line
1.Project analysis and design (June 15)
Getting more familiar with Drupal and its module system
Gain complete understanding of both SimpleVote and VotingAPI
Determine what makes a node interesting/relevant and design basic algorithm
2.Design ContentRecommendationEngine (By August 10 )
3.Create a way to produce a list of content similar to users preferences (End of August)
Why Me:
I am graduating on Sunday May 7 from the University of Dayton with a B.S. in Computer Information Systems. In September I will be attending the University of Cincinnati on full tuition scholarship in their M.S. in Computer Science program. I am the recipient of the Computer Science Research award for my work in Grammatical Evolution and robotics from the University of Dayton. I was also awarded the GKM Systems Award for Innovative Programming, commonly known as the 'hacker' award. I have had 4 papers published at various A.I. conferences on Grammatical Evolution.
Besides my interest in computers, I am also a musician. I play the cello in both college orchestras and ensembles as well as studying privately. I will be receiving a minor in Music on May 7. It is a large part of my life and much of my creative energies flow from music. I am always amazed at the connections that can be drawn between programming and music performance. Both are very much an art.
I have spent the last two years working for both the Criminal Justice Studies and Music department designing web pages. Over my tenure, I have had the opportunity to explore web programming through PHP and VBScripting. I have designed a CD cataloging intranet site for the Music Department that uses MySQL and PHP. It also extracts the song information from an iTunes library XML file.
(http://academic.udayton.edu/crimjust)
I have also designed a site for Unique Plumbing Co that uses PHP. This site allows users to submit bid documents which are then created into pdf files via fpdf and sent as email attachments to the Unique's bidders. The main focus of this site though was to create a small but visible web presence for the company. (http://www.uniqueplbg.com)
Through my formal education I have had the opportunity to work on challenging problems in artificial intelligence and this experience (along with my interest in the field of A.I.) gives me solid experience in providing creative new approaches to difficult problems. I am a very creative person and I feel that I can provide a new and creative approach to providing recommended content to users. Drupal has all the basic tools and I want to provide a unique approach.
Open source and me
I have long known that graduating from college in no way makes you a good programmer. I started reading and using open source projects because it provided me an opportunity to enhance my education and I have always been one that likes to look 'under the hood'. Last year for SoC I remember browsing through the projects and finding few that particularly interested me and of those projects, I believed they were out of my programming experience. It would have been fun to work on XMMS2 but I have little knowledge of audio processing. I have always thought that the pride of open source programming lies in the quality of the program and I did not feel that I could contribute anything of quality. For this project, I feel that I can produce something of worth and it sounds likes fun.
I have been searching for a nice way into open source programming and this is an opportunity that I can not pass up. And through the research already for this project it has open my eyes to a great many interesting issues in providing a better experience to the user.
It is important to note that I will be returning to school in the middle of September so I can stay on with this project past August.
