Skip to content

SYSTEM Cited by 1 source

Friend Bubbles (Meta)

Friend Bubbles is the Meta recommendation-system component that surfaces Reels a viewer's friends have liked, reacted to, or otherwise interacted with — rendered in the Facebook Reels UI as small avatar bubbles attached to a video. Tapping a bubble opens a one-on-one conversation with the friend, turning the signal into a messaging CTA.

The system is described publicly in Meta Engineering's 2026-03-18 post (sources/2026-03-18-meta-friend-bubbles-enhancing-social-discovery-on-facebook-reels) and decomposes into three cooperating layers:

  1. Viewer-Friend Closeness — two complementary ML models identifying which friends' interactions matter most to the viewer:
  2. A survey-trained closeness model (see patterns/survey-trained-closeness-model) running weekly inference over "trillions of person-to-person connections across Facebook friends." Binary close-vs-not-close prediction, trained on a "lightweight binary survey" asking users directly how close they feel to a specific connection. Features: mutual friends, connection strength, interaction patterns, user-provided location, friend count, posts shared.
  3. A context-specific closeness model trained on on-platform bubble-interaction signals (likes, comments, reshares occurring when bubbles are shown). Adapts closeness estimation to the specific bubble surface.

  4. Friend-aware video relevance — friend-interacted content is injected into Reels' retrieval → ranking funnel in two ways:

  5. Expanded top of funnel: the retrieval stage explicitly sources candidates based on close-friend interactions, ensuring high-quality friend content reaches the ranker.
  6. Signals + new tasks in the early- and late-stage MTML ranking models — viewer-friend closeness and bubble-interaction signals become features; bubble-conditioned engagement becomes a new task. The objective is augmented with a conditional-probability term P(video engagement | bubble impression) plus tunable weights trading off social interaction vs content engagement.

  7. Client-side integration with Reels performance constraints:

  8. Bubble metadata retrieval is pinned to the existing video prefetch window (concepts/prefetch-window-metadata-coattending) — no new fetch path at scroll time; bubble data arrives alongside video content so bubbles render without mid-playback UI updates or redraws.
  9. Animation is conditional (patterns/conditional-animation-for-scroll-performance): disabled during active scrolling / interaction, and disabled entirely on low-end devices.
  10. Conservative prevalence gating — bubbles only appear when the closeness-model score exceeds a threshold. Prevalence is not the optimisation target; engagement quality is.

A continuous feedback loop closes the learning cycle: bubble-interaction data flows back into training so the ranking system keeps improving its understanding of which friend-content combinations resonate.

Notable operational data from the post

  • Closeness-model inference scale: "weekly" over "trillions of person-to-person connections across Facebook friends".
  • Reaction-type sensitivity: "Bubbles triggered by expressive reactions such as love or laughter drive stronger downstream engagement than simple likes, particularly for comments and private shares."
  • Count sensitivity: "Engagement also scales consistently with the number of friend bubbles shown, meaning videos with multiple friend interactions tend to perform better."
  • Session-quality shift: users seeing bubbles "spend more time actively watching and interacting with content, with growth concentrated in longer sessions rather than brief check-ins."
  • Future work: expanding to additional surfaces + inventory, improving cold-start for people with limited friend graphs, refining ranking + feedback signals.

Caveats

  • No fleet / GPU / latency / throughput / A/B lift numbers.
  • MTML topology is not described — "multi-task, multi-label" is a class name; number of tasks, head composition, and gradient balancing are undescribed.
  • How the two closeness models compose (survey + context-specific) is not specified — additive? re-ranker? adjustment term?
  • How the binary close-vs-not-close label is turned into a continuous score for downstream ranker consumption is not specified.
  • Low-end-device threshold for animation-off policy is not disclosed.

Seen in

Last updated · 319 distilled / 1,201 read