ソースを参照

tweak: V564 把 YearReturnCate2 移到非个性化 + 默认 topN 100→80

- YearReturnCate2 线上效果不佳,从个性化白名单 (6) 移到非个性化 (17)
- 总配额默认 100→80,更贴近 V568 实际去重后均值

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
yangxiaohui 1 週間 前
コミット
76548d6863

+ 8 - 7
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV564.java

@@ -37,7 +37,8 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
     private FeatureService featureService;
     private FeatureService featureService;
 
 
     /**
     /**
-     * V564 个性化召回白名单 (7 路):召回 key 含 mid/uid,依赖该用户行为信号。
+     * V564 个性化召回白名单 (6 路):召回 key 含 mid/uid,依赖该用户行为信号。
+     * 注:YearReturnCate2 因线上效果不佳, 2026-06-04 起移到非个性化白名单。
      */
      */
     private static final Set<String> PERSONAL_RECALL_PUSH_FROMS = new HashSet<>(Arrays.asList(
     private static final Set<String> PERSONAL_RECALL_PUSH_FROMS = new HashSet<>(Arrays.asList(
             UserCate1RecallStrategy.PUSH_FORM,
             UserCate1RecallStrategy.PUSH_FORM,
@@ -45,13 +46,12 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
             Return1Cate2RosRecallStrategy.PUSH_FORM,
             Return1Cate2RosRecallStrategy.PUSH_FORM,
             Return1Cate2StrRecallStrategy.PUSH_FORM,
             Return1Cate2StrRecallStrategy.PUSH_FORM,
             YearShareCate1RecallStrategy.PUSH_FROM,
             YearShareCate1RecallStrategy.PUSH_FROM,
-            YearShareCate2RecallStrategy.PUSH_FROM,
-            YearReturnCate2RecallStrategy.PUSH_FROM
+            YearShareCate2RecallStrategy.PUSH_FROM
     ));
     ));
 
 
     /**
     /**
-     * V564 非个性化召回白名单 (16 路):只依赖 headVid + 地域/品类/相似度(vid-vid CF 也归此类)。
-     * 含 5 路旧地域、新地域、城市、head province/cate、先验省份、return 相似、scene CF。
+     * V564 非个性化召回白名单 (17 路):只依赖 headVid + 地域/品类/相似度(vid-vid CF 也归此类)。
+     * 含 5 路旧地域、新地域、城市、head province/cate、先验省份、return 相似、scene CF、YearReturnCate2
      */
      */
     private static final Set<String> NON_PERSONAL_RECALL_PUSH_FROMS = new HashSet<>(Arrays.asList(
     private static final Set<String> NON_PERSONAL_RECALL_PUSH_FROMS = new HashSet<>(Arrays.asList(
             RegionHRecallStrategy.PUSH_FORM,
             RegionHRecallStrategy.PUSH_FORM,
@@ -69,7 +69,8 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
             PrioriProvinceRosRecallStrategy.PUSH_FROM,
             PrioriProvinceRosRecallStrategy.PUSH_FROM,
             ReturnVideoRecallStrategy.PUSH_FORM,
             ReturnVideoRecallStrategy.PUSH_FORM,
             SceneCFRovnRecallStrategy.PUSH_FORM,
             SceneCFRovnRecallStrategy.PUSH_FORM,
-            SceneCFRosnRecallStrategy.PUSH_FORM
+            SceneCFRosnRecallStrategy.PUSH_FORM,
+            YearReturnCate2RecallStrategy.PUSH_FROM
     ));
     ));
 
 
     /** PERSONAL ∪ NON_PERSONAL = 23 路。用于 fetchCoarseRankScores 跳过流量池等不参与截断的 vid。 */
     /** PERSONAL ∪ NON_PERSONAL = 23 路。用于 fetchCoarseRankScores 跳过流量池等不参与截断的 vid。 */
@@ -108,7 +109,7 @@ public class RankStrategy4RegionMergeModelV564 extends RankStrategy4RegionMergeM
         //
         //
         // 粗排分 = alg_vid_recommend_exp_feature_20250212.rovn_1h / rovn_24h 平均
         // 粗排分 = alg_vid_recommend_exp_feature_20250212.rovn_1h / rovn_24h 平均
         // ============================================================
         // ============================================================
-        int totalTopN = mergeWeight.getOrDefault("coarseRankTopN", 100.0).intValue();
+        int totalTopN = mergeWeight.getOrDefault("coarseRankTopN", 80.0).intValue();
         double personalRatio = mergeWeight.getOrDefault("personalRatio", 0.4);
         double personalRatio = mergeWeight.getOrDefault("personalRatio", 0.4);
         int personalTopN = (int) Math.round(totalTopN * personalRatio);
         int personalTopN = (int) Math.round(totalTopN * personalRatio);
         Map<Long, Double> coarseRankMap = fetchCoarseRankScores(param);
         Map<Long, Double> coarseRankMap = fetchCoarseRankScores(param);