In addition to recommendations for individual items

Simple recommendation systems for the individual elements are well known and often implemented. An example is the Slope One algorithm. This is normal if the user has not yet rated many elements, but as soon as they appear, I want to offer more subtle recommendations. As an example, let's take a system of musical recommendations, as they are quite popular. If the user views a Mozart play, an offer may be given for another Mozart or Beethoven play. But if a user made many ratings of classical music, we could make a correlation between the elements and see that the user does not like vocals or certain instruments. I assume that this will be a two-part process, the first part is to find correlations between the ratings of each user, the second is to build a matrix of recommendations from this additional data. So the question is, are they any open source implementations or documents that can be used for each of these steps?

+4
source share
3 answers

The taste may have something wholesome. He moved on to the Mahout project:

http://taste.sourceforge.net/

In general, the idea is that, given the user's past preferences, you want to predict what they will choose next, and recommend it. You are building a machine learning model in which the input is what the user selected in the past and the attributes of each choice. The result is the elements that they select. You create training data by holding back some of its options and using your story to predict the data you held back.

Many different machine learning models that you can use. Decision trees are shared.

+2
source

One answer is that any recommendation system should have some properties that you describe. Initially, the recommendations are not so good and everywhere. As he learns about tastes, recommendations will come from an area that the user likes.

But the collaborative filtering process that you describe does not fundamentally try to solve the problem you are trying to solve. It is based on user ratings, and two songs are not rated equally because they are similar to songs - they are rated similarly only because people like them.

What you really need to do is determine your resemblance to a song and a song. Does it depend on how the song sounds? composer? Because it seems that in fact the concept is not based on ratings. This is 80% of the problem you are trying to solve.

I think that you really answer the question, which subjects are most similar to this subject? Given the similarity of your product, this is a simpler problem than a recommendation.

Mahout can help with all of these things except resembling a song based on its audio - or at least provide a start and framework for your decision.

+1
source

There are two methods that I can think of:

  • Set up a closed loop artificial neural network using Backpropagation or one of its successors (e.g. Resilient Propagation).
  • Use version space exploration . It starts with the most general and most specific hypotheses about what the user likes and narrows them down when adding new examples. You can use a hierarchy of terms to describe concepts.

General characteristics of these methods:

  • You need a different feature for each user. These are quite a few rules for effective database queries when searching for recommendations.
  • The function can be updated on the fly when the user votes on an item.
  • The sizes by which you classify the input data (for example, have vocals, beats per minute, musical scales, whatever) are very important for the quality of the classification.

Please note that these offers come from university courses in systems based on knowledge and artificial neural networks, and not from practical experience.

0
source

Source: https://habr.com/ru/post/1332720/


All Articles