You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by José Moreira <ze...@zemanel.eu> on 2010/12/07 20:41:11 UTC

[mahout-user] Recommendation engine to support a LAMP application

Hello,

i was asked by a friendly company to improve their current product
recommendation system which is currently a couple of complex SQL queries
using fulltext search that match similar products based on title,
description and tags (a single comma separated field) and i don't have
experience with recommendation engines.


The new system must also take into account the click rate of a product
(in regard of similar ones) when it's being recommended, meaning that
when products B and C are presented as similar products of A and the
user (a web visitor, the application has no user accounts) clicks on B,
it's click rate in regard of A is increased and may influence the next
recommendation of similar products of A which orders the result by
similarity and click rate in relation to the displayed product, which i
think is called item-to-item recommendation.

Eventually, similar personal "tastes" will also need to be implemented.

As a note, my customer is also interested in obtaining for example 8
products from this set plus 2 more with a low click rate to give them a
chance of obtaining a higher click rate.

It's also required to be able to configure the weights of the
"variables", for example, 0.5clickRate+0.3description and so on.

Instead of starting to hack a custom solution i've been looking for
recommendation engines in PHP (the database is mysql) but haven't found
much.

I'm also aware of Apache Mahout, i could suggest the use of Mahout or a
similar java engine as a "web service" on a separate server, although i
know the customer is very much prone to a "pure" PHP solution, as their
applications are very basic stack-wise. The end solution will possibly
be implemented on other similar projects, so perhaps the standalone
server would be running multiple instances.

Additionally i don't have experience with Mahout or recommendation
engines in general, so i'm currently not aware how they manage the
"related click rate" feature. My questions are:

Any suggestions on implementing these features as a stand-alone server
or otherwise? I apologize if i haven't described the situation using
more direct technical terms.

Thank you

-- 
http://zemanel.eu
http://github.com/zemanel
http://pt.linkedin.com/in/josemoreira
http://djangopeople.net/josemoreira
irc://zemanel@irc.freenode.net


Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by Ted Dunning <te...@gmail.com>.
I didn't write the recommendation part of the book, so I can pretend that I
am unbiased in this
regard.  The recommendation part of the MiA book is, indeed, excellent.


On Tue, Dec 7, 2010 at 12:20 PM, Sebastian Schelter <ss...@apache.org> wrote:

>  suggest you get a copy of "Mahout in Action" from
> http://manning.com/owen/and read the recommender chapter to get a more
> detailed impression of what
> Mahout currently offers and then talk with your customer to decide whether
> it fits your needs.
>

Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by Ted Dunning <te...@gmail.com>.
You just reached him.  He is in the London time zone and will see your
message shortly.

2010/12/7 José Moreira <ze...@zemanel.eu>

> Sean Owen was providing that kind of support, how can i
> reach him?
>

Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by Isabel Drost <is...@apache.org>.
On Tue, 7 Dec 2010 José Moreira <ze...@zemanel.eu> wrote:
> providing that kind of support, how can i reach him? And/or is there
> anyone else providing paid support?

There is a page in our wiki listing people and companies for hire:

https://cwiki.apache.org/confluence/display/MAHOUT/Professional+support


Isabel

Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by Lance Norskog <go...@gmail.com>.
Look at the taste-web project in Mahout. It is a recommender servlet.
https://cwiki.apache.org/MAHOUT/recommender-documentation.html ,
search for 'Standalone'.

 This is the Servlet code itself:
http://people.apache.org/~isabel/mahout_site/mahout-taste-webapp/apidocs/org/apache/mahout/cf/taste/web/RecommenderServlet.html

http://www.lucidimagination.com/search/?q=apache+mahout+recommenderservlet

