[Personal Experiment] Training YouTube's Algorithm

post by lsusr · 2020-01-09T09:04:17.459Z · LW · GW · 3 comments

I listen to YouTube music every day. I created a new Google account three weeks ago. I've watched nothing but music and dancing on it. Whenever it recommends a non-music non-dancing video I immediately click "Don't recommend channel"[1].

If you you opened my YouTube account right now you'd see 509 recommendations on the home page. 487 would be for music and dancing. 22 would be things I'm not interested in. Below are YouTube's 22 non-musical recommendations:

Most of these are understandable errors at personalization. The violin unboxing makes sense because I listen to lots of violin music. The Star Wars and anime stuff makes sense because I watch "Star Wars Anime Opening" videos. "不要随便让老师唱歌跳舞..." is dancing-related. I think the movie trailers come from the fact that some of the music videos I watch take the form of movie clips. I was surprised by the science recommendations until I realized it's not difficult to infer that someone who listens to AIVA-generated music over-and-over again (among similar things) might be interested in science. The wedding highlight film could be related to the wedding dance videos I enjoy.

The videos in Chinese, Spanish and Japanese make sense because I listen to music in these languages. When I first created my account it recommended a lot of news, videogames and comedy (among other things). The foreign language news, videogames and comedy are generic recommendations speakers of these languages. If I click "Don't recommend channel" enough times they'll probably go away like they (kinda) do in English. I don't know exactly[2] where the French and Filipino videos came from but I expect the same goes for them too.

This leaves 5 truly impersonal recommendations[3].

To summarize:


  1. There are two ways to train YouTube to recommend videos: you can "like" them and you can watch them. I use these buttons as normal, clicking "like" only on exceptional videos I want to promote. There are several ways to train YouTube to not recommend videos: you can not watch them, you can "dislike" them, you can click "Not interested", you can click "Don't recommend channel" and you can click "Report". At first I used YouTube's "Not interested" button but quickly switched to "Don't recommend channel" because it resulted in better recommendations. I don't like clicking "dislike" and "Report" for channels I don't want to see because most videos I don't want to watch do produce quality content. ↩︎

  2. I regularly get recommendations to watch videos in languages I don't speak. This could be because many of the Chinese instrumental music videos I watch have half-Chinese half-something-else titles. (Or Japanese rōmaji + Spanish as in the case of "Nanatsu no Taizai 3ª Temporada EPISÓDIO 13 LEGENDADO PT BR".) It could be that once you regularly watch videos in four different languages the algorithm decreases the importance of "language" as a feature. YouTube could be performing a Bayesian hyperparameter search and this is part of its exploration phase. Maybe YouTube recommends a small number of foreign language videos to everyone. ↩︎

  3. They could be true shots in the dark by YouTube's algorithm or stem from some deep correlation like as demographic profiling. For the sake of this analysis, all that matters is they're not effectively personalized. ↩︎

3 comments

Comments sorted by top scores.

comment by Dagon · 2020-01-09T19:30:16.063Z · LW(p) · GW(p)

It seems likely that the algorithms are coded (probably outside the ML portions) to always give some amount of random-appearing stuff, in order to avoid becoming too narrow in their suggestions.

Replies from: lsusr, Gurkenglas
comment by lsusr · 2020-01-10T04:09:29.607Z · LW(p) · GW(p)

Most of the weirder suggestions happen later in the recommendations (lower down on the page). I think the algorithm thinks to itself "The user appears tired of music and probably wants to watch something else".

comment by Gurkenglas · 2020-01-10T01:22:58.668Z · LW(p) · GW(p)

That seems silly, given the money on the line and that you can have your ML architecture take this into account.