|
@@ -66,6 +66,9 @@ public class RankStrategy4RegionMergeModelV569 extends RankService {
|
|
|
//-------------------逻-------------------
|
|
|
//-------------------辑-------------------
|
|
|
|
|
|
+ List<Video> rovRecallRank = new ArrayList<>();
|
|
|
+ Set<Long> setVideo = new HashSet<>();
|
|
|
+ //-------------------老地域召回-------------------
|
|
|
List<Video> oldRovs = new ArrayList<>();
|
|
|
oldRovs.addAll(extractAndSort(param, RegionHRecallStrategy.PUSH_FORM));
|
|
|
oldRovs.addAll(extractAndSort(param, RegionHDupRecallStrategy.PUSH_FORM));
|
|
@@ -74,37 +77,44 @@ public class RankStrategy4RegionMergeModelV569 extends RankService {
|
|
|
oldRovs.addAll(extractAndSort(param, RegionRelative24HDupRecallStrategy.PUSH_FORM));
|
|
|
removeDuplicate(oldRovs);
|
|
|
int sizeReturn = param.getSize();
|
|
|
- //-------------------老地域召回-------------------
|
|
|
List<Video> v0 = oldRovs.size() <= sizeReturn
|
|
|
? oldRovs
|
|
|
: oldRovs.subList(0, sizeReturn);
|
|
|
+ this.duplicate(setVideo, v0);
|
|
|
+ rovRecallRank.addAll(v0);
|
|
|
+ setVideo.addAll(v0.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
+ //-------------------sim相似召回------------------
|
|
|
List<Video> v5 = extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM);
|
|
|
- List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
|
|
|
+ v5 = v5.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v5 = v5.subList(0, Math.min(mergeWeight.getOrDefault("v5", 5.0).intValue(), v5.size()));
|
|
|
+ rovRecallRank.addAll(v5);
|
|
|
+ setVideo.addAll(v5.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
+ //-------------------return相似召回------------------
|
|
|
+ List<Video> v6 = extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM);
|
|
|
+ v6 = v6.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
|
|
|
+ rovRecallRank.addAll(v6);
|
|
|
+ setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
//-------------------新地域召回------------------
|
|
|
- List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
|
|
|
+ List<Video> v1 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
|
|
|
+ v1 = v1.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v1 = v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 5.0).intValue(), v1.size()));
|
|
|
+ rovRecallRank.addAll(v1);
|
|
|
+ setVideo.addAll(v1.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
//-------------------节日特殊召回-------------------
|
|
|
List<Video> v7 = extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM);
|
|
|
- //-------------------基于title的tag召回-------------------
|
|
|
- List<Video> v10 = extractAndSort(param, TitleTagRecallStrategyV1.PUSH_FORM);
|
|
|
-
|
|
|
+ v7 = v7.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v7 = v7.subList(0, Math.min(mergeWeight.getOrDefault("v7", 5.0).intValue(), v7.size()));
|
|
|
+ rovRecallRank.addAll(v7);
|
|
|
+ setVideo.addAll(v7.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
+ //-------------------基于cf rov n 召回-------------------
|
|
|
+ List<Video> v8 = extractAndSort(param, CFRovnRecallStrategyV1.PUSH_FORM);
|
|
|
+ v8 = v8.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
|
|
|
+ v8 = v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 6.0).intValue(), v8.size()));
|
|
|
+ rovRecallRank.addAll(v8);
|
|
|
+ setVideo.addAll(v8.stream().map(Video::getVideoId).collect(Collectors.toSet()));
|
|
|
|
|
|
|
|
|
- Set<Long> setVideo = new HashSet<>();
|
|
|
- this.duplicate(setVideo, v0);
|
|
|
- this.duplicate(setVideo, v5);
|
|
|
- this.duplicate(setVideo, v6);
|
|
|
- this.duplicate(setVideo, v1);
|
|
|
- this.duplicate(setVideo, v7);
|
|
|
- this.duplicate(setVideo, v10);
|
|
|
-
|
|
|
- List<Video> rovRecallRank = new ArrayList<>();
|
|
|
- rovRecallRank.addAll(v0);
|
|
|
- rovRecallRank.addAll(v5.subList(0, Math.min(mergeWeight.getOrDefault("v5", 5.0).intValue(), v5.size())));
|
|
|
- rovRecallRank.addAll(v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size())));
|
|
|
- rovRecallRank.addAll(v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 5.0).intValue(), v1.size())));
|
|
|
- rovRecallRank.addAll(v7.subList(0, Math.min(mergeWeight.getOrDefault("v7", 5.0).intValue(), v7.size())));
|
|
|
- rovRecallRank.addAll(v10.subList(0, Math.min(mergeWeight.getOrDefault("v10", 6.0).intValue(), v10.size())));
|
|
|
-
|
|
|
//-------------------排-------------------
|
|
|
//-------------------序-------------------
|
|
|
//-------------------逻-------------------
|