Stay organized with collections
Save and categorize content based on your preferences.
Content-based filtering uses item features to recommend other items
similar to what the user likes, based on their previous actions or explicit
feedback.
To demonstrate content-based filtering, let's hand-engineer some features
for the Google Play store. The following figure shows a feature matrix where
each row represents an app and each column represents a feature. Features
could include categories (such as Education, Casual, Health), the publisher
of the app, and many others. To simplify, assume this feature matrix is binary:
a non-zero value means the app has that feature.
You also represent the user in the same feature space. Some of the user-related
features could be explicitly provided by the user. For example, a user selects
"Entertainment apps" in their profile. Other features can be implicit,
based on the apps they have previously installed. For example, the user
installed another app published by Science R Us.
The model should recommend items relevant to this user. To do so, you must
first pick a similarity metric (for example, dot product). Then, you must
set up the system to score each candidate item according to this similarity
metric. Note that the recommendations are specific to this user, as the model
did not use any information about other users.
Using dot product as a similarity measure
Consider the case where the user embedding \(x\) and the app
embedding \(y\) are both binary vectors. Since
\(\langle x, y \rangle = \sum_{i = 1}^d x_i y_i\), a
feature appearing in both \(x\) and \(y\) contributes a 1 to
the sum. In other words, \(\langle x, y \rangle\) is the number
of features that are active in both vectors simultaneously. A high
dot product then indicates more common features, thus a higher similarity.
Try it yourself!
Calculate the dot product for each app in the preceding app problem.
Then use that information to answer the question below:
Which app should we recommend?
The educational app created by Science R Us.
You are correct! This item has the highest dot product
at 2. Our user really likes science and educational apps.
The health app created by Healthcare.
This app scores a 1. It isn't the worst recommendation our
system could make, but it certainly isn't the best.
The casual app created by TimeWastr.
This app actually has the lowest dot product at 0. Our
user isn't interested in casual apps like games.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eContent-based filtering suggests items similar to a user's preferences by analyzing item features and user interactions.\u003c/p\u003e\n"],["\u003cp\u003eUser and item features are represented in a feature matrix, where common features indicate higher similarity.\u003c/p\u003e\n"],["\u003cp\u003eDot product is used as a similarity metric, with higher values indicating stronger relevance between user and item.\u003c/p\u003e\n"],["\u003cp\u003eRecommendations are tailored to individual users based on their specific features and interactions, without using data from other users.\u003c/p\u003e\n"],["\u003cp\u003eThe system identifies the best recommendations by calculating dot products and selecting items with the highest scores.\u003c/p\u003e\n"]]],[],null,["# Content-based filtering uses item features to recommend other items\nsimilar to what the user likes, based on their previous actions or explicit\nfeedback.\n\nTo demonstrate content-based filtering, let's hand-engineer some features\nfor the Google Play store. The following figure shows a feature matrix where\neach row represents an app and each column represents a feature. Features\ncould include categories (such as Education, Casual, Health), the publisher\nof the app, and many others. To simplify, assume this feature matrix is binary:\na non-zero value means the app has that feature.\n\nYou also represent the user in the same feature space. Some of the user-related\nfeatures could be explicitly provided by the user. For example, a user selects\n\"Entertainment apps\" in their profile. Other features can be implicit,\nbased on the apps they have previously installed. For example, the user\ninstalled another app published by Science R Us.\n\nThe model should recommend items relevant to this user. To do so, you must\nfirst pick a similarity metric (for example, dot product). Then, you must\nset up the system to score each candidate item according to this similarity\nmetric. Note that the recommendations are specific to this user, as the model\ndid not use any information about other users.\n\nUsing dot product as a similarity measure\n-----------------------------------------\n\nConsider the case where the user embedding \\\\(x\\\\) and the app\nembedding \\\\(y\\\\) are both binary vectors. Since\n\\\\(\\\\langle x, y \\\\rangle = \\\\sum_{i = 1}\\^d x_i y_i\\\\), a\nfeature appearing in both \\\\(x\\\\) and \\\\(y\\\\) contributes a 1 to\nthe sum. In other words, \\\\(\\\\langle x, y \\\\rangle\\\\) is the number\nof features that are active in both vectors simultaneously. A high\ndot product then indicates more common features, thus a higher similarity.\n\nTry it yourself!\n----------------\n\nCalculate the dot product for each app in the preceding app problem.\nThen use that information to answer the question below: \nWhich app should we recommend? \nThe educational app created by Science R Us. \nYou are correct! This item has the highest dot product at 2. Our user really likes science and educational apps. \nThe health app created by Healthcare. \nThis app scores a 1. It isn't the worst recommendation our system could make, but it certainly isn't the best. \nThe casual app created by TimeWastr. \nThis app actually has the lowest dot product at 0. Our user isn't interested in casual apps like games."]]