| 
					
				 | 
			
			
				@@ -45,6 +45,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         long currentMs = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Set<Long> setVideo = new HashSet<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setVideo.add(param.getHeadVid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Video> rovRecallRank = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // -------------------5路特殊旧召回------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RecallUtils.extractOldSpecialRecall(param, setVideo, rovRecallRank); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -68,8 +69,12 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RecallUtils.extractRecall(mergeWeight.getOrDefault("headCate2Rov", 5.0).intValue(), param, HeadCate2RovRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //-------------------city rovn------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RecallUtils.extractRecall(mergeWeight.getOrDefault("cityRov", 5.0).intValue(), param, CityRovnRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // -------------------premium rov------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        RecallUtils.extractRecall(mergeWeight.getOrDefault("preRovN", 10.0).intValue(), param, PremiumROVRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //-------------------priori province rovn------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RecallUtils.extractRecall(mergeWeight.getOrDefault("prioriProvinceRov", 3.0).intValue(), param, PrioriProvinceRovnRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //-------------------priori province str------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RecallUtils.extractRecall(mergeWeight.getOrDefault("prioriProvinceStr", 1.0).intValue(), param, PrioriProvinceStrRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //-------------------priori province ros------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RecallUtils.extractRecall(mergeWeight.getOrDefault("prioriProvinceRos", 1.0).intValue(), param, PrioriProvinceRosRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //-------------------排------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //-------------------序------------------- 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -107,6 +112,8 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.059); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double xgbNorPowerWeight = mergeWeight.getOrDefault("xgbNorPowerWeight", 1.22); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         double xgbNorPowerExp = mergeWeight.getOrDefault("xgbNorPowerExp", 1.15); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double modelNorWeight = mergeWeight.getOrDefault("modelNorWeight", 0.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double statNorWeight = mergeWeight.getOrDefault("statNorWeight", 0.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_vor:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 获取权重 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,9 +127,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cate2Coefficient.putAll(simCateScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Double cate2CoefficientDenominator = mergeWeight.getOrDefault("cate2CoefficientDenominator", 1d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String, Double> preVideosWeightMap = getPremiumVideosWeight(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        double premiumVideosCoefficient = mergeWeight.getOrDefault("premiumVideosCoefficient", 0.3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, String> regionMap = getUserRegion(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Video> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (RankItem item : items) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -135,6 +140,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double norXGBScore = item.getScoresMap().getOrDefault("NorXGBScore", 0d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double newNorXGBScore = norPowerCalibration(xgbNorPowerWeight, xgbNorPowerExp, norXGBScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newNorXGBScore = norFusion(modelNorWeight, newNorXGBScore, statNorWeight, hasReturnRovScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double vor = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("vor", "0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.getScoresMap().put("vor", vor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -144,11 +150,6 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.getScoresMap().put("cate2CoefficientDenominator", cate2CoefficientDenominator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             score = fmRov * (0.1 + newNorXGBScore) * (0.1 + vor) * (1 + scoreCoefficient / cate2CoefficientDenominator); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (preVideosWeightMap.containsKey(item.getVideoId() + "")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                double preWeight = 1.0 + premiumVideosCoefficient * preVideosWeightMap.get(item.getVideoId() + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = score * preWeight; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item.getScoresMap().put("preWeight", preWeight); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Video video = item.getVideo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             video.setScore(score); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -176,6 +177,12 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (null != rtFeatureDumpsMap && !rtFeatureDumpsMap.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 video.getMetaFeatureMap().put("rt", rtFeatureDumpsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (MapUtils.isNotEmpty(param.getCreativeInfoFeature())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                video.getMetaFeatureMap().put("creativeInfo", param.getCreativeInfoFeature()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (MapUtils.isNotEmpty(regionMap)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                video.getMetaFeatureMap().put("region", regionMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             result.add(video); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ExtractVideoMergeCate.addOtherParam(result, videoBaseInfoMap); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -410,8 +417,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return videoInfo.get("merge_second_level_cate"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private Map<String, Double> getPremiumVideosWeight() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String redisValue = redisTemplate.opsForValue().get(PremiumROVRecallStrategy.redisKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return this.parsePair(redisValue, 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private double norFusion(double modelWeight, double modelScore, double statWeight, double statScore) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return modelWeight * modelScore + statWeight * statScore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |