the-algorithm/src/scala/com/twitter/recos/user_tweet_entity_graph/RecosConfig.scala

45 lines
2.1 KiB
Scala

package com.twitter.recos.user_tweet_entity_graph
import com.twitter.graphjet.algorithms.RecommendationType
import com.twitter.recos.model.Constants
import com.twitter.recos.graph_common.NodeMetadataLeftIndexedPowerLawMultiSegmentBipartiteGraphBuilder.GraphBuilderConfig
/**
* The class holds all the config parameters for recos graph.
*/
object RecosConfig {
val maxNumSegments: Int = 8 // this value will be overwritten by a parameter from profile config
val maxNumEdgesPerSegment: Int = 1 << 27 // 134M edges per segment
val expectedNumLeftNodes: Int = 1 << 24 // 16M nodes
val expectedMaxLeftDegree: Int = 64
val leftPowerLawExponent: Double = 16.0 // steep power law as most nodes will have a small degree
val expectedNumRightNodes: Int = 1 << 24 // 16M nodes
val numRightNodeMetadataTypes: Int =
RecommendationType.METADATASIZE.getValue // two node metadata types: hashtag and url
val graphBuilderConfig = GraphBuilderConfig(
maxNumSegments = maxNumSegments,
maxNumEdgesPerSegment = maxNumEdgesPerSegment,
expectedNumLeftNodes = expectedNumLeftNodes,
expectedMaxLeftDegree = expectedMaxLeftDegree,
leftPowerLawExponent = leftPowerLawExponent,
expectedNumRightNodes = expectedNumRightNodes,
numRightNodeMetadataTypes = numRightNodeMetadataTypes,
edgeTypeMask = new UserTweetEdgeTypeMask()
)
val maxUserSocialProofSize: Int = 10
val maxTweetSocialProofSize: Int = 10
val maxTweetAgeInMillis: Long = 24 * 60 * 60 * 1000
val maxEngagementAgeInMillis: Long = Long.MaxValue
println("RecosConfig - maxNumSegments " + maxNumSegments)
println("RecosConfig - maxNumEdgesPerSegment " + maxNumEdgesPerSegment)
println("RecosConfig - expectedNumLeftNodes " + expectedNumLeftNodes)
println("RecosConfig - expectedMaxLeftDegree " + expectedMaxLeftDegree)
println("RecosConfig - leftPowerLawExponent " + leftPowerLawExponent)
println("RecosConfig - expectedNumRightNodes " + expectedNumRightNodes)
println("RecosConfig - numRightNodeMetadataTypes " + numRightNodeMetadataTypes)
println("RecosConfig - salsaRunnerConfig " + Constants.salsaRunnerConfig)
}