Parcourir la source

Merge branch 'feature_20250320_zhaohaipeng_ros_binary' of algorithm/recommend-server into master

zhaohaipeng il y a 1 mois
Parent
commit
dbc2f6655c

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

@@ -193,8 +193,12 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
 
         // 5 排序公式特征
         double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.05);
+
         double calcVorMode = mergeWeight.getOrDefault("calcVorMode", 3d);
         double calcRosMode = mergeWeight.getOrDefault("calcRosMode", 0d);
+        double calcStrMode = mergeWeight.getOrDefault("calcStrMode", 1d);
+
+
         double rosAdd = mergeWeight.getOrDefault("ros_add", 0d);
         double vorAdd = mergeWeight.getOrDefault("vor_add", 0d);
 
@@ -205,9 +209,11 @@ public class RankStrategy4RegionMergeModelV565 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<>());
 
@@ -263,6 +269,25 @@ public class RankStrategy4RegionMergeModelV565 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;

+ 31 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV569.java

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