IP Library Granted Patent US 12,299,705
Granted Patent B2
US 12,299,705 · App. 15/370,697 · Granted May 13, 2025

Method and system for automatic detection and prevention of quality issues in online experiments

Inventors: Sundeep Narravula (Sunnyvale, CA); Nirupama Appikatala (San Jose, CA); Sudhir Chauhan (Sunnyvale, CA); Miao Chen (Sunnyvale, CA)
Assignee: YAHOO AD TECH LLC
G06Q30/0203G06Q30/0254
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,299,705
App. No.
15/370,697
Granted
May 13, 2025
Kind
B2
Abstract

The present teaching relates to managing online experiments. In one example, a plurality of experiment layers is created with respect to a plurality of online users. Each experiment layer includes at least one experiment each of which includes one or more buckets associated with respective features to be experimented on. Each of the plurality of online users is assigned to a corresponding bucket in each experiment layer, such that the user is simultaneously associated with multiple experiments in different layers. User event data related to the plurality of experiment layers are collected from the plurality of online users. One or more contaminated buckets are automatically detected based on the user event data.

Claims (88)

1. A method, implemented on at least one computing device each of which has at least one processor, storage, and a communication platform connected to a network for managing online experiments, the method comprising:

creating, by an online controlled experimentation engine, a plurality of experiment layers, wherein each experiment layer includes and runs at least one online experiment on a website, and each online experiment includes one or more buckets associated with one or more features to be experimented on;

assigning, by the online controlled experimentation engine, via the website embedded with a randomization algorithm on a load balancer, by splitting traffic between the one or more buckets, based on a bucket size, a plurality of identifiers, each of which corresponds to one of a plurality of online users, to a corresponding bucket in each experiment layer such that a user is simultaneously associated with multiple online experiments in different experiment layers;

collecting user event data related to the plurality of experiment layers from the plurality of online users;

performing a two-stage test to determine health of the plurality of experiment layers, wherein the two-stage test comprises:

automatically detecting one or more contaminated experiment layers from the plurality of experiment layers by computing, based on the user event data, a uniform distribution test for each of the plurality of experiment layers, and

in response to the one or more contaminated experiment layers from the plurality of experiment layers being detected, automatically detecting, for each of the detected one or more contaminated experiment layers, one or more contaminated buckets by computing, based on the user event data, a proportion test of identifiers assigned to each bucket in each of the one or more contaminated experiment layers; and

in response to determining that a severity level of at least one of the one or more contaminated buckets exceeds a threshold severity level, performing, by the online controlled experimentation engine, contamination correction by:

automatically removing the at least one of the one or more contaminated buckets from a corresponding online experiment to prevent the at least one of the one or more contaminated buckets from contaminating the corresponding online experiment, and

reinstating the bucket size in the corresponding online experiment.

2. The method of claim 1 , wherein the plurality of identifiers comprise a plurality of experiment unit identifiers (IDs), the step of assigning the plurality of identifiers comprises:

determining, for each of the plurality of online users, a corresponding experiment unit ID of the plurality of experiment unit IDs;

determining a random seed for each experiment layer;

calculating, for each experiment layer, a hash value associated with each of the plurality of identifiers based on the corresponding experiment unit ID and the random seed; and

assigning the identifier to the corresponding bucket in each experiment layer based on the calculated hash value.

3. The method of claim 1 , wherein the step of automatically detecting the one or more contaminated experiment layers comprises:

calculating a health level of each experiment layer based on the uniform distribution test which is computed for each experiment layer based on the user event data;

determining one or more unhealthy experiment layers based on the health level of each experiment layer; and

determining, for each of the one or more unhealthy experiment layers, at least one contaminated bucket, wherein the one or more contaminated buckets comprise the at least one contaminated bucket determined in each of the one or more unhealthy experiment layers.

4. The method of claim 3 , wherein the uniform distribution test is used to determine whether a traffic distribution across different buckets in a given experiment layer is uniform.

5. The method of claim 3 , wherein the proportion test is used to determine a probability of assigning an online user to each bucket in each experiment layer, and the proportion test identifies problematic hash ranges for each of the detected one or more contaminated experiment layers.

6. The method of claim 1 , further comprising:

selecting a prevention scheme based on each of the one or more contaminated buckets that were detected;

determining the severity level for each of the one or more contaminated buckets; and

determining a prevention action to be applied to the at least one of the one or more contaminated buckets based on the prevention scheme and the at least one of the one or more contaminated buckets exceeding the threshold severity level, wherein the prevention action comprises:

automatically removing the at least one of the one or more contaminated buckets from the corresponding online experiment, and

after the at least one of the one or more contaminated buckets is removed, reinstating the bucket size in the corresponding online experiment.

7. The method of claim 6 , wherein each experiment layer comprises a plurality of online experiments, and wherein the prevention action further comprises:

holding or closing the corresponding online experiment when a condition related to all contaminated buckets in the corresponding online experiment is met.

8. A system having at least one processor, storage, and a communication platform connected to a network for managing online experiments, comprising:

a multi-layer experiments creator of an online controlled experimentation engine configured for creating a plurality of experiment layers, wherein each experiment layer includes and runs at least one online experiment on a website, and each online experiment includes one or more buckets associated with one or more features to be experimented on;

a user assigner of the online controlled experimentation engine configured for assigning, via the website embedded with a randomization algorithm on a load balancer, by splitting traffic between the one or more buckets, based on a bucket size, a plurality of identifiers, each of which corresponds to one of a plurality of online users, to a corresponding bucket in each experiment layer such that a user is simultaneously associated with multiple online experiments in different experiment layers;

a grid based event analyzer configured for collecting user event data related to the plurality of experiment layers from the plurality of online users; and

an experiment contamination detector configured for:

performing a two-stage test to determine health of the plurality of experiment layers, wherein the two-stage test comprises:

automatically detecting one or more contaminated experiment layers from the plurality of experiment layers by computing, based on the user event data, a uniform distribution test for each of the plurality of experiment layers, and

in response to the one or more contaminated experiment layers from the plurality of experiment layers being detected, automatically detecting, for each of the detected one or more contaminated experiment layers, one or more contaminated buckets by computing, based on the user event data, a proportion test of identifiers assigned to each bucket in each of the one or more contaminated experiment layers; and

a prevention action determiner of the online controlled experimentation engine configured for performing contamination correction by:

in response to determining that a severity level of at least one of the one or more contaminated buckets exceeds a threshold severity level, automatically removing the at least one of the one or more contaminated buckets from a corresponding online experiment to prevent the at least one of the one or more contaminated buckets from contaminating the corresponding online experiment, and

reinstating the bucket size in the corresponding online experiment.

9. The system of claim 8 , wherein the plurality of identifiers comprise a plurality of experiment unit identifiers (IDs), the user assigner comprises:

an experiment unit ID determiner configured for determining, for each of the plurality of online users, a corresponding experiment unit ID of the plurality of experiment unit IDs;

a random seed determiner configured for determining a random seed for each experiment layer;

a hash value calculator configured for calculating, for each experiment layer, a hash value associated with each of the plurality of identifiers based on the corresponding experiment unit ID and the random seed; and

a bucket assigner configured for assigning the identifier to the corresponding bucket in each experiment layer based on the calculated hash value.

10. The system of claim 8 , wherein the experiment contamination detector comprises:

a test statistics calculator configured for calculating a health level of each experiment layer based on the uniform distribution test which is computed for each experiment layer based on the user event data;

a uniformity tester configured for determining one or more unhealthy experiment layers based on the health level of each experiment layer; and

a proportion tester configured for performing the proportion test to determine, for each of the one or more unhealthy experiment layers, at least one contaminated bucket, wherein the one or more contaminated buckets comprise the at least one contaminated bucket determined in each of the one or more unhealthy experiment layers.

11. The system of claim 10 , wherein the uniform distribution test is used to determine whether a traffic distribution across different buckets in a given experiment layer is uniform.

12. The system of claim 10 , wherein the proportion test is used to determine a probability of assigning an online user to each bucket in each experiment layer, and the proportion test identifies problematic hash ranges for each of the detected one or more contaminated experiment layers.

13. The system of claim 8 , further comprising:

a prevention scheme selector configured for selecting a prevention scheme based on each of the one or more contaminated buckets that were detected; and

a severity level determiner configured for determining the severity level for each of the one or more contaminated buckets;

wherein the prevention action determiner is configured for determining a prevention action to be applied to the at least one of the one or more contaminated buckets based on the prevention scheme and the at least one of the one or more contaminated buckets exceeding the threshold severity level, wherein the prevention action comprises:

automatically removing the at least one of the one or more contaminated buckets from the corresponding online experiment, and

after the at least one of the one or more contaminated buckets is removed, reinstating the bucket size in the corresponding online experiment.

14. The system of claim 13 , wherein each experiment layer comprises a plurality of online experiments, and wherein the prevention action further comprises:

holding or closing the corresponding online experiment when a condition related to all contaminated buckets in the corresponding online experiment is met.

15. A non-transitory machine-readable medium having information recorded thereon for managing online experiments, wherein the information, when read by an online controlled experimentation engine, causes the online controlled experimentation engine to perform operations comprising:

creating a plurality of experiment layers, wherein each experiment layer includes and runs at least one online experiment on a website, and each online experiment includes one or more buckets associated with one or more features to be experimented on;

assigning, via the website embedded with a randomization algorithm on a load balancer, by splitting traffic between the one or more buckets, based on a bucket size, a plurality of identifiers, each of which corresponds to one of a plurality of online users, to a corresponding bucket in each experiment layer such that a user is simultaneously associated with multiple online experiments in different experiment layers;

collecting user event data related to the plurality of experiment layers from the plurality of online users;

performing a two-stage test to determine health of the plurality of experiment layers, wherein the two-stage test comprises:

automatically detecting one or more contaminated experiment layers from the plurality of experiment layers by computing, based on the user event data, a uniform distribution test for each of the plurality of experiment layers, and

in response to the one or more contaminated experiment layers from the plurality of experiment layers being detected, automatically detecting, for each of the detected one or more contaminated experiment layers, one or more contaminated buckets by computing, based on the user event data, a proportion test of identifiers assigned to each bucket in each of the one or more contaminated experiment layers; and

in response to determining that a severity level of at least one of the one or more contaminated buckets exceeds a threshold severity level, performing contamination correction by:

automatically removing the at least one of the one or more contaminated buckets from a corresponding online experiment to prevent the at least one of the one or more contaminated buckets from contaminating the corresponding online experiment, and

reinstating the bucket size in the corresponding online experiment.

16. The medium of claim 15 , wherein the plurality of identifiers comprise a plurality of experiment unit identifiers (IDs), the step of assigning the plurality of identifiers comprises:

determining, for each of the plurality of online users, a corresponding experiment unit ID of the plurality of experiment unit IDs;

determining a random seed for each experiment layer;

calculating, for each experiment layer, a hash value associated with each of the plurality of identifiers based on the corresponding experiment unit ID and the random seed; and

assigning the identifier to the corresponding bucket in each experiment layer based on the calculated hash value.

17. The medium of claim 15 , wherein the step of automatically detecting comprises:

calculating a health level of each experiment layer based on the uniform distribution test which is computed for each experiment layer based on the user event data;

determining one or more unhealthy experiment layers based on the health level of each experiment layer; and

determining, for each of the one or more unhealthy experiment layers, at least one contaminated bucket, wherein the one or more contaminated buckets comprise the at least one contaminated bucket determined in each of the one or more unhealthy experiment layers.

18. The medium of claim 17 , wherein the uniform distribution test is used to determine whether a traffic distribution across different buckets in a given experiment layer is uniform.

19. The medium of claim 17 , wherein the proportion test is used to determine a probability of assigning an online user to each bucket in each experiment layer, and the proportion test identifies problematic hash ranges for each of the detected one or more contaminated experiment layers.

20. The medium of claim 15 , wherein the operations further comprise:

selecting a prevention scheme based on each of the one or more contaminated buckets that were detected;

determining the severity level for each of the one or more contaminated buckets; and

determining a prevention action to be applied to the at least one of the one or more contaminated buckets based on the prevention scheme and the at least one of the one or more contaminated buckets exceeding the threshold severity level, wherein the prevention action comprises:

automatically removing the at least one of the one or more contaminated buckets from the corresponding online experiment, and

after the at least one of the one or more contaminated buckets is removed, reinstating the bucket size in the corresponding online experiment.

21. The medium of claim 20 , wherein each experiment layer comprises a plurality of online experiments, and wherein the prevention action further comprises:

holding or closing the corresponding online experiment when a condition related to all contaminated buckets in the corresponding online experiment is met.

