Music recommendations using cover images (part 1)

Scrolling through the Discover page on Spotify the other day it occurred to me that the album is in fact a fairly strong visual proxy for what kind of content you can expect from it. I started wondering if the album cover can in fact be used for recommendations.

From: Erik Bernhardsson

Grails: Generating links in your domain class

Grails: Generating Links in your Domain Class

From: Dan Vega

Luigi success

So Luigi, our open sourced workflow engine in Python, just recently passed 1,000 stars on Github, then shortly after passed mrjob as (I think) the most popular Python package to do Hadoop stuff. This is exciting!

From: Erik Bernhardsson

Welcome Echo Nest!

In case you missed it, we just acquired a company called Echo Nest in Boston. These people have been obsessed with understanding music for the past 8 years since it was founded by Brian Whitman and Tristan Jehan out of MIT Medialab.

From: Erik Bernhardsson

Momentum strategies

Haven't posted anything in ages, so here's a quick hack I threw together in Python on a Sunday night.

From: Erik Bernhardsson

Grails Spring Security Plugin - Logout postOnly setting

Grails Spring Security Plugin - Logout PostOnly Setting

From: Dan Vega

Creating and testing your first Grails Tag Library

Creating and testing your first Grails Tag Library

From: Dan Vega

Ratio metrics

We run a ton of A/B tests at Spotify and we look at a ton of metrics. Defining metrics is a little bit of an art form. Ideally you want to define success metrics before you run a test to avoid cherry picking metrics.

From: Erik Bernhardsson

Benchmarking nearest neighbor libraries in Python

Radim Rehurek has put together an excellent summary of approximate nearest neighbor libraries in Python. This is exciting, because one of the libraries he's covering, annoy, was built by me. After introducing the problem, he goes through the list of contestants and sticks with five remaining ones.

From: Erik Bernhardsson

More recommender algorithms

I wanted to share some more insight into the algorithms we use at Spotify. One matrix factorization algorithm we have used for a while assumes that we have user vectors $$ bf{a}_u $$ and item vectors $$ bf{b}_i $$ .

From: Erik Bernhardsson

Microsoft's new marketing strategy: give up

I think it's funny how MS at some point realized they are not the cool kids and there's no reason to appeal to that target audience. Their new marketing strategy finally admits what's been long known: the correlation between “business casual” and using Microsoft products:

From: Erik Bernhardsson

Bagging as a regularizer

One thing I encountered today was a trick using bagging as a way to go beyond a point estimate and get an approximation for the full distribution. This can then be used to penalize predictions with larger uncertainty, which helps reducing false positives.

From: Erik Bernhardsson

Model benchmarks

A lot of people have asked me what models we use for recommendations at Spotify so I wanted to share some insights. Here's benchmarks for some models. Note that we don't use all of them in production.

From: Erik Bernhardsson

statself.com

Btw I just put something up online that I spent a couple of evenings in my couch putting together: it's a website where you can track any numerical data on the web. Want to know how many Twitter followers you have?

From: Erik Bernhardsson

The Strange Loop 2013

This was my second time at The Strange Loop.

From: Sean Corfield: An Architect's View

Implicit data and collaborative filtering

A lot of people these days know about collaborative filtering.

From: Erik Bernhardsson

Vote for our SXSW panel!

If you have a few minutes, you should check out mine and Chris Johnson‘s panel proposal.

From: Erik Bernhardsson

Grails MySQL Boolean Gotcha

Grails MySQL Boolean Gotcha

From: Dan Vega

Grails Interactive Mode - USE IT

Grails Interactive Mode - USE IT

From: Dan Vega

IntelliJ Spring Bean Injection Notification

IntelliJ Spring Bean Injection Notification

From: Dan Vega

Groovy Ternary Operator

Groovy Ternary Operator

From: Dan Vega

Groovy collections vs My Current Thought Process

Groovy collections vs My Current Thought Process

From: Dan Vega

Writing SQL in a Grails Application

Writing SQL in a Grails Application

From: Dan Vega

Grails Hibernate Logging

Grails Hibernate Logging

From: Dan Vega

Groovy Primitive Data Types vs Objects

Groovy Primitive Data Types vs Objects

From: Dan Vega