Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Development (2000)
 Small-time collaborative filtering?

Author  Topic 

aiken
Aged Yak Warrior

525 Posts

Posted - 2002-09-17 : 14:41:15
I'd like to look at implementing a simple reccomendations engine. As it is, I've got a table of user's votes on items, and I'd like to do the old "other people whose votes are similar to you also liked this other item you may not have seen" thing.

My understanding is that Analysis Services supports this kind of thing, but honestly, I'm kind of intimidated by it. Any thoughts on whether that's really the easiest way to do this, and if so, any pointers to simple "how-to's" for getting analysis services up and implementing collaborative filtering using it?

I've thought of various join-table approaches, but the app in question has about 50,000 "items", 4,000 "users", and about a million "votes" -- none of the simpler approaches I've come up with seem reasonable.

Thanks
-b

chadmat
The Chadinator

1974 Posts

Posted - 2002-09-17 : 15:15:09
The business analytics portion of Commerce Server 2002 (Which utilizes Analysis Services) does this and a lot more. I would suggest looking into that if this app is 'Web Based'.

Otherwise, AS alone should also be able to do this. It is not that hard to get up and going in AS, look into the Foodmart sample/tutorial.

-Chad

Go to Top of Page

VyasKN
SQL Server MVP & SQLTeam MVY

313 Posts

Posted - 2002-09-17 : 16:01:16
I worked on 'collaborative filtering' bit for a major web site recently (product recommendations by analyzing the purchase behavior). I didn't use Analysis Services, but wrote it on my own.

Since mine is a huge database, I can't afford to join tables everytime I need to display a recommendation. Instead, I process the product recommendations and store them in a separate table (It is a weekly job). Since the buying behavior on a huge site, won't change so radically, it is perfectly fine in my case, to do this on a weekly basis.

--
HTH,
Vyas
http://vyaskn.tripod.com
Go to Top of Page

aiken
Aged Yak Warrior

525 Posts

Posted - 2002-09-17 : 19:33:39
Well, chadmat, it is a web based app... however it is a 300 page, ~ 75,000 lines of code app with a custom developed app framework (started in the IIS 3.0 days)... I don't think it would be feasible to move the app to commerce server. I'll look into it in case I can use that analytics portion without using the rest of commerce server, but my understanding is that that wouldn't be possible and/or elegant.

VyasKN, that's an interesting idea. I can definitely see how to achieve "Users who liked item X also liked A, B, C" easily enough. However, it would be a huge table (approaching [number of items]!, right?), and I can't see how one would account for more complex relationships ("Users who liked items X *and* Y also like items A, B, C, but users who only liked item X preferred D, E, F").

Thanks for the thoughts
-b



Edited by - aiken on 09/17/2002 19:37:02
Go to Top of Page

chadmat
The Chadinator

1974 Posts

Posted - 2002-09-17 : 19:45:58
Actually,

You don't have to use commerce server for the site, just use the business analytics portion of it. It imports all of the data from web logs as well as other stuff.

It has built in reports that can answer all types of questions about user behavior.

-Chad

Go to Top of Page
   

- Advertisement -