c o g n e a t o |
Optimize production, simulation, models
MLEs — quants — DSs — SWEs — students — researchers
Auto-configuring, SOTA Bayesian optimizer for
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cogneato web toolThe Cogneato tool runs from a desktop browser only.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Video: RecommenderLearn how to use Cogneato to improve a business metric of a social media recommender system. Tutorial: A/B TestThe header of a measurements table describes the system being experimented on. The first column of this table says that you are comparing two versions of the system named "A" and "B". Your business metriic is "clicks". The table reports the number of successes -- when a user clicked on an ad -- and tries -- the number of times a user saw an ad. These numbers -- successes and tries -- are numbers you would cull from your web server logs, enter into a table (ex., on a spreadsheet), and report to Cogneato. Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets. See this tutorial on Colab. Tutorial: A/B/n TestExpanding beyond a simple A/B test to more versions -- also called arms -- is as simple as adding more arm names to the header. Note that in this scenario the user has yet to measure the We used the name
You may also name your business metric whatever you like. In the tables above it is called
Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets See this tutorial on Colab. Tutorial: Categorical VariablesA/B/n tests are great for testing multiple versions of a design, ad, model, etc. But in some cirumstances you might find that you have "versions of verions". For example:
In each case you could try running two A/B/n tests, one to compare each of the version "types". For example, you could run on A/B/n test to compare the fours designs, then run another A/B/n test to compare ad positions. But when you compare the 4 designs you would do done so with the position fixed at one of top, side, or inline. Then you would test the 3 different position with the design fixed. You would have tested 4 + 3 = 7 combinations of design and position -- but there are 12 combinations all together. If the designs are, say, "bold", "intriguing", "persuasive", "funny", then the 12 combinations are: (bold, top), (bold, side), (bold, inline), (intriguing, top), (intriguing, side), ... Alternatively, you could run an A/B/n test to compare all twelve combinations. Cogneato makes this kind of experimentation simpler to organize, and more efficient to run. It's more organized because you can specify the different variables -- design and position -- separately: Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets See this tutorial on Colab. Tutorial: Ordinal VariablesAs we saw in the categorical tutorial, using multiple variables -- ex., one for ad design, and one for ad placement -- can make an experimental optimization more organized and efficient. Imagine if you were testing ads that appeared in a list along the side of a web page. Instead of taking the values "top", "side", and "middle", the variable position would take the values "first", "second", and "third" or, more simply 1, 2, and 3. In this case, it would be reasonable to expect that the revenue produced in position 2 is somewhere between that produced in position 1 and that of position 3. You can tell Cogneato about this expectation by encoding position as an ordinal variable, like this: An ordinal variable is any variable that takes numerical (integer) values, like 1, 2, 3, ... You indicate
that a variable is ordinal by the suffix of the header column, :{lb..ub}, where lb is the lower bound, and ub is the upper bound.
Cogneato uses the expectation that the performance metrics of nearby numbers should be more similar to make better arm suggestions. (Arm suggestions appear in the design table which will be displayed after you click Analyze.) Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets See this tutorial on Colab. Tutorial: Continuous VariablesThe ordinal tutorial showed us that experimental optimization becomes more efficient when we appropriately indicate that a variable is ordinal. Cogneato expects metric values of nearby variable values to be more similar than metric values of far away variable values. For example: The revenue for ad positions 1 and 2 is likely more similar than the revenue for positions 1 and 3. Not all numerical variables are integers, however. For example, you might want to optimize the weights of a model or a threshold in a decision rule. Weights and thresholds take non-integral values. Weights might lie in the range [0,1] or [-1,1], for example. A threshold on a unit normal signal might lie in the range [0,3] or [-3,3]. We call variables that take non-integral (real) values continuous variables. Similar reasoning applies to continuous variables as to ordinal ones: Nearby variable values lead to more similar metric outcomes.
In the table,
Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets See this tutorial on Colab. Tutorial: Mixed VariablesWe saw in the previous tutorials that Cogneato supports multiple variable types, each described by a different header suffix:
Cogneato is flexible enough to support arbitrary combinations of variable types, too. For example:
The table above combines variables that are categorial ( Try reporting the table above to Cogneato: Click the copy icon , then paste your clipboard into the measurements paste bin below. See this tutorial on Google Sheets See this tutorial on Colab. Tutorial: Number of ArmsWhen you run an A/B test you measure your metric once for version A and once for version B. A and B may be referred to as arms. You take one measurement per arm. The design of an A/B test simply says, "Measure both arms" (until the standard errors are small enough). The design for an A/B/n/ test is similar: "Measure all the arms". For more complex experiments -- like ones with mulitple parameters, especially ordinal or continuous parameters -- it might be impossible to measure, or even define, "all the arms". Cogneato makes careful, efficient decisions about which parameters it suggests to measure. These suggestions are the arms, and they appear in the design table, which you'll see after you click Analyze. In some situations, you might need to measure the arms one at a time. In some situations you'll be able to measure more than one at a time. This will depend on your experimentation system's scale and flexibility, and the costs and risks involved with taking measurements. Below the measurements paste bin, you'll see Number of arms. Set this before clicking Analyze. Tutorial: Maximize or MinimizeNot all metrics are meant to be maximized. Metrics like cost, risk, latency, and bounce rate, for example, should be minimized. If you wish to minimize a metric, place a negative sign before the metric name, like this:
The table indicates that the metric By the way, you may include dollar signs ($) and commas in your numbers for readability. They will be ignored by Cogneato. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More about Cogneato
Cogneato is ideal for situations where measurements are noisy and take time to complete. Measurements such as:
Learn more about experimental optimization or about Cogneato. |
Copyright © 2024 Vanderdonk, LLC |