In the recommender systems section of his famous Coursera machine learning course, when Andrew Ng wants to introduce collaborative filtering, he says that each movie has some features and each user has some parameters. Why he distinguishes between users and movies aspects? I think we can say that as the features of the users and the features of the movies.

  • $\begingroup$ In general, the terms features, parameters, or sensors are interchangeable. $\endgroup$ Nov 1, 2017 at 16:39
  • $\begingroup$ @OpenSeason, what? that's not true in general. Features are very different from parameters. Parameters usually form features. $\endgroup$ Nov 1, 2017 at 16:41
  • 1
    $\begingroup$ Features are what are input into the "user function", which varies from user to user because users have different parameters. Movies are distinguished from each other by the features. As an analogy, think of a function $f(x;n) = x^n$. I have a collection of $f$s that are distinguished from each other by the parameter $n$, but each $f$ operates on the input feature $x$ in the same way given $n$. $\endgroup$
    – jbowman
    Nov 1, 2017 at 20:33

1 Answer 1


Most collaborative filtering models define the affinity of user $i$ toward product $j$ as $u_i^Tv_j$, where $u_i$ is the preference (or parameter) vector of the user and and $v_j$ is the feature vector of the item. Note that these tend to be abstractions, because collaborative filtering algorithms need to do a minimization to even find these vectors $u,v$.

Both vectors live in a vector space of the same dimension, but we typically distinguish the two because one vector captures the user's likes and hates, wheras $v$ captures abstract features of the movie that translate to likes or hates when inner-producted with a given user.

  • $\begingroup$ Thanks. I think we can call both $v$ and $u$ feature vectors, and also we can name both as parameter vectors. I mean $u$ represents the attitude of a user toward different aspects of a product, so it can be treated as the user feature vector. On the other hand, since we minimize the cost function to find both $v$ and $u$, we can name both as parameter vectors. So why Andrew call $v$ the feature vector and $u$ the parameter vector? $\endgroup$
    – Hossein
    Nov 1, 2017 at 20:11
  • $\begingroup$ I think it's an artifact of matrix factorizations in general. For a collaborative filtering problem we're effectively trying to represent $M=UV$ (there are many generalizations and versions of this, but the rough same idea holds). The point here is that one matrix captures the user preferences, while the second matrix captures item "features." However this model doesn't prevent items from having preferences toward users :). $\endgroup$
    – Alex R.
    Nov 1, 2017 at 23:15
  • $\begingroup$ As well, matrix factorizations don't care about whether you're using $M$ or $M^T$, i.e. they don't distinguish between users and items. From a linear-algebra point of view, the rank stays exactly the same and the above factorizations translate very easily. But its helpful for practitioners to induce such a distinction, because causality tends to suggest that users prefer items and not the other way around. $\endgroup$
    – Alex R.
    Nov 1, 2017 at 23:19
  • $\begingroup$ As you know, by the parameter we mean different variables that the learning algorithm tries to find their values. On the other hand, by the feature we mean different aspects of a sample which are used to represent that sample. By this interpretation, I think we can call both $v$ and $u$ as parameters as well as the features. $\endgroup$
    – Hossein
    Nov 3, 2017 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.