Oddbean new post about | logout
 I have carefully read the Appleseed algorithm, and it has some serious tradeoffs compared to what I am working on.

𝗖𝗼𝗻𝘀

𝟭. 𝗜𝘁'𝘀 𝗹𝗲𝘀𝘀 𝗶𝗻𝘁𝘂𝗶𝘁𝗶𝘃𝗲 𝘁𝗼 𝘂𝘀𝗲
This is important because people need to understand what parameters to change in order to have a different experience.

e.g. you want to see more post from a certain npub. You increase the weight of that npub, but this also changes the total weight, so that affects every other person's relative weight and changes the experience in ways difficult to predict.

𝟮. 𝗜𝘁 𝗰𝗼𝘀𝘁𝘀 𝗺𝗼𝗿𝗲.
I have to test this assumption in practice (maybe you can help, by sending to me the current Nostr social graph?🙏🏻 )

My algo leverages sparse matrices. On my machine I can compute the local trust score for 20k users in ~2 min.

That computes N ^ 2 trust scores, meaning how much npubA trusts all N users, for all npubA.

A service provider can do this, OR, this computation can be done by the client. In that case, the client only cares about one user, so that computations becomes N times less costly than the above.

My analysis shows that the cost is O(N^2.8 * p) for computing all trust scores on a network of N people, where p is the density of follows.

On a social network like twitter, people follow ~1k others. This means that the density p = 1000 * N / N^2 = 1k / N.

In that case, the cost becomes O(N^1.8) for the local trust matrix for all users, and O(N^0.8) for the local trust score for one user.

𝟯. 𝗜𝘁'𝘀 𝗺𝗼𝗿𝗲 𝗰𝗼𝗺𝗽𝗹𝗲𝘅
My algorithm is like 10  lines of code, very intuitive to program and more importantly to use. Ease of understanding is a great feature (as Nostr highlights).


𝗣𝗿𝗼𝘀

𝟭. 𝗠𝗼𝗿𝗲 𝗽𝗿𝗲𝗰𝗶𝘀𝗲
It might be more precise on a theoretical level, but this might give practical benefits because of point 1.

If it's more difficult to fine-tune the experience, then in practice the 'theoretical higher precision' doesn't materialize.