Ver Fonte

Merge remote-tracking branch 'origin/dev_v1_smz' into dev_v1.0

sunmingze há 1 ano atrás
pai
commit
9d3e3afad0

+ 1 - 1
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/AdItemBytesFeature.java

@@ -42,7 +42,7 @@ public class AdItemBytesFeature {
         advertiserCode = feature.getAdvertiserCode().getBytes();
         campaignId = feature.getCampaignId().getBytes();
         campaignCode = feature.getCampaignCode().getBytes();
-        creative = feature.getCreative().getBytes();
+        creative = feature.getCreativeId().getBytes();
         creativeCode = feature.getCreativeCode().getBytes();
 
 

+ 30 - 23
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/AdItemFeature.java

@@ -4,28 +4,43 @@ import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.Setter;
 
 import javax.validation.constraints.NotNull;
 
 @Getter
 @NoArgsConstructor
 public class AdItemFeature {
+    @Setter
     @NotNull
-    private String adId;
+    private String adId = "0";
 
-    private String adCode;
-
-    private String advertiserId;
+    @Setter
+    @NotNull
+    private String adCode = "0";
 
-    private String advertiserCode;
+    @Setter
+    @NotNull
+    private String advertiserId = "0";
+    @Setter
+    @NotNull
+    private String advertiserCode = "0";
+    @Setter
+    @NotNull
+    private String campaignId = "0";
 
-    private String campaignId;
+    @Setter
+    @NotNull
+    private String campaignCode = "0";
 
-    private String campaignCode;
+    @Setter
+    @NotNull
+    private String creativeId = "0";
 
-    private String creative;
+    @Setter
+    @NotNull
+    private String creativeCode = "0";
 
-    private String creativeCode;
 
 
     // 当天统计量信息
@@ -38,31 +53,23 @@ public class AdItemFeature {
     private AdActionFeature month3_cnt_features;
 
 
-    public void setAdvertiserId(String key){
-        if(key == null){
-            this.advertiserId = "0";
-        } else {
-            this.advertiserId = key;
-        }
-    }
-
-    public void setDay1_cnt_features(AdActionFeature feature){
+    public void setDay1_cnt_features(AdActionFeature feature) {
         this.day1_cnt_features = feature;
     }
 
 
-    public void setDay3_cnt_features(AdActionFeature feature){
+    public void setDay3_cnt_features(AdActionFeature feature) {
         this.day3_cnt_features = feature;
 
     }
 
-    public void setDay7_cnt_features(AdActionFeature feature){
+    public void setDay7_cnt_features(AdActionFeature feature) {
         this.day7_cnt_features = feature;
 
     }
 
-    public void setMonth3_cnt_features(AdActionFeature feature){
-        this.month3_cnt_features= feature;
+    public void setMonth3_cnt_features(AdActionFeature feature) {
+        this.month3_cnt_features = feature;
 
     }
 
@@ -70,7 +77,7 @@ public class AdItemFeature {
         return this.adId;
     }
 
-    public String getValue(){
+    public String getValue() {
         Gson gson = new GsonBuilder().serializeSpecialFloatingPointValues().create();
         return gson.toJson(this);
     }

+ 1 - 7
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/RequestContext.java → ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/AdRequestContext.java

@@ -6,13 +6,12 @@ import lombok.NoArgsConstructor;
 
 @Getter
 @NoArgsConstructor
-public class RequestContext {
+public class AdRequestContext {
 
     // 机型等信息
     private String apptype;
     private String machineinfoBrand;
     private String machineinfoModel;
-    private String machineinfoPlatform;
     private String machineinfoSdkversion;
     private String machineinfoSystem;
     private String machineinfoWechatversion;
@@ -65,11 +64,6 @@ public class RequestContext {
             this.machineinfoSdkversion = "-1";
     }
 
-    public void setMachineinfoPlatform(String machineinfo_platform) {
-        this.machineinfoPlatform = machineinfo_platform;
-        if (machineinfoPlatform == null)
-            this.machineinfoPlatform = "-1";
-    }
 
     public void setMachineinfo_system(String machineinfo_system) {
         this.machineinfoSystem = machineinfo_system;

+ 2 - 4
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/RequestContextBytesFeature.java → ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/AdRequestContextBytesFeature.java

@@ -4,11 +4,10 @@ package com.tzld.piaoquan.ad.engine.commons.base;
 import lombok.Data;
 
 @Data
-public class RequestContextBytesFeature {
+public class AdRequestContextBytesFeature {
     private final byte[] apptype;
     private final byte[] machineinfo_brand;
     private final byte[] machineinfo_model;
-    private final byte[] machineinfo_platform;
     private final byte[] machineinfo_sdkversion;
     private final byte[] machineinfo_system;
     private final byte[] machineinfo_wechatversion;
@@ -28,11 +27,10 @@ public class RequestContextBytesFeature {
     private final byte[] ownAdPositionId;
 
 
-    public RequestContextBytesFeature(RequestContext requestContext) {
+    public AdRequestContextBytesFeature(AdRequestContext requestContext) {
         apptype = requestContext.getApptype().getBytes();
         machineinfo_brand = requestContext.getMachineinfoBrand().getBytes();
         machineinfo_model = requestContext.getMachineinfoModel().getBytes();
-        machineinfo_platform = requestContext.getMachineinfoPlatform().getBytes();
         machineinfo_sdkversion = requestContext.getMachineinfoSdkversion().getBytes();
         machineinfo_system = requestContext.getMachineinfoSystem().getBytes();
         machineinfo_wechatversion = requestContext.getMachineinfoWechatversion().getBytes();

+ 62 - 61
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/base/UserAdFeature.java

@@ -4,54 +4,66 @@ import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
 
 @Getter
 @NoArgsConstructor
+@Setter
+@NotNull
 public class UserAdFeature {
-    private String mid;
-
-    private String gender;
-    private String user_type;
-    private String gmt_create;
-    private String tags;
-    private String category_name;
-    private String isvip;
-    private String isreward;
-    private String isad;
-    private String isgood;
-
-    private String first_up_datetime;
-    private String last_up_datetime;
-    private String next_to_last_up_datetime;
-    private String videos; // 上传视频数量
-    private String idols; // 关注人数
-    private String fans;  // 粉丝数
-    private String play_count;  // 播放人数
-    private String play_count_total;  // 累计播放次数
-
-    private String total_reward;
-    private String currentday_reward;
-    private String reward_person;
-    private String total_reward_times;
-
-    private String reward_videos;
-    private String total_price;
-    private String currentday_price;
-    private String total_price_times;
-    private String total_price_person;
-    private String total_price_videos;
-    private String cgrain_user_type;
-    private String identity_tagname;
-
-
-    private String operation_tags;
-    private String identity_tag_id;
-    private String identity_create_time;
-    private String country;
-    private String province;
-    private String city;
 
+    private String mid = "0";
+
+    private String gender = "0";
+
+    private String user_type = "0";
+
+    private String gmt_create = "0";
+
+    private String tags = "0";
+
+    private String category_name = "0";
+
+    private String isvip = "0";
+
+    private String isreward = "0";
+
+    private String isad = "0";
+
+    private String isgood = "0";
+
+    private String first_up_datetime = "0";
+    private String last_up_datetime = "0";
+    private String next_to_last_up_datetime = "0";
+    private String videos = "0"; // 上传视频数量
+    private String idols = "0"; // 关注人数
+    private String fans = "0";  // 粉丝数
+    private String play_count = "0";  // 播放人数
+    private String play_count_total = "0";  // 累计播放次数
 
+    private String total_reward = "0";
+    private String currentday_reward = "0";
+    private String reward_person = "0";
+    private String total_reward_times = "0";
+
+    private String reward_videos = "0";
+    private String total_price = "0";
+    private String currentday_price = "0";
+    private String total_price_times = "0";
+    private String total_price_person = "0";
+    private String total_price_videos = "0";
+    private String cgrain_user_type = "0";
+    private String identity_tagname = "0";
+
+
+    private String operation_tags = "0";
+    private String identity_tag_id = "0";
+    private String identity_create_time = "0";
+    private String country = "0";
+    private String province = "0";
+    private String city = "0";
 
 
     // 当天统计量信息
@@ -64,47 +76,36 @@ public class UserAdFeature {
     private AdActionFeature month3_cnt_features;
 
 
-
-
-    public void setMid(String key){
-        this.mid = key;
-        if(key == null)
-            this.mid = "0";
-    }
-
-
-    public void setDay1_cnt_features(AdActionFeature key){
+    public void setDay1_cnt_features(AdActionFeature key) {
         this.day1_cnt_features = key;
-        if(key == null)
+        if (key == null)
             this.day1_cnt_features = new AdActionFeature();
     }
 
-    public void setDay3_cnt_features(AdActionFeature key){
+    public void setDay3_cnt_features(AdActionFeature key) {
         this.day3_cnt_features = key;
-        if(key == null)
+        if (key == null)
             this.day3_cnt_features = new AdActionFeature();
     }
 
-    public void setDay7_cnt_features(AdActionFeature key){
+    public void setDay7_cnt_features(AdActionFeature key) {
         this.day7_cnt_features = key;
-        if(key == null)
+        if (key == null)
             this.day7_cnt_features = new AdActionFeature();
     }
 
     public void setMonth3_cnt_features(AdActionFeature key) {
         this.month3_cnt_features = key;
-        if(key == null)
+        if (key == null)
             this.month3_cnt_features = new AdActionFeature();
     }
 
 
-
-
     public String getKey() {
         return this.mid;
     }
 
-    public String getValue(){
+    public String getValue() {
         Gson gson = new GsonBuilder().serializeSpecialFloatingPointValues().create();
         return gson.toJson(this);
     }

+ 2 - 2
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/ScoreParam.java

@@ -1,6 +1,6 @@
 package com.tzld.piaoquan.ad.engine.commons.score;
 
-import com.tzld.piaoquan.ad.engine.commons.base.RequestContext;
+import com.tzld.piaoquan.ad.engine.commons.base.AdRequestContext;
 import lombok.Data;
 
 /**
@@ -8,5 +8,5 @@ import lombok.Data;
  */
 @Data
 public class ScoreParam {
-    private RequestContext requestContext;
+    private AdRequestContext requestContext;
 }

+ 2 - 2
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/feature/LRBytesFeatureExtractorBase.java

@@ -3,7 +3,7 @@ package com.tzld.piaoquan.ad.engine.commons.score.feature;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.tzld.piaoquan.ad.engine.commons.base.AdItemBytesFeature;
-import com.tzld.piaoquan.ad.engine.commons.base.RequestContextBytesFeature;
+import com.tzld.piaoquan.ad.engine.commons.base.AdRequestContextBytesFeature;
 import com.tzld.piaoquan.ad.engine.commons.base.UserAdBytesFeature;
 import com.tzld.piaoquan.ad.engine.commons.enums.VlogAdFeatureGroup;
 import com.tzld.piaoquan.recommend.server.gen.recommend.BaseFeature;
@@ -61,7 +61,7 @@ public abstract class LRBytesFeatureExtractorBase {
 
     public abstract LRSamples single(UserAdBytesFeature userBytesFeature,
                                      AdItemBytesFeature videoBytesFeature,
-                                     RequestContextBytesFeature requestContextBytesFeature);
+                                     AdRequestContextBytesFeature requestContextBytesFeature);
 
 
 }

+ 3 - 4
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/feature/VlogAdCtrLRFeatureExtractor.java

@@ -1,7 +1,7 @@
 package com.tzld.piaoquan.ad.engine.commons.score.feature;
 
 import com.tzld.piaoquan.ad.engine.commons.base.AdItemBytesFeature;
-import com.tzld.piaoquan.ad.engine.commons.base.RequestContextBytesFeature;
+import com.tzld.piaoquan.ad.engine.commons.base.AdRequestContextBytesFeature;
 import com.tzld.piaoquan.ad.engine.commons.base.UserAdBytesFeature;
 import com.tzld.piaoquan.ad.engine.commons.enums.VlogAdFeatureGroup;
 import com.tzld.piaoquan.recommend.server.gen.recommend.FeatureGroup;
@@ -22,10 +22,9 @@ public class VlogAdCtrLRFeatureExtractor extends LRBytesFeatureExtractorBase {
 
     // TODO
     // 补充待抽取的context feature
-    public void getContextFeatures(RequestContextBytesFeature requestContextBytes) {
+    public void getContextFeatures(AdRequestContextBytesFeature requestContextBytes) {
         makeFea(VlogAdFeatureGroup.MACHINEINFO_BRAND, requestContextBytes.getMachineinfo_brand());
         makeFea(VlogAdFeatureGroup.MACHINEINFO_MODEL, requestContextBytes.getMachineinfo_model());
-        makeFea(VlogAdFeatureGroup.MACHINEINFO_PLATFORM, requestContextBytes.getMachineinfo_platform());
         makeFea(VlogAdFeatureGroup.MACHINEINFO_SDKVERSION, requestContextBytes.getMachineinfo_sdkversion());
         makeFea(VlogAdFeatureGroup.MACHINEINFO_SYSTEM, requestContextBytes.getMachineinfo_system());
         makeFea(VlogAdFeatureGroup.MACHINEINFO_WECHATVERSION, requestContextBytes.getMachineinfo_brand());
@@ -107,7 +106,7 @@ public class VlogAdCtrLRFeatureExtractor extends LRBytesFeatureExtractorBase {
     @Override
     public synchronized LRSamples single(UserAdBytesFeature userAdBytesFeature,
                                          AdItemBytesFeature videoBytesFeature,
-                                         RequestContextBytesFeature requestContextBytesFeature) {
+                                         AdRequestContextBytesFeature requestContextBytesFeature) {
         features.clear();
         // extract features
         getUserFeatures(userAdBytesFeature);

+ 4 - 4
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VlogAdCtrLRScorer.java

@@ -60,7 +60,7 @@ public class VlogAdCtrLRScorer extends BaseLRModelScorer {
     }
 
     private List<AdRankItem> rankByJava(final List<AdRankItem> items,
-                                      final RequestContext requestContext,
+                                      final AdRequestContext requestContext,
                                       final UserAdFeature user) {
         long startTime = System.currentTimeMillis();
         LRModel model = (LRModel) this.getModel();
@@ -95,7 +95,7 @@ public class VlogAdCtrLRScorer extends BaseLRModelScorer {
     public double calcScore(final LRModel lrModel,
                             final AdRankItem item,
                             final UserAdBytesFeature userInfoBytes,
-                            final RequestContext requestContext) {
+                            final AdRequestContext requestContext) {
 
         LRSamples lrSamples = null;
         VlogAdCtrLRFeatureExtractor bytesFeatureExtractor;
@@ -104,7 +104,7 @@ public class VlogAdCtrLRScorer extends BaseLRModelScorer {
         try {
             AdItemBytesFeature newsInfoBytes = new AdItemBytesFeature(item.getItemFeature());
             lrSamples = bytesFeatureExtractor.single(userInfoBytes, newsInfoBytes,
-                    new RequestContextBytesFeature(requestContext));
+                    new AdRequestContextBytesFeature(requestContext));
         } catch (Exception e) {
             LOGGER.error("extract feature error for imei={}, doc={}, [{}]", new Object[]{new String(userInfoBytes.getMid()), item.getAdId(),
                     ExceptionUtils.getFullStackTrace(e)});
@@ -141,7 +141,7 @@ public class VlogAdCtrLRScorer extends BaseLRModelScorer {
      */
     private void multipleCtrScore(final List<AdRankItem> items,
                                   final UserAdBytesFeature userInfoBytes,
-                                  final RequestContext requestContext,
+                                  final AdRequestContext requestContext,
                                   final LRModel model) {
 
         List<Callable<Object>> calls = new ArrayList<Callable<Object>>();