Esto siempre se ha sabido, pero ahora es evidente
/**
- reduce pagerank of users with low followers but high followings
*/
def adjustReputationsPostCalculation(mass: Double, numFollowers: Int, numFollowings: Int) = {
if (numFollowings > threshAbsNumFriendsReps) {
val friendsToFollowersRatio = (1.0 + numFollowings) / (1.0 + numFollowers)
val divFactor =
scala.math.exp(
constantDivisionFactorGt_threshFriendsToFollowersRatioReps *
(friendsToFollowersRatio - threshFriendsToFollowersRatioUMass) *
scala.math.log(scala.math.log(numFollowings))
)
mass / ((divFactor min maxDivFactorReps) max 1.0)
} else {
mass
}
}
}
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/src/scala/com/twitter/graph/batch/job/tweepcred/Reputation.scala
y
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/src/scala/com/twitter/graph/batch/job/tweepcred/UserMass.scala
El ratio de followers / following te hace rankear mejor o peor.
if (antigamingPenalty > 0
&& antiGamingFilter != null
&& !antiGamingFilter.accept(internalDocID)) {
data.weightedCountIncrement = 0;
data.penaltyIncrement = antigamingPenalty;
data.tweepCred = 0;
accumulator.accessor.collect(internalDocID);
return;
}
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/src/java/com/twitter/search/common/relevance/features/RelevanceSignalConstants.java
O sea todo el mundo empieza con 17, y tu reputación va cambiando de 0 a 100 en base a followers y following.
Esta es la relacion de pagerank con la reputación
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/src/scala/com/twitter/graph/batch/job/tweepcred/Reputation.scala
y baja a los que tienen malos ratios
/**
* reduce pagerank of users with low followers but high followings
*/
def adjustReputationsPostCalculation(mass: Double, numFollowers: Int, numFollowings: Int) = {
if (numFollowings > threshAbsNumFriendsReps) {
val friendsToFollowersRatio = (1.0 + numFollowings) / (1.0 + numFollowers)
val divFactor =
scala.math.exp(
constantDivisionFactorGt_threshFriendsToFollowersRatioReps *
(friendsToFollowersRatio - threshFriendsToFollowersRatioUMass) *
scala.math.log(scala.math.log(numFollowings))
)
mass / ((divFactor min maxDivFactorReps) max 1.0)
} else {
mass
}
}
}
https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/src/scala/com/twitter/graph/batch/job/tweepcred/README