Explicit vs Implicit Feedback
The data a recommender trains on falls into two structurally different categories: explicit feedback, where the user has consciously and intentionally communicated a preference (a 1-to-5-star rating, a thumbs-up, an explicit “like”), and implicit feedback, where preference is inferred from observed user behaviour (the user clicked the item, watched it for a long time, purchased it, returned to it, played the song twice, scrolled past without engaging). The distinction is not a minor data-engineering footnote — it forces fundamentally different mathematical formulations of the recommendation problem, different loss functions, and different evaluation protocols. Conflating the two is one of the most common modelling errors in the field, and it produces models that look fine in offline metrics and fail in production.
1. Why the Distinction Matters Historically
Early recommender research (roughly 1990–2010) assumed explicit ratings as the default data source. The two canonical research datasets — MovieLens, released by the GroupLens lab at the University of Minnesota beginning in 1997, and the Netflix Prize dataset, released in 2006 — both consist of 1-to-5-star ratings. Almost every algorithm in the textbooks of that era (Adomavicius & Tuzhilin 2005, the standard early survey) was designed for and benchmarked on this data shape. The Netflix Prize itself was scored by Root Mean Squared Error (RMSE) on held-out 5-star ratings, which committed the entire field to optimizing rating-prediction accuracy for three years.
This focus on explicit feedback was, in retrospect, a historical accident. The data was easy to obtain and easy to publish (a flat file of user, item, rating), and the evaluation metric was a clean regression target. But the data was also profoundly unrepresentative of how real users behave on real platforms. Two empirical facts derailed the assumption that explicit ratings were the natural signal:
- Most users do not rate anything. Surveys of MovieLens users in the early 2000s found that the long-tail majority of users rate fewer than five items in their lifetime on the platform. The few users who rate prolifically are atypical — they are biased samplers of the population, often with extreme opinions (people rate things they hate or love, not things they merely tolerate) or completionist tendencies. A model trained on these users will not generalize to the silent majority.
- Modern surfaces collect zero explicit ratings. TikTok has no rating widget. Spotify has like/dislike but most users never click them. Amazon’s recommendations on the homepage do not depend on you having reviewed any product. The actually-deployed systems run on implicit data: who watched what, for how long, how often.
The turning point in the literature was the publication of “Collaborative Filtering for Implicit Feedback Datasets” by Yifan Hu (then AT&T), Yehuda Koren (then Yahoo Research), and Chris Volinsky (AT&T) at the IEEE International Conference on Data Mining (ICDM) in 2008. This paper gave the field a principled mathematical framework for training factor models on implicit data — one that respected the structural differences between explicit and implicit signals rather than pretending they were the same. The paper won the ICDM 2017 Ten-Year Highest-Impact Paper Award, which is awarded once a year to the single ICDM paper from a decade prior judged to have had the largest impact on the field. Modern recommender systems are downstream of this paper.
2. The Structural Differences
Five attributes of feedback data differ between the two cases. Each has direct algorithmic consequences.
2.1 Source
Explicit feedback originates from a deliberate user action whose meaning is unambiguous to the user themselves. Examples: a five-star rating on a movie, a thumbs-up on a song, a “love” reaction on a post. The user knows they are expressing preference; the act of rating is itself a separate behaviour from consuming the item.
Implicit feedback originates from behavioural traces that the system collects passively as the user interacts with the catalog. Examples: the user clicked the thumbnail, the user watched 4m12s of a 5-minute video, the user added the item to a cart, the user purchased the item, the user returned to the page on three consecutive days. The user did not consciously intend to communicate preference — they were just using the product.
2.2 Sign
Explicit feedback is signed: a five-star rating expresses positive preference; a one-star rating expresses negative preference. Both directions are observed. The model can learn what users like and what they dislike from the same data source.
Implicit feedback is unsigned — at least, not natively. Observing that a user clicked an item is positive evidence (they had at least enough interest to click). Observing that a user did not click an item is not clear evidence of dislike — the user may simply not have seen the item, or may have been in a hurry, or may not have noticed it on a busy page. This asymmetry — positives are present, negatives are absent — is the defining structural property of implicit feedback and is the root cause of the mathematical reformulation the field had to undertake.
2.3 Treatment of Missing Data
This is where the algorithmic divergence is most concrete:
- Explicit feedback: missing entry
R[u, i]means unknown. The user has not rated this item. The correct treatment is to exclude the cell from the loss function entirely. We have no signal one way or the other. - Implicit feedback: missing entry
R[u, i] = 0means the user has not interacted with the item. Some of these missing entries are true negatives (the user saw the item and chose not to engage). Some are missing-not-at-random (the system never showed the item to the user). The correct treatment is to include the cell in the loss function but with low confidence — a topic the rest of this note develops in detail.
If you treat implicit-data zeros as “unknown” and exclude them from the loss the way you would for explicit ratings, you have no negatives at all and the model trivially learns to predict everything is positive. If you treat explicit-rating missing values as zero and include them with full confidence, you’ve told the model the user gave every unrated movie a one-star rating, which it is not. The correct missing-data treatment is the opposite for the two cases. This single fact is the most common source of bugs in recommender pipelines.
2.4 Volume and Bias
Explicit feedback is sparse and biased. Few users provide it, and the ones who do are not representative. Median Netflix Prize user provides about 200 ratings; the long tail of ordinary users provides far fewer.
Implicit feedback is dense (relative to explicit) but noisy. Every page view, every click, every play is logged automatically. The volume can be orders of magnitude higher than explicit data on the same population. The flip side is that the signal is weaker per observation — a click is much less informative than a five-star rating.
2.5 Noise Sources
Different noise sources dominate each case:
- Explicit-feedback noise is mostly rater bias: some raters give everything five stars (they only bother to rate things they liked); some compress their ratings into a narrow band; ratings drift over time as the user’s standards calibrate. There is also the cultural problem of rating inflation on platforms like Uber and Airbnb where a 4-star rating is interpreted as a complaint.
- Implicit-feedback noise is mostly interaction-doesn’t-mean-preference: the user mis-clicked; autoplay loaded the item without the user’s intent; the user opened a tab and walked away from the computer; the user purchased a gift for someone else; the user watched something out of morbid curiosity. The numerical interaction count exists but does not cleanly map to preference.
3. The Hu, Koren & Volinsky Reformulation
The 2008 paper’s contribution was the recognition that implicit interaction data carries two distinct quantities that explicit ratings collapse into one. Treating them separately yields a clean training objective.
The two quantities are:
Preference p_{u,i} ∈ {0, 1} — a binary indicator of whether user u has had any positive interaction with item i. If the raw observation r_{u,i} (e.g., watch count) is greater than zero, p_{u,i} = 1; otherwise p_{u,i} = 0.
Confidence c_{u,i} ∈ ℝ_{≥1} — a real-valued confidence in the preference observation. The paper proposes a linear functional form:
c_{u,i} = 1 + α · r_{u,i}
where:
r_{u,i}is the raw interaction count or magnitude (e.g., number of times useruwatched songi, or the watch-time of videoiin seconds, or whatever the implicit signal measures).αis a hyperparameter that controls how aggressively confidence grows with interaction count. The original paper foundα = 40worked well on the dataset they studied. The general principle: largerαmakes the confidence weighting more aggressive, putting more emphasis on items the user interacted with heavily.- The
+1term ensures every cell has at least confidence 1, including the cells wherer_{u,i} = 0(i.e., the negatives). This is what makes the loss include unobserved cells with low but non-zero weight.
Some implementations use a logarithmic form c_{u,i} = 1 + α · log(1 + r_{u,i} / ε) instead, which prevents extremely active users (or very popular items) from dominating the confidence values. Both forms are common; the linear form is the original paper’s primary recommendation.
3.1 The training objective
With the preference/confidence split, the training objective for an implicit-feedback matrix factorization model becomes a weighted least-squares problem over all user-item cells, not just observed ones:
L(X, Y) = Σ_{u, i} c_{u,i} · ( p_{u,i} − x_uᵀ · y_i )² + λ · ( Σ_u ‖x_u‖² + Σ_i ‖y_i‖² )
where:
L(X, Y)is the loss to minimize, parameterized by the user factor matrixX ∈ ℝ^{m × k}and the item factor matrixY ∈ ℝ^{n × k}. Heremis the number of users,nis the number of items, andkis the chosen latent dimensionality (typically 20 to 200).x_u ∈ ℝ^kis the row ofXcorresponding to useru— useru’s latent factor vector.y_i ∈ ℝ^kis the row ofYcorresponding to itemi— itemi’s latent factor vector.x_uᵀ · y_iis the dot product, a scalar; it is the model’s predicted preference ofufori. The dot product takes values in ℝ;p_{u,i}is in {0, 1}; the squared difference penalizes the model when its prediction misses the binary target.- The outer summation is over all
(u, i)pairs, including the ones the user has never touched. This is the key departure from explicit-feedback formulations. c_{u,i}weights each cell’s contribution to the loss. Cells with high confidence (heavy positive interactions) contribute more; cells with low confidence (no interaction) contribute the baseline weight of 1.λis the L2-regularization coefficient, typically in the range 0.01 to 0.1. The regularization terms‖x_u‖²and‖y_i‖²(squared L2 norms of the factor vectors) prevent the optimizer from finding pathological solutions where the factors blow up to fit noise.
To see why the c_{u,i} weighting captures the right intuition, consider three concrete cases:
- User watched a song 10 times. Then
r_{u,i} = 10,p_{u,i} = 1, and withα = 40,c_{u,i} = 1 + 40·10 = 401. The cell carries strong weight 401 — the loss heavily penalizes the model for predicting low preference here. - User has never seen a song. Then
r_{u,i} = 0,p_{u,i} = 0, andc_{u,i} = 1. The cell carries baseline weight 1 — the model is asked to predict near-zero, but with low confidence, so a moderate model prediction here is not heavily penalized. - User watched a song once and abandoned. Then
r_{u,i} = 1,p_{u,i} = 1, andc_{u,i} = 1 + 40·1 = 41. The cell carries moderate weight 41 — the model is asked to predict positive preference, but the system is not very confident.
This treatment captures the central insight: the numerical magnitude of implicit feedback is not a rating, it is a confidence. Treating watch count as if it were on the same scale as a 1-to-5-star explicit rating is the most common modelling mistake in the field, and it produces nonsensical results because the model’s loss function will then interpret “watched 200 times” as roughly “rated 200 stars” instead of “I am very confident this is a positive interaction”.
3.2 The optimization
The loss L(X, Y) is bilinear in X and Y: with one fixed, it is convex (in fact quadratic) in the other. This structure is exploited by Alternating Least Squares (ALS), the optimization method the paper recommends. ALS alternately fixes Y and solves for the optimal X, then fixes X and solves for the optimal Y, repeating to convergence. For a single user u with Y fixed, the optimal x_u has a closed-form expression:
x_u = (Yᵀ · C^u · Y + λ · I)^{-1} · Yᵀ · C^u · p_u
where:
C^u ∈ ℝ^{n × n}is a diagonal matrix withc_{u,i}on the diagonal — useru’s confidence weights for every item.p_u ∈ ℝ^nis the column vector ofu’s preferences (mostly zeros).I ∈ ℝ^{k × k}is the identity matrix.- The
(Yᵀ · C^u · Y + λ · I)^{-1}is ak × kmatrix inversion (small and cheap becausekis much less thann).
The clever trick the paper introduces is a reformulation that lets the per-user computation be done in time linear in the number of items the user actually interacted with, rather than linear in the full catalog size. This is the algorithmic innovation that made the method tractable on industrial data. The full derivation is in Section 4 of the paper. See Matrix Factorization for the broader matrix-factorization context this fits into.
4. Implicit Signal Types and Their Strengths
Different implicit signals carry different amounts of information about preference. A working taxonomy:
Purchase / subscribe / install. The strongest positive implicit signal in most domains. The user has paid (with money or with commitment) to acquire the item; this carries clear positive preference. Caveats: gifts (the buyer is not the consumer), bulk purchases for resale, subscription auto-renewals where the user is no longer engaged.
Completion or high dwell-time. A user who watched 90% of a video, read an article to the end, or listened to a song to the final notes is signaling clear positive preference. Dwell-time is the most-used implicit signal at YouTube, Netflix, and TikTok. Caveats: autoplay (the next item plays without intent), tab-left-open (the user stepped away from the device), background play (audio playing while the user does something else). Sophisticated systems normalize for item duration (90% completion of a 10-second clip is structurally different from 90% completion of a 2-hour film) and for context.
Click / play / tap. A moderate positive signal. The user took at least enough action to begin engaging. Click-through rate (CTR) is the most common short-term metric in production. Caveats: misclicks; clickbait thumbnails that elicit clicks but not satisfaction; the click does not survive to a real interaction.
Dwell on a recommendation card without click (impression-only). Weak signal. The item was visible but not engaged. In some pipelines this is logged as a negative observation; in others it is treated as ambiguous.
Skip / scroll-past / dismiss. A weak negative. The user saw the item and chose not to engage. Caveats: the user may have been in a hurry, or may have already consumed the item elsewhere.
Explicit dismiss (“not interested”, “hide this”). The strongest negative signal, equivalent to a one-star rating. Rare because users almost never click these widgets — the cost of explicit dismissal is higher than the cost of just scrolling past. Spotify, YouTube, and Twitter all expose these affordances and weight them heavily when present.
A production model rarely uses a single implicit signal — it combines several into a composite reward. The composition is application-specific; YouTube’s combined reward (the famous “watch-time as objective” of the Covington 2016 paper) leans heavily on dwell-time normalized for item duration.
5. How the Algorithm Family Changes
The explicit/implicit distinction propagates through every algorithm choice. A summary table of the most common algorithm families and their explicit-vs-implicit variants:
Memory-based (neighborhood) collaborative filtering. With explicit ratings, similarity between users is computed as the Pearson correlation over co-rated items, and the prediction is a weighted average of neighbors’ ratings. With implicit binary data, similarity is computed as cosine similarity on the binary co-occurrence vectors, or as a conditional probability P(j | i), or as Jaccard similarity (the size of the intersection divided by the size of the union of the user sets that touched each item). The mathematics is structurally similar; the choice of similarity measure differs because Pearson assumes continuous ratings and breaks on binary data. See User-User Collaborative Filtering and Item-Item Collaborative Filtering.
Matrix factorization. With explicit ratings, the canonical method is Funk SVD — Stochastic Gradient Descent on the regularized squared error over observed cells only (Simon Funk 2006). With implicit feedback, the canonical method is iALS — implicit Alternating Least Squares (the Hu, Koren, Volinsky 2008 method described above). Both produce factor matrices X and Y with the same shape and the same dot-product scoring; they differ in the loss function and the optimizer. See Matrix Factorization.
Pairwise ranking — Bayesian Personalized Ranking (BPR). A different attack on implicit feedback, introduced by Steffen Rendle et al. in 2009 in “BPR: Bayesian Personalized Ranking from Implicit Feedback”. Rather than fitting preference values directly, BPR treats the recommendation problem as a pairwise ranking problem: for a user u, an observed positive item i, and a sampled negative item j, the model is trained to score the positive higher than the negative. The loss has the form
L_BPR = − Σ_{(u, i, j)} ln σ( ŷ_{u,i} − ŷ_{u,j} ) + λ · regularization
where:
(u, i, j)ranges over training triples — for each observed positive(u, i), one or more sampled negativesj(itemsuhas not interacted with).ŷ_{u,i} = x_uᵀ · y_iis the model’s score for useruon itemi(or any other parameterization).σ(x) = 1 / (1 + e^{−x})is the sigmoid (logistic) function, which maps the score difference into (0, 1).ln σ(ŷ_{u,i} − ŷ_{u,j})is the log-likelihood that the positive scores higher than the negative under the Bradley-Terry-like pairwise preference model assumed by BPR.
BPR derives this loss as a maximum a posteriori estimator under a Bernoulli likelihood with a Bradley-Terry-style probability P(i >_u j) = σ(ŷ_{u,i} − ŷ_{u,j}) and a Gaussian prior on parameters. The full derivation is in section 4 of the paper. The key contrast with iALS is that BPR optimizes a ranking objective directly, while iALS optimizes a preference-prediction objective and produces rankings as a byproduct. BPR is the foundation for many modern implicit-feedback methods, including the loss used in the LightFM library and many neural-CF papers.
Neural collaborative filtering. With explicit ratings, the model has a regression head and an MSE (Mean Squared Error) loss. With implicit feedback, the model has a binary-classification or ranking head and a cross-entropy or BPR-style loss with negative sampling. See Neural Collaborative Filtering.
6. Negative Sampling: The Other Half of the Implicit-Feedback Problem
If you only have observed positives in your training data, a model can trivially achieve perfect training accuracy by predicting positive on everything. To make implicit-feedback training meaningful, you need to provide the model with negatives — examples of (user, item) pairs that should score low. Three sampling strategies are standard.
Random uniform negatives. For each observed positive (u, i), sample k items uniformly at random from the catalog of items u has not interacted with, and treat them as negatives. This is the cheapest and most common scheme. The drawback is that most random negatives are uninformative — they are items the user genuinely never heard of, items in completely different categories, items that are obvious non-matches. The model learns the easy boundary quickly and spends most of its training compute distinguishing trivially different items.
Popularity-weighted negatives. Sample negatives proportional to item popularity. This produces harder negatives — items that other users frequently interact with but this user has not — and forces the model to learn finer-grained distinctions. This is closer to the deployment distribution because, at recommendation time, the model is asked to distinguish between candidates that have all already passed a popularity-aware retrieval stage.
In-batch negatives. A clever optimization for two-tower training (see Two-Tower Retrieval Model). For a batch of B (user, item) pairs, compute all B user embeddings and all B item embeddings, then form the B × B matrix of dot products. The diagonal contains the positives (each user’s positive item); the off-diagonal contains implicit negatives — other users’ positives, which are presumed to be negatives for this user. This gives B − 1 negatives per positive at essentially no extra cost beyond a single matrix multiplication. The technique is extremely efficient on GPUs and is the default for industrial two-tower training.
The in-batch scheme has a known bias: popular items appear as positives for many users in any given batch, so they appear as negatives for many others. This biases the model toward under-recommending popular items. The standard correction, due to Yi et al. RecSys 2019, is to subtract log P(item) from each logit before the softmax, where P(item) is the empirical sampling probability of the item in batches. This is mathematically equivalent to the sampled softmax correction used in language modeling and is essential for production use of in-batch negatives.
7. Combined Explicit and Implicit Feedback
Sometimes both kinds of signal are available — a user has both watched movies (implicit) and explicitly rated some of them (explicit). Combining the two well is non-trivial because the scales and meanings differ.
A naive combination — concatenating ratings and click counts as if they were on the same scale — is wrong: a five-star rating and a single click are not at all comparable in informational content, and treating them as the same numerical signal corrupts the model.
Two principled approaches:
-
Separate model heads. Train a single backbone (factor matrices or neural embeddings) with two output heads — one for rating prediction (regression with MSE) and one for click prediction (binary classification with cross-entropy). The two heads share representations but have separate losses. This is a multi-task learning (MTL) setup.
-
Unified confidence model. Liu, Lai, Gao 2010, “Unifying explicit and implicit feedback for collaborative filtering” at CIKM proposes a single objective in the Hu/Koren/Volinsky framework where explicit ratings are treated as very-high-confidence preference observations (
c_{u,i}is a function of the rating value) and implicit signals are treated as moderate-confidence observations. The framework cleanly subsumes both data types under one objective.
In production, the choice between these is usually made empirically based on which one wins offline A/B tests against a single-task baseline.
8. Pitfalls and Misconceptions
The following are mistakes I have seen repeatedly in production code and in academic papers.
Treating implicit counts as ratings. As emphasized above, the numerical value of a watch count or a play count is confidence, not preference strength. Plugging watch count into Funk SVD as if it were a rating produces a model that interprets “watched 50 times” as “would have rated this 50 stars” — nonsense. Use iALS, BPR, or a properly designed confidence-weighted objective.
Assuming missing-equals-negative with full confidence. Treating every (user, item) pair the user has not touched as a hard negative is wrong because most missing entries are missing-not-at-random — the system did not show the item to the user. The Hu/Koren/Volinsky confidence weighting handles this correctly by giving missing cells low (but nonzero) confidence.
Mixing explicit and implicit naively. A 5-star rating and a click are not on the same scale. Use separate heads or a unified confidence framework; do not just sum or concatenate the signals.
Survivorship bias in dwell-time logging. If you only log dwell-time for items that received a click, you cannot compare dwell distributions across the items that were never clicked at all. The denominator matters; logging policy matters; impressions-without-clicks must be recorded.
Ignoring exposure bias. Implicit feedback is conditioned on the recommender having shown the item in the first place. If your model is trained on logs of what your previous recommender did well at, the new model inherits the previous model’s biases. This is the exposure bias problem; it is addressed by counterfactual evaluation methods or by inverse-propensity-score weighting (see the literature on off-policy evaluation in contextual bandits).
Optimizing CTR alone. Click-through rate as a sole objective rewards clickbait. Production rewards combine CTR with downstream measures (dwell-time, conversion, retention) precisely to avoid this failure mode.
9. See Also
- Recommender Systems — the umbrella note where this distinction shows up in section 6
- Collaborative Filtering — the algorithm family most affected by the distinction
- Matrix Factorization — implementations of both Funk SVD (explicit) and iALS (implicit)
- Neural Collaborative Filtering — implicit-feedback by design
- Two-Tower Retrieval Model — the canonical use of in-batch negative sampling
- Cold Start Problem — interacts with feedback type (cold users have no implicit history either)
- Recommender Evaluation Metrics — implicit data forces ranking metrics over rating metrics
- Recommender Systems MOC