Post

A couple comments about what I’ve been learning about algo engineering, but first off: if you’re interested in helping us improve Discover and all of our algorithmic systems, we are hiring algo engineers jobs.gem.com/bluesky/am9i...

jobs.gem.comBluesky JobsBluesky Jobs
dan@danabra.mov

atproto is such a cool technology, but the low quality default feed of the default atproto product is dragging the whole thing down. i don’t want to say ngmi but that’s how it feels so far

121 reposts560 likes

I’m so out of touch with web technologies that I was about to make an incorrect joke about how out of touch I am. I thought “Gem” might be an underlying tech you use, and I was going to say “I’m a bit out of date, the only GEM I know is GEM Desktop, is that OK?”, but it’s just like a jobs platform?

I have now compounded my inner shame by making it known to you all. I’ll just get back to fixing those IP cameras I should be working on instead of dicking around on Bluesky…

My background isn’t ML so I recently had to start training in my off time. It’s actually been very fun; wish I had done this 5 years ago. But that’s my opening caveat- I’m still relatively junior on this subject matter

The way Discover works is by sampling from multiple different “Candidate Groups (CGs).” This can be things like followed users, liked by followed users, social clusters, and topics you’ve voiced interest in.

These get put through a predictive ranker, which is a large statistical model that tries to guess whether the viewer would like a post. Model #1 for us to train.

The CGs each work differently. The topical ones require classification. Model #2 for us to train. This also requires a good embedding model, which I’m pretty sure (?) we don’t train or fine tune ourselves but requires a lot of experimentation.

Good thread, do the algos consider content you only view (but don’t engage with) as a weight? My grand theory for why social text feeds suck is: views for text based content is bad data. I have to read it to know what it is, so you can’t know if I just scrolled by without viewing it

This includes tapping into a post to read it, which you often need to do to read the whole post or thread to know it sucks

I agree with you from personal experience Bluesky is passing up some of their most experienced candidates. It's probably a time management issue. Also they have no office, which makes coordination difficult. I'd have trouble hiring too in this current climate.

i've done a lot of hiring in large open source ecosystems. the trade-offs involved in hiring from within the ecosystem were discussed endlessly each time we did it. after many ecosystem hires over the years, i can't say that how things played out points to a clear conclusion. hard call 🤷🏽‍♂️

Ah, you're saying that Bluesky should consider not hiring people who use Bluesky? That's millions of people they'd be marking off their list. I was more talking to OP's point about not taking the time to make a brief phone call with the candidate.

based on the candidate groups listed, I keep thinking the "social proof" on every profile could be leveraged somehow ideally if I click any post in the Discover feed, it should show me that they're followed by at least one person I know (or by someone that they follow etc.)

imo, turn off clusterv2 until there is something more permanent in place. it doesn't surface any good posts. would be better off manually picking accounts to show new users in the meantime

Super interesting thread! As far as generating candidate groups: topic similarity using an off the shelf embedding model with a fixed training cutoff means that you won't be able to topic cluster along newer slang, memes, etc, which is super important for social media.

You need to build a dynamic topic model, which you can do by dynamically identifying the clusters only, or by identifying clusters + updating embeddings, which I think is more powerful. Moreover, what can feel "magical" about a truly good recommender system is when it recommends something that...

I haven't interacted with bit which I really want to see. Usually this is done by combining the two approaches for candidate groups you talked about: it's not follow based OR topic, it's _both_. To do this what you want to do is create a semantic clustering algorithm for _users_.

A naive but illustrative way of doing this is for every user average the embeddings of all of their posts, this gives you a rough "user embedding". Now you create a cohort of the user of those people who's user embeddings are in a neighborhood of size \delta.

Hey, i hear you about the problem with algorithmic recommendations. For years it has been engagement driven, but what’s needed is something healthier- still an algorithm! Just not focused on attention economics. Such things are possible and the algos exist.

Topic classification will remain a huge challenge without progress on sentiment analysis. Sarcasm, in particular, is problematic. Whole of account comparison will skew negative.

Thanks for sharing and love the openness. I’m in a similar boat where ML is concerned, but happy to chat any time about my 3 years working on News Feed and the perspectives that gave me rubbing shoulders with the folks building that stuff on feed, and what we generally found was “hard”

I’m confused. I was invited to apply to this position by your recruiting team, and then summarily rejected with the excuse that you had filled your pipeline. And yet here you are trying to fill it again. I am a 20 yr career engineer w/ academic research exp in SNA and graph theory. What gives?

You know what would help with the algorithm. Having a robust tagging culture. And you know what helps that. Having a separate tagging field like Tumblr. Heck, even TikTok the algorithm app has a robust tagging culture because it has a dedicated field explicitly for tags.