mirror of
https://github.com/twitter/the-algorithm.git
synced 2024-06-01 08:48:46 +02:00
362 lines
10 KiB
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")
|
|
}
|
|
|
|
}
|