ソースを参照

562 vov 公式

zhangbo 8 ヶ月 前
コミット
63f6611630

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

@@ -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);
+//        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);