zhangbo 1 tahun lalu
induk
melakukan
5a1da24601

+ 1 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/common/base/RankItem.java

@@ -17,6 +17,7 @@ public class RankItem implements Comparable<RankItem> {
     private double score; // 记录最终的score
     private Video video;
     private double scoreRos; // 记录ros的score
+    private double scoreStr; // 记录str的score
 
     // 记录Item侧用到的特征
     private ItemFeature itemFeature;

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/Video.java

@@ -30,8 +30,8 @@ public class Video {
     private List<String> tags = new ArrayList<>();
 
     // video的模型打分
-    private double modelScore = 0.0D;
-    private double modelScoreRos = 0.0D;
+    private double scoreRos = 0.0D;
+    private double scoreStr = 0.0D;
     public double score = 0.0D;
     public double scoreRegion = 0.0D;
 

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

@@ -37,11 +37,21 @@ public class RankStrategy4RankModel extends RankService {
     @Value("${video.model.weight:}")
     private Double mergeWeight;
     final private String CLASS_NAME = this.getClass().getSimpleName();
+
+//    public Video getTestVideo(Long id, String s){
+//        Video a1 = new Video();
+//        a1.setVideoId(id);
+//        a1.setFlowPool(s);
+//        a1.setPushFrom("recall_pool_region_h");
+//        return a1;
+//    }
     @Override
     public List<Video> mergeAndRankRovRecall(RankParam param) {
 
         //-------------------地域内部融合-------------------
         List<Video> rovRecallRank = new ArrayList<>();
+//        rovRecallRank.add(0, getTestVideo(1070462L, ""));
+//        rovRecallRank.add(0, getTestVideo(1085062L, ""));
         rovRecallRank.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, RegionHDupRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, Region24HRecallStrategy.PUSH_FORM));
@@ -80,7 +90,10 @@ public class RankStrategy4RankModel extends RankService {
         List<Video> videosWithModel = model(rovRecallRank, param);
         for (Video v : videosWithModel){
             double mergeWeightIn = this.mergeWeight == null? 0.0D: this.mergeWeight;
-            v.setSortScore(v.getSortScore() + mergeWeightIn * v.getModelScore());
+            double score = v.getSortScore() + mergeWeightIn * v.getScoreStr();
+            v.setScoreRegion(v.getSortScore());
+            v.score = score;
+            v.setSortScore(score);
         }
         Collections.sort(videosWithModel, Comparator.comparingDouble(o -> -o.getSortScore()));
 
@@ -217,7 +230,8 @@ public class RankStrategy4RankModel extends RankService {
         return CommonCollectionUtils.toList(rovRecallScore, i -> {
             // hard code 将排序分数 赋值给video的sortScore
             Video v = i.getVideo();
-            v.setModelScore(i.getScore());
+            v.setScoreStr(i.getScoreStr());
+            v.setScoreRos(i.getScoreRos());
             return v;
         });
     }

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

@@ -38,11 +38,21 @@ public class RankStrategy4Rankv2Model extends RankService {
     @ApolloJsonValue("${video.model.weightv2:}")
     private Map<String, Double> mergeWeight;
     final private String CLASS_NAME = this.getClass().getSimpleName();
+//    public Video getTestVideo(Long id, String s){
+//        Video a1 = new Video();
+//        a1.setVideoId(id);
+//        a1.setFlowPool(s);
+//        a1.setPushFrom("recall_pool_region_h");
+//        return a1;
+//    }
+
     @Override
     public List<Video> mergeAndRankRovRecall(RankParam param) {
 
         //-------------------地域内部融合-------------------
         List<Video> rovRecallRank = new ArrayList<>();
+//        rovRecallRank.add(0, getTestVideo(1070462L, ""));
+//        rovRecallRank.add(0, getTestVideo(1085062L, ""));
         rovRecallRank.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, RegionHDupRecallStrategy.PUSH_FORM));
         rovRecallRank.addAll(extractAndSort(param, Region24HRecallStrategy.PUSH_FORM));
@@ -84,13 +94,13 @@ public class RankStrategy4Rankv2Model extends RankService {
         double beta = mergeWeight.getOrDefault("beta", 0.0D);
         double gamma = mergeWeight.getOrDefault("gamma", 0.0D);
         for (Video v : videosWithModel){
-            double score = alpha * v.getSortScore() + beta * v.getModelScore() + gamma * v.getModelScoreRos();
+            double score = alpha * v.getSortScore() + beta * v.getScoreStr() + gamma * v.getScoreRos();
             if (mergeWeight.containsKey("mul") && mergeWeight.getOrDefault("mul", 0.0D) > 0.5){
-                score = alpha * v.getSortScore() + (beta + v.getModelScore()) * (gamma + v.getModelScoreRos());
+                score = alpha * v.getSortScore() + (beta + v.getScoreStr()) * (gamma + v.getScoreRos());
             }
-            v.score = score;
             v.setScoreRegion(v.getSortScore());
-            v.setSortScore(v.score);
+            v.score = score;
+            v.setSortScore(score);
         }
         videosWithModel.sort(Comparator.comparingDouble(o -> -o.score));
 
@@ -227,8 +237,8 @@ public class RankStrategy4Rankv2Model extends RankService {
         return CommonCollectionUtils.toList(rovRecallScore, i -> {
             // hard code 将排序分数 赋值给video的sortScore
             Video v = i.getVideo();
-            v.setModelScore(i.getScore());
-            v.setModelScoreRos(i.getScoreRos());
+            v.setScoreStr(i.getScoreStr());
+            v.setScoreRos(i.getScoreRos());
             return v;
         });
     }

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/score/VlogShareLRScorer.java

@@ -252,7 +252,7 @@ public class VlogShareLRScorer extends BaseLRModelScorer {
         List<Callable<Object>> calls = new ArrayList<Callable<Object>>();
         for (int index = 0; index < items.size(); index++) {
             final int fIndex = index;
-            items.get(fIndex).setScore(0.0);   //原始分为 cube中的粗打分,如果超时,为原始值存在问题, 需要置0
+            // items.get(fIndex).setScore(0.0);   //原始分为 cube中的粗打分,如果超时,为原始值存在问题, 需要置0
             calls.add(new Callable<Object>() {
                 @Override
                 public Object call() throws Exception {
@@ -323,7 +323,7 @@ public class VlogShareLRScorer extends BaseLRModelScorer {
                         item.getVideoId(), ExceptionUtils.getFullStackTrace(e)});
             }
         }
-        item.setScore(pro);
+        item.setScoreStr(pro);
         return pro;
     }
 }

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/score/VlogShareLRScorer4Ros.java

@@ -252,7 +252,7 @@ public class VlogShareLRScorer4Ros extends BaseLRModelScorer {
         List<Callable<Object>> calls = new ArrayList<Callable<Object>>();
         for (int index = 0; index < items.size(); index++) {
             final int fIndex = index;
-            items.get(fIndex).setScore(0.0);   //原始分为 cube中的粗打分,如果超时,为原始值存在问题, 需要置0
+//            items.get(fIndex).setScore(0.0);   //原始分为 cube中的粗打分,如果超时,为原始值存在问题, 需要置0
             calls.add(new Callable<Object>() {
                 @Override
                 public Object call() throws Exception {

+ 6 - 6
recommend-server-service/src/main/resources/feeds_score_config_baseline.conf

@@ -1,12 +1,12 @@
 scorer-config = {
-  related-score-config = {
+  str-score-config = {
     scorer-name = "com.tzld.piaoquan.recommend.server.service.score.VlogShareLRScorer"
     scorer-priority = 99
     model-path = "video_str_model/model_sharev2_20231220_change.txt"
   }
-  related-score-config = {
-      scorer-name = "com.tzld.piaoquan.recommend.server.service.score.VlogShareLRScorer4Ros"
-      scorer-priority = 98
-      model-path = "video_str_model/model_ros_v2_20231220_change.txt"
-    }
+  ros-score-config = {
+    scorer-name = "com.tzld.piaoquan.recommend.server.service.score.VlogShareLRScorer4Ros"
+    scorer-priority = 99
+    model-path = "video_str_model/model_ros_v2_20231220_change.txt"
+  }
 }