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