Surprise! Recommendation Algorithms with Nicolas Hug


November 11th, 2017

30 mins 22 secs

Your Hosts

About this Episode


A relevant and timely recommendation can be a pleasant surprise that will delight your users. Unfortunately it can be difficult to build a system that will produce useful suggestions, which is why this week’s guest, Nicolas Hug, built a library to help with developing and testing collaborative recommendation algorithms. He explains how he took the code he wrote for his PhD thesis and cleaned it up to release as an open source library and his plans for future development on it.


  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters.
  • If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to Professional support and enterprise plugins are available for added piece of mind.
  • Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Nicolas Hug about Surprise, a scikit library for building recommender systems


  • Introductions
  • How did you get introduced to Python?
  • What is Surprise and what was your motivation for creating it?
  • What are the most challenging aspects of building a recommender system and how does Surprise help simplify that process?
  • What are some of the ways that a user or company can bootstrap a recommender system while they accrue data to use a collaborative algorithm?
  • What are some of the ways that a recommender system can be used, outside of the typical ecommerce example?
  • Once an algorithm has been deployed how can a user test the accuracy of the suggestions?
  • How is Surprise implemented and how has it evolved since you first started working on it?
  • What have been the most difficult aspects of building and maintaining Surprise?
  • competitors?
  • What are the attributes of the system that can be modified to improve the relevance of the recommendations that are provided?
  • For someone who wants to use Surprise in their application, what are the steps involved?
  • What are some of the new features or improvements that you have planned for the future of Surprise?

Keep In Touch


  • Tobias
    • Silk profiler for Django


The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA