|
|
@@ -32,16 +32,18 @@ import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
- * V536 实验(2026-05-27 复写):基于 V565 召回 + DNN 打分,fusion 只保留"流量池相关 + 兜底相关"
|
|
|
+ * V536 实验(2026-05-29 复写):基于 V568 召回 + DNN 打分,fusion 只保留"流量池相关 + 兜底相关"
|
|
|
*
|
|
|
- * 与 V565 唯一差异在 fusion 阶段(mergeAndSort):
|
|
|
+ * 与 V568 唯一差异在 fusion 阶段(mergeAndSort):
|
|
|
* - 保留:rov 空兜底 + 流量池按比例强插(topK 头部锁 + flowPoolP/newFlowPoolSelectRate 概率门 + 一侧用光兜底回填)
|
|
|
* - 删除:标签 filter / rov boost / 强插 / 品类降权 / 节日降权 / 密度控制(Basic 的段 2/3/4/5/6/8)
|
|
|
*
|
|
|
- * Apollo key 保留 ${rank.score.merge.weightv536},召回/打分逻辑与 V565 同源但参数独立可调,仅 fusion 策略不同。
|
|
|
- * 注意:召回侧需要在 RecallService 里加 isHit536Exp 块,镜像 V565 的 strategies 增删(all_rov 系列 + 9 路老召回剔除)。
|
|
|
+ * Apollo key 保留 ${rank.score.merge.weightv536},召回/打分逻辑与 V568 同源但参数独立可调,仅 fusion 策略不同。
|
|
|
+ * 召回侧:与 V568 基线召回完全一致,RecallService 不需要 isHit536Exp 门控。
|
|
|
*
|
|
|
- * 历史:原 V536(V569 + 4 路召回提权)在 2026-05-27 被复写为本逻辑。
|
|
|
+ * 历史:
|
|
|
+ * - 原 V536(V569 + 4 路召回提权)在 2026-05-27 被复写为 V565 base + 极简 fusion
|
|
|
+ * - 2026-05-29 再次复写:base 从 V565 切到 V568(加回 5 路 oldSpecial + 3 路 prioriProvince,v1/cityRov 换回普通版)
|
|
|
*/
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
@@ -65,10 +67,12 @@ public class RankStrategy4RegionMergeModelV536 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);
|
|
|
- //-------------------新地域召回 (V565: all_rov)------------------
|
|
|
- RecallUtils.extractRecall(mergeWeight.getOrDefault("v1", 5.0).intValue(), param, RegionRealtimeRecallStrategyV1AllRov.PUSH_FROM, setVideo, rovRecallRank);
|
|
|
+ //-------------------新地域召回------------------
|
|
|
+ RecallUtils.extractRecall(mergeWeight.getOrDefault("v1", 5.0).intValue(), param, RegionRealtimeRecallStrategyV1.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
//-------------------scene cf rovn------------------
|
|
|
RecallUtils.extractRecall(mergeWeight.getOrDefault("sceneCFRovn", 5.0).intValue(), param, SceneCFRovnRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
//-------------------scene cf rosn------------------
|
|
|
@@ -83,8 +87,14 @@ public class RankStrategy4RegionMergeModelV536 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 (V565: all_rov)------------------
|
|
|
- RecallUtils.extractRecall(mergeWeight.getOrDefault("cityRov", 5.0).intValue(), param, CityRovnAllRovRecallStrategy.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);
|
|
|
//-------------------return1 cate2 ros------------------
|
|
|
RecallUtils.extractRecall(mergeWeight.getOrDefault("return1Cate2Ros", 5.0).intValue(), param, Return1Cate2RosRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
//-------------------return1 cate2 str------------------
|