|
@@ -334,6 +334,7 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
|
|
|
item.norFeatureMap = FeatureBucketUtils.bucketFeature("20241209_nor_bucket.txt", featureMapDouble);
|
|
|
}
|
|
|
// 4 排序模型计算
|
|
|
+ double fmRovLogBase = mergeWeight.getOrDefault("fmRovLogBase", 2.8);
|
|
|
double xgbNorScaleType = mergeWeight.getOrDefault("xgbNorScaleType", 0.0);
|
|
|
double xgbNorBias = mergeWeight.getOrDefault("xgbNorBias", -1.6945);
|
|
|
double xgbNorWeight = mergeWeight.getOrDefault("xgbNorWeight", 1.8968);
|
|
@@ -350,13 +351,14 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
|
|
|
item.getScoresMap().put("fmRovOrigin", fmRovOrigin);
|
|
|
double fmRov = restoreScore(fmRovOrigin);
|
|
|
item.getScoresMap().put("fmRov", fmRov);
|
|
|
+ double newFmRov = log(1 + fmRov, fmRovLogBase);
|
|
|
double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("rov", "0"));
|
|
|
item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore);
|
|
|
double norXGBScore = item.getScoresMap().getOrDefault("NorXGBScore", 0d);
|
|
|
double newNorXGBScore = norCalibration(xgbNorScaleType, xgbNorBias, xgbNorWeight, xgbNorPowerWeight, xgbNorPowerExp, norXGBScore);
|
|
|
double vor = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("vor", "0"));
|
|
|
item.getScoresMap().put("vor", vor);
|
|
|
- score = fmRov * (0.1 + newNorXGBScore) * (0.1 + vor);
|
|
|
+ score = newFmRov * (0.1 + newNorXGBScore) * (0.1 + vor);
|
|
|
Video video = item.getVideo();
|
|
|
video.setScore(score);
|
|
|
video.setSortScore(score);
|
|
@@ -514,4 +516,12 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
|
|
|
}
|
|
|
return newScore;
|
|
|
}
|
|
|
+
|
|
|
+ private double log(double x, double base) {
|
|
|
+ if (base > 1) {
|
|
|
+ return Math.log(x) / Math.log(base);
|
|
|
+ } else {
|
|
|
+ return x;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|