Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Let me explain the procedure that the authors introduced (as I understood it):</p> <p><strong>Input:</strong></p> <ul> <li><em>Training data</em>: users, items, and ratings of users to these items (not necessarily each user rated all items)</li> <li><em>Target user</em>: a new user with some ratings of some items</li> <li><em>Target item</em>: an item not rated by target user that we would like to predict a rating for it.</li> </ul> <p><strong>Output:</strong></p> <ul> <li>prediction for the target item by target user</li> </ul> <p>This can be repeated for a bunch of items, and then we return the N-top items (highest predicted ratings)</p> <p><strong>Procedure:</strong><br> The algorithm is very similar to the naive <a href="http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm" rel="noreferrer">KNN</a> method (search all training data to find users with similar ratings to the target user, then combine their ratings to give prediction [voting]).<br> This simple method does not scale very well, as the number of users/items increase.</p> <p>The algorithm proposed is to first cluster the training users into <strong>K</strong> groups (groups of people who rated items similarly), where <strong>K</strong> &lt;&lt; <strong>N</strong> (<strong>N</strong> is the total number of users).<br> Then we scan those clusters to find which one the target user is closest to (instead of looking at all the training users).<br> Finally we pick <strong>l</strong> out of those and we make our prediction as an average weighted by the distance to those <strong>l</strong> clusters.</p> <p>Note that the similarity measure used is the <a href="http://en.wikipedia.org/wiki/Correlation" rel="noreferrer">correlation</a> coefficient, and the clustering algorithm is the bisecting K-Means algorithm. We can simply use the standard <a href="http://en.wikipedia.org/wiki/K-means_clustering" rel="noreferrer">kmeans</a>, and we can use other similarity metrics as well such as <a href="http://en.wikipedia.org/wiki/Euclidean_distance" rel="noreferrer">Euclidean distance</a> or cosine distance.</p> <p>The first formula on page 5 is the definition of the correlation:</p> <pre><code>corr(x,y) = (x-mean(x))(y-mean(y)) / std(x)*std(y) </code></pre> <p>The second formula is basically a weighted average:</p> <pre><code>predRating = sum_i(rating_i * corr(target,user_i)) / sum(corr(target,user_i)) where i loops over the selected top-l clusters </code></pre> <p>Hope this clarifies things a little bit :)</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload