Ask HN: Why is making a good recommendation system for YouTube hard?
YouTube has been criticized for their recommendation algorithm which can often time recommend the same thing over and over.
This got me thinking about what makes it that hard to build a good recommendation system?
On my side, I'm currently working on a new way to do so. I called it Channel Tree. The goal is to start out with a list of YouTube channels provided by the user.
Then my software will go look for the channel section of each channels to look for other channels there. This has the effect of building a deep tree of different channels related to each other through the channel section. The user will only have to specify how many layers of the tree he would like to have so the algorithm can stop there.
Finally, you'll only have to look at the tree and look out for channels that may seem interesting based on who's the parent in the tree.
54 comments
[ 0.32 ms ] story [ 130 ms ] threadI would assume that Google has tried various tweaks to their algorithm and that it is the way it is for a reason.
As a n=1 data point I'd like to add that I watch youtube mostly for music, and it that sense the algorithm is not so bad (since there isn't much room for "viral" clickbait), and my only complaint is that it usually shows me the same videos over and over, but it still shows me related videos that I usually like. Whenever I commit the mistake of clicking on a non-music video, my recommendations get polluted for something between one day and one week.
I never log in, so if for some reason my cookies get deleted or corrupted I suddenly get a fuckton of shit with celebrities, "outrageous" political opinions and so on. The recommendations don't get back to normal until at least 3 or 4 weeks. This has happened 2 or 3 times, and it's so infuriating that I wonder if youtube does it on purpose to nudge me into logging in and have a view history associated to my account.
2) COPPA means youtube doesn't allow under 13s to have an account. But those children want to use the like and subscribe and notification bell. This means that youtube gets all of my viewing and all of my child's view, but can't tell the difference.
3) There's no way to tell youtube what I like. I watch tiny channels doing original songs and covers. Youtube thinks that's music, and so pushes general chart shit at me. Or it thinks it's some genre of music and pushes huge channels that are roughly that genre at me. I have no way of telling YT that it's the small channels with fewer than 1000 / 10000 subs that I want to see.
Not interested and don't recommend channel only removes that channel. It doesn't do anything to remove all the other similar content, and it doesn't do anything to add more relevant content.
For point two, I don't think you're correct. Kids under 13 can have accounts, but only with parental approval.
For point three, you're totally right. But if you think through the implications, every aspect of that seems like an incredibly hard problem to solve. And at least my expectation is that you wouldn't get most users to actually interact with that system, since it is too complex. The perfect example of a power user feature that would get killed a few years later as expensive to maintain and little usage.
Sure, but how many parents are going to go to the trouble of setting up a separate account? Much more likely they'll just let the kid use their account.
https://support.google.com/families/answer/7124142?hl=en
> When you use Family Link to create a Google Account for your child under 13, your child can use the YouTube Kids app where it’s available. However, they can't use any other YouTube apps, websites, or features until they turn 13 and manage their own Google Account. Your child will be able to use YouTube if you added supervision to their previously existing Google Account.
If they did behave the same way, why list this as a special case but with totally different langauge.
There are actually two different actions you can take on recommended videos that help. Just click the 3 vertical dots under a thumbnail:
"Not Interested" or "Don't recommend channel."
> There's no way to tell youtube what I like.
I can't imagine a scenario where there's a feasible way to "tell" YouTube exactly what recommended videos you want other than what it's doing now unless the content creators themselves were all on board to properly title & tag their videos. Bigger channels use clickbaity titles (eg. "I was shook when I heard this"). And smaller channels don't know how to utilize keywords.
I personally have never had an issue with YouTube recommendations, especially after using the above method to filter out things I don't want to see.
I just did a small random sampling of my own subscriptions, and I'd say about 30% or more have no channels listed in their Channels Section. And of the ones that do, it's all much larger youtuber's in their own circles that I'm usually already aware of.
Anyways, it's my personal youtube white whale and I haven't made any progress, so suggestions welcome!
Your proposed algorithm wouldn't work for me because the majority of the good videos I'm exposed to in education/science come from channels that are not listed in the channel sections of my subscribed list.
E.g., here's a channel about machine learning that doesn't list any other channels: https://www.youtube.com/c/YannicKilcher/channels
Here's another machine learning channel that doesn't reference any other AI channels: https://www.youtube.com/c/K%C3%A1rolyZsolnai/channels
Neither of the above channels reference each other but both have videos that are relevant to my interests.
Because the Youtube algorithm didn't depend on building a "channel tree" from whitelisted channel listings, it can suggest quality videos from both of those channels that your algorithm would miss.
It could be that most people's goal in life is not to watch the maximum amount of YouTube.
One thing I've wanted since I saw a prototype Joe Edelman made for Chrome, is after a video is played, prompt the user for a rating, and a reason for the rating. Joe had a taxonomy of human values for this, but it could also be a freeform tag based system.
Then when you go to YouTube next time, you say that the reason you're at YouTube is to "increase my knowledge of machine learning." Or maybe it's Friday evening and you just want to "make me laugh."
Most people probably won't pick "make me outraged or scared.", but that does give good engagement metrics...
Premises:
1. YouTube's primary function is entertainment. Many people also derive educational and informational value from it, but that's incidental. Wikipedia and Google News probably serve that purpose better.
2. The most straightforward way to measure how well YouTube serves as an entertainment channel is viewer minutes. There are drawbacks to measuring per-session or per-view minutes (short term outrage spikes can backfire later), so it's better to maximize life-time viewer minutes. These can't be measured directly, but need to be modeled/predicted. But it's a refinement of viewer-minutes, not a fundamentally different metric.
Contention:
Maximizing viewer lifetime minutes is the best practical way for YouTube to serve it's primary function.
But what if I told you that 30% of users who stop watching YouTube go on to use a different media service, even though they could have watched exactly the same content on YouTube. Would you feel comfortable informing these people that they could watch on your site?
This lead to much more relevant results than what it does now it seems, especially when looking for more niche topics.
I just think its trendy to hate on things even when it gives you tools to tweak its behavior
Also as a person working on recommendation algorithms at a large competitor, I would say Youtube does a pretty good job overall.
This fascinates me. I'd guesstimate that roughly 60% of the recommendations I get from YouTube are for videos I've already seen. (To be fair I "watch" a decent amount of music on YouTube, so maybe I'm disproportionately likely to rewatch videos I've seen before.) Another 30% is content based on misinterpretation of my political beliefs, like "you watched a critical analysis of a Prager U video, maybe you'd like these 6 Trump-stanning videos from Newsmax".
The political thing seems like an obvious blindspot in the YouTube recommendation algorithm to me. Going all the way back to 2015 YouTube seems unable to distinguish between "critical of establishment Democrats" and "intellectual-dark-web / pro-Trump" interests. I'll watch one lefty "breadtube" video that's critical of someone like Biden or Pelosi or complimentary to someone like AOC or Sanders and get Newsmax/OAN/Fox-and-Friends video recommendations for a week.
More generally it seems to me that YouTube's recommendation engine is far too volatile and heavily influenced by recently watched content. A one-off, slightly out-of-character view will noticeably taint my recommendations for a week or two.
In contrast I'd say Spotify, Google Music (before it was folded into YouTube), Netflix, Twitter, Amazon Prime, or even Pocket-via-Firefox does OK - not great but acceptably well - so I don't think I'm especially inscrutable. I'm curious about your experience with this. I have moderately broad interests, I feel like it shouldn't be hard to come up with something I would find interesting but it virtually never seems to happen organically on YouTube.
I've always just assumed they were optimizing for something other than things I would consciously find interesting or engaging. For example I'm guessing that triggering "outrage" is probably a good way to drive engagement (comments, shares, etc.). I don't really do either of those things regardless but I'm pretty sure that strategy works in general.
Do you find that YouTube frequently recommends novel content you enjoy? Is that even what they (or your company) is trying to do?
No I don't get too much political content, although when I see political content I generally tell YouTube that I am "not interested".
I don't work there so I don't know what they are optimizing for. Based on their papers it is probably a combination of total watch time, total interactions (likes comments), and minimizing certain kinds of "integrity problems" like views on eventually-removed content.
Yes my company, and I would guess most others, are trying to recommend content that people enjoy and provides long term value for the viewer, not just short term watch time. It's hard to do this for everyone, but ML-based recommendation systems are better than any heuristic for 95%+ of people.
The foundational error I feel is trying to capitalize on peoples attention as opposed to aiding in the public good.
Sure when youtube and like services were starting out it was the wild west and all about gaining users and creating traction, however that was a long time ago. We now know where that party was headed and how it ended, and it almost ended society!
At this point any improvements I feel should be focused on minimizing damage and maximizing the public good.
This is the antithesis of anticipating interests as that approach has failed to deliver and even worse has only served to exacerbate echo chambers and divide populations.
Better to gauge interests and make suggestions from a large and vetted list of diverse sources as a primary ingredient of a larger cake of suggestions with actual user defined interest suggestions being the subtle and minimal spice.
Feedback from someone who is vaguely disappointed in YouTube's recommendation algorithm: I don't love every video by a given channel. Which videos I specifically enjoyed watching matter quite a bit.
Now a days notifications are irrelevant and comment you posted gets a notification and start searching what you actually posted. Those are hard to find.
YT is imperfect I am fine with that.
What I hate is though l, when a video gets deleted from your playlist, they should have courtesy to say the video title what got deleted. It just blindly says, video is deleted, it is restricted in your country amd I have no clue what video was that.
I understand your approach to be more of a heuristic - build a tree like structure by traversing through the channels for each channel.
If I’m interested in A, how do you determine where to start traversal in this tree? And how do you pick out a set of recommendations and rank them?
I have a cursory understanding of ML. In addition to finding the relevant entities, you need to rank them.
An important question is, “what are you optimizing for?” For YouTube, presumably they want to optimize for watch time. If they want to suggest ads, that model might want to optimize for maximizing revenue. I’m going on a tangent here, but when we say “YouTube’s recommendations are bad” we should keep in mind YouTube might be optimizing for revenue... which isn’t the same as optimizing for seconds watched or optimizing for clicks.