Selaa lähdekoodia

552 做过滤实验

zhangbo 1 vuosi sitten
vanhempi
commit
2ce5bbd39d

+ 5 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -217,6 +217,8 @@ public class RecommendService {
         recallParam.setSpecialRecommend(true);
         recallParam.setSize(request.getSize());
         recallParam.setProvince(request.getProvince());
+        recallParam.setCityCode(request.getCityCode());
+        //todo 无法拿到过滤用的abcode @丁云鹏 @孙晓义
 
         RecallResult recallResult = recallService.recall(recallParam);
 
@@ -521,6 +523,9 @@ public class RecommendService {
         recallParam.setExpIdMap(param.getExpIdMap());
         recallParam.setCategoryId(param.getCategoryId());
 
+        recallParam.setCityCode(param.getCityCode());
+        recallParam.setAbCode(param.getAbCode());
+
         return recallParam;
     }
 

+ 8 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/ViewedService.java

@@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit;
 @Slf4j
 public class ViewedService {
     private Map<Integer, List<Integer>> viewedTypesMap = new HashMap<>();
-    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5, 8);
+    private List<Integer> defaultViewedTypes = Lists.newArrayList(1, 6, 7, 5);
 
     @Value("${video.filter.url:}")
     private String videoFilterUrl;
@@ -37,17 +37,20 @@ public class ViewedService {
     @PostConstruct
     public void init() {
 //        1-已观看 2-视频状态 3-是否进入老年人社区 4-话题状态 5-推荐状态 6-白名单过滤 7-涉政视频过滤
-        viewedTypesMap.put(0, Lists.newArrayList(1, 6, 5, 8));
-        viewedTypesMap.put(4, Lists.newArrayList(1, 6, 5, 8));
-        viewedTypesMap.put(13, Lists.newArrayList(1, 5, 8));
+        viewedTypesMap.put(0, Lists.newArrayList(1, 6, 5));
+        viewedTypesMap.put(4, Lists.newArrayList(1, 6, 5));
+        viewedTypesMap.put(13, Lists.newArrayList(1, 5));
     }
 
 
     // TODO 如果过滤失败,那么认为所有视频都被过滤掉
-    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds, String regionCode) {
+    public List<Long> filterViewedVideo(int appType, String mid, String uid, List<Long> videoIds, String regionCode, String abCode) {
 
         Stopwatch stopwatch = Stopwatch.createStarted();
         List<Integer> viewedTypes = viewedTypesMap.getOrDefault(appType, defaultViewedTypes);
+        if ("60106".equals(abCode)){
+            viewedTypes.add(8);
+        }
         CloseableHttpResponse chr = null;
         try {
             HttpPost post = new HttpPost(videoFilterUrl);

+ 6 - 6
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/AbstractFilterService.java

@@ -68,9 +68,9 @@ public abstract class AbstractFilterService {
             videoIds = filterByPreViewed(param.getAppType(), param.getMid(), videoIds);
         }
         if (param.isConcurrent()) {
-            videoIds = filterByViewedConcurrent(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getRegionCode());
+            videoIds = filterByViewedConcurrent(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode(), param.getAbCode());
         } else {
-            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getRegionCode());
+            videoIds = filterByViewed(param.getAppType(), param.getMid(), param.getUid(), videoIds, param.getCityCode(), param.getAbCode());
         }
         return videoIds;
     }
@@ -96,7 +96,7 @@ public abstract class AbstractFilterService {
         }
     }
 
-    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds, String regionCode) {
+    private List<Long> filterByViewedConcurrent(int appType, String mid, String uid, List<Long> videoIds, String regionCode, String abCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
@@ -118,7 +118,7 @@ public abstract class AbstractFilterService {
         List<Future<List<Long>>> futures = new ArrayList<>();
         for (final List<Long> ids : chunks) {
             Future<List<Long>> future = pool.submit(() ->
-                    viewedService.filterViewedVideo(appType, mid, uid, ids, regionCode));
+                    viewedService.filterViewedVideo(appType, mid, uid, ids, regionCode, abCode));
             futures.add(future);
         }
         try {
@@ -142,13 +142,13 @@ public abstract class AbstractFilterService {
 
     }
 
-    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds, String regionCode) {
+    private List<Long> filterByViewed(int appType, String mid, String uid, List<Long> videoIds, String regionCode, String abCode) {
         // TODO uid为空时,还需要过滤么?
         if (StringUtils.isBlank(mid)
                 || CollectionUtils.isEmpty(videoIds)) {
             return videoIds;
         }
-        return viewedService.filterViewedVideo(appType, mid, uid, videoIds, regionCode);
+        return viewedService.filterViewedVideo(appType, mid, uid, videoIds, regionCode, abCode);
 
     }
 

+ 3 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/filter/FilterParam.java

@@ -30,4 +30,7 @@ public class FilterParam {
 
     // 层 - 实验
     private Map<String, String> expIdMap;
+
+    private String cityCode;
+    private String abCode;
 }

+ 3 - 3
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV552.java

@@ -81,8 +81,8 @@ public class RankStrategy4RegionMergeModelV552 extends RankService {
         this.duplicate(setVideo, v0);
 
         //-------------------root rov召回 融合+去重-------------------
-        List<Video> v8 = extractAndSort(param, RegionRealtimeRecallStrategyV6RootRov.PUSH_FORM);
-        this.duplicate(setVideo, v8);
+//        List<Video> v8 = extractAndSort(param, RegionRealtimeRecallStrategyV6RootRov.PUSH_FORM);
+//        this.duplicate(setVideo, v8);
 
         //-------------------地域相关召回 融合+去重-------------------
         List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
@@ -104,7 +104,7 @@ public class RankStrategy4RegionMergeModelV552 extends RankService {
 
         List<Video> rovRecallRank = new ArrayList<>();
         rovRecallRank.addAll(v0);
-        rovRecallRank.addAll(v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 10.0).intValue(), v8.size())));
+//        rovRecallRank.addAll(v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 10.0).intValue(), v8.size())));
         rovRecallRank.addAll(v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 20.0).intValue(), v1.size())));
         rovRecallRank.addAll(v2.subList(0, Math.min(mergeWeight.getOrDefault("v2", 15.0).intValue(), v2.size())));
         rovRecallRank.addAll(v3.subList(0, Math.min(mergeWeight.getOrDefault("v3", 10.0).intValue(), v3.size())));

