Personalized channel recommendations in Slack

Public channels provide much of Slack’s advantages over email: they are searchable, long-lasting, themed conversations that are easy to join and leave. But for users, curating the perfect set of channels can leave them feeling like Goldilocks — it’s easy to be in too many, too few, or miss critical ones. A common customer request is for tools…

Renaud Bourassa
9 min readbeginner
--
View Original

Overview

The article discusses the development of personalized channel recommendations in Slack, aimed at improving user experience as organizations grow. It outlines the challenges faced in creating a recommendation system, the methodologies employed, and the results achieved through machine learning techniques.

What You'll Learn

1

How to implement a channel recommendation system using collaborative filtering techniques

2

Why cosine similarity is effective for measuring channel activity similarity

3

How to evaluate the performance of a recommendation system using RMSE

Prerequisites & Requirements

  • Understanding of recommender systems and collaborative filtering
  • Familiarity with Spark and Hive for data processing(optional)

Key Questions Answered

How does Slack personalize channel recommendations for users?
Slack personalizes channel recommendations by analyzing user-channel activity matrices and employing collaborative filtering techniques. The system predicts user activity in channels they are not yet members of, using metrics like time spent in channels to surface relevant recommendations.
What metrics are used to evaluate the effectiveness of the channel recommendation system?
The effectiveness of the channel recommendation system is evaluated using root-mean-square error (RMSE) between predicted and observed activity levels. This helps in assessing the accuracy of the recommendations provided to users.
What is the role of cosine similarity in the recommendation process?
Cosine similarity is used to compute similarity scores between channel pairs based on user activity. Channels with similar user engagement patterns are identified, which helps in recommending channels that users are likely to find relevant.

Key Statistics & Figures

Click-through rate for recommendations
22%
This rate was measured after releasing the feature to 10% of teams, indicating initial success in user engagement.
Reduction in RMSE
35%
This improvement was achieved by incorporating activity transforms into the recommendation model, enhancing prediction accuracy.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Data Processing
Spark
Used for building the pipeline that ingests read and write log data for analysis.
Data Warehousing
Hive
Maintained by the data engineering team to store log data used in the recommendation system.

Key Actionable Insights

1
Implementing a recommendation system can significantly enhance user engagement by tailoring content to individual preferences.
As organizations scale, users often struggle to find relevant channels. A personalized recommendation system can streamline this process, making it easier for users to connect with the most pertinent discussions.
2
Utilizing collaborative filtering techniques can improve the accuracy of recommendations by leveraging user activity data.
By analyzing patterns in user engagement, organizations can better predict which channels will be of interest to users, thereby enhancing the overall Slack experience.

Common Pitfalls

1
Overestimating user activity levels in channels due to scale invariance of cosine similarity.
This can lead to inaccurate recommendations if the model does not account for varying levels of user engagement across channels. Implementing activity transforms can help mitigate this issue.

Related Concepts

Collaborative Filtering
Machine Learning In Recommendation Systems
Data-driven Product Development