the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/product/scored_tweets/param/ScoredTweetsParam.scala

362 lines
10 KiB
Scala

package com.twitter.home_mixer.product.scored_tweets.param
import com.twitter.conversions.DurationOps._
import com.twitter.home_mixer.param.decider.DeciderKey
import com.twitter.timelines.configapi.DurationConversion
import com.twitter.timelines.configapi.FSBoundedParam
import com.twitter.timelines.configapi.FSParam
import com.twitter.timelines.configapi.HasDurationConversion
import com.twitter.timelines.configapi.decider.BooleanDeciderParam
import com.twitter.util.Duration
object ScoredTweetsParam {
val SupportedClientFSName = "scored_tweets_supported_client"
object CandidatePipeline {
object EnableInNetworkParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsInNetworkCandidatePipeline)
object EnableTweetMixerParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsTweetMixerCandidatePipeline)
object EnableUtegParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsUtegCandidatePipeline)
object EnableFrsParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsFrsCandidatePipeline)
object EnableListsParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsListsCandidatePipeline)
object EnablePopularVideosParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsPopularVideosCandidatePipeline)
object EnableBackfillParam
extends BooleanDeciderParam(DeciderKey.EnableScoredTweetsBackfillCandidatePipeline)
}
object EnableBackfillCandidatePipelineParam
extends FSParam[Boolean](
name = "scored_tweets_enable_backfill_candidate_pipeline",
default = true
)
object QualityFactor {
object InNetworkMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_earlybird_max_tweets_to_score",
default = 500,
min = 0,
max = 10000
)
object UtegMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_uteg_max_tweets_to_score",
default = 500,
min = 0,
max = 10000
)
object FrsMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_frs_max_tweets_to_score",
default = 500,
min = 0,
max = 10000
)
object TweetMixerMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_tweet_mixer_max_tweets_to_score",
default = 500,
min = 0,
max = 10000
)
object ListsMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_lists_max_tweets_to_score",
default = 500,
min = 0,
max = 100
)
object PopularVideosMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_popular_videos_max_tweets_to_score",
default = 40,
min = 0,
max = 10000
)
object BackfillMaxTweetsToScoreParam
extends FSBoundedParam[Int](
name = "scored_tweets_quality_factor_backfill_max_tweets_to_score",
default = 500,
min = 0,
max = 10000
)
}
object ServerMaxResultsParam
extends FSBoundedParam[Int](
name = "scored_tweets_server_max_results",
default = 120,
min = 1,
max = 500
)
object MaxInNetworkResultsParam
extends FSBoundedParam[Int](
name = "scored_tweets_max_in_network_results",
default = 60,
min = 1,
max = 500
)
object MaxOutOfNetworkResultsParam
extends FSBoundedParam[Int](
name = "scored_tweets_max_out_of_network_results",
default = 60,
min = 1,
max = 500
)
object CachedScoredTweets {
object TTLParam
extends FSBoundedParam[Duration](
name = "scored_tweets_cached_scored_tweets_ttl_minutes",
default = 3.minutes,
min = 0.minute,
max = 60.minutes
)
with HasDurationConversion {
override val durationConversion: DurationConversion = DurationConversion.FromMinutes
}
object MinCachedTweetsParam
extends FSBoundedParam[Int](
name = "scored_tweets_cached_scored_tweets_min_cached_tweets",
default = 30,
min = 0,
max = 1000
)
}
object Scoring {
object HomeModelParam
extends FSParam[String](name = "scored_tweets_home_model", default = "Home")
object ModelWeights {
object FavParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_fav",
default = 1.0,
min = 0.0,
max = 100.0
)
object RetweetParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_retweet",
default = 1.0,
min = 0.0,
max = 100.0
)
object ReplyParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_reply",
default = 1.0,
min = 0.0,
max = 100.0
)
object GoodProfileClickParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_good_profile_click",
default = 1.0,
min = 0.0,
max = 1000000.0
)
object VideoPlayback50Param
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_video_playback50",
default = 1.0,
min = 0.0,
max = 100.0
)
object ReplyEngagedByAuthorParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_reply_engaged_by_author",
default = 1.0,
min = 0.0,
max = 200.0
)
object GoodClickParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_good_click",
default = 1.0,
min = 0.0,
max = 1000000.0
)
object GoodClickV2Param
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_good_click_v2",
default = 1.0,
min = 0.0,
max = 1000000.0
)
object TweetDetailDwellParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_tweet_detail_dwell",
default = 0.0,
min = 0.0,
max = 100.0
)
object ProfileDwelledParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_profile_dwelled",
default = 0.0,
min = 0.0,
max = 100.0
)
object BookmarkParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_bookmark",
default = 0.0,
min = 0.0,
max = 100.0
)
object ShareParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_share",
default = 0.0,
min = 0.0,
max = 100.0
)
object ShareMenuClickParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_share_menu_click",
default = 0.0,
min = 0.0,
max = 100.0
)
object NegativeFeedbackV2Param
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_negative_feedback_v2",
default = 1.0,
min = -1000.0,
max = 0.0
)
object ReportParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_report",
default = 1.0,
min = -20000.0,
max = 0.0
)
object WeakNegativeFeedbackParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_weak_negative_feedback",
default = 0.0,
min = -1000.0,
max = 0.0
)
object StrongNegativeFeedbackParam
extends FSBoundedParam[Double](
name = "scored_tweets_model_weight_strong_negative_feedback",
default = 0.0,
min = -1000.0,
max = 0.0
)
}
}
object EnableSimClustersSimilarityFeatureHydrationDeciderParam
extends BooleanDeciderParam(decider = DeciderKey.EnableSimClustersSimilarityFeatureHydration)
object CompetitorSetParam
extends FSParam[Set[Long]](name = "scored_tweets_competitor_list", default = Set.empty)
object CompetitorURLSeqParam
extends FSParam[Seq[String]](name = "scored_tweets_competitor_url_list", default = Seq.empty)
object BlueVerifiedAuthorInNetworkMultiplierParam
extends FSBoundedParam[Double](
name = "scored_tweets_blue_verified_author_in_network_multiplier",
default = 4.0,
min = 0.0,
max = 100.0
)
object BlueVerifiedAuthorOutOfNetworkMultiplierParam
extends FSBoundedParam[Double](
name = "scored_tweets_blue_verified_author_out_of_network_multiplier",
default = 2.0,
min = 0.0,
max = 100.0
)
object CreatorInNetworkMultiplierParam
extends FSBoundedParam[Double](
name = "scored_tweets_creator_in_network_multiplier",
default = 1.1,
min = 0.0,
max = 100.0
)
object CreatorOutOfNetworkMultiplierParam
extends FSBoundedParam[Double](
name = "scored_tweets_creator_out_of_network_multiplier",
default = 1.3,
min = 0.0,
max = 100.0
)
object OutOfNetworkScaleFactorParam
extends FSBoundedParam[Double](
name = "scored_tweets_out_of_network_scale_factor",
default = 1.0,
min = 0.0,
max = 100.0
)
object EnableScribeScoredCandidatesParam
extends FSParam[Boolean](name = "scored_tweets_enable_scribing", default = false)
object EarlybirdTensorflowModel {
object InNetworkParam
extends FSParam[String](
name = "scored_tweets_in_network_earlybird_tensorflow_model",
default = "timelines_recap_replica")
object FrsParam
extends FSParam[String](
name = "scored_tweets_frs_earlybird_tensorflow_model",
default = "timelines_rectweet_replica")
object UtegParam
extends FSParam[String](
name = "scored_tweets_uteg_earlybird_tensorflow_model",
default = "timelines_rectweet_replica")
}
}