Browse Source

旧label ros-值域调整

jch 3 months ago
parent
commit
e8abace6a3

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

@@ -16,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.math3.util.Pair;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -335,6 +334,8 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
             item.norFeatureMap = FeatureBucketUtils.bucketFeature("20241209_nor_bucket.txt", featureMapDouble);
         }
         // 4 排序模型计算
+        double xgbNorBias = mergeWeight.getOrDefault("xgbNorBias", -1.6945);
+        double xgbNorWeight = mergeWeight.getOrDefault("xgbNorWeight", 1.8968);
         Map<String, String> sceneFeatureMap = new HashMap<>(0);
         List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_fm_xgb_20241209.conf").scoring(sceneFeatureMap, userFeatureMap, norUserFeatureMap, rankItems);
         // 5 排序公式特征
@@ -349,9 +350,10 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
             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(xgbNorBias, xgbNorWeight, norXGBScore);
             double vor = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("vor", "0"));
             item.getScoresMap().put("vor", vor);
-            score = fmRov * (0.1 + Math.pow(norXGBScore, 1.1)) * (0.1 + vor);
+            score = fmRov * (0.1 + newNorXGBScore) * (0.1 + vor);
             Video video = item.getVideo();
             video.setScore(score);
             video.setSortScore(score);
@@ -485,4 +487,12 @@ public class RankStrategy4RegionMergeModelV567 extends RankStrategy4RegionMergeM
             }
         }
     }
+
+    private double norCalibration(double bias, double weight, double score) {
+        double newScore = bias + weight * score;
+        if (newScore < 1E-8) {
+            newScore = 0;
+        }
+        return newScore;
+    }
 }

+ 9 - 10
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -6,7 +6,6 @@ import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
 import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
@@ -106,15 +105,15 @@ public class RecallService implements ApplicationContextAware {
         strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
         strategies.addAll(getRegionRecallStrategy(param));
         strategies.add(strategyMap.get(ReturnVideoRecallStrategy.class.getSimpleName()));
-
-        Set<String> abExpCodes = param.getAbExpCodes();
-        if (CollectionUtils.isNotEmpty(abExpCodes)) {
-            if (abExpCodes.contains("563") || abExpCodes.contains("562")
-                    || abExpCodes.contains("564")) {
-                strategies.add(strategyMap.get(SceneCFRovnRecallStrategy.class.getSimpleName()));
-                strategies.add(strategyMap.get(SceneCFRosnRecallStrategy.class.getSimpleName()));
-            }
-        }
+        strategies.add(strategyMap.get(SceneCFRovnRecallStrategy.class.getSimpleName()));
+        strategies.add(strategyMap.get(SceneCFRosnRecallStrategy.class.getSimpleName()));
+
+//        Set<String> abExpCodes = param.getAbExpCodes();
+//        if (CollectionUtils.isNotEmpty(abExpCodes)) {
+//            if (abExpCodes.contains("563") || abExpCodes.contains("562")
+//                    || abExpCodes.contains("564")) {
+//            }
+//        }
 
         // 命中用户黑名单不走流量池
         if (!param.isRiskUser()) {