#86 增加用户分享tags特征

Open
xueyiming wants to merge 3 commits from algorithm/dev-xym-add-feature into algorithm/master

+ 2 - 1
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/model/PAIModelV1.java

@@ -41,7 +41,8 @@ public class PAIModelV1 {
     private static final String[] sparseUserStrFeatures = {
             "brand", "region", "city", "cate1", "cate2", "user_cid_click_list", "user_cid_conver_list",
             "user_vid_return_tags_2h", "user_vid_return_tags_1d", "user_vid_return_tags_3d", "user_vid_return_tags_7d",
-            "user_vid_return_tags_14d", "root_source_scene", "root_source_channel", "title_split"
+            "user_vid_return_tags_14d", "root_source_scene", "root_source_channel", "title_split", "user_vid_share_tags_1d",
+            "user_vid_share_tags_14d"
     };
 
     private static final String[] sparseUserLongFeatures = {

+ 2 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/feature/FeatureService.java

@@ -79,6 +79,8 @@ public class FeatureService {
             protos.add(genWithMid("alg_mid_feature_ad_action", param.getMid()));
             protos.add(genWithMid("alg_mid_feature_return_tags", param.getMid()));
             protos.add(genWithMid("alg_mid_feature_share_tags", param.getMid()));
+            protos.add(genWithMid("mid_click_video_cate", param.getMid()));
+            protos.add(genWithMid("mid_share_video_cate", param.getMid()));
         }
         return this.invokeFeatureService(protos);
     }

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

@@ -111,6 +111,15 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         Map<String, String> e1Feature = userFeature.getOrDefault("alg_mid_feature_return_tags", new HashMap<>());
         Map<String, String> e2Feature = userFeature.getOrDefault("alg_mid_feature_share_tags", new HashMap<>());
 
+        Map<String, String> f1Feature = userFeature.getOrDefault("mid_click_video_cate", new HashMap<>());
+        Map<String, String> f2Feature = userFeature.getOrDefault("mid_share_video_cate", new HashMap<>());
+
+        String user_vid_play_cate1_14d = f1Feature.get("user_vid_play_cate1_14d");
+        String user_vid_play_cate2_14d = f1Feature.get("user_vid_play_cate2_14d");
+        String user_vid_share_cate1_14d = f2Feature.get("user_vid_share_cate1_14d");
+        String user_vid_share_cate2_14d = f2Feature.get("user_vid_share_cate2_14d");
+
+
         userFeatureMap.put("brand", scoreParam.getRequestContext().getMachineinfoBrand().equalsIgnoreCase("-1") ?
                 "" : scoreParam.getRequestContext().getMachineinfoBrand().toUpperCase());
         userFeatureMap.put("region", Objects.equals(scoreParam.getRequestContext().getRegion(), "-1") ?
@@ -126,6 +135,8 @@ public class RankStrategyBy688 extends RankStrategyBasic {
         userFeatureMap.put("user_vid_return_tags_7d", e1Feature.getOrDefault("tags_7d", null));
         userFeatureMap.put("user_vid_return_tags_14d", e1Feature.getOrDefault("tags_14d", null));
         userFeatureMap.put("title_split", d3Feature.getOrDefault("title_split", null));
+        userFeatureMap.put("user_vid_share_tags_1d", e2Feature.getOrDefault("tags_1d", null));
+        userFeatureMap.put("user_vid_share_tags_14d", e2Feature.getOrDefault("tags_14d", null));
 
         if (request.getAppType() != null) {
             userFeatureMap.put("apptype", String.valueOf(request.getAppType()));
@@ -742,6 +753,8 @@ public class RankStrategyBy688 extends RankStrategyBasic {
             add("is_first_layer");
             add("title_split");
             add("profession");
+            add("user_vid_share_tags_1d");
+            add("user_vid_share_tags_14d");
         }};
     }