Ver Fonte

feat:V565实验复用V562代码 (砍5路特殊+3路priori, 10路减法门)

V565 rank类 = V562副本 - extractOldSpecialRecall - 3路priori province extractRecall;
RecallService V565减法门: add 2路all_rov, removeIf 10路 (region_1h+city_rovn+5路RegionH系列+3路priori province)。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
yangxiaohui há 1 dia atrás
pai
commit
894bdd16cf

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

@@ -49,12 +49,10 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         Set<Long> setVideo = new HashSet<>();
         setVideo.add(param.getHeadVid());
         List<Video> rovRecallRank = new ArrayList<>();
-        // -------------------5路特殊旧召回------------------
-        RecallUtils.extractOldSpecialRecall(mergeWeight.getOrDefault("oldSpecialN", (double) param.getSize()).intValue(), param, setVideo, rovRecallRank);
         //-------------------return相似召回------------------
         RecallUtils.extractRecall(mergeWeight.getOrDefault("v6", 5.0).intValue(), param, ReturnVideoRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
-        //-------------------新地域召回------------------
-        RecallUtils.extractRecall(mergeWeight.getOrDefault("v1", 5.0).intValue(), param, RegionRealtimeRecallStrategyV1.PUSH_FORM, setVideo, rovRecallRank);
+        //-------------------新地域召回 (V565: all_rov, V568 base 用 V1)------------------
+        RecallUtils.extractRecall(mergeWeight.getOrDefault("v1", 5.0).intValue(), param, RegionRealtimeRecallStrategyV1AllRov.PUSH_FROM, setVideo, rovRecallRank);
         //-------------------scene cf rovn------------------
         RecallUtils.extractRecall(mergeWeight.getOrDefault("sceneCFRovn", 5.0).intValue(), param, SceneCFRovnRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
         //-------------------scene cf rosn------------------
@@ -69,14 +67,8 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         RecallUtils.extractRecall(mergeWeight.getOrDefault("headCate2RecallN", 3.0).intValue(), param, HeadProvinceCate2RecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
         //-------------------head cate2 of rovn------------------
         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);
-        //-------------------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);
+        //-------------------city rovn (V565: all_rov, V568 base 用 v1)------------------
+        RecallUtils.extractRecall(mergeWeight.getOrDefault("cityRov", 5.0).intValue(), param, CityRovnAllRovRecallStrategy.PUSH_FROM, setVideo, rovRecallRank);
         //-------------------return1 cate2 ros------------------
         RecallUtils.extractRecall(mergeWeight.getOrDefault("return1Cate2Ros", 5.0).intValue(), param, Return1Cate2RosRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
         //-------------------return1 cate2 str------------------
@@ -140,7 +132,7 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
 
         // 4. 排序模型计算
         Map<String, Float> sceneFeatureMap = new HashMap<>(0);
-        List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_dnn_20260424.conf").scoring(sceneFeatureMap, userFeatureMap, rankItems);
+        List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_dnn_20260407.conf").scoring(sceneFeatureMap, userFeatureMap, rankItems);
 
         // 5. 排序公式特征
         double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.059);
@@ -153,9 +145,6 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
         double vorAdd = mergeWeight.getOrDefault("vor_add", 0.1d);
         double vorW = mergeWeight.getOrDefault("vor_w", 1.0d);
 
-        double leaveW = mergeWeight.getOrDefault("leave_w", 1d);
-        double leaveExp = mergeWeight.getOrDefault("leave_exp", 1d);
-
         double c1Rovn1hW = mergeWeight.getOrDefault("c1_rovn_1h_w", 0d);
         double c1Rovn24hW = mergeWeight.getOrDefault("c1_rovn_24h_w", 0d);
 
@@ -198,12 +187,6 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("vorAdd", vorAdd);
             item.getScoresMap().put("vorW", vorW);
 
-            double pLeave = item.getScoresMap().getOrDefault("pLeave", 0d);
-            double newPLeave = Math.pow((1 - leaveW * pLeave), leaveExp);
-            item.getScoresMap().put("leaveW", leaveW);
-            item.getScoresMap().put("leaveExp", leaveExp);
-            item.getScoresMap().put("newPLeave", newPLeave);
-
             Map<String, String> bcData = videoBCData.getOrDefault(String.valueOf(item.getVideoId()), new HashMap<>()).getOrDefault("alg_vid_feature_b_c_data", new HashMap<>());
             Map<String, String> cdNData = videoBCData.getOrDefault(String.valueOf(item.getVideoId()), new HashMap<>()).getOrDefault("alg_vid_feature_cn_dn_data", new HashMap<>());
 
@@ -253,7 +236,7 @@ public class RankStrategy4RegionMergeModelV565 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("dnRovn24hW", dnRovn24hW);
             item.getScoresMap().put("dnRovn24h", dnRovn24h);
 
-            score = fmRov * (rosAdd + rosW * newNorDNNScore) * (vorAdd + vorW * vor) * newPLeave + c1RovnScore + b0StrScore + b0RorScore + cnRovnScore + dnRovnScore;
+            score = fmRov * (rosAdd + rosW * newNorDNNScore) * (vorAdd + vorW * vor) + c1RovnScore + b0StrScore + b0RorScore + cnRovnScore + dnRovnScore;
 
             Video video = item.getVideo();
             video.setScore(score);

+ 20 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -162,6 +162,26 @@ public class RecallService implements ApplicationContextAware {
             strategies.removeIf(s -> s != null && v562RemoveSet.contains(s.getClass().getSimpleName()));
         }
 
+        boolean isHit565Exp = experimentService.judgeHitExp(param.getAppType(), param.getRootSessionId(), abExpCodes, "565");
+        if (isHit565Exp) {
+            strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1AllRov.class.getSimpleName()));
+            strategies.add(strategyMap.get(CityRovnAllRovRecallStrategy.class.getSimpleName()));
+            // V565: all_rov 替代 region_1h + city_rovn, 额外剔除 5 路 region 旧召回 (rank 侧已删 extractOldSpecial) + 3 路 priori province
+            Set<String> v565RemoveSet = new HashSet<>(Arrays.asList(
+                    RegionRealtimeRecallStrategyV1.class.getSimpleName(),
+                    CityRovnRecallStrategy.class.getSimpleName(),
+                    RegionHRecallStrategy.class.getSimpleName(),
+                    Region24HRecallStrategy.class.getSimpleName(),
+                    RegionHDupRecallStrategy.class.getSimpleName(),
+                    RegionRelative24HRecallStrategy.class.getSimpleName(),
+                    RegionRelative24HDupRecallStrategy.class.getSimpleName(),
+                    PrioriProvinceRovnRecallStrategy.class.getSimpleName(),
+                    PrioriProvinceStrRecallStrategy.class.getSimpleName(),
+                    PrioriProvinceRosRecallStrategy.class.getSimpleName()
+            ));
+            strategies.removeIf(s -> s != null && v565RemoveSet.contains(s.getClass().getSimpleName()));
+        }
+
         boolean isHit564Exp = experimentService.judgeHitExp(param.getAppType(), param.getRootSessionId(), abExpCodes, "564");
         if (isHit564Exp) {
             strategies.add(strategyMap.get(ProvinceRovnRecallStrategy.class.getSimpleName()));