2010/12/7 José Moreira <ze...@zemanel.eu>:
> Hi,
>
> although the projects are small, for example the current only has only for
> now mostly product and category tables, the solution is intended to be
> re-used across several other existing projects and possibly some more in the
> future, that may or may not exist in the same server.
>
> Given this, my opinion is that an better solution than hacking complex
> queries and algorithms to emulate item/user based recommendations could be
> running Mahout as a dedicated service, as a custom solution may never yield
> the same result quality but it's ultimately up to the customer (and his
> budget).
>
> I'm currently a bootstrapping unemployed developer (from Portugal) and
> although i could use the revenue, i'm ultimately interested in providing an
> efficient solution and make the customer happy and so i'm open to include
> professional support as i currently don't have experience with Mahout. I was
> told that possibly Sean Owen was providing that kind of support, how can i
> reach him? And/or is there anyone else providing paid support? If so i can
> be contacted directly by this e-mail.
>
> Meanwhile i'll keep drilling the documentation.
>
> 2010/12/7 Sebastian Schelter <ss...@apache.org>
>
>> Hello Jose,
>>
>> I think Mahout has everything you need. All you have to do is to record
>> user-item interactions after which you can use one of our many recommender
>> implementations. If you wanna do recommendations based on similar user
>> tastes you can use a userbased recommender, if you'd like to look at
>> item-similarities you can use an itembased recommender. It's very likely
>> that you need to play around a little with both to see which one fits your
>> needs best.
>>
>> You can also implement a custom similarity measure that takes content
>> similarities like matching descriptions into account and rescores the
>> computed similarities based on that. Last but not least connecting the
>> taste
>> webservice to PHP shouldn't be a problem either.
>>
>> I suggest you get a copy of "Mahout in Action" from
>> http://manning.com/owen/and read the recommender chapter to get a more
>> detailed impression of what
>> Mahout currently offers and then talk with your customer to decide whether
>> it fits your needs.
>>
>> --sebastian
>>
>> PS: If you decide to use Mahout, don't forget to put your application on
>> the
>> Powered By page! :)
>>
>> 2010/12/7 José Moreira <ze...@zemanel.eu>
>>
>> > Hello,
>> >
>> > i was asked by a friendly company to improve their current product
>> > recommendation system which is currently a couple of complex SQL queries
>> > using fulltext search that match similar products based on title,
>> > description and tags (a single comma separated field) and i don't have
>> > experience with recommendation engines.
>> >
>> >
>> > The new system must also take into account the click rate of a product
>> > (in regard of similar ones) when it's being recommended, meaning that
>> > when products B and C are presented as similar products of A and the
>> > user (a web visitor, the application has no user accounts) clicks on B,
>> > it's click rate in regard of A is increased and may influence the next
>> > recommendation of similar products of A which orders the result by
>> > similarity and click rate in relation to the displayed product, which i
>> > think is called item-to-item recommendation.
>> >
>> > Eventually, similar personal "tastes" will also need to be implemented.
>> >
>> > As a note, my customer is also interested in obtaining for example 8
>> > products from this set plus 2 more with a low click rate to give them a
>> > chance of obtaining a higher click rate.
>> >
>> > It's also required to be able to configure the weights of the
>> > "variables", for example, 0.5clickRate+0.3description and so on.
>> >
>> > Instead of starting to hack a custom solution i've been looking for
>> > recommendation engines in PHP (the database is mysql) but haven't found
>> > much.
>> >
>> > I'm also aware of Apache Mahout, i could suggest the use of Mahout or a
>> > similar java engine as a "web service" on a separate server, although i
>> > know the customer is very much prone to a "pure" PHP solution, as their
>> > applications are very basic stack-wise. The end solution will possibly
>> > be implemented on other similar projects, so perhaps the standalone
>> > server would be running multiple instances.
>> >
>> > Additionally i don't have experience with Mahout or recommendation
>> > engines in general, so i'm currently not aware how they manage the
>> > "related click rate" feature. My questions are:
>> >
>> > Any suggestions on implementing these features as a stand-alone server
>> > or otherwise? I apologize if i haven't described the situation using
>> > more direct technical terms.
>> >
>> > Thank you
>> >
>> > --
>> > http://zemanel.eu
>> > http://github.com/zemanel
>> > http://pt.linkedin.com/in/josemoreira
>> > http://djangopeople.net/josemoreira
>> > irc://zemanel@irc.freenode.net
>> >
>> >
>>
>
>
>
> --
> http://zemanel.eu
> http://github.com/zemanel
> http://pt.linkedin.com/in/josemoreira
> http://djangopeople.net/josemoreira
> irc://zemanel@irc.freenode.net
>



