|
@@ -196,6 +196,7 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.05);
|
|
|
double calcVorMode = mergeWeight.getOrDefault("calcVorMode", 1d);
|
|
|
double calcRosMode = mergeWeight.getOrDefault("calcRosMode", 1d);
|
|
|
+ double calcStrMode = mergeWeight.getOrDefault("calcStrMode", 0d);
|
|
|
|
|
|
|
|
|
Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_vor_4share:");
|
|
@@ -205,8 +206,12 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
double fmRovOrigin = item.getScoreRov();
|
|
|
item.getScoresMap().put("fmRovOrigin", fmRovOrigin);
|
|
|
double fmRov = restoreScore(fmRovOrigin, xgbRovNegRate);
|
|
|
+ fmRov = this.handleStr(fmRov, calcStrMode, item, mergeWeight);
|
|
|
+
|
|
|
+
|
|
|
item.getScoresMap().put("fmRov", fmRov);
|
|
|
item.getScoresMap().put("xgbRovNegRate", xgbRovNegRate);
|
|
|
+ item.getScoresMap().put("calcStrMode", calcStrMode);
|
|
|
|
|
|
|
|
|
Map<String, String> vidFeatureMap = vid2MapFeature.getOrDefault(String.valueOf(item.getVideoId()), new HashMap<>());
|
|
@@ -214,10 +219,11 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
double vor24h = Double.parseDouble(vidFeatureMap.getOrDefault("vor_24h", "0"));
|
|
|
double vor = this.handleVor(vor24h, calcVorMode, item, mergeWeight);
|
|
|
|
|
|
- double originScoreRos = item.getScoreRos();
|
|
|
+ // double originScoreRos = item.getScoreRos();
|
|
|
+ double originScoreRos = Double.parseDouble(vidFeatureMap.getOrDefault("ros_24h", "0d"));
|
|
|
double scoreRos = this.handleRos(originScoreRos, calcRosMode, item, mergeWeight);
|
|
|
|
|
|
- double rosAdd = mergeWeight.getOrDefault("ros_add", 0.00001);
|
|
|
+ double rosAdd = mergeWeight.getOrDefault("ros_add", 0.1);
|
|
|
double vorAdd = mergeWeight.getOrDefault("vor_add", 0.1);
|
|
|
|
|
|
item.getScoresMap().put("hasReturnRovScore", scoreRos);
|
|
@@ -225,7 +231,7 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
item.getScoresMap().put("vor", vor);
|
|
|
item.getScoresMap().put("calcVorMode", calcVorMode);
|
|
|
item.getScoresMap().put("calcRosMode", calcRosMode);
|
|
|
- item.getScoresMap().put("RosXGBScore", originScoreRos);
|
|
|
+ item.getScoresMap().put("originRos", originScoreRos);
|
|
|
item.getScoresMap().put("rosAdd", rosAdd);
|
|
|
item.getScoresMap().put("vorAdd", vorAdd);
|
|
|
score = fmRov * (rosAdd + scoreRos) * (vorAdd + vor);
|
|
@@ -265,19 +271,38 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ private double handleStr(double originStr, double calcStrMode, RankItem item, Map<String, Double> mergeWeight) {
|
|
|
+ if (originStr == 0) {
|
|
|
+ return 0d;
|
|
|
+ }
|
|
|
+
|
|
|
+ double str = originStr;
|
|
|
+ if (calcStrMode == 1d) {
|
|
|
+ double strPower = mergeWeight.getOrDefault("str_power", 0d);
|
|
|
+ item.getScoresMap().put("strPower", strPower);
|
|
|
+ str = Math.pow(originStr, strPower);
|
|
|
+ } else if (calcStrMode == 2d) {
|
|
|
+ double modelStrCoefficient = mergeWeight.getOrDefault("model_str_coefficient", 8d);
|
|
|
+ item.getScoresMap().put("modelStrCoefficient", modelStrCoefficient);
|
|
|
+ str = originStr * modelStrCoefficient;
|
|
|
+ }
|
|
|
+
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+
|
|
|
private double handleRos(double originScoreRos, double calcRosMode, RankItem item, Map<String, Double> mergeWeight) {
|
|
|
if (originScoreRos == 0) {
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- double scoreRos = ExtractorUtils.inverseLog(originScoreRos);
|
|
|
+ double scoreRos = originScoreRos;
|
|
|
if (calcRosMode == 1d) {
|
|
|
double rosPower = mergeWeight.getOrDefault("le_ros_power", 5d);
|
|
|
if (scoreRos > 1) {
|
|
|
rosPower = mergeWeight.getOrDefault("gt_1_ros_poewr", 1.5d);
|
|
|
}
|
|
|
item.getScoresMap().put("rosPower", rosPower);
|
|
|
- scoreRos = Math.pow(scoreRos, rosPower);
|
|
|
+ scoreRos = Math.pow(ExtractorUtils.inverseLog(originScoreRos), rosPower);
|
|
|
} else if (calcRosMode == 2d) {
|
|
|
double modelRosCoefficient = mergeWeight.getOrDefault("model_ros_coefficient", 8d);
|
|
|
item.getScoresMap().put("modelRosCoefficient", modelRosCoefficient);
|
|
@@ -285,7 +310,7 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
|
|
|
} else if (calcRosMode == 3d) {
|
|
|
double rosPower = mergeWeight.getOrDefault("ros_power", 5d);
|
|
|
item.getScoresMap().put("rosPower", rosPower);
|
|
|
- scoreRos = Math.pow(scoreRos, rosPower);
|
|
|
+ scoreRos = Math.pow(ExtractorUtils.inverseLog(originScoreRos), rosPower);
|
|
|
}
|
|
|
|
|
|
return scoreRos;
|