Complaints mount after GitHub launches new algorithmic feed
theregister.com
theregister.com
I don’t think you can introduce a recommendation algorithm without it having a negative effect on the content it’s supposed to aid discovery of. Pre-recsys, the content is made for human consumption, but once you add the recsys, the AI itself becomes part of the audience and its opinion matters. Unfortunately its opinion matters more than the humans’, but its taste is abysmal. So content gets optimized for a brain dead AI and humans get garbage.
I hate it because GitHub was one product I really loved, but since MS bought them it seems like they are doing all this random stuff to solve problems that aren’t even a problem. How about getting back to the basics, like reliable uptime, and less glitchy JS soup?
I'm not writing and debugging 10,000 lines of C just to farm Github stars. It seems crazy to think anyone would change how they work for that.
Whereas, people on Youtube/Twitter/Facebook/etc. really do change their videos or writing to spread better.
Any metric the algorithm uses will be subject to being gamed in some way.
As soon as there's potential for financial benefit, someone will figure out how to optimize repos for the feed's algorithm. Perhaps this will mean clickbaity README.md files or frequent, trivial code changes to make a repo look more "active". We'll see, I guess.
And neither would anybody else. That's the problem. (i.e. they'll do something else besides write and debug code to farm stars)
Let's say I determine (or at least believe) that the GitHub algorithm prefers projects with a README with lots of images and emoji, MIT-licensed, and lots of forks.
Obviously, there are already some really great projects out there that have exactly that! The problem is that now I'm incentivized to do those things as well, even if it doesn't always make sense. Sure, I might not create actual spam, but I might choose a license based on partly on that. Or I might inflate my README with an unreadable number of images. After all, my project is pretty important -- if only I could get a few more people interacting with it.
And of course, there's outright abuse. Maybe I'm desperate and build a bot that creates a bunch of forks.
The point is that it doesn't always require the latter scenario when there's also the former. Sure, it's not as bad, but I expect there to be more cases of it, and those cases are harder to determine and retroactively fix.
I've searched far and wide for a $TRIVIAL_ALGORITHM_IMPLEMENTATION that brings back the nostalgia of that day.
Before running this code, it is important to have a proper computer to do it full justice. I recommend the $AMAZON_AFFILIATE_LINK
... 20 more screens, and 200MiB of JavaScript trackers later:
One line of code that does not compile, copy pasted from stack overflow.
I relate AI feeds, management, recommendations, etc with Dwarves and the Mines of Moria. At what point will we have dug too greedily and too deep? Those goblins crawling around down there can be representative of the users who get stuck in the system, being fed trash, and being kept discontent.
Oh wait...
https://www.reddit.com/r/ElsaGate/
The effect on a population of heavy use of social media platforms run by recommendation algorithms can be seen here:
https://www.navytimes.com/resizer/xESsQM55InJ7pTur3Jd1NncWdS...
Unless they actively undermine their code/repo search functionality to push social stuff, let them do whatever they want for people who actually like browsing GitHub? (Not that I can imagine who actually browses GitHub)
When they switch from stars to hearts, we’ll know the end is nigh.
I’m thinking specifically of the Netflix autoplay box, which I’m sure did wonders for their engagement, but also was universally hated. I think its no coincidence that during this time my social group went from “I love Netflix!” to “I can’t cancel Netflix because it has <favorite show>”. I fear GitHub going down the same path with such tweaks.
This feels like it ought to be a corollary to Goodhart's Law ("When a measure becomes a target, it ceases to be a good measure"), or perhaps a specialized application thereof.
So whether you have a recommendation system or a chronological feed or whatever other way you want to display info—there is always that implicit Goodhartish: measure → target → behavior change.
You can't escape it.
The only question is how you want to harness it—how you can bring out the best in people (with their consent ideally!) and mitigate the negative impacts of Goodharting.
(Shameless plug, I'm working on this, e.g. https://techpolicy.press/can-algorithmic-recommendation-syst... )
The size of transistors was a good target for a very long time, like 60 years.
The height of basketball players.
Muscle mass, profile, or volume.
The profit margins of a company.
Scores on a standardized math test.
I'm not a fan of this recommendation engine either, but I also don't think that's a fair assessment of what has happened since MS bought them. I've seen a ton of valuable features added since they acquired GitHub, primarily things like GitHub Actions and GitHub Packages.
That said, I agree with your last sentence. Even before this week's nasty database issues that have caused outages every day, GitHub was struggling more and more with reliability.
I know in a large company that it doesn't work to just "throw more bodies" at reliability/quality issues, but GitHub must do some org retooling to get their reliability problems under control. Despite being a big fan of GitHub features, I can't have a critical service go down with the frequency that it does.
I don’t think GH has gone straight downhill after joining MS. There’s been a lot of good. But I do get the sense that it doesn’t have the unified vision that it had 10 years ago, and that they are doing a lot of things for no clear reason.
I’ve worked in a large company before, and a lot of product changes and “features” we added were more like “division X has this cool new thing and VP y wants more people to start using it internally. How can we plug in into what we build?” I’m half seriously waiting for the day that GH drops Git support and switches to a proprietary fork that is only accessible with VS Code.
I don’t know if Github should do algorithmic feeds. That said, my literal job description is to design an algorithmic feed for a tv news app. That’s what I’ve done - written an algo that decides what news gets shown, in what order => implicitly means a whole bunch of newsclips never get shown…or they are at the end of the queue and 90% of the viewers would never get to them.
Why does one do this ? Because screen real estate is finite. You turn on your tv, you have a finite rectangular canvas - I can show maybe 5 squares on that rectangle without scrolling. Each square has a newsclip with text & picture. Who gets to decide which 5 clips to show ? Well, my algo does. How else would you do it ? There are literally 100s of 1000s of newsclips per day! Can’t show every single one of them - nobody has the time, nobody would watch, most of it is not going to be relevant to the vast majority of the audience. So 10000 newsclips get filtered down to 5 clips that get shown on the screen. You scroll. 5 more. Scroll again. 5 more. So on…you cap at 50 clips…nobody scrolls that much anyways.
That’s why you have an algorithmic feed - because there is too much content, but your brain real estate is finite. Your screen real estate is finite. The amount of time you have to watch news is finite. Your interest in news is finite. All of this has been measured, analyzed, sliced & diced. Your time is finite. But content is infinite. There is just too much news. Take finance news - 100s of companies reporting earnings every given day, associated commentary around buying/selling that stock, how the company is doing…1000s of newsclips! Take political news - so much footage, all the way from local municipal town hall meetings to presidential press conferences. Take entertainment news…man, there is so much music/movie/art/talent related content. Can’t show everything. Hence algorithmic feed.
Now sure, you can complain that the algo isn’t showing you what you personally want - its trained on the entire viewer population, not on your personal tastes. So most algos let you personalize the feed. But without an algo…there’s just no hope.
I think that the common complain is not "it isn't showing what I personally want" VS "it isn't showing what people generally want" but rather that the algorithm is often not tuned to "what X want" at all, but tuned to "what brings company most money". For example, YouTube recommendations are biased towards channels that have monetization activated, as YouTube earns more money that way, while ignoring channels the viewer (at large, or personally) would enjoy more.
Jesus!! Man, didn't know recsys invokes such vitriol.
There are dozens of news apps on smart TVs these days. Under the covers, it's pretty much the same deal - in go the raw feeds. Editors always do a first pass. Recsys algos do the 2nd pass. Ranking algos come in next. Personalization is usually last. Out comes the news. Viewers then have their say with thumbs up & downvotes. Those get fed back into personalization. On & on it goes...
Its not magic. Its not perfect. But its how pretty much every smart tv news app works under the hood. There's dozens of them. Pick any one of them that works well on your TV for your temperament, I guess. Recsys is just a standard comp science discipline. We have our textbooks, our journals, our papers. We all read the same stuff, pretty much roll the same code with minor frills.
Nobody's out to get you.
This is just a really easy way for you to dismiss any criticism and avoid cognitive dissonance over your work. I believe you have good intentions. I also believe that those "dozens of news apps" all burn a whole bunch of watt hours on producing nearly identical results and are largely just facades over a handful of media companies.
And that's not speculation or a conspiracy theory, it's plainly true. Media conglomeration has happened at an incredibly fast pace over the last 40 years and local media has been decimated. No one has to be a cackling evildoer with a fancy mustache and a british accent to make this happen, they just have to keep grinding harder and harder at inventing new ways to 'fix it' with more conglomeration.
yes, corporations do whatever makes the most money. pointing that out has nothing to do with emotions. welcome to the real world.
This is a problem, but from a different point of view. The algorithm is trained not to give me news but to keep me engaged. That should not be the purpose of a news app.
but there's an algo which is simple to implement and has very little biases: just show the things in temporal order ? Anything else is inferior to me. I don't want to see what's best for others, I don't want to see what some algorithm thinks is best for me, I just want to see what's last, with zero additional "reflection" on this.
heh heh. In the last 5 minutes, since you typed in your comment, there’s been 100 news clips. Literally. So just show the top 5 after reverse sorting by time….newest to oldest. Temporal order. Now what would be the problem with that ? Almost always, your newsfeed will end up dominated by the latest weather clip where the guy says “and now the temperature is a sunny 82 degrees”…meanwhile 100s of people die in ukraine but you didn’t see that because it was like an hour ago, and 1 minute ago >>> 1 hour ago.
"I'll unfollow the accounts that behave that way" doesn't work because a temporally-ordered system incentivizes all accounts to behave this way. An account that posts highly valuable content, but only posts once weekly, will not thrive in a temporal-only medium.
One could roughly estimate that by the time a news organization grows to need a full floor of office space, its pace of production will outstrip most readers' ability to keep up and not miss important stories. A temporal feed makes "keeping up" important, as relevant stories will quickly drop off the feed due to newer stories having been published more recently. The reverse is also true: a curated feed allows readers to step away and not worry that they will miss something important.
The pacing of news stories is dictated by a combination of the number of salient events occurring as well as the number of staff.
To use a concrete example, the (already-shortened) Yahoo! Finance News for Apple has 11 stories published today. There are thousands of public companies, and relevant news is published every day about many of them. A temporal feed of company news on the Yahoo! Finance homepage would therefore not be very useful. The pacing is essentially outside the control of Yahoo!, since it is driven by events at thousands of companies.
Once upon a time, people got their news from approximately 3 "kinds" of places: - newspapers, locally managed, locally printed, locally distributed - radio, somewhere between locally and nationally managed, recorded, broadly distributed - television, probably regionally or nationally managed, maybe locally recorded, also broadly distributed.
And for these things they had between several and tens of choices to select in to their preferences, interests, and alignments. They got to self-select the 'algorithm' they viewed information through. There was obviously an algorithm here, and in spite of golden-age glasses it was a racist, sexist, deeply problematic algorithm, but it was at least chosen by people in your community.
Now though? Everything gets sucked up into some megacorporation's orbit through a rolling katamari of companies. We have facebook and twitter and things that will eventually be bought by facebook or twitter and approximately 2-3 companies that own every newspaper, radio station, and television station on the planet.
There's no choice here anymore. Your algorithm is chosen by someone else, and if by some chance an upstart comes along to break out of that monotony it's inevitable that they'll be sucked up into the katamari eventually for the sin of being successful at bucking the trend, and then they will be just like everything else within a year.
So you can do your best to provide a fresh, reasonable algorithm that does some good and helps people find something. But in the end, no matter how hard you try, it's gonna end up just like everything else and be a slushy mass of stuff that makes people angry to get money out of them.
No offence, but honestly, that scale doesn't require automation, and probably suffers from it. I'd rehire the full time editor (singular?) that you replaced, probably at 50-75% your salary.
Recommendations are never good, and always corrupted by what the business wants to push on me, but even if they were good, the hyper personalized world is just weird. I’ll never be able to ask someone, “did you see the paper today?” Instead I wonder if they’ve been pushed the same stuff that I have and if we live in the same universe.
This is where the failure is. Most algos I've experienced show me more of what I already know. Or they show me what I was interested in the past (and I'm done with that).
I want an algo that does the opposite - show me only things completely different - see if maybe I like them.
I'm bored, I don't want more of the same, and I want something new. And there is where every one I've tried fails.
Edit: somehow search autocorrected to support.
There are other awesome features in sourcegraph, for example searching diffs, searching within specific branch or tag.
you may not like it, but Github has always been a social website, and now more than ever, just like LinkedIn.
Here is their landing page when they first launched: https://web.archive.org/web/20081111061111/http://github.com...
Notice how the entire page is making you believe they are building a social coding platform? That's no accident, "Social code hosting" tagline in the logo included.
.
> explicitly for social coding
Using source control is not "social coding." You're stretching that word far past its actual meaning, in the effort to make a point.
Yes, we know git repos get used by clusters of people. That is not the accepted meaning of "social network."
Nobody is posting the news, their kids, or joining film groups on Github.
A pull request with the requisite commentary/discussion is absolutely a social phenomenon. Even simply pressing the approve button or the star button is a social act as it is a transaction involving more than one person.
And if you’ve never encountered the toxicity commonly thought of as only belonging to “social networks” in a PR or issue, then lucky you.
I don't watch YouTube's "recommended" videos. That doesn't stop creators from changing their videos, titles, and thumbnails to be more in line with what the recommendation algorithm "likes".
I don't want algorithmic stuff on the _main_ part of the page, which instead contains repositories and people I follow. I'd draw the line at this.
I understand why might be worse for other people, but I disagree in general with the idea that this is categorically the wrong thing for github to do.
I like it because it could help me with my open source repos. 1) To reach new people and 2) notify existing stargazers that I've released a new update and 3) help me discover new interesting repos.
It remains to be seen if the new feed proves useful. But I wouldn't say that just because they use an algorithm it needs to suck per se. There's algorithm and there's algorithm.
It goes from small things like hiding exact timestamps behind meaningless "2d ago" to this bullshit
Because open source is significantly social in nature; it's not just an available blob of code. I don't necessarily agree with their direction, but the social aspect is certainly a foundational component.
Github has always been a social tool without the need for a newsfeed-type thing.
GitHub has always had various activity feeds. Here are two early screenshots from 2008:
> Project and Developer News Feeds - Keep tabs on your favorite projects and the people that work on them.
https://web.archive.org/web/20081113115832/http://github.com...
> Public Developer Profiles - See what other developers are working on and how many commits they've made
https://web.archive.org/web/20081113115936/http://github.com...
From https://web.archive.org/web/20081111061111/http://github.com...
Sure, the one sentence you picked, taken out of context, makes it look like I'm generally against feeds. When you put it in the broad context of my comment though, you can easily see that it's the AI bit that's the problem.
> I think the issue is not with it being social in general, but rather with it becoming a similar flavour of social to the likes of Facebook, Twitter, etc.
I'm sorry I didn't understand you were using "flavour" to indicate AI, I just thought you were referencing social features in general, it wasn't that clear to me, sorry for that.
In github, if you hover your mouse over a time like "2 days ago", the tooltip will give you the exact timestamp. However, I can't find any way to easily copy this into your clipboard (for that I guess you have to go to your old friend "git show" or "git log")
I became less annoyed with GitHub when I learned that they put the timestamp in the mouse over hovertext.
Because that's been their main selling point since day one. Git hosting + social coding platform. I guess because they became the leading code hosting platform in the world, they think that that's because of their social features. What you're seeing today is just a continuation of what they always have been doing.
I've never encountered a situation where an algorithmic feed made things better. At best, they make things more addictive.
No, a screen has limited real estate. There is only so many things that can be shown to you at once. So on youtube for example there maybe only be room to show 8 videos. Ideally I should find all 8 videos interesting. If I don't, that's a waste of space and a waste of my time. Algorithmic feeds serve to improve the results such that I am more likely to watch a video that is put in one of those 8 spots compared to if I was just shown trending videos or videos from my subscription box. It is not hostile to me because it saves me time in finding something to watch. You are not being turned into a baby just because you no longer have to search for stuff manually. There is a difference between wanting to find something specific and just wanting to find something interesting.
>I've never encountered a situation where an algorithmic feed made things better.
One of the best algorithmic feeds is TikTok. After that YouTube's is pretty good to. I suggest trying one of those sites out to just see how effective they are in finding content that interests you. I have found algorithmic feeds have at least made things net better. There is too much information in the world to have to search through all of it ourselves. These algorithms solve the problem of dealing with this large scale of data.
Right, that's the promise from algorithmic feeds. Sometimes, for some time, it's even the reality!
I think there's some middle ground and nuance to be had here, though. I agree that just because there's "an algorithm" doesn't mean it's bad or a worse user experience. Finding interesting videos is a great example.
However, I think it's fair to also say that video recommendation algorithms have gotten out of hand. We have a lot of content creators who are influenced in how to make their videos by what is popular. After all, if I make a video that is obviously more successful than another one, that means my audience likes it more, right? What did that video do differently that made it so much more successful?
After a long enough time, you end up inadvertently (or intentionally) catering to the whims of the algorithm and not just your audience.
So the issue I have with algorithmic feeds isn't that they are outright a bad idea for users. The problem is that it is not just a feature for users. It starts to shape the content on the platform. This can be used to subtly influence content creators to make better content, but without any idea of what goes into these algorithms, we are left to make wild religious guesses.
And we have to assume that these algorithms serve the (financial) needs of the companies behind them and their sponsors, first and foremost. If not now, then gradually, by the same feedback loop as happens to the content creators.
Oh and "XYZ viewers also watch... [5 videos by XYZ]" is such an egregious failure that I can't help but laugh every time I see it.
If they remove the existing chronological based feed then I can see why people might complain, but that hasn't happened.
i dont want to see that Bjorn876 has followed Frodo42 in my github feed!
I use github 90% of the time for interacting with my / my companies repos, and the rest to peruse a repo I've been directed to for whatever reason. I have never been to the homepage (except maybe to sign in), and I have never used it to get news or find new repos or whatever a feed is for.
I can see the potential to turn it into social media, that's fine as long as it doesn't bleed in to the actual repository management functionality.
The new algorithmic feed gives me absolutely nothing of value - it's giving me a bunch of information I have no need for or interest in. It's just adding pure noise and no signal.
The following feed might work for people who use the commit as the unit of review, but since there's no way to filter it to a certain subset of repos, it's also way too noisy to be useful. And for those of us who use the Pull Request as the unit of review, it's absolutely useless. Again, all noise and no signal.
I would love the ability to construct an arbitrary number of custom feeds to surface information I actually need.
I want to create new feeds, select whether they contain commits, pull request activity (PRs opened, closed, merged, and reviewed, and commented on), or both. Then I want to be able to filter which repos/organizations that feed is limited to. Ideally, I'd be able to select a set of feeds to show on the homepage as tabs I could click between to quickly scan activity in the subsets of repos I work on.
So for example, I would create one feed to be my "Primary Responsibility area at Work". This would be the subset of repos I am primarily responsible for at my workplace. I'd configure it to show PR activity - new PR opens, new reviews, new comments (on review or on the PR), and PR merges or closes. This would surface the information I need and would allow me to very quickly scan to see whether there were any PRs I needed to look over or PR discussions I wanted to add my voice to. This is not a view I have right now. Notifications doesn't surface this information in a way that's easy to scan, and otherwise I have to go digging through (potentially) multiple boards or issues lists to see it. Instead being able to quickly scan down a feed of comments or reviews and reply right in the feed, I have to click through numerous screens and it's easy to miss stuff.
I would then create a second feed that would be "All of work" which I would configure to be just PR activity for my work organization. This would allow me to quickly scan activity in other repos that I'm not primarily responsible for, and contribute if there are things of value I could add. Right now I can't do this at all, I have to rely on my teammates tagging me in. It's just much too time consuming to try to scan through all the activity - even though, were it presented in feed format of just the new stuff, there's probably not so much that I couldn't easily scan it every day. It's the amount of digging through screens and trying to figure out what's new that's time consuming.
Then I'd create a feed for "My Stuff" which would contain all activity on repos I own (PRs and Commits). This would be mostly empty since, for the most part, I'm not collaboration with folks right now. But someday I'd like to, and this feed would be very useful then.
Finally I'd create various feeds for the all the open source I follow based on what project is, how interested in it I am, and how involved in I am.
Having this ability - the ability to create multiple custom feeds to surface this information I want by groups that are meaningful to me - has the potential to make collaboration on Github much easier and more efficient. One of the problems we face as a team is knowing when we need to respond to a pull request. And right now we mostly solve that with process (pinging each other, standups) and tooling (Jira/Slack). Having a feed we could quickly check for new activity would significantly grease those wheels and save us time elsewhere.
> I would then create a second feed that would be "All of work" which I would configure to be just PR activity for my work organization. [...] Right now I can't do this at all,
Isn't https://github.com/orgs/[workorgname]/dashboard basically this?
Really users? This is news? I'll echo what I've said in another comment (https://news.ycombinator.com/item?id=30769570) regarding GitHub being a social platform:
> GitHub has always branded itself as a "social collaboration platform" rather than anything else (well, first "git hosting" but secondly the social stuff).
> Here is a early version of their landing page from 2008 (the year they launched): https://web.archive.org/web/20081111061111/http://github.com...
> Notice the logo says "Social code hosting" and the messaging of the page is mostly around popular repositories, collaborative features and other social elements.
Anyone surprised by a "social code hosting" platform implementing new social features are in for a bleak feature, as the platform still aims (and always have aimed) to be the social place for coders.
/s but not really
It shouldn't be. Social has its place, but I don't want to see memes and emojis and dramaposting with upvotes and downvotes and karma whoring on a project page. The purpose of Github should be to distribute and collaboratively develop software and nothing more. None of the social features make developing software easier, they distract from what should be the platform's purpose. Soon, you won't even need to deal with Git or push a repo at all, they'll just remove all of that "coding" shit and become another Twitter clone. That's the inevitable endstate of adding social features, they consume everything.
Feh. Feh, I say!
I think this thread is losing track of what the word "collaborate" means. Its not about emoijis and cat memes
Wont somebody please think of the shareholders?
/s
reason why i abandoned MSN messenger back in the days was because they started to mimic facebook features, same thing as skype, as people pointed in the github discussion
It’s weird in that I recently discovered a few hundred programmers who may $500-2n/year/person to Microsoft for visual Studio and more for a devops/teams foundation server/vsts and two full time admin contractors to administer the source server. There’s a lot of money in this space that Microsoft is probably losing as orgs migrate to GitHub.