Hello and Welcome. Here I decided that it was time to create a group to discuss mine and others work on designing a Collaborative Filtering engine. Right now I am currently working on an engine based on Slope-One algorithm and utilizing Jeff Eaton's votingapi.
Please check out (located in contrib/cre)cvs for the engine and the node_recommendation module is now stored in a subfolder, Recommendation Modules
Project page: http://drupal.org/project/cre
Add on modules for CRE and internal works??
Hey there,
I'm really looking into using CRE for a new project and eventually sponsoring/building new plugin modules for it, but first I really need to understand what the actual modules do, and how the recommandation works now, in the stock module.
My main question is this:
When a user votes on a node, does the system remebers which user 'added' the voted on node and which taxonomy terms where used??
If yes, does this mean that when a user votes on a node it also gives a vote to the node author and the taxonmy terms that are attached to the nodes?
Read moreVoting on feed sources to recommend child items??
Hi there,
I'm building a new site which uses the leech.module to let people add feeds for their own blogs, etc...
What I'd like to know is if it's possible to establish some relation between score given to the feed node (the source) and it's childs. For example if a user would give a 5 start rating to the node of the feed source, is there any way to actually recommend it,s feed items??
I was thinking of using the node review of vote up down modules on the feed sources, but realized that this would allow to recommend sources, but not necessarily the related feed items...
Read morerecommend a taxonomy
I noticed that there are recommendation modules for comments, nodes, and users, but not taxonomy. Would it be possible to recommend taxonomy to people?
Read moreOfficially released CRE for 5-0
5-0 development snapshot has been created (waiting for scripts to roll the tarball).
5.x dev snapshot has some bad problems, including old code and missing .info file. I have released a official release 5.x-1.0 that is proper and ready for consumption.
What happened was i expected the -dev snapshot to be rolled on branch DRUPAL-5-0, NOT DRUPAL-5. I will fix the -dev snapshot or remove it entirely somehow. But I thought it was important to get the word out
Read moreNetflix releases dataset
Netflix has released its dataset to the public in hopes of finding a new recommender system. Here is NYT article (subs required: see bugmenot.com).
Interesting news story at least. Perhaps I will spend a weekend and submit Slope One
Read moreVotingAPI points system
Alright,
There is a feature request in the queue for this. http://drupal.org/node/85360
Here is a quote on my plan:
Read moreNew version is up
I have updated Node Recommmendation to fix some bugs in the page callback and to use teasers instead of a item list to list recommended nodes on the page. My hope of course is that node recommendation page becomes the front page of many drupal sites.
Summer of Code is offically over but I do intend to keep this list semi-updated with work on the recommendation engine. There are several different things I will be expanding the project to do. I plan on setting it up for VotingAPI's point system. And then writing a module that will work with e-commerce to add a VotingAPI 'point' to each purchase. This of course would allow the engine to draw relationships between content based on who bought what. (Which I think is particalarly cool and interesting).
Read moreInstall Instructions and NEW RECOMENDATION MODULE!
Install instructions
Simply download the project and place all modules within the /modules subdirectory.
Please make sure that you have downloaded BOTH VotingAPI and some voting module (for example: SimpleVote)
And then turn them on!
To use SimpleVote on comments
Add this function to SimpleVote.module
<?php
function simplevote_comment(&$comment, $op) {
switch ($op) {
case 'view':
$comment->comment = theme('simplevote_widget', $comment->cid, 'comment') . $comment->comment;
New Release Brings cre_query_obj and comment_recommendation.module
Just released new version. Included in the this release is the new-fangled cre query object and comment_recommendation.module which recommends comments within the current node being viewed.
The object allows for joining on any table. Please remember to use {} and a name to identify your table.
For instance node_recommendation does this:
<?php
function node_recommendation_cre_query (&$query) {
$query->add_table("{node} n");
$query->add_column("n.title");
$query->add_where("n.nid=d.content_id1");
}
?>NEW VERSION RELEASED
Ok major speed fixes. Redid the query compeletly and added a average user vote table. This allows for the movelens database to run MUCH MUCH MUCH MUCH FASTER. I will begin testing it later this week and give back some scores that should be interesting. Try running the update script for me. I did not test it out and I am worried that I didn't write it properly (my first update() :-D ).
Still working on creating a query object that will prevent the one issue that is in the queue right now. More to come soon...
Scott
Read moreMovielens Database DRUPALIZED!`
OK,
Finally finished it. Their happens to be a permission problem still though. Users not uid=1 will not be able to view the node that is recommended or access the recommendations page. Pretty sure you can fix that in the admin panel but havent done that yet. If any can shed some light on it please do. Here is where you can find the stuff: http://scottreynolds.us/Downloads/movielenssql.tar.gz
100k movielens is not done, it is in a different file format thereby requiring a different program.
Info from readme file:
Committed to contrib
Ok did my first commit of the modules (with README and API documentation) into contrib/modules/cre. The links in the welcome message are updated of course.
NEW INSTALL METHOD
The install method now, runs through intitially as usual but only processes a limit number of votes. It then waits to process the rest of the votes once cron.php gets called again EDIT: cron only installs a certain number of votes each cron run. Thereby, lengthing the install process over several cron runs instead of one _install() call which crashes and never completes.
This is done this way so that large EXISTING votingapi datasets can be utilized. PHP only has a limited about of 'user' space, and because the amount of data involved in this module is N*N where N is the number of voted content, it gets rather large, and becomes a whole lot of DB queries. I am open for better solutions, mostly cause I don't particularlly like this one.
Read morelarge dataset
Wondering what datasets you have available for testing?
There are two datasets for film here,
richard
Read moreNew version up in my sandbox
New modules are up. Lots of changes to cre. Including new table name and new table format. It is setup now to be able to recommend any content(user, comments, developer defined, nodes).
And I would also like to pose a question for discussion....
When recommending some piece of content (whether a node, comment, user etc...) does the alogrithm only recommend based on content that is the same type? so when recommending a node, only use similarity matrix referencing content that is both the same type. Thats not making much sense typing it out but here is an example.
Johny is a user. The site is recommending both nodes and users. The block for 'Johny's recommended users' should be populated based only similarities between user and user votes or similarities between BOTH user to user and user to node. Should this be up to user level module (node_recommendation)?
Read moreup and running
just installed the module, and it looks good.
going to fill up the database more with some ratings in the next few days.
richard
Read more


