← Meta Interview Insights

Meta·Data Scientist·Technical Phone Screen·Senior

Senior
Jun 2026

Summary

Meta data scientist interview with a meaty probability/Bayes question built around a social network abuse scenario. The whole thing was one extended problem that kept branching into follow-ups, so you had to stay on your toes for a while.

Questions Asked (4)

Q1

Given that 5% of users are classified as bad and each bad user sends 10 times more friend requests than a good user, what is the probability that a randomly chosen friend request came from a bad user?

Product Analytics & MetricsAlgorithms & Data Structures
Author's notes

This is a straight Bayes calculation but I fumbled the setup for a minute because I kept second-guessing the base rate.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Use Bayes' theorem with the law of total probability. Define the prior probability of a bad user as 5%, and the likelihood ratio of friend requests as 10:1. Compute the posterior probability that a randomly chosen friend request came from a bad user.

Pro tip: Clearly state the assumption that all users send at least one friend request or that the rates are proportional; otherwise, the problem is underspecified. Also, mention that this is a classic base rate problem and the answer is not simply 5% × 10.

1. Define events and probabilities

Let B be the event that a user is bad, and G be the event that a user is good. Given P(B) = 0.05 and P(G) = 0.95. Let R be the event that a randomly chosen friend request is from a user.

2. Express request rates

Assume each good user sends r friend requests, so each bad user sends 10r friend requests. The total expected friend requests from good users is 0.95 * r, and from bad users is 0.05 * 10r = 0.5r.

3. Compute total expected requests

Total expected friend requests = 0.95r + 0.5r = 1.45r.

4. Calculate probability

The probability that a randomly chosen friend request came from a bad user is (0.5r) / (1.45r) = 0.5 / 1.45 ≈ 0.3448 or 34.48%.

Key Points to Mention

  • Bayes' theorem and law of total probability
  • Base rate fallacy: prior probability of bad users is 5%
  • Likelihood ratio: bad users send 10 times more requests
  • Assumption of equal baseline activity or proportionality
  • Calculation: (0.05 * 10) / (0.95 * 1 + 0.05 * 10) = 0.5 / 1.45 ≈ 34.5%
  • Interpretation: despite only 5% of users being bad, they generate about 34.5% of friend requests

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Using only existing event logs, how would you design a method to identify which users are likely bad actors?

Product Analytics & MetricsRoot Cause Analysis
Author's notes

I went straight to aggregating request volume per user and flagging statistical outliers, which felt obvious in retrospect.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying what 'bad actor' means in the context of the product and available event logs, then propose a framework that combines rule-based heuristics with unsupervised anomaly detection and supervised classification if labels exist. Emphasize feature engineering from raw event logs (e.g., frequency, sequence, timing) and validation via manual review or A/B testing.

Pro tip: Highlight the importance of defining a clear, measurable proxy for 'bad actor' (e.g., spam reports, account bans) and stress that any detection method must be evaluated for precision at scale to avoid alienating legitimate users.

1. Define 'bad actor' and success metrics

Clarify with stakeholders what behaviors constitute bad acting (e.g., spam, fraud, abuse) and how they manifest in event logs. Establish evaluation metrics like precision@k, recall, or lift over baseline.

2. Explore and engineer features from event logs

Analyze log data to extract user-level features such as action frequency, session patterns, sequence anomalies, time-of-day activity, and content-based signals. Consider aggregations over sliding windows.

3. Choose detection methods

If labeled data exists, train supervised models (e.g., gradient boosting, logistic regression). Otherwise, use unsupervised techniques like isolation forests, clustering, or autoencoders to flag outliers. Combine with rule-based filters for known patterns.

4. Validate and iterate

Evaluate model performance using holdout sets or manual review of top-scored users. Incorporate feedback to reduce false positives and adapt to evolving bad actor tactics.

5. Deploy and monitor

Integrate the detection system into production with monitoring for drift and performance. Set up alerts for anomalous spikes and a process for human review and action.

Key Points to Mention

  • Feature engineering from raw event logs (e.g., frequency, sequence, timing, entropy of actions)
  • Handling imbalanced data and lack of labels (unsupervised vs. semi-supervised approaches)
  • Use of graph-based methods to detect coordinated behavior (e.g., communities, shared IPs/devices)
  • Evaluation metrics beyond accuracy (precision@k, recall, false positive rate) and business impact
  • Privacy and ethical considerations when analyzing user behavior
  • Scalability and real-time detection requirements at Meta's scale

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

