docs: wanted, dbtest, recommendation and playlists comments say what the code does (#6277)
The same rewrite as d191a282, for four packages whose comments carried the
most history: tuning stories, quotes from the operator, single-install
measurements in library_scale.go, and 'used to' accounts of bugs. The
constraint each story protected stays as a present-tense reason (why tier 3
is reduced not removed, why the randomised arms take an order seed, why the
seed artist is eligible in Songs-like). Comments naming system_cron.go and
config.RecommendationConfig, neither of which holds what they claimed, now
name the scheduler and internal/recsettings.
Checked: non-comment tokens identical to HEAD; gofmt clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// Package recommendation implements the weighted-shuffle scoring engine
|
||||
// from spec §6. The Score function is pure and takes an injectable RNG so
|
||||
// Package recommendation implements the weighted-shuffle scoring engine.
|
||||
// The Score function is pure and takes an injectable RNG so
|
||||
// tests can pin jitter to deterministic values.
|
||||
package recommendation
|
||||
|
||||
@@ -20,20 +20,20 @@ type ScoringInputs struct {
|
||||
ContextualMatchScore float64 // [0, 1]; 0 when no signal
|
||||
SimilarityScore float64 // [0, 1]; 0 when no signal (random fill)
|
||||
// TasteMatchScore is the candidate's fit to the user's learned taste
|
||||
// profile (#796 phase 2), in [-1, +1]: positive draws a track toward the
|
||||
// profile, in [-1, +1]: positive draws a track toward the
|
||||
// user's taste, negative reflects passive avoidance, 0 when there's no
|
||||
// profile signal (cold start / artist+tags absent from the profile).
|
||||
TasteMatchScore float64
|
||||
// ContextAffinityScore is the candidate artist's time-of-day/weekday
|
||||
// affinity for the CURRENT context (#1531), in [-1, +1]: positive when the
|
||||
// affinity for the CURRENT context, in [-1, +1]: positive when the
|
||||
// artist's plays concentrate in the current daypart × weekday-type cell
|
||||
// more than the user's baseline, negative when under-represented, 0 when
|
||||
// there's no history (cold-start neutral).
|
||||
ContextAffinityScore float64
|
||||
}
|
||||
|
||||
// ScoringWeights are the operator-tunable knobs. Defaults live in
|
||||
// config.RecommendationConfig and are propagated here per request.
|
||||
// ScoringWeights are the tunable knobs. The shipped values and any tuned ones
|
||||
// live in internal/recsettings, which hands them in per request.
|
||||
type ScoringWeights struct {
|
||||
BaseWeight float64
|
||||
LikeBoost float64
|
||||
@@ -46,7 +46,7 @@ type ScoringWeights struct {
|
||||
ContextTimeWeight float64
|
||||
}
|
||||
|
||||
// Score computes the weighted-shuffle score per spec §6:
|
||||
// Score computes the weighted-shuffle score:
|
||||
//
|
||||
// score = base
|
||||
// + (is_general_liked ? LikeBoost : 0)
|
||||
|
||||
Reference in New Issue
Block a user