Add new feed experiment for 10-1 (#20194)

* Add new feed experiment for 10-1

* Fix field test config

* Adjust field test config
This commit is contained in:
Ben Halpern 2023-10-01 13:52:33 +07:00 committed by GitHub
parent c5201ca888
commit b67d5c4358
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 299 additions and 1 deletions

View file

@ -95,7 +95,15 @@ module Articles
order_by_lever(:final_order_by_feed_success_score_and_primary_score,
label: "Order by feed success score and primary score",
order_by_fragment: "((articles.feed_success_score + 0.1) * (articles.score / 10)) DESC")
order_by_fragment: "((articles.feed_success_score + 0.01) * (articles.score / 10)) DESC")
order_by_lever(:final_order_by_feed_success_score_and_log_of_primary_score,
label: "Order by feed success score and log of primary score",
order_by_fragment: "((feed_success_score + 0.01) * LOG(GREATEST(score, 1))) DESC")
order_by_lever(:final_order_by_feed_success_score_and_log_of_comment_score,
label: "Order by feed success score and log of comment_score",
order_by_fragment: "((feed_success_score + 0.01) * LOG(GREATEST(comment_score, 1))) DESC")
order_by_lever(:published_at_with_randomization_favoring_public_reactions,
label: "Favor recent articles with more reactions, " \

View file

@ -0,0 +1,132 @@
{
"max_days_since_published": 15,
"description": "Built off 20230918-variant-a but with final order using final_order_by_feed_success_score_and_log_of_primary_score.",
"order_by": "final_order_by_feed_success_score_and_log_of_primary_score",
"reseed_randomizer_on_each_request": false,
"levers": {
"daily_decay": {
"cases": [
[0, 1],
[1, 0.99],
[2, 0.905],
[3, 0.9],
[4, 0.89],
[5, 0.85],
[6, 0.82],
[7, 0.79],
[8, 0.15],
[9, 0.1],
[10, 0.09],
[11, 0.08],
[12, 0.07],
[13, 0.06],
[14, 0.05]
],
"fallback": 0.01
},
"comments_count": {
"cases": [
[0, 0.15],
[1, 0.3],
[2, 0.66],
[3, 0.7],
[4, 0.75],
[5, 0.8],
[6, 0.85],
[7, 0.88],
[8, 0.9],
[9, 0.92],
[12, 1.0],
[18, 1.0],
[22, 1.0],
[25, 1.0],
[30, 1.0],
[35, 1.0],
[40, 1.0],
[45, 1.0]
],
"fallback": 0.99
},
"following_author": {
"cases": [
[0, 0.7],
[1, 1]
],
"fallback": 0.7
},
"featured_article": { "cases": [[1, 1]], "fallback": 0.15 },
"matching_negative_tags_intersection_count": {
"cases": [
[0, 1],
[1, 0.2],
[2, 0.15],
[3, 0.1],
[4, 0.05]
],
"fallback": 0
},
"experience": {
"cases": [
[0, 1],
[1, 0.97],
[2, 0.95],
[3, 0.88],
[4, 0.77],
[5, 0.55],
[6, 0.35],
[7, 0.3]
],
"default_user_experience_level": 5,
"fallback": 0.2
},
"matching_positive_tags_intersection_count": {
"cases": [
[0, 0.001],
[1, 0.97]
],
"fallback": 1
},
"matching_positive_tags_intersection_points": {
"cases": [
[0, 0.001],
[1, 0.45],
[2, 0.5],
[3, 0.7],
[4, 0.75],
[5, 0.8],
[6, 0.85],
[7, 0.9],
[8, 0.93],
[9, 0.95]
],
"fallback": 1
},
"privileged_user_reaction": {
"cases": [
[-1, 0.2],
[1, 1]
],
"fallback": 0.95,
"negative_reaction_threshold": -9,
"positive_reaction_threshold": 4
},
"public_reactions_score": {
"cases": [
[0, 0.3],
[1, 0.4],
[2, 0.45],
[3, 0.5],
[4, 0.55],
[5, 0.6],
[6, 0.61],
[7, 0.62],
[8, 0.7],
[9, 0.8],
[10, 0.85],
[11, 0.9],
[12, 0.95]
],
"fallback": 1.0
}
}
}

View file

@ -0,0 +1,132 @@
{
"max_days_since_published": 15,
"description": "Built off 20230918-variant-a but with final order using final_order_by_feed_success_score_and_log_of_comment_score.",
"order_by": "final_order_by_feed_success_score_and_log_of_comment_score",
"reseed_randomizer_on_each_request": false,
"levers": {
"daily_decay": {
"cases": [
[0, 1],
[1, 0.99],
[2, 0.905],
[3, 0.9],
[4, 0.89],
[5, 0.85],
[6, 0.82],
[7, 0.79],
[8, 0.15],
[9, 0.1],
[10, 0.09],
[11, 0.08],
[12, 0.07],
[13, 0.06],
[14, 0.05]
],
"fallback": 0.01
},
"comments_count": {
"cases": [
[0, 0.15],
[1, 0.3],
[2, 0.66],
[3, 0.7],
[4, 0.75],
[5, 0.8],
[6, 0.85],
[7, 0.88],
[8, 0.9],
[9, 0.92],
[12, 1.0],
[18, 1.0],
[22, 1.0],
[25, 1.0],
[30, 1.0],
[35, 1.0],
[40, 1.0],
[45, 1.0]
],
"fallback": 0.99
},
"following_author": {
"cases": [
[0, 0.7],
[1, 1]
],
"fallback": 0.7
},
"featured_article": { "cases": [[1, 1]], "fallback": 0.15 },
"matching_negative_tags_intersection_count": {
"cases": [
[0, 1],
[1, 0.2],
[2, 0.15],
[3, 0.1],
[4, 0.05]
],
"fallback": 0
},
"experience": {
"cases": [
[0, 1],
[1, 0.97],
[2, 0.95],
[3, 0.88],
[4, 0.77],
[5, 0.55],
[6, 0.35],
[7, 0.3]
],
"default_user_experience_level": 5,
"fallback": 0.2
},
"matching_positive_tags_intersection_count": {
"cases": [
[0, 0.001],
[1, 0.97]
],
"fallback": 1
},
"matching_positive_tags_intersection_points": {
"cases": [
[0, 0.001],
[1, 0.45],
[2, 0.5],
[3, 0.7],
[4, 0.75],
[5, 0.8],
[6, 0.85],
[7, 0.9],
[8, 0.93],
[9, 0.95]
],
"fallback": 1
},
"privileged_user_reaction": {
"cases": [
[-1, 0.2],
[1, 1]
],
"fallback": 0.95,
"negative_reaction_threshold": -9,
"positive_reaction_threshold": 4
},
"public_reactions_score": {
"cases": [
[0, 0.3],
[1, 0.4],
[2, 0.45],
[3, 0.5],
[4, 0.55],
[5, 0.6],
[6, 0.61],
[7, 0.62],
[8, 0.7],
[9, 0.8],
[10, 0.85],
[11, 0.9],
[12, 0.95]
],
"fallback": 1.0
}
}
}

View file

@ -28,10 +28,36 @@
################################################################################
experiments:
# NOTE: Our feed strategy testing experiment must begin with "feed_strategy"
feed_strategy_starting_20231001:
# NOTE: Required as we want only want to consider for conversion events that
# occurred on or after the given start_date.
started_at: 2023-10-01
variants:
- 20230918-variant-a
- 20231001-variant-a
- 20231001-variant-b
weights:
- 70
- 15
- 15
goals:
- user_creates_pageview
- user_creates_article_reaction
- user_creates_comment
- user_views_pages_on_at_least_two_different_days_within_a_week
- user_views_pages_on_at_least_four_different_days_within_a_week
- user_creates_article_reaction_on_four_different_days_within_a_week
- user_creates_comment_on_at_least_four_different_days_within_a_week
- user_views_pages_on_at_least_three_different_hours_within_a_day
- user_views_pages_on_at_least_four_different_hours_within_a_day
- user_views_pages_on_at_least_twelve_different_hours_within_five_days
- user_views_pages_on_at_least_nine_different_days_within_two_weeks
feed_strategy_starting_20230927:
# NOTE: Required as we want only want to consider for conversion events that
# occurred on or after the given start_date.
started_at: 2023-09-27
ended_at: 2023-10-01
winner: 20230918-variant-a
variants:
- 20230918-variant-a
- 20230927-variant-a