+ 2 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/FilterParamFactory.java

@@ -25,7 +25,7 @@ public class FilterParamFactory {
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
-
+        filterParam.setCityCode(param.getCityCode());
         return filterParam;
     }
 
@@ -43,6 +43,7 @@ public class FilterParamFactory {
         filterParam.setAppRegionFiltered(param.getAppRegionFiltered());
         filterParam.setRegionCode(param.getRegionCode());
         filterParam.setAbExpCodes(param.getAbExpCodes());
+        filterParam.setCityCode(param.getCityCode());
         return filterParam;
     }
 }

+ 2 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallParam.java

@@ -38,4 +38,6 @@ public class RecallParam {
     private Map<String, String> expIdMap;
     private Integer categoryId;
 
+    private String cityCode;
+
 }

+ 7 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -93,7 +93,6 @@ public class RecallService implements ApplicationContextAware {
         } else {
             switch (abCode) {
                 case "60105": // 551
-                case "60106": // 552
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV3.class.getSimpleName()));
@@ -101,6 +100,13 @@ public class RecallService implements ApplicationContextAware {
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV6RootRov.class.getSimpleName()));
                     strategies.addAll(getRegionRecallStrategy(param));
                     break;
+                case "60106": // 552
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV3.class.getSimpleName()));
+                    strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV4.class.getSimpleName()));
+                    strategies.addAll(getRegionRecallStrategy(param));
+                    break;
                 case "60121": // 536
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV1.class.getSimpleName()));
                     strategies.add(strategyMap.get(RegionRealtimeRecallStrategyV2.class.getSimpleName()));