| 
					
				 | 
			
			
				@@ -297,26 +297,30 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_20240609.conf") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .scoring(sceneFeatureMap, userFeatureMap, rankItems); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String redisScoreKey =  mergeWeight.getOrDefault("redisScoreKey", 0.0) < 0.5 ? "redis:vid_hasreturn_rov:" : "redis:vid_hasreturn_rov_7d:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, redisScoreKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_rov:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Map<String, String>> vid2VovFeatureMap = this.getVideoRedisFeature(vids, "redis:vid_vov_1d3d:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        double alpha_vov = this.mergeWeight.getOrDefault("alpha_vov", 0.1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Video> result = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String hasReturnRovKey = mergeWeight.getOrDefault("hasReturnRovKey", 1.0) < 0.5 ? "rate_1" : "rate_n"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Double chooseFunction = mergeWeight.getOrDefault("chooseFunction", 0.0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (RankItem item : items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double score = 0.0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double recommend_rate_1d = Double.parseDouble(vid2VovFeatureMap.getOrDefault(item.getVideoId() + "", new HashMap<>()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .getOrDefault("recommend_rate_1d", "0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double recommend_exp_per_1d = Double.parseDouble(vid2VovFeatureMap.getOrDefault(item.getVideoId() + "", new HashMap<>()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .getOrDefault("recommend_exp_per_1d", "0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            double vorScore =  recommend_rate_1d * recommend_exp_per_1d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.getScoresMap().put("recommend_rate_1d", recommend_rate_1d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.getScoresMap().put("recommend_exp_per_1d", recommend_exp_per_1d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.getScoresMap().put("vorScore", vorScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            item.getScoresMap().put("alpha_vov", alpha_vov); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .getOrDefault(hasReturnRovKey, "0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .getOrDefault("rate_n", "0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             double fmRov = item.getScoreRov(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item.getScoresMap().put("fmRov", fmRov); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (chooseFunction == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = fmRov * (1 + hasReturnRovScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else if (chooseFunction == 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = fmRov * (1 + Math.log(hasReturnRovScore + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                score = fmRov * (1 + hasReturnRovScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            score = fmRov * (1 + hasReturnRovScore) * (1.0 + alpha_vov * vorScore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Video video = item.getVideo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             video.setScore(score); 
			 |