Skip to content

docs: propose cross-request semantic fatigue experiment - #83

Draft
pranay0703 wants to merge 1 commit into
xai-org:mainfrom
pranay0703:rfc/cross-refresh-semantic-fatigue
Draft

docs: propose cross-request semantic fatigue experiment#83
pranay0703 wants to merge 1 commit into
xai-org:mainfrom
pranay0703:rfc/cross-refresh-semantic-fatigue

Conversation

@pranay0703

Copy link
Copy Markdown

Summary

This RFC proposes a measurement-first experiment for viewer-specific semantic fatigue across For You requests. It tests whether repeated exposure to a sufficiently narrow semantic family predicts lower marginal utility before any ranking change is enabled.

Why

Exact post deduplication and current-slate diversity address different time horizons. The public repository exposes request/served history, candidate semantic identifiers, author-diversity scoring, and current-slate DPP reranking, but the published code does not establish a cross-request semantic-exposure feature.

The RFC turns that observation into a staged, falsifiable proposal:

  • Phase 0 measures the relationship between prior semantic exposure and trusted user outcomes with no ranking change.
  • Phase 1 validates online hydration, event semantics, coverage, latency, and bounded viewer state in shadow mode.
  • Phase 2 tests a configurable, time-decaying, bounded adjustment, with an OON-first treatment as the conservative initial boundary.
  • Phase 3 considers explicit negative feedback separately from passive exposure.

Design decisions

Decision Reason
Measure before ranking Offline association is not causal evidence. A failed hypothesis should stop the proposal.
Use viewer-relative state Repetition is a property of a viewer's recent exposure, not a global property of a post or author.
Keep the adjustment bounded and fail-open Repetition must not become a hard filter or a new blocking dependency.
Do not assume a served-history schema field The visible code imports the thrift type, but does not define its schema or persist semantic IDs in the shown writer.
Treat current-slate diversity as complementary Cross-request fatigue and same-request diversity solve different problems and should be measured independently.

Review focus

The RFC asks maintainers to confirm the contracts that must precede implementation:

  • the intended meaning and stability of semantic_ids, SID levels, and SlateContext.fatigue;
  • which event counts as exposure;
  • whether history belongs in the existing served-history path or a separate bounded event/state path;
  • where the adjustment should sit relative to score caching, VMRanker/DPP, selection, and final visibility filtering; and
  • which utility, coverage, privacy, and latency metrics should gate an online test.

Related work

This is complementary to PR #37, which focuses on repetition among posts selected together in one slate. This RFC focuses on repeated exposure across earlier requests.

New concepts

Historical semantic exposure

Historical semantic exposure is a viewer-specific, time-decayed measure of how much content from a validated semantic family the viewer has already encountered. It is useful here because post IDs only identify exact objects, while current-slate diversity only sees candidates in the current request.

For example, three different posts can express one narrow proposition across three requests. The feature records that prior exposure and then tests whether another equivalent recommendation has lower marginal utility. It should not be used as a broad-topic mute, a novelty bonus, or a subjective quality score.

Validation

  • Confirmed all repository-relative links in the RFC resolve.
  • Parsed the Markdown successfully with Pandoc.
  • Ran git diff --cached --check successfully.
  • No Rust test suite was run; this PR changes documentation only.

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.

1 participant