Explorar el Código

回滚ctcvrScore

xueyiming hace 2 semanas
padre
commit
395297a3d6

+ 56 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBasic.java

@@ -41,6 +41,20 @@ public abstract class RankStrategyBasic implements RankStrategy {
 
     String adPlatformGuaranteeKey = "ad:platform:guarantee:data:{date}:{adverId}";
 
+    protected static final List<String> hasChannelScenes = new ArrayList<String>() {{
+        add("DaiTou");
+        add("GzhTouLiu");
+        add("daitou");
+        add("dyyjs");
+        add("dyyqw");
+        add("fwhdyy");
+        add("gzhhz");
+        add("gzhhzzx");
+        add("shequn");
+        add("touliu");
+        add("xcxdt");
+    }};
+
 
     protected Feature getFeature(ScoreParam param, RankRecommendRequestParam request) {
         List<AdPlatformCreativeDTO> adIdList = request.getAdIdList();
@@ -73,6 +87,48 @@ public abstract class RankStrategyBasic implements RankStrategy {
         return creativeScoreCoefficient;
     }
 
+    protected Map<String, String> getReqFeature(ScoreParam scoreParam, RankRecommendRequestParam request) {
+        Map<String, String> map = new HashMap<>();
+        map.put("brand", scoreParam.getRequestContext().getMachineinfoBrand().equalsIgnoreCase("-1") ?
+                "" : scoreParam.getRequestContext().getMachineinfoBrand().toUpperCase());
+        map.put("region", Objects.equals(scoreParam.getRequestContext().getRegion(), "-1") ?
+                "" : scoreParam.getRequestContext().getRegion());
+        map.put("city", Objects.equals(scoreParam.getRequestContext().getCity(), "-1") ?
+                "" : scoreParam.getRequestContext().getCity());
+        map.put("vid", String.valueOf(request.getVideoId()));
+        map.put("apptype", String.valueOf(request.getAppType()));
+        String rootSessionId = request.getRootSessionId();
+        String sessionId = request.getSessionId();
+        String subSessionId = request.getSubSessionId();
+        String rootSourceId = request.getRootSourceId();
+        int isFirstLayer;
+        if (Objects.equals(rootSessionId, subSessionId) || Objects.equals(rootSessionId, sessionId)) {
+            isFirstLayer = 1;
+        } else {
+            isFirstLayer = 2;
+        }
+        map.put("is_first_layer", String.valueOf(isFirstLayer));
+        if (StringUtils.isNotEmpty(rootSourceId)) {
+            String rootSourceScene = rootSourceId.split("_")[0];
+            map.put("root_source_scene", rootSourceScene);
+            if (hasChannelScenes.contains(rootSourceScene) && rootSourceId.split("_").length > 1) {
+                String rootSourceChannel = rootSourceId.split("_")[1];
+                map.put("root_source_channel", rootSourceChannel);
+            }
+        }
+        return map;
+    }
+
+    protected Map<String, String> handleSceneFeature(long ts) {
+        Map<String, String> sceneFeatureMap = new HashMap<>();
+        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
+        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
+        sceneFeatureMap.put("hour", String.valueOf(DateUtils.getHourByTimestamp(ts)));
+        sceneFeatureMap.put("hour_quarter", String.valueOf(DateUtils.getHourQuarter(ts)));
+        return sceneFeatureMap;
+    }
+
+
     protected static class Tuple5 {
         public String f1;
         public String f2;

+ 4 - 7
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy679.java

@@ -71,6 +71,8 @@ public class RankStrategyBy679 extends RankStrategyBasic {
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
         Map<String, Map<String, Map<String, String>>> allCidFeature = feature.getCidFeature();
+        Map<String, String> reqFeature = this.getReqFeature(scoreParam, request);
+
 
         Map<String, String> userFeatureMap = new HashMap<>();
         Map<String, String> c1Feature = userFeature.getOrDefault("alg_mid_feature_ad_action", new HashMap<>());
@@ -252,6 +254,8 @@ public class RankStrategyBy679 extends RankStrategyBasic {
                     item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
                 }
             }
+            item.getMetaFeatureMap().put("reqFeature", reqFeature);
+            item.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
         }
 
         log.info("cost={}, feature1={}, feature2={}, feature31={}, feature32={}, feature4={}, getScorerPipeline={}, " +
@@ -562,13 +566,6 @@ public class RankStrategyBy679 extends RankStrategyBasic {
         return vidRankMaps;
     }
 
-    public Map<String, String> handleSceneFeature(long ts) {
-        Map<String, String> sceneFeatureMap = new HashMap<>();
-        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
-        return sceneFeatureMap;
-    }
-
     private void readBucketFile() {
         if (MapUtils.isNotEmpty(bucketsMap)) {
             return;

+ 4 - 7
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy680.java

@@ -79,6 +79,8 @@ public class RankStrategyBy680 extends RankStrategyBasic {
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
         Map<String, Map<String, Map<String, String>>> allCidFeature = feature.getCidFeature();
+        Map<String, String> reqFeature = this.getReqFeature(scoreParam, request);
+
 
         Map<String, String> userFeatureMap = new HashMap<>();
         Map<String, String> c1Feature = userFeature.getOrDefault("alg_mid_feature_ad_action", new HashMap<>());
@@ -276,6 +278,8 @@ public class RankStrategyBy680 extends RankStrategyBasic {
                     top1Item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
                 }
             }
+            top1Item.getMetaFeatureMap().put("reqFeature", reqFeature);
+            top1Item.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
         }
         long time6 = System.currentTimeMillis();
         log.info("cost={}, getFeature={}, handleFeature={},  similar={}, bucketFeature={}, getScorerPipeline={}, " +
@@ -599,13 +603,6 @@ public class RankStrategyBy680 extends RankStrategyBasic {
         return vidRankMaps;
     }
 
-    public Map<String, String> handleSceneFeature(long ts) {
-        Map<String, String> sceneFeatureMap = new HashMap<>();
-        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
-        return sceneFeatureMap;
-    }
-
     private void readBucketFile() {
         if (MapUtils.isNotEmpty(bucketsMap)) {
             return;

+ 4 - 7
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy683.java

@@ -80,6 +80,8 @@ public class RankStrategyBy683 extends RankStrategyBasic {
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
         Map<String, Map<String, Map<String, String>>> allCidFeature = feature.getCidFeature();
+        Map<String, String> reqFeature = this.getReqFeature(scoreParam, request);
+
 
         Map<String, String> userFeatureMap = new HashMap<>();
         Map<String, String> c1Feature = userFeature.getOrDefault("alg_mid_feature_ad_action", new HashMap<>());
@@ -277,6 +279,8 @@ public class RankStrategyBy683 extends RankStrategyBasic {
                     top1Item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
                 }
             }
+            top1Item.getMetaFeatureMap().put("reqFeature", reqFeature);
+            top1Item.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
         }
         long time6 = System.currentTimeMillis();
         log.info("cost={}, getFeature={}, handleFeature={},  similar={}, bucketFeature={}, getScorerPipeline={}, " +
@@ -600,13 +604,6 @@ public class RankStrategyBy683 extends RankStrategyBasic {
         return vidRankMaps;
     }
 
-    public Map<String, String> handleSceneFeature(long ts) {
-        Map<String, String> sceneFeatureMap = new HashMap<>();
-        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
-        return sceneFeatureMap;
-    }
-
     private void readBucketFile() {
         if (MapUtils.isNotEmpty(bucketsMap)) {
             return;

+ 4 - 6
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy687.java

@@ -56,6 +56,8 @@ public class RankStrategyBy687 extends RankStrategyBasic {
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
         Map<String, Map<String, Map<String, String>>> allCidFeature = feature.getCidFeature();
+        Map<String, String> reqFeature = this.getReqFeature(scoreParam, request);
+
 
         Map<String, String> userFeatureMap = new HashMap<>();
         Map<String, String> c1Feature = userFeature.getOrDefault("alg_mid_feature_ad_action", new HashMap<>());
@@ -258,6 +260,8 @@ public class RankStrategyBy687 extends RankStrategyBasic {
                     item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
                 }
             }
+            item.getMetaFeatureMap().put("reqFeature", reqFeature);
+            item.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
         }
 
         long time4 = System.currentTimeMillis();
@@ -572,12 +576,6 @@ public class RankStrategyBy687 extends RankStrategyBasic {
         return vidRankMaps;
     }
 
-    public Map<String, String> handleSceneFeature(long ts) {
-        Map<String, String> sceneFeatureMap = new HashMap<>();
-        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
-        return sceneFeatureMap;
-    }
 
     private void readBucketFile() {
         if (MapUtils.isNotEmpty(bucketsMap)) {

+ 16 - 53
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/strategy/RankStrategyBy688.java

@@ -63,19 +63,6 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         this.initSparseFeatureNames();
     }
 
-    private static final List<String> hasChannelScenes = new ArrayList<String>() {{
-        add("DaiTou");
-        add("GzhTouLiu");
-        add("daitou");
-        add("dyyjs");
-        add("dyyqw");
-        add("fwhdyy");
-        add("gzhhz");
-        add("gzhhzzx");
-        add("shequn");
-        add("touliu");
-        add("xcxdt");
-    }};
 
     @Override
     public List<AdRankItem> adItemRank(RankRecommendRequestParam request, ScoreParam scoreParam) {
@@ -101,6 +88,7 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         Map<String, Map<String, String>> videoFeature = feature.getVideoFeature();
         Map<String, Map<String, Map<String, String>>> allAdVerFeature = feature.getAdVerFeature();
         Map<String, Map<String, Map<String, String>>> allCidFeature = feature.getCidFeature();
+        Map<String, String> reqFeature = this.getReqFeature(scoreParam, request);
 
         Map<String, String> userFeatureMap = new HashMap<>();
         Map<String, String> c1Feature = userFeature.getOrDefault("alg_mid_feature_ad_action", new HashMap<>());
@@ -121,13 +109,16 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         Map<String, String> g2Feature = userFeature.getOrDefault("mid_share_video_cate", new HashMap<>());
 
 
-        userFeatureMap.put("brand", scoreParam.getRequestContext().getMachineinfoBrand().equalsIgnoreCase("-1") ?
-                "" : scoreParam.getRequestContext().getMachineinfoBrand().toUpperCase());
-        userFeatureMap.put("region", Objects.equals(scoreParam.getRequestContext().getRegion(), "-1") ?
-                "" : scoreParam.getRequestContext().getRegion());
-        userFeatureMap.put("city", Objects.equals(scoreParam.getRequestContext().getCity(), "-1") ?
-                "" : scoreParam.getRequestContext().getCity());
-        userFeatureMap.put("vid", String.valueOf(request.getVideoId()));
+        userFeatureMap.put("brand", reqFeature.getOrDefault("brand", ""));
+        userFeatureMap.put("region", reqFeature.getOrDefault("region", ""));
+        userFeatureMap.put("city", reqFeature.getOrDefault("city", ""));
+        userFeatureMap.put("vid", reqFeature.getOrDefault("vid", ""));
+        userFeatureMap.put("apptype", reqFeature.getOrDefault("apptype", ""));
+        userFeatureMap.put("is_first_layer", reqFeature.getOrDefault("is_first_layer", ""));
+        userFeatureMap.put("root_source_scene", reqFeature.getOrDefault("root_source_scene", ""));
+        userFeatureMap.put("root_source_channel", reqFeature.getOrDefault("root_source_channel", ""));
+
+
         userFeatureMap.put("cate1", d3Feature.get("merge_first_level_cate"));
         userFeatureMap.put("cate2", d3Feature.get("merge_second_level_cate"));
         userFeatureMap.put("user_vid_return_tags_2h", e1Feature.getOrDefault("tags_2h", null));
@@ -143,29 +134,6 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         userFeatureMap.put("user_vid_share_cate1_14d", g2Feature.getOrDefault("cate1_14d", null));
         userFeatureMap.put("user_vid_share_cate2_14d", g2Feature.getOrDefault("cate2_14d", null));
 
-        if (request.getAppType() != null) {
-            userFeatureMap.put("apptype", String.valueOf(request.getAppType()));
-        }
-
-        String rootSessionId = request.getRootSessionId();
-        String sessionId = request.getSessionId();
-        String subSessionId = request.getSubSessionId();
-        String rootSourceId = request.getRootSourceId();
-        int isFirstLayer;
-        if (Objects.equals(rootSessionId, subSessionId) || Objects.equals(rootSessionId, sessionId)) {
-            isFirstLayer = 1;
-        } else {
-            isFirstLayer = 2;
-        }
-        userFeatureMap.put("is_first_layer", String.valueOf(isFirstLayer));
-        if (StringUtils.isNotEmpty(rootSourceId)) {
-            String rootSourceScene = rootSourceId.split("_")[0];
-            userFeatureMap.put("root_source_scene", rootSourceScene);
-            if (hasChannelScenes.contains(rootSourceScene) && rootSourceId.split("_").length > 1) {
-                String rootSourceChannel = rootSourceId.split("_")[1];
-                userFeatureMap.put("root_source_channel", rootSourceChannel);
-            }
-        }
 
         Map<String, String> sceneFeatureMap = this.handleSceneFeature(ts);
         long time1 = System.currentTimeMillis();
@@ -307,12 +275,14 @@ public class RankStrategyBy688 extends RankStrategyBasic {
 
             double scoreCoefficient = creativeScoreCoefficient.getOrDefault(item.getAdId(), 1d);
             double guaranteeScoreCoefficient = getGuaranteeScoreCoefficient(scoreParam, item.getExt());
-            item.setScore(item.getLrScore() * scoreCoefficient * item.getCpa() * guaranteeScoreCoefficient);
+            double ctcvrScore = item.getLrScore() * scoreCoefficient * item.getCpa();
+            item.setScore(ctcvrScore * guaranteeScoreCoefficient);
             item.getScoreMap().put("guaranteeScoreCoefficient", guaranteeScoreCoefficient);
             item.getScoreMap().put("cpa", item.getCpa());
             item.getScoreMap().put("cpm", item.getCpm());
             item.getScoreMap().put("cpmCoefficient", cpmCoefficient);
             item.getScoreMap().put("scoreCoefficient", scoreCoefficient);
+            item.getScoreMap().put("ctcvrScore", ctcvrScore);
             item.getFeatureMap().putAll(userFeatureMap);
             item.getFeatureMap().putAll(sceneFeatureMap);
 
@@ -352,6 +322,8 @@ public class RankStrategyBy688 extends RankStrategyBasic {
                     top1Item.getMetaFeatureMap().put(entry.getKey(), entry.getValue());
                 }
             }
+            top1Item.getMetaFeatureMap().put("reqFeature", reqFeature);
+            top1Item.getMetaFeatureMap().put("sceneFeature", sceneFeatureMap);
         }
         long time6 = System.currentTimeMillis();
         log.info("cost={}, getFeature={}, handleFeature={},  similar={}, bucketFeature={}, getScorerPipeline={}, " +
@@ -691,15 +663,6 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         return vidRankMaps;
     }
 
-    public Map<String, String> handleSceneFeature(long ts) {
-        Map<String, String> sceneFeatureMap = new HashMap<>();
-        sceneFeatureMap.put("hour_" + DateUtils.getHourByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("dayofweek_" + DateUtils.getDayOrWeekByTimestamp(ts), "0.1");
-        sceneFeatureMap.put("hour", String.valueOf(DateUtils.getHourByTimestamp(ts)));
-        sceneFeatureMap.put("hour_quarter", String.valueOf(DateUtils.getHourQuarter(ts)));
-        return sceneFeatureMap;
-    }
-
     private void readBucketFile() {
         if (MapUtils.isNotEmpty(bucketsMap)) {
             return;