| 
														
															@@ -45,6 +45,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         long currentMs = System.currentTimeMillis(); 
														 | 
														
														 | 
														
															         long currentMs = System.currentTimeMillis(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Set<Long> setVideo = new HashSet<>(); 
														 | 
														
														 | 
														
															         Set<Long> setVideo = new HashSet<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        setVideo.add(param.getHeadVid()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Video> rovRecallRank = new ArrayList<>(); 
														 | 
														
														 | 
														
															         List<Video> rovRecallRank = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // -------------------5路特殊旧召回------------------ 
														 | 
														
														 | 
														
															         // -------------------5路特殊旧召回------------------ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RecallUtils.extractOldSpecialRecall(param, setVideo, rovRecallRank); 
														 | 
														
														 | 
														
															         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); 
														 | 
														
														 | 
														
															         RecallUtils.extractRecall(mergeWeight.getOrDefault("headCate2Rov", 5.0).intValue(), param, HeadCate2RovRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //-------------------city rovn------------------ 
														 | 
														
														 | 
														
															         //-------------------city rovn------------------ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         RecallUtils.extractRecall(mergeWeight.getOrDefault("cityRov", 5.0).intValue(), param, CityRovnRecallStrategy.PUSH_FROM, setVideo, rovRecallRank); 
														 | 
														
														 | 
														
															         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 xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.059); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         double xgbNorPowerWeight = mergeWeight.getOrDefault("xgbNorPowerWeight", 1.22); 
														 | 
														
														 | 
														
															         double xgbNorPowerWeight = mergeWeight.getOrDefault("xgbNorPowerWeight", 1.22); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         double xgbNorPowerExp = mergeWeight.getOrDefault("xgbNorPowerExp", 1.15); 
														 | 
														
														 | 
														
															         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:"); 
														 | 
														
														 | 
														
															         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); 
														 | 
														
														 | 
														
															             cate2Coefficient.putAll(simCateScore); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Double cate2CoefficientDenominator = mergeWeight.getOrDefault("cate2CoefficientDenominator", 1d); 
														 | 
														
														 | 
														
															         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<>(); 
														 | 
														
														 | 
														
															         List<Video> result = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (RankItem item : items) { 
														 | 
														
														 | 
														
															         for (RankItem item : items) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -135,6 +140,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore); 
														 | 
														
														 | 
														
															             item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             double norXGBScore = item.getScoresMap().getOrDefault("NorXGBScore", 0d); 
														 | 
														
														 | 
														
															             double norXGBScore = item.getScoresMap().getOrDefault("NorXGBScore", 0d); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             double newNorXGBScore = norPowerCalibration(xgbNorPowerWeight, xgbNorPowerExp, norXGBScore); 
														 | 
														
														 | 
														
															             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")); 
														 | 
														
														 | 
														
															             double vor = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("vor", "0")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             item.getScoresMap().put("vor", vor); 
														 | 
														
														 | 
														
															             item.getScoresMap().put("vor", vor); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -144,11 +150,6 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             item.getScoresMap().put("cate2CoefficientDenominator", cate2CoefficientDenominator); 
														 | 
														
														 | 
														
															             item.getScoresMap().put("cate2CoefficientDenominator", cate2CoefficientDenominator); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															             score = fmRov * (0.1 + newNorXGBScore) * (0.1 + vor) * (1 + scoreCoefficient / 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 video = item.getVideo(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             video.setScore(score); 
														 | 
														
														 | 
														
															             video.setScore(score); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -176,6 +177,12 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (null != rtFeatureDumpsMap && !rtFeatureDumpsMap.isEmpty()) { 
														 | 
														
														 | 
														
															             if (null != rtFeatureDumpsMap && !rtFeatureDumpsMap.isEmpty()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 video.getMetaFeatureMap().put("rt", rtFeatureDumpsMap); 
														 | 
														
														 | 
														
															                 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); 
														 | 
														
														 | 
														
															             result.add(video); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ExtractVideoMergeCate.addOtherParam(result, videoBaseInfoMap); 
														 | 
														
														 | 
														
															         ExtractVideoMergeCate.addOtherParam(result, videoBaseInfoMap); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -410,8 +417,7 @@ public class RankStrategy4RegionMergeModelV568 extends RankStrategy4RegionMergeM 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return videoInfo.get("merge_second_level_cate"); 
														 | 
														
														 | 
														
															         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; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |