Browse Source

feat:修改565实验,ros二分类模型

zhaohaipeng 1 month ago
parent
commit
45156596bf

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

@@ -188,16 +188,15 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         // 4.1 排序模型计算 - str
         Map<String, String> sceneFeatureMap = new HashMap<>(0);
         List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_xgb_str_20250228.conf").scoring(sceneFeatureMap, userFeatureMap, rankItems);
-
         // 4.2 排序模型计算 - ros
         this.addRosScore(rankItems, userFeatureMapDouble, sceneFeatureMap);
 
         // 5 排序公式特征
         double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.05);
-        double calcVorMode = mergeWeight.getOrDefault("calcVorMode", 1d);
+        double calcVorMode = mergeWeight.getOrDefault("calcVorMode", 3d);
         double calcRosMode = mergeWeight.getOrDefault("calcRosMode", 1d);
-        double rosAdd = mergeWeight.getOrDefault("ros_add", 0.00001);
-        double vorAdd = mergeWeight.getOrDefault("vor_add", 0.1);
+        double rosAdd = mergeWeight.getOrDefault("ros_add", 0d);
+        double vorAdd = mergeWeight.getOrDefault("vor_add", 0d);
 
         Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_vor_4share:");
         List<Video> result = new ArrayList<>();
@@ -291,9 +290,6 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
     }
 
     private double handleVor(double originVor, double calcVorMode, RankItem item, Map<String, Double> mergeWeight) {
-        if (originVor == 0) {
-            return 0;
-        }
         double vor = originVor;
         if (calcVorMode == 1d) {
             vor = ExtractorUtils.calLog(originVor);
@@ -302,7 +298,7 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("vorCoefficient", vorCoefficient);
             vor = vorCoefficient * originVor;
         } else if (calcVorMode == 3d) {
-            double vorPower = mergeWeight.getOrDefault("vor_power", 1d);
+            double vorPower = mergeWeight.getOrDefault("vor_power", 0d);
             item.getScoresMap().put("vorPower", vorPower);
             vor = Math.pow(originVor, vorPower);
         }
@@ -317,7 +313,8 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         List<RankItem> rosRankItems = new ArrayList<>(rankItems.size());
         for (RankItem rankItem : rankItems) {
             RankItem rosRankItem = new RankItem(rankItem.getVideo());
-            rosRankItem.rosFeatureMap = FeatureBucketUtils.bucketFeatureV2("20250306_ros_bucket_229.txt", rankItem.featureMapDouble);
+            // 复用了str的二分类xgboost score,所以和str保持一致
+            rosRankItem.featureMap = FeatureBucketUtils.bucketFeatureV2("20250306_ros_bucket_229.txt", rankItem.featureMapDouble);
             rosRankItems.add(rosRankItem);
         }
         Map<String, String> userFeatureMap = FeatureBucketUtils.bucketFeatureV2("20250306_ros_bucket_229.txt", userFeatureMapDouble);
@@ -332,8 +329,10 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         for (RankItem rankItem : rankItems) {
             if (vidRosMap.containsKey(rankItem.getVideoId())) {
                 RankItem rosRankItem = vidRosMap.get(rankItem.getVideoId());
-                rankItem.setScoreRos(rosRankItem.getScoreRos());
-                rankItem.getScoresMap().put("RosXGBScore", rosRankItem.getScoreRos());
+
+                // 复用了rov的xgboost model类,所以取scoreRov的值
+                rankItem.setScoreRos(rosRankItem.getScoreRov());
+                rankItem.getScoresMap().put("RosXGBScore", rosRankItem.getScoreRov());
             }
         }
     }