Skip to content

feat: add my-taste builtin profile (personalization-forward feed) - #3

Merged
ham-33 merged 1 commit into
mainfrom
claude/recommendation-algorithm-review-0h139s
Jul 26, 2026
Merged

feat: add my-taste builtin profile (personalization-forward feed)#3
ham-33 merged 1 commit into
mainfrom
claude/recommendation-algorithm-review-0h139s

Conversation

@ham-33

@ham-33 ham-33 commented Jul 26, 2026

Copy link
Copy Markdown
Member

What

Adds a new builtin feed profile, my-taste, tuned for viewers who want the feed to lean toward their own signals rather than global popularity.

Knob for-you (default) my-taste
engagement weight 0.35 0.15
affinity weight 0.30 0.40
topic weight 0.20 0.30
social_proof weight 0.15 0.10
trending weight 0.10 0.05
freshness tau 8 h 10 h
in-network ratio 0.5 0.6
explore slot every 10th every 8th
prolific damp threshold 10 8

The net effect: accounts you engage with and subjects you care about lead, while off-topic viral posts sink. The diversity guards (author cap, topic-run break, exploration slots, language/seen/stranger-reply penalties) are left on, so it sharpens personalization without collapsing into a filter bubble.

Why

This profile came out of a hands-on comparison of for-you vs. a personalization-forward weight set on a shared candidate set. Relative to the default, my-taste pulls followed / on-topic content higher, drops off-topic viral posts out of the page, and surfaces slightly more new-author discovery — while the same seen / language / prolific / stranger-reply filters keep the feed from feeling "off".

Changes

  • profiles.go: add MyTasteConfig() and register "my-taste" in BuiltinProfiles().
  • profiles_test.go: TestMyTasteProfilePersonalizesOverPopularity asserts the profile prefers a followed, on-topic post over an off-topic viral one more strongly than the default, and that the personal post wins outright under my-taste.
  • README.md, ALGORITHM.md: add the profile to the feed-profiles tables.
  • CHANGELOG.md: Unreleased entry.

No changes to the scoring formula, sourcing, filters, or page rules — this is purely an additional published weight set.

Testing

go vet ./...            # clean
gofmt -l .              # clean
go test -race -cover ./...   # ok, 98.8% coverage

🤖 Generated with Claude Code

https://claude.ai/code/session_014kaXMnwzpviZesDmpphxNn


Generated by Claude Code

Personalization-forward weight set: lowers the global-popularity
(engagement) term to 0.15 and raises affinity (0.40) and topic (0.30),
so followed accounts and the viewer's own subjects lead while off-topic
viral posts sink. Keeps tau 10h, 60% in-network, explore every 8th slot,
and prolific damp threshold 8; the diversity guards stay on so it
sharpens personalization without collapsing into a filter bubble.

Registered in BuiltinProfiles(), with a test asserting it prefers a
followed on-topic post over an off-topic viral one more strongly than
the default, plus README/ALGORITHM/CHANGELOG entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014kaXMnwzpviZesDmpphxNn
@ham-33
ham-33 marked this pull request as ready for review July 26, 2026 13:22
@ham-33
ham-33 merged commit 0a2ae1d into main Jul 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants