Browse Source

999实验更新

zhangbo 10 tháng trước cách đây
mục cha
commit
48cd99f532

+ 27 - 23
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/FeatureService.java

@@ -26,7 +26,8 @@ public class FeatureService {
      * @return k1:视频、k2:表、k3:特征、v:特征值
      */
     public Feature getFeature(String mid, List<String> vidList, String appType,
-                              String province) {
+                              String province, String headVid) {
+
 
         List<FeatureKeyProto> protos = new ArrayList<>();
 
@@ -34,39 +35,40 @@ public class FeatureService {
             // TODO 补充其他特征
             // vid
             protos.add(genWithVid("alg_vid_feature_all_exp", vid));
-            protos.add(genWithVid("alg_vid_feature_all_return", vid));
             protos.add(genWithVid("alg_vid_feature_all_share", vid));
+            protos.add(genWithVid("alg_vid_feature_all_return", vid));
             protos.add(genWithVid("alg_vid_feature_exp2share", vid));
-            protos.add(genWithVid("alg_vid_feature_feed_flow_exp", vid));
-            protos.add(genWithVid("alg_vid_feature_feed_flow_root_return", vid));
-            protos.add(genWithVid("alg_vid_feature_feed_flow_root_share", vid));
+            protos.add(genWithVid("alg_vid_feature_share2return", vid));
             protos.add(genWithVid("alg_vid_feature_feed_noflow_exp", vid));
-            protos.add(genWithVid("alg_vid_feature_feed_noflow_root_return", vid));
             protos.add(genWithVid("alg_vid_feature_feed_noflow_root_share", vid));
-            protos.add(genWithVid("alg_vid_feature_feed_play", vid));
-            protos.add(genWithVid("alg_vid_feature_head_play", vid));
-            protos.add(genWithVid("alg_vid_feature_share2return", vid));
+            protos.add(genWithVid("alg_vid_feature_feed_noflow_root_return", vid));
+            protos.add(genWithVid("alg_vid_feature_feed_flow_exp", vid));
+            protos.add(genWithVid("alg_vid_feature_feed_flow_root_share", vid));
+            protos.add(genWithVid("alg_vid_feature_feed_flow_root_return", vid));
+
+            protos.add(genWithVid("alg_vid_feature_basic_info", vid));
             // vid + apptype
-            protos.add(genWithVidAndAppType("alg_vid_feature_feed_apptype_exp", vid, appType));
-            protos.add(genWithVidAndAppType("alg_vid_feature_feed_apptype_root_return", vid, appType));
-            protos.add(genWithVidAndAppType("alg_vid_feature_feed_apptype_root_share", vid, appType));
 
             // vid + province
             protos.add(genWithVidAndProvince("alg_vid_feature_feed_province_exp", vid, province));
-            protos.add(genWithVidAndProvince("alg_vid_feature_feed_province_root_return", vid, province));
             protos.add(genWithVidAndProvince("alg_vid_feature_feed_province_root_share", vid, province));
+            protos.add(genWithVidAndProvince("alg_vid_feature_feed_province_root_return", vid, province));
 
             // vid + headvid
-            protos.add(genWithVidAndHeadVid("", vid, headVid));
+            protos.add(genWithVidAndHeadVid("alg_recsys_feature_cf_i2i_new", vid, headVid));
         }
 
 
         // user
-        protos.add(genWithVidAndProvince("", mid));
-        protos.add(genWithVidAndProvince("", mid));
-        protos.add(genWithVidAndProvince("", mid));
-        protos.add(genWithVidAndProvince("", mid));
-        protos.add(genWithVidAndProvince("", mid));
+        protos.add(genWithMid("alg_mid_feature_play", mid));
+        protos.add(genWithMid("alg_mid_feature_share_and_return", mid));
+        protos.add(genWithMid("alg_mid_feature_play_tags", mid));
+        protos.add(genWithMid("alg_mid_feature_return_tags", mid));
+        protos.add(genWithMid("alg_mid_feature_share_tags", mid));
+        protos.add(genWithMid("alg_mid_feature_feed_exp_share_tags", mid));
+        protos.add(genWithMid("alg_mid_feature_feed_exp_return_tags", mid));
+        protos.add(genWithMid("alg_mid_feature_sharecf", mid));
+        protos.add(genWithMid("alg_mid_feature_returncf", mid));
 
 
         Map<String, String> result = remoteService.getFeature(protos);
@@ -100,7 +102,8 @@ public class FeatureService {
 
         });
 
-        return data;
+
+        return feature;
     }
 
     private final String videoUkFormat = "v:%s:%s";
@@ -137,7 +140,7 @@ public class FeatureService {
                 .setUniqueKey(String.format(videoUkFormat, table, vid))
                 .setTableName(table)
                 .putFieldValue("vid", vid)
-                .putFieldValue("headVid", )
+                .putFieldValue("headVid", headVid)
                 .build();
     }
 
@@ -145,7 +148,7 @@ public class FeatureService {
         return FeatureKeyProto.newBuilder()
                 .setUniqueKey(String.format(userUkFormat, table))
                 .setTableName(table)
-                .putFieldValue("mid", )
+                .putFieldValue("mid", mid)
                 .build();
     }
 
@@ -154,8 +157,9 @@ public class FeatureService {
         // k1:视频、k2:表、k3:特征、v:特征值
         private Map<String, Map<String, Map<String, String>>> videoFeature = new HashMap<>();
 
-        // k1:、k2:特征、v:特征值
+        // k1:mid、k2:特征、v:特征值
         private Map<String, Map<String, String>> userFeature = new HashMap<>();
+
     }
 
 }

+ 33 - 29
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV999.java

@@ -81,26 +81,30 @@ public class RankStrategy4RegionMergeModelV999 extends RankStrategy4RegionMergeM
         //-------------------逻-------------------
         //-------------------辑-------------------
 
-        // TODO 1 批量获取特征  省份参数要对齐
+        // TODO 1 批量获取特征  省份参数要对齐  headvid  要传递过来!
         List<String> vids = CommonCollectionUtils.toListDistinct(rovRecallRank, v -> String.valueOf(v.getVideoId()));
         // k1:视频、k2:表、k3:特征、v:特征值
-        Map<String, Map<String, Map<String, String>>> featureOrigin = featureService.getFeature(param.getMid(), vids,
-                String.valueOf(param.getAppType()), param.getProvince());
+        FeatureService.Feature feature = featureService.getFeature(param.getMid(), vids,
+                String.valueOf(param.getAppType()), param.getProvince(), "");
+
+        Map<String, Map<String, String>> featureOriginUser = feature.getUserFeature();
+        Map<String, Map<String, Map<String, String>>> featureOriginVideo = feature.getVideoFeature();
+
 
 
 
         // TODO 2 特征处理
         Map<String, Double> userFeatureMapDouble = new HashMap<>();
         String mid = "";
