فهرست منبع

str plus值域调整

jch 2 ماه پیش
والد
کامیت
1ff1409b01

+ 10 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV564.java

@@ -334,10 +334,7 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
             item.norFeatureMap = FeatureBucketUtils.bucketFeature("20241209_nor_bucket.txt", featureMapDouble);
         }
         // 4 排序模型计算
-        double fmRovBias = mergeWeight.getOrDefault("fmRovBias", -0.0017);
-        double fmRovWeight = mergeWeight.getOrDefault("fmRovWeight", 1.331);
-        double fmRovSquareWeight = mergeWeight.getOrDefault("fmRovSquareWeight", -6.4597);
-        double fmRovCubeWeight = mergeWeight.getOrDefault("fmRovCubeWeight", 14.393);
+        double fmRovLogBase = mergeWeight.getOrDefault("fmRovLogBase", 3.5);
         double xgbNorScaleType = mergeWeight.getOrDefault("xgbNorScaleType", 0.0);
         double xgbNorBias = mergeWeight.getOrDefault("xgbNorBias", -1.6945);
         double xgbNorWeight = mergeWeight.getOrDefault("xgbNorWeight", 1.8968);
@@ -354,7 +351,7 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("fmRovOrigin", fmRovOrigin);
             double fmRov = restoreScore(fmRovOrigin);
             item.getScoresMap().put("fmRov", fmRov);
-            double newFmRov = rovCalibration(fmRovBias, fmRovWeight, fmRovSquareWeight, fmRovCubeWeight, 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);
@@ -535,4 +532,12 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
         }
         return newScore;
     }
+
+    private double log(double x, double base) {
+        if (base > 1) {
+            return Math.log(x) / Math.log(base);
+        } else {
+            return x;
+        }
+    }
 }

+ 11 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV567.java

@@ -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;
+        }
+    }
 }