If you have additional features like request timing and acceptance rate, how would you use Bayes' theorem to derive the probability that a user is good given that they sent a request?

Product Analytics & MetricsA/B Testing & Experimentation
Author's notes

Felt more comfortable here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining what 'good' means in this context (e.g., a user who is likely to accept requests) and identify the relevant events: sending a request and having features like request timing and acceptance rate. Then apply Bayes' theorem to compute P(good | sent request) using prior P(good), likelihood P(sent request | good), and evidence P(sent request), incorporating the additional features as conditional probabilities or by modeling them as part of the likelihood.

Pro tip: Emphasize that the prior P(good) should be estimated from historical data or business context, and that features like request timing and acceptance rate can be used to refine the likelihood, but be cautious about assuming independence if features are correlated.

1. Define 'good' and the events

Clarify what constitutes a 'good' user (e.g., high acceptance rate, reliable) and define the events: G = user is good, R = user sent a request. Also identify additional features F1 = request timing, F2 = acceptance rate.

2. State Bayes' theorem

Write Bayes' theorem: P(G | R, F1, F2) = P(R, F1, F2 | G) * P(G) / P(R, F1, F2). Explain that we want the posterior probability of G given the request and features.

3. Model the likelihood

Assume conditional independence of features given G to simplify: P(R, F1, F2 | G) = P(R | G) * P(F1 | G) * P(F2 | G). Estimate each from data (e.g., P(R | G) from historical request rates of good users).

4. Compute the evidence

Compute P(R, F1, F2) by summing over G and not G: P(R, F1, F2) = P(R, F1, F2 | G)P(G) + P(R, F1, F2 | ¬G)P(¬G). Use the same independence assumption for ¬G.

5. Calculate posterior and interpret

Plug in the numbers to get P(G | R, F1, F2). Discuss how the additional features update the probability compared to using only R, and consider potential correlations or need for more sophisticated models.

Key Points to Mention

  • Definition of 'good' user and how it relates to business metrics (e.g., acceptance rate).
  • Bayes' theorem formula and its components: prior, likelihood, evidence, posterior.
  • Conditional independence assumption and its limitations.
  • How to estimate probabilities from historical data (e.g., P(R | G), P(F1 | G)).
  • The role of request timing and acceptance rate as features that can refine the likelihood.
  • Potential need for smoothing or handling sparse data when estimating probabilities.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

If you needed to shrink the confidence interval of your probability estimate to one-tenth its current width, what would you change about how you collect or analyze the data?

A/B Testing & ExperimentationProduct Analytics & Metrics
Author's notes

Knew the answer involved sample size but blanked on the exact relationship between width and n for a second.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by explaining that the width of a confidence interval is proportional to 1/√n, so reducing it to one-tenth requires a 100-fold increase in sample size. Then discuss practical ways to achieve this, such as increasing traffic allocation, extending the experiment duration, or using variance reduction techniques like CUPED, while acknowledging trade-offs.

Pro tip: Mention that simply increasing sample size may not be feasible, so combining it with variance reduction techniques (e.g., CUPED) and ensuring proper randomization can achieve the goal more efficiently. Also, highlight the importance of checking for novelty effects and ensuring the metric is stable over time.

1. Understand the relationship between sample size and CI width

Recall that the width of a confidence interval is inversely proportional to the square root of the sample size. To reduce the width by a factor of 10, you need 100 times more data.

2. Identify ways to increase sample size

Consider increasing the proportion of users exposed to the experiment, extending the experiment duration, or increasing the overall user base if possible. Also, consider running the experiment on a larger fraction of traffic.

3. Apply variance reduction techniques

Use methods like CUPED (Controlled-experiment Using Pre-Experiment Data) to reduce variance by using pre-experiment covariates. This can effectively increase the signal-to-noise ratio without increasing sample size.

4. Optimize metric and analysis

Choose a more sensitive metric or transform the metric (e.g., log transformation) to reduce variance. Ensure proper randomization and avoid peeking to maintain validity.

5. Evaluate trade-offs

Discuss the trade-offs: longer experiments may introduce seasonality effects, larger traffic allocation may impact user experience, and variance reduction techniques require additional data and assumptions.

Key Points to Mention

  • Sample size calculation: n ∝ 1/width², so 10x reduction requires 100x sample
  • Variance reduction techniques like CUPED, stratification, or regression adjustment
  • Increasing experiment duration or traffic allocation
  • Trade-offs: cost, time, user experience, and potential biases
  • Importance of proper randomization and avoiding peeking
  • Alternative: use a more sensitive metric or combine metrics

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.