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

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

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

José Moreira
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://[hidden email]

Reply | Threaded
Open this post in threaded view
|

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

Sebastian Schelter-4
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 <[hidden email]>

> 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://[hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

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

Ted Dunning
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 <[hidden email]> 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.
>
Reply | Threaded
Open this post in threaded view
|

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

José Moreira
In reply to this post by Sebastian Schelter-4
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 <[hidden email]>

> 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 <[hidden email]>
>
> > 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://[hidden email]
> >
> >
>



--
http://zemanel.eu
http://github.com/zemanel
http://pt.linkedin.com/in/josemoreira
http://djangopeople.net/josemoreira
irc://[hidden email]
Reply | Threaded
Open this post in threaded view
|

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

Lance Norskog-2
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 <[hidden email]>:

> 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 <[hidden email]>
>
>> 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 <[hidden email]>
>>
>> > 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://[hidden email]
>> >
>> >
>>
>
>
>
> --
> http://zemanel.eu
> http://github.com/zemanel
> http://pt.linkedin.com/in/josemoreira
> http://djangopeople.net/josemoreira
> irc://[hidden email]
>



--
Lance Norskog
[hidden email]
Reply | Threaded
Open this post in threaded view
|

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

Ted Dunning
In reply to this post by José Moreira
You just reached him.  He is in the London time zone and will see your
message shortly.

2010/12/7 José Moreira <[hidden email]>

> Sean Owen was providing that kind of support, how can i
> reach him?
>
Reply | Threaded
Open this post in threaded view
|

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

IsabelDrost
In reply to this post by José Moreira
On Tue, 7 Dec 2010 José Moreira <[hidden email]> 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