← Back to list

Part II: Deep Learning-Based Recommendation Systems

Why Use Deep Learning?

Afaf Athar · 2025-03-02 10:45 · 3 claps · 1.7 min read
#recommendation-system #deep-learning #ncf
Open on Medium ↗
Wiki topics: ML · Machine Learning EDU · Education & Learning

Part II: Deep Learning-Based Recommendation Systems

Why Use Deep Learning?

Deep Learning models, such as Neural Collaborative Filtering (NCF) and Autoencoders, can capture complex patterns in user-item interactions. These models are particularly useful for large-scale datasets with non-linear relationships.

Deep Learning Based Recommender Systems

Deep Learning Based Recommender Systems

  • Captures non-linear relationships.
  • Handles high-dimensional data.
  • Can incorporate additional features (e.g., user demographics, item metadata).

Implementation Using TensorFlow and Keras

We’ll build a Neural Collaborative Filtering (NCF) model using TensorFlow and Keras.

Step 1: Install Required Libraries

pip install tensorflow pandas scikit-learn

Step 2: Prepare the Data

import pandas as pd
from sklearn.model_selection import train_test_split

# Load the dataset
data = pd.read_csv('movielens.csv')

# Split the data into training and testing sets
train_data, test_data = train_test_split(data, test_size=0.25)

Step 3: Build the NCF Model

import tensorflow as tf
from tensorflow.keras.layers import Embedding, Flatten, Concatenate, Dense, Input
from tensorflow.keras.models import Model

# Define the model
def build_ncf_model(num_users, num_items, embedding_size=50):
    # User and item input layers
    user_input = Input(shape=(1,))
    item_input = Input(shape=(1,))

    # Embedding layers
    user_embedding = Embedding(num_users, embedding_size)(user_input)
    item_embedding = Embedding(num_items, embedding_size)(item_input)

    # Flatten the embeddings
    user_embedding = Flatten()(user_embedding)
    item_embedding = Flatten()(item_embedding)

    # Concatenate user and item embeddings
    concatenated = Concatenate()([user_embedding, item_embedding])

    # Fully connected layers
    dense = Dense(128, activation='relu')(concatenated)
    output = Dense(1, activation='sigmoid')(dense)

    # Define the model
    model = Model(inputs=[user_input, item_input], outputs=output)
    return model

# Build the model
num_users = data['userId'].nunique()
num_items = data['movieId'].nunique()
model = build_ncf_model(num_users, num_items)

# Compile the model
model.compile(optimizer='adam', loss='mean_squared_error')

Step 4: Train the Model

# Prepare the data
user_ids = train_data['userId'].values
item_ids = train_data['movieId'].values
ratings = train_data['rating'].values

# Train the model
model.fit([user_ids, item_ids], ratings, epochs=10, batch_size=64, validation_split=0.2)

Step 5: Generate Recommendations

def get_recommendations(user_id, n=5):
    all_movie_ids = data['movieId'].unique()
    user_movies = data[data['userId'] == user_id]['movieId'].unique()

    recommendations = []
    for movie_id in all_movie_ids:
        if movie_id not in user_movies:
            predicted_rating = model.predict([np.array([user_id]), np.array([movie_id])])
            recommendations.append((movie_id, predicted_rating[0][0]))

    recommendations.sort(key=lambda x: x[1], reverse=True)
    return recommendations[:n]

# Example: Get top 5 recommendations for user 1
print(get_recommendations(1, 5))

Conclusion

Advanced recommendation systems, powered by Matrix Factorization and Deep Learning, offer significant improvements in accuracy and scalability. By leveraging these techniques, platforms can deliver highly personalized recommendations, enhancing user engagement and satisfaction.

Further Reading

  • Explore hybrid recommendation systems that combine multiple approaches.
  • Experiment with additional features like user demographics and item metadata.
  • Dive into research papers on state-of-the-art recommendation algorithms

Hope this helps :) Follow if you like my posts. Let’s connect on LinkedIn.

Happy learning 😃


메타데이터
post_id
cc2c9e30f4dd
slug
part-ii-deep-learning-based-recommendation-systems-cc2c9e30f4dd
url
https://medium.com/@afafathar/part-ii-deep-learning-based-recommendation-systems-cc2c9e30f4dd
canonical_url
https://medium.com/@afafathar/part-ii-deep-learning-based-recommendation-systems-cc2c9e30f4dd
author_url
https://medium.com/@afafathar
status
ok
fetched_at
2026-07-20 19:32:14