
Implementing your own recommender systems in Python - DrLegend
http://online.cambridgecoding.com/notebooks/eWReNYcAfB/implementing-your-own-recommender-systems-in-python-2
======
jackhammer2022
Google cache link:
[http://webcache.googleusercontent.com/search?q=cache:1qK6xyT...](http://webcache.googleusercontent.com/search?q=cache:1qK6xyThZ-
AJ:online.cambridgecoding.com/notebooks/eWReNYcAfB/implementing-your-own-
recommender-systems-in-python-2+&cd=1&hl=en&ct=clnk&gl=us)

Ipython notebook used: [https://s3-eu-
west-1.amazonaws.com/com.cambridgecoding.stude...](https://s3-eu-
west-1.amazonaws.com/com.cambridgecoding.students/eWReNYcAfB/notebooks/001044cea50d2013af45306b76b420e1/notebook.ipynb)

------
jack_pp
How cool would it be to have a recommendation system for music that follows
_mood_? That could be trained on actual music not by me saying "I listen to
songs x,y,z when sad, a1,b1,c2 when it's sunny and i'm feeling good etc". If
this will ever exist it would probably increase my hedonic index 10 fold

~~~
halflings
There's certainly a lot of research trying to incorporate things like this
into recommendations, but it never really made it to mature products (apart
from some experiments on last.fm, 8tracks, etc.)

Spotify tries to accommodate this by offering curated playlists based on
moods, but knowing a user's mood to make that type of recommendations is hard.
(it's a bit intrusive for a music streaming service to ask you how you feel
every time you start it up)

~~~
vidarh
If I could start a service, and trust a skip to indicate "no, you got it
wrong, try something closer to the last track I didn't skip", it could often
narrow in fairly quickly. Perhaps offer a few more alternatives for skipping
that'd indicate reason. E.g. "want something more up-tempo/downtempo/more
cheerful/sadder".

~~~
Drdrdrq
Assuming you know what you want of course. But the recommender system could
have a mode where it learns which taste you like based on time, number of
unread mails in your inbox, skipped songs and moon cycle. :)

~~~
vidarh
But the point is you don't need to know what you want. You only need to think
you do. You can let the system adjust what the buttons means too, based on
your subsequent behaviour.

------
vintermann
A very basic test of a recommendation system is the following scenario:

You're a fan of a local band, listen to them a lot. This band is sampled, and
actually praised, by a Korean rap artist. Suddenly thousands of Koreans are
listening to it. Will the recommender system now recommend Korean rap to you?

Most recommender systems will.

~~~
nurettin
So hypothetically speaking, gangnam style shouln't show up in an English
speaking person's list?

~~~
maxerickson
The other direction. Fans of K-pop shouldn't start getting Taylor Swift
recommendations when a K-pop single goes viral.

And people that like lots of viral songs _should_ get Gangnam Style
recommended.

------
KasianFranks
On vector similarity, I'd recommend a custom variant of the uncentered Pearson
correlation as it better accounts for a balance between discreet and
continuous values with vectors that might vary in length.

If you want to get real fancy you can use variants in combination with the
uncentered Pearson correlation including variants of KL distance to RV
distance calculations if you can fit your such that those become effective.

------
DrLegend
It's back for now until the next completely unplanned "hacker news DoS" :-o

------
wize
good stuff! nice high level overview, would love some more in depth follow ups
as well. maybe a discussion about how the different methods scale on huge
user-item matrices. keep it up

------
autokad
dang, this looks like it might be good but it seems to be down