Assignments (5)
CHANGE OF NAME Recorded Mar 22, 2022
From: VERIZON MEDIA INC.
To: YAHOO AD TECH LLC
Reel/Frame 059471/0863 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: YAHOO HOLDINGS, INC.
To: OATH INC.
Reel/Frame 045240/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: NARRAVULA, SUNDEEP; APPIKATALA, NIRU; CHAUHAN, SUDHIR; CHEN, MIAO
To: YAHOO! INC.
Reel/Frame 040538/0407 →
Continuity (1)
Related Publication 20180158082A1 · Jun 7, 2018
References Cited (32)
US 8090703B1 · Agarwal · 2012 [cited by examiner]
US 8234632B1 · Hugeback · 2012 [cited by examiner]
US 20100146144A1 · Audenaert · 2010 [cited by examiner]
US 20150039424A1 · Narravula · 2015 [cited by examiner]
US 20160103758A1 · Zhao · 2016 [cited by examiner]
US 20160253311A1 · Xu · 2016 [cited by examiner]
US 20170046622A1 · Gaither · 2017 [cited by examiner]
US 20170104683A1 · Parthasarathy · 2017 [cited by examiner]
US 20170128838A1 · Burge · 2017 [cited by examiner]
US 20170318152A1 · Chen · 2017 [cited by examiner]
US 20170323329A1 · Katariya · 2017 [cited by examiner]
US 20170323331A1 · Malek · 2017 [cited by examiner]
US 20170330114A1 · Ghavamzadeh · 2017 [cited by examiner]
US 20170364958A1 · Kirti · 2017 [cited by examiner]
US 20180034721A1 · Dunn · 2018 [cited by examiner]
Online controlled experiments at large scale R Kohavi, A Deng, B Frasca, T Walker, Y Xu . . . —Proceedings of the 19th . . . , 2013—dl.acm.org (Year: 2013). [cited by examiner]
“Seven pitfalls to avoid when running controlled experiments on the web” T Crook, B Frasca, R Kohavi . . . —Proceedings of the 15th . . . , 2009—dl.acm.org (Year: 2009). [cited by examiner]
Unexpected results in online controlled experiments R Kohavi, R Longbotham—ACM SIGKDD Explorations Newsletter, 2011—dl.acm.org (Year: 2011). [cited by examiner]
Controlled experiments for decision-making in e-commerce searchA Goswami, W Han, Z Wang . . . —Big Data (Big Data), 2015 . . . , 2015—ieeexplore.ieee.org (Year: 2015). [cited by examiner]
Continuous monitoring of A/B tests without pain: Optional stopping in Bayesian testing A Deng, J Lu, S Chen—Data Science and Advanced Analytics . . . , 2016—ieeexplore.ieee.org (Year: 2016). [cited by examiner]
“Decision-based order statistic filters” YH Lee, S Tantaratana—IEEE transactions on acoustics . . . , 1990—(Year: 1990). [cited by examiner]
Position bias in paired product tests RL Day—1969—journals.sagepub.com (Year: 1969). [cited by examiner]
https://en.wikipedia.org/wiki/Statistical_hypothesis_testing, retrieved from the web on Dec. 20, 2019 (Year: 2019). [cited by examiner]
Testing for uniformity in multidimensional data SP Smith, AK Jain—IEEE transactions on pattern analysis and . . . , 1984—ieeexplore.ieee.org (Year: 1984). [cited by examiner]
Online experimentation diagnosis and troubleshooting beyond aa validation Z Zhao, M Chen, D Matheson . . . —2016 IEEE International . . . , 2016—ieeexplore.ieee.org (Year: 2016). [cited by examiner]
https://en.wikipedia.org/wiki/Null_hypothesis , retrieved from the web Nov. 21, 2020 (Year: 2020). [cited by examiner]
https://en.wikipedia.org/wiki/Simpson%27s_paradox , retrieved from the web Nov. 21, 2020 (Year: 2020). [cited by examiner]
Data scientists in software teams: State of the art and challenges M Kim, T Zimmermann, R DeLine . . . —IEEE Transactions on . . . , 2017—ieeexplore.ieee.org (Year: 2017). [cited by examiner]
Statistics for Dummies Cheat Sheet, From Statistics For Dummies, 2nd Edition, retrieved from web.archive.org's webpage of Nov. 20, 2016 (Year: 2016). [cited by examiner]
What is signal processing?[President's Message] J Moura—IEEE Signal Processing Magazine, 2009—ieeexplore.ieee.org (Year: 2009). [cited by examiner]
“Soil sampling” RL Mahler, TA Tindall—1994—idahopar.org (Year: 1994). [cited by examiner]
Ledolter, et al., Using a Fractional Factorial Design to Increase Direct Mail Response at Mother Jones Magazine, 18 Quality Engineering 4 (2006) (Year: 2006). [cited by examiner]