Thanks, I didn't know that :)
I'm trying hard not to create a full client just the minimum to develop libraries that can be used for clients, but some things have to be implemented even if I try not to.
it will be an upgrade to the Nostr protocol so that everybody can have a machine learned timeline, and the relays will give results back in machine learned order with ads between….
Just kidding, nobody can push anything on you on Nostr.
Further update on my work on ranking:
To make it easy to create a groups / categories of features (for example belonging to all different publishers), I'm planning to implement something like ,,feature groups'' in the logistic regression class that's responsible both for collecting training data and training / testing.
As per GPT-4's suggestion, before training I'll put 2 (or maybe 3) features for each feature group : ratio of positive examples to total examples inside that group, and ratio of all examples in that group compared to total number of examples altogether. This will keep the features dense.
The great thing with this decision is that for one more function in the logistic regression API surface (and a few more internal variables), the rendering code is kept simple: it just has to go through all events once to gather training data.
I was talking more about ranking with a good friend who I know for a few months now, I thought it would be nice to share it here:
New change on https://rbr.bio again: log in with nostr extension to view followed notes (the old page is still available at https://us.rbr.bio).
It looks more and more like a light client with showing likes by user and followed users, showing images.
While I'll add the basic client features, what's imprtant is the for you tab, which will rearrange / collapse threads.
I think my logistic regression library is working, but I need to add some time management (the ,,time passed'' feature is different for training than for inferencing).
I just checked from mobile where there's no nostr extension: it sucks :( need to do private / public key login as well I guess
New change on https://rbr.bio again: log in with nostr extension to view followed notes (the old page is still available at https://us.rbr.bio).
It looks more and more like a light client with showing likes by user and followed users, showing images.
While I'll add the basic client features, what's imprtant is the for you tab, which will rearrange / collapse threads.
I think my logistic regression library is working, but I need to add some time management (the ,,time passed'' feature is different for training than for inferencing).
Focus is always important. There are lots of ideas, but limited time to do interesting things :)
You're right, probably the best first start is to just set pReaction as a target, where reaction can be like/comment/zap/repost. In that case ranking will work for everybody.
But weighting these reactions as a user setting is easy, and great idea, just like manually adjusting biases.
I would probably set a negative bias for my own likes and for images to get less clickbait even if I would like some posts.
Now that #[0] launched nostr-relaypool-ts, and it's working great for retrieval, I started to focus on what I originally was interested in: ranking.
So far it's in the planning stage, but I think it's going well. For now I'm planning on developing a pLike | note model (predicting whether a note is going to be liked by a user). I'm planning to use logistic regression with the following signals as a start:
- time passed since note was created
- note's author is followed by user
- number of likes
- number of comments
- share of likes from the author by the user in the past
- does it contain image?
- does it contain link?
- does it contain video?
- text length
- likes by followers
Some are easier to implement, some are a bit harder, and of course I'll check their impact before launching them.
I think I will order threads by the maximum probability that a note has in a thread. Also pLike can be used as a filter for comments to be shown / hidden. Of course pComment model can be trained on the same signal.
If they do a Nostr nest and you listen can you please publish a note about it? I don't like these ,,big announcements'' wasting my time, but now I got hooked becuse it will be HUUGE for Nostr
They are not synced across different clients but Iris does that within Iris clients if you allow it to write the timestamp events: https://docs.iris.to/features/advanced#timestamps
I guess it has to be solved by separate NIPs. I think DM is more important and more uniform across clients, so I believe that should be solved first.
Cool, don’t listen and don’t use the companies advertising. Enjoy your life, you are free from this.
Actually we aren't. I would love to say that I can just watch the podcasts and skip the ads, but ads work on me anyways.
I still understand that there is no good alternative right now, that's why I'm here to take part of creating one.
I added the ,,show reply to a note if the note was replying to the same author functionality''. Next I need to implement replying (a basic login is already implemented), and then https://rbr.bio can be used as a light client for chatting :)
Feel free to reply to my posts if you're interested in trying it out as a chat application :)
I forgot the usual example link: https://rbr.bio/npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s
New milestone in rbr.bio development: threading in the feed view of a person mostly works. Also view as is implemented for fun.
The goal of the feed view was to be a simple, self contained, but flexible implementation that is able to recursively load all parent events, merge threads, reorder threads (right now based on newest timestamp in the thread that is shown).
I'm planning to add minimal client features for playing with it better (like / reply / follow / login / maybe photos, make it super interactive, for example guarantee to show events from people that I replied to in a thread), but not planning to make it a client, as I'm more interested in creating a library for all clients that need feed support, which means that it has to be super flexible (showing comments, likes optional, recursive previous events optional, 100% customizable html / css).
One more thing that *has* to be flexible is ranking: first I'm planning to play with ranking myself, but make sure it's pluggable as well. With generic timeline the ranking function is easy-to compose (just take the minimum / maximum score of 2 threads when merging 2 threads into 1), but I'm not totally opposed to having much more complex ranking functions as well if they make sense and practical (that need all events in a thread and other metadata to compute a ranking function).
As I want to use Nostr as a Telegram / WhatsApp / HackerNews replacement for myself, my main ranking criteria will be the probablility that both I want to comment on a thread, and also I'm getting a comment reply. I know that many people care about likes / zaps, I care more about comments.
