Does a matrix factorization recommendation engine use user/item related features? All the tutorials I can find about matrix factorization recommendation systems start with importing users, items, and user-item-ratings, but then only use the rating matrix to train the recommender (not features of the users or items themselves like "age").

Example

Tutorial: Matrix Factorization for Movie Recommendations in Python

URL: https://beckernick.github.io/matrix-factorization-recommender/

Users (userID, gender, ageGroup, occupationGroup, zipCode) 


Items (movieID, title, genres)


Ratings  (userID, movieID, rating, timestamp)


Then we do some cleaning and build a matrix of users-to-items with ratings as the values.


Then we proceed to to only use the matrix built from ratings (not other features of the user like age which I might guess has some predictive value).

# normalize data
import numpy as np
R = R_df.as_matrix()
user_ratings_mean = np.mean(R, axis=1)
R_demeaned = R - user_ratings_mean.reshape(-1,1)

# import numpy as np
R = R_df.as_matrix()
user_ratings_mean = np.mean(R, axis=1)
R_demeaned = R - user_ratings_mean.reshape(-1,1)

# SVD
import scipy
from scipy.sparse.linalg import svds
U, sigma, Vt = svds(R_demeaned, k=2)

# convert to diagonal matrix
sigma2 = np.diag(sigma)

# build predication matrix
all_user_predicted_ratings = np.dot(np.dot(U, sigma2), Vt) + user_ratings_mean.reshape(-1, 1)
preds_df = pd.DataFrame(all_user_predicted_ratings, columns = R_df.columns, dtype='float')




Theres more in the tutorial but at this point our predication matrix is already set.


I wondered if this is just how matrix factorization recommenders work (aka. not use user/item features) or if online tutorials are just too simple?
If I wanted to incorporate a user feature like age, would it be possible with matrix factorization?
If I wanted to incorporate a user feature like age, would it be possible with matrix factorization?
    
  


Yes, it's possible. It's commonly called a hybrid recommendation system.