Designing Experimentation Guardrails

Bài tóm tắt Airbnb 2021 3. Quy mô lớn Độ khó: Trung bình

Airbnb · 2021 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Bối cảnh

  • Mỗi tuần hàng nghìn thí nghiệm online chạy song song trên Airbnb, mỗi thí nghiệm theo dõi khoảng vài chục metric (2021).
  • Mỗi team ra quyết định theo metric của mình (Trust ưu tiên phát hiện gian lận, Experiences ưu tiên khám phá sản phẩm). Một thay đổi tốt cho team này có thể hại metric của team khác (ẩn nội quy nhà ở bước Checkout làm tăng booking nhưng giảm điểm đánh giá); trường hợp xấu nhất là phát hiện sau khi đã launch và phải rollback.

Thay đổi chính

  • 2019: hệ thống Experiment Guardrails toàn công ty. Thí nghiệm "kích hoạt" guardrail thì không được launch thẳng mà phải qua escalation: các bên liên quan thảo luận công khai kết quả trước khi quyết.
  • Chọn metric cần bảo vệ theo ba nhóm: metric kinh doanh/tài chính (doanh thu), metric trải nghiệm (bounce rate, tốc độ tải trang), metric ưu tiên chiến lược (có thể đổi theo thời gian). Không bảo vệ mọi metric: với 50 metric và ngưỡng 0,05 thì một A/A test có ít nhất một cảnh báo giả 92% số lần.
  • Ba guardrail, phải qua cả ba:
    • Impact: hiệu ứng trung bình toàn cục không được âm hơn ngưỡng t (ví dụ −0,5%), bất kể có ý nghĩa thống kê hay không.
    • Power: sai số chuẩn của ước lượng phải nhỏ hơn 0,8·t, để Impact có tỉ lệ báo giả và power chấp nhận được; quyết định thời gian chạy của thí nghiệm. Hằng số 0,8 chỉnh được; cách đánh giá là backtest: bao nhiêu phần trăm thí nghiệm 6 tháng qua sẽ qua, cần chạy thêm bao lâu.
    • Stat Sig Negative: chỉ bật cho vài metric quan trọng nhất (giảm 0,1% doanh thu ở quy mô Airbnb có thể là hàng triệu USD), báo mọi tác động âm có ý nghĩa thống kê dù nhỏ.
  • Điều chỉnh theo độ phủ: thí nghiệm chỉ phủ một phần người dùng sẽ khó qua Power hơn, nên ngưỡng t co giãn theo độ phủ từ tham số T (ngưỡng cho thí nghiệm phủ 100%): ngưỡng theo phần trăm thay đổi nới ra, ngưỡng theo tác động toàn cục siết lại.
  • Tự duyệt một số trường hợp: metric dễ đạt ý nghĩa thống kê nhưng chỉ thay đổi lớn mới đáng kể thì bỏ Stat Sig; thí nghiệm chưa qua Power nhưng ước lượng dương thì cho qua nếu đạt kiểm định noninferiority cùng ngưỡng.

Vì sao

  • Kết quả theo Airbnb: khoảng 25 thí nghiệm/tháng bị đưa đi escalation; 80% vẫn launch sau thảo luận và phân tích thêm, 20% (khoảng 5/tháng) bị dừng.
  • Quyết định quan trọng nhất là đặt T cho từng metric: lấy giá trị lớn hơn giữa "tác động đáng escalate" và "tác động phát hiện được", để không bắt chạy quá lâu mà cũng không phí escalation cho tác động nhỏ. Càng nhiều metric được bảo vệ thì tỉ lệ escalation và báo giả càng cao; số escalation phải vừa sức người review.

Bài học cho SWE

  • Guardrail tốt là một cổng có ngân sách báo giả: chọn ít metric, đặt ngưỡng theo cái phát hiện được, đo tỉ lệ escalation bằng dữ liệu lịch sử trước khi bật.
  • Không chặn cứng mà chuyển sang người quyết (escalation) giữ được tốc độ: phần lớn thí nghiệm bị gắn cờ vẫn launch, nhưng đánh đổi đã được nhìn thấy.
  • Giống canary có gate trong deploy: điều kiện "đủ mẫu" (Power) phải đi trước điều kiện "không xấu đi" (Impact).

Liên quan