-        Map<String, String> c1 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_play", new HashMap<>());
-        Map<String, String> c2 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_share_and_return", new HashMap<>());
-        Map<String, String> c3 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_play_tags", new HashMap<>());
-        Map<String, String> c4 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_return_tags", new HashMap<>());
-        Map<String, String> c5 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_share_tags", new HashMap<>());
-        Map<String, String> c6 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_feed_exp_share_tags", new HashMap<>());
-        Map<String, String> c7 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_feed_exp_return_tags", new HashMap<>());
-        Map<String, String> c8 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_sharecf", new HashMap<>());
-        Map<String, String> c9 = featureOrigin.getOrDefault(mid, new HashMap<>()).getOrDefault("alg_mid_feature_returncf", new HashMap<>());
+        Map<String, String> c1 = featureOriginUser.getOrDefault("alg_mid_feature_play", new HashMap<>());
+        Map<String, String> c2 = featureOriginUser.getOrDefault("alg_mid_feature_share_and_return", new HashMap<>());
+        Map<String, String> c3 = featureOriginUser.getOrDefault("alg_mid_feature_play_tags", new HashMap<>());
+        Map<String, String> c4 = featureOriginUser.getOrDefault("alg_mid_feature_return_tags", new HashMap<>());
+        Map<String, String> c5 = featureOriginUser.getOrDefault("alg_mid_feature_share_tags", new HashMap<>());
+        Map<String, String> c6 = featureOriginUser.getOrDefault("alg_mid_feature_feed_exp_share_tags", new HashMap<>());
+        Map<String, String> c7 = featureOriginUser.getOrDefault("alg_mid_feature_feed_exp_return_tags", new HashMap<>());
+        Map<String, String> c8 = featureOriginUser.getOrDefault("alg_mid_feature_sharecf", new HashMap<>());
+        Map<String, String> c9 = featureOriginUser.getOrDefault("alg_mid_feature_returncf", new HashMap<>());
 
         if (c1.isEmpty()){
             userFeatureMapDouble.put("playcnt_6h", Double.parseDouble(c1.getOrDefault("playcnt_6h", "0")));
@@ -168,21 +172,21 @@ public class RankStrategy4RegionMergeModelV999 extends RankStrategy4RegionMergeM
         for (RankItem item : rankItems) {
             Map<String, Double> featureMap = new HashMap<>();
             String vid = item.getVideoId() + "";
-            Map<String, String> b1 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_exp", new HashMap<>());
-            Map<String, String> b2 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_share", new HashMap<>());
-            Map<String, String> b3 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_return", new HashMap<>());
-            Map<String, String> b6 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_exp2share", new HashMap<>());
-            Map<String, String> b7 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_share2return", new HashMap<>());
-
-            Map<String, String> b8 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_exp", new HashMap<>());
-            Map<String, String> b9 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_root_share", new HashMap<>());
-            Map<String, String> b10 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_root_return", new HashMap<>());
-            Map<String, String> b11 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_exp", new HashMap<>());
-            Map<String, String> b12 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_root_share", new HashMap<>());
-            Map<String, String> b13 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_root_return", new HashMap<>());
-            Map<String, String> b17 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_exp", new HashMap<>());
-            Map<String, String> b18 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_root_share", new HashMap<>());
-            Map<String, String> b19 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_root_return", new HashMap<>());
+            Map<String, String> b1 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_exp", new HashMap<>());
+            Map<String, String> b2 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_share", new HashMap<>());
+            Map<String, String> b3 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_all_return", new HashMap<>());
+            Map<String, String> b6 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_exp2share", new HashMap<>());
+            Map<String, String> b7 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_share2return", new HashMap<>());
+
+            Map<String, String> b8 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_exp", new HashMap<>());
+            Map<String, String> b9 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_root_share", new HashMap<>());
+            Map<String, String> b10 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_noflow_root_return", new HashMap<>());
+            Map<String, String> b11 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_exp", new HashMap<>());
+            Map<String, String> b12 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_root_share", new HashMap<>());
+            Map<String, String> b13 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_flow_root_return", new HashMap<>());
+            Map<String, String> b17 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_exp", new HashMap<>());
+            Map<String, String> b18 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_root_share", new HashMap<>());
+            Map<String, String> b19 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_feed_province_root_return", new HashMap<>());
 
             List<Tuple4> originData = Arrays.asList(
                     new Tuple4(b1, b2, b3, "b123"),
@@ -218,7 +222,7 @@ public class RankStrategy4RegionMergeModelV999 extends RankStrategy4RegionMergeM
                 }
             }
 
-            Map<String, String> videoInfo = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_basic_info", new HashMap<>());
+            Map<String, String> videoInfo = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_vid_feature_basic_info", new HashMap<>());
             featureMap.put("total_time", Double.parseDouble(videoInfo.getOrDefault("total_time", "0")));
             featureMap.put("bit_rate", Double.parseDouble(videoInfo.getOrDefault("bit_rate", "0")));
 
@@ -253,7 +257,7 @@ public class RankStrategy4RegionMergeModelV999 extends RankStrategy4RegionMergeM
                     }
                 }
             }
-            Map<String, String> d1 = featureOrigin.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_recsys_feature_cf_i2i_new", new HashMap<>());
+            Map<String, String> d1 = featureOriginVideo.getOrDefault(vid, new HashMap<>()).getOrDefault("alg_recsys_feature_cf_i2i_new", new HashMap<>());
             if (!d1.isEmpty()){
                 featureMap.put("d1_exp", Double.parseDouble(d1.getOrDefault("exp", "0")));
                 featureMap.put("d1_return_n", Double.parseDouble(d1.getOrDefault("return_n", "0")));

+ 1 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/score/ScorerUtils.java

@@ -34,6 +34,7 @@ public final class ScorerUtils {
         ScorerUtils.init(FLOWPOOL_CONF);
         ScorerUtils.init(VIDEO_SCORE_CONF_FOR_AD);
         ScorerUtils.init("feeds_score_config_20240228.conf");
+        ScorerUtils.init("feeds_score_config_20240609.conf");
         ScorerUtils.init4Recall("feeds_recall_config_region_v1.conf");
         ScorerUtils.init4Recall("feeds_recall_config_region_v2.conf");
         ScorerUtils.init4Recall("feeds_recall_config_region_v3.conf");