-- 
Lance Norskog
goksron@gmail.com

Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by José Moreira <ze...@zemanel.eu>.
Hi,

although the projects are small, for example the current only has only for
now mostly product and category tables, the solution is intended to be
re-used across several other existing projects and possibly some more in the
future, that may or may not exist in the same server.

Given this, my opinion is that an better solution than hacking complex
queries and algorithms to emulate item/user based recommendations could be
running Mahout as a dedicated service, as a custom solution may never yield
the same result quality but it's ultimately up to the customer (and his
budget).

I'm currently a bootstrapping unemployed developer (from Portugal) and
although i could use the revenue, i'm ultimately interested in providing an
efficient solution and make the customer happy and so i'm open to include
professional support as i currently don't have experience with Mahout. I was
told that possibly Sean Owen was providing that kind of support, how can i
reach him? And/or is there anyone else providing paid support? If so i can
be contacted directly by this e-mail.

Meanwhile i'll keep drilling the documentation.

2010/12/7 Sebastian Schelter <ss...@apache.org>

> Hello Jose,
>
> I think Mahout has everything you need. All you have to do is to record
> user-item interactions after which you can use one of our many recommender
> implementations. If you wanna do recommendations based on similar user
> tastes you can use a userbased recommender, if you'd like to look at
> item-similarities you can use an itembased recommender. It's very likely
> that you need to play around a little with both to see which one fits your
> needs best.
>
> You can also implement a custom similarity measure that takes content
> similarities like matching descriptions into account and rescores the
> computed similarities based on that. Last but not least connecting the
> taste
> webservice to PHP shouldn't be a problem either.
>
> I suggest you get a copy of "Mahout in Action" from
> http://manning.com/owen/and read the recommender chapter to get a more
> detailed impression of what
> Mahout currently offers and then talk with your customer to decide whether
> it fits your needs.
>
> --sebastian
>
> PS: If you decide to use Mahout, don't forget to put your application on
> the
> Powered By page! :)
>
> 2010/12/7 José Moreira <ze...@zemanel.eu>
>
> > Hello,
> >
> > i was asked by a friendly company to improve their current product
> > recommendation system which is currently a couple of complex SQL queries
> > using fulltext search that match similar products based on title,
> > description and tags (a single comma separated field) and i don't have
> > experience with recommendation engines.
> >
> >
> > The new system must also take into account the click rate of a product
> > (in regard of similar ones) when it's being recommended, meaning that
> > when products B and C are presented as similar products of A and the
> > user (a web visitor, the application has no user accounts) clicks on B,
> > it's click rate in regard of A is increased and may influence the next
> > recommendation of similar products of A which orders the result by
> > similarity and click rate in relation to the displayed product, which i
> > think is called item-to-item recommendation.
> >
> > Eventually, similar personal "tastes" will also need to be implemented.
> >
> > As a note, my customer is also interested in obtaining for example 8
> > products from this set plus 2 more with a low click rate to give them a
> > chance of obtaining a higher click rate.
> >
> > It's also required to be able to configure the weights of the
> > "variables", for example, 0.5clickRate+0.3description and so on.
> >
> > Instead of starting to hack a custom solution i've been looking for
> > recommendation engines in PHP (the database is mysql) but haven't found
> > much.
> >
> > I'm also aware of Apache Mahout, i could suggest the use of Mahout or a
> > similar java engine as a "web service" on a separate server, although i
> > know the customer is very much prone to a "pure" PHP solution, as their
> > applications are very basic stack-wise. The end solution will possibly
> > be implemented on other similar projects, so perhaps the standalone
> > server would be running multiple instances.
> >
> > Additionally i don't have experience with Mahout or recommendation
> > engines in general, so i'm currently not aware how they manage the
> > "related click rate" feature. My questions are:
> >
> > Any suggestions on implementing these features as a stand-alone server
> > or otherwise? I apologize if i haven't described the situation using
> > more direct technical terms.
> >
> > Thank you
> >
> > --
> > http://zemanel.eu
> > http://github.com/zemanel
> > http://pt.linkedin.com/in/josemoreira
> > http://djangopeople.net/josemoreira
> > irc://zemanel@irc.freenode.net
> >
> >
>



