feat: Replace additive scoring with equilibrium-constrained scorer (ΔØ)#16050
Open
Architect-SIS wants to merge 4 commits intotwitter:mainfrom
Open
feat: Replace additive scoring with equilibrium-constrained scorer (ΔØ)#16050Architect-SIS wants to merge 4 commits intotwitter:mainfrom
Architect-SIS wants to merge 4 commits intotwitter:mainfrom
Conversation
|
Issue is, if people get to understand that it works this way, they simply start mass-blocking posts that they don't agree with. Interesting though, I really should start looking into the theory of recommendation systems. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR TITLE:
feat: Replace additive scoring with equilibrium-constrained scorer (ΔØ)
PR BODY:
Summary
Drop-in replacement for the weighted scoring layer that fixes the fundamental flaw in how engagement and rejection signals interact.
Current approach (additive):
Problem: High engagement overcomes high rejection. A viral rage-bait post with 10,000 likes and 5,000 blocks still scores positive.
Proposed approach (multiplicative equilibrium):
Fix: Rejection collapses the score. No amount of engagement overcomes significant rejection. One block is worth more than a thousand likes.
Results
Toxic content with 40% higher raw engagement scores 84% lower under equilibrium constraint.
Small creators with genuine engagement are preserved — the penalty only activates when rejection signals are present.
What Changed
Files added:
src/weighted_scorer_delta_null.rs— Drop-in replacement for weighted_scorer.rssrc/delta_null_scorer.rs— Standalone implementationsrc/delta_null_scorer.py— Python reference for testingdocs/MATH.md— Formal mathematical derivationdocs/INTEGRATION.md— Step-by-step integration guideconfig/delta_null.toml— Configuration parametersexamples/demo.py— Interactive demo with test scenariosNothing removed. This is additive — existing code is untouched.
How It Works
The core constraint is ΣΔ = 0: sustainable content ranking requires equilibrium between constructive and destructive user signals.
Theoretical Foundation
This is standard control theory (Wiener, 1948) applied to recommendation systems:
Full derivation: docs/MATH.md
Integration Path
Fastest (2-4 hours): Replace weighted_scorer.rs with weighted_scorer_delta_null.rs, add
lazy_staticdependency, build.Conservative (1-2 weeks): Wrap existing scorer with equilibrium layer, A/B test, gradual rollout.
Standalone repo with full documentation: https://github.com/Architect-SIS/delta-null-scorer
Why This Matters
The algorithm isn't dumb because it lacks data. It's dumb because it uses addition where it needs multiplication. Rejection should destroy a score, not merely reduce it. That's not an opinion — it's what control theory has said for 78 years.
Author: K. Fain (ThēÆrchītēcť)
License: AGPL-3.0 (compatible with this repository)