-- 
http://zemanel.eu
http://github.com/zemanel
http://pt.linkedin.com/in/josemoreira
http://djangopeople.net/josemoreira
irc://zemanel@irc.freenode.net

Re: [mahout-user] Recommendation engine to support a LAMP application

Posted by Sebastian Schelter <ss...@apache.org>.
Hello Jose,

I think Mahout has everything you need. All you have to do is to record
user-item interactions after which you can use one of our many recommender
implementations. If you wanna do recommendations based on similar user
tastes you can use a userbased recommender, if you'd like to look at
item-similarities you can use an itembased recommender. It's very likely
that you need to play around a little with both to see which one fits your
needs best.

You can also implement a custom similarity measure that takes content
similarities like matching descriptions into account and rescores the
computed similarities based on that. Last but not least connecting the taste
webservice to PHP shouldn't be a problem either.

I suggest you get a copy of "Mahout in Action" from
http://manning.com/owen/and read the recommender chapter to get a more
detailed impression of what
Mahout currently offers and then talk with your customer to decide whether
it fits your needs.

--sebastian

PS: If you decide to use Mahout, don't forget to put your application on the
Powered By page! :)

2010/12/7 José Moreira <ze...@zemanel.eu>

> Hello,
>
> i was asked by a friendly company to improve their current product
> recommendation system which is currently a couple of complex SQL queries
> using fulltext search that match similar products based on title,
> description and tags (a single comma separated field) and i don't have
> experience with recommendation engines.
>
>
> The new system must also take into account the click rate of a product
> (in regard of similar ones) when it's being recommended, meaning that
> when products B and C are presented as similar products of A and the
> user (a web visitor, the application has no user accounts) clicks on B,
> it's click rate in regard of A is increased and may influence the next
> recommendation of similar products of A which orders the result by
> similarity and click rate in relation to the displayed product, which i
> think is called item-to-item recommendation.
>
> Eventually, similar personal "tastes" will also need to be implemented.
>
> As a note, my customer is also interested in obtaining for example 8
> products from this set plus 2 more with a low click rate to give them a
> chance of obtaining a higher click rate.
>
> It's also required to be able to configure the weights of the
> "variables", for example, 0.5clickRate+0.3description and so on.
>
> Instead of starting to hack a custom solution i've been looking for
> recommendation engines in PHP (the database is mysql) but haven't found
> much.
>
> I'm also aware of Apache Mahout, i could suggest the use of Mahout or a
> similar java engine as a "web service" on a separate server, although i
> know the customer is very much prone to a "pure" PHP solution, as their
> applications are very basic stack-wise. The end solution will possibly
> be implemented on other similar projects, so perhaps the standalone
> server would be running multiple instances.
>
> Additionally i don't have experience with Mahout or recommendation
> engines in general, so i'm currently not aware how they manage the
> "related click rate" feature. My questions are:
>
> Any suggestions on implementing these features as a stand-alone server
> or otherwise? I apologize if i haven't described the situation using
> more direct technical terms.
>
> Thank you
>
> --
> http://zemanel.eu
> http://github.com/zemanel
> http://pt.linkedin.com/in/josemoreira
> http://djangopeople.net/josemoreira
> irc://zemanel@irc.freenode.net
>
>