浏览代码

Merge branch 'ad_feature_fix_0103' of algorithm/recommend-emr-dataprocess into master

approve
qingqu-git 1 年之前
父节点
当前提交
87d851e02a

+ 2 - 2
pom.xml

@@ -48,14 +48,14 @@
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>recommend-feature-client</artifactId>
-            <version>1.0.2</version>
+            <version>1.0.6</version>
         </dependency>
 
 
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>ad-engine-commons</artifactId>
-            <version>1.0.2</version>
+            <version>1.0.3</version>
         </dependency>
 
 

+ 80 - 80
src/main/java/examples/dataloader/AdRedisFeatureConstructor.java

@@ -35,41 +35,41 @@ public class AdRedisFeatureConstructor {
 
         // 1day features
         AdActionFeature userAd1dayActionFeature = new AdActionFeature();
-        userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_1day"));
-        userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_1day"));
-        userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_1day"));
-        userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_1day"));
-        userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_1day"));
+        userAd1dayActionFeature.setAdView(record.getString("ad_view_1day"));
+        userAd1dayActionFeature.setAdClick(record.getString("ad_click_1day"));
+        userAd1dayActionFeature.setAdConversion(record.getString("ad_conversion_1day"));
+        userAd1dayActionFeature.setCtr(record.getString("ad_ctr_1day"));
+        userAd1dayActionFeature.setCvr(record.getString("ad_cvr_1day"));
         userFeature.setDay1_cnt_features(userAd1dayActionFeature);
 
 
         // 3day features
         AdActionFeature userAd3dayActionFeature = new AdActionFeature();
-        userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_3day"));
-        userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_3day"));
-        userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_3day"));
-        userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_3day"));
-        userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_3day"));
+        userAd3dayActionFeature.setAdView(record.getString("ad_view_3day"));
+        userAd3dayActionFeature.setAdClick(record.getString("ad_click_3day"));
+        userAd3dayActionFeature.setAdConversion(record.getString("ad_conversion_3day"));
+        userAd3dayActionFeature.setCtr(record.getString("ad_ctr_3day"));
+        userAd3dayActionFeature.setCvr(record.getString("ad_cvr_3day"));
         userFeature.setDay3_cnt_features(userAd3dayActionFeature);
 
 
         // 7day features
         AdActionFeature userAd7dayActionFeature = new AdActionFeature();
-        userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_7day"));
-        userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click7day"));
-        userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_7day"));
-        userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_7day"));
-        userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_7day"));
+        userAd7dayActionFeature.setAdView(record.getString("ad_view_7day"));
+        userAd7dayActionFeature.setAdClick(record.getString("ad_click7day"));
+        userAd7dayActionFeature.setAdConversion(record.getString("ad_conversion_7day"));
+        userAd7dayActionFeature.setCtr(record.getString("ad_ctr_7day"));
+        userAd7dayActionFeature.setCvr(record.getString("ad_cvr_7day"));
         userFeature.setDay7_cnt_features(userAd7dayActionFeature);
 
 
         // 3month features
         AdActionFeature userAd3MonthActionFeature = new AdActionFeature();
-        userAd3MonthActionFeature.setOriginAdView(record.getString("ad_view_3month"));
-        userAd3MonthActionFeature.setOriginAdClick(record.getString("ad_click_3month"));
-        userAd3MonthActionFeature.setOriginAdConversion(record.getString("ad_conversion_3month"));
-        userAd3MonthActionFeature.setOriginCtr(record.getString("ad_ctr_3month"));
-        userAd3MonthActionFeature.setOriginCvr(record.getString("ad_cvr_3month"));
+        userAd3MonthActionFeature.setAdView(record.getString("ad_view_3month"));
+        userAd3MonthActionFeature.setAdClick(record.getString("ad_click_3month"));
+        userAd3MonthActionFeature.setAdConversion(record.getString("ad_conversion_3month"));
+        userAd3MonthActionFeature.setCtr(record.getString("ad_ctr_3month"));
+        userAd3MonthActionFeature.setCvr(record.getString("ad_cvr_3month"));
         userFeature.setMonth3_cnt_features(userAd3MonthActionFeature);
 
 
@@ -87,70 +87,70 @@ public class AdRedisFeatureConstructor {
 
         // ad 维度特征
         AdActionFeature adIdActionFeature1day = new AdActionFeature();
-        adIdActionFeature1day.setOriginAdView(record.getString("view_ad_1day"));
-        adIdActionFeature1day.setOriginAdClick(record.getString("click_ad_1day"));
-        adIdActionFeature1day.setOriginAdConversion(record.getString("conversion_ad_1day"));
-        adIdActionFeature1day.setOriginCtr(record.getString("ctr_ad_1day"));
-        adIdActionFeature1day.setOriginCvr(record.getString("cvr_ad_1day"));
+        adIdActionFeature1day.setAdView(record.getString("view_ad_1day"));
+        adIdActionFeature1day.setAdClick(record.getString("click_ad_1day"));
+        adIdActionFeature1day.setAdConversion(record.getString("conversion_ad_1day"));
+        adIdActionFeature1day.setCtr(record.getString("ctr_ad_1day"));
+        adIdActionFeature1day.setCvr(record.getString("cvr_ad_1day"));
         itemFeature.setDay1_cnt_features(adIdActionFeature1day);
 
         AdActionFeature adIdActionFeature3day = new AdActionFeature();
-        adIdActionFeature3day.setOriginAdView(record.getString("view_ad_3day"));
-        adIdActionFeature3day.setOriginAdClick(record.getString("click_ad_3day"));
-        adIdActionFeature3day.setOriginAdConversion(record.getString("conversion_ad_3day"));
-        adIdActionFeature3day.setOriginCtr(record.getString("ctr_ad_3day"));
-        adIdActionFeature3day.setOriginCvr(record.getString("cvr_ad_3day"));
+        adIdActionFeature3day.setAdView(record.getString("view_ad_3day"));
+        adIdActionFeature3day.setAdClick(record.getString("click_ad_3day"));
+        adIdActionFeature3day.setAdConversion(record.getString("conversion_ad_3day"));
+        adIdActionFeature3day.setCtr(record.getString("ctr_ad_3day"));
+        adIdActionFeature3day.setCvr(record.getString("cvr_ad_3day"));
         itemFeature.setDay3_cnt_features(adIdActionFeature3day);
 
         AdActionFeature adIdActionFeature7day = new AdActionFeature();
-        adIdActionFeature7day.setOriginAdView(record.getString("view_ad_7day"));
-        adIdActionFeature7day.setOriginAdClick(record.getString("click_ad_7day"));
-        adIdActionFeature7day.setOriginAdConversion(record.getString("conversion_ad_7day"));
-        adIdActionFeature7day.setOriginCtr(record.getString("ctr_ad_7day"));
-        adIdActionFeature7day.setOriginCvr(record.getString("cvr_ad_7day"));
+        adIdActionFeature7day.setAdView(record.getString("view_ad_7day"));
+        adIdActionFeature7day.setAdClick(record.getString("click_ad_7day"));
+        adIdActionFeature7day.setAdConversion(record.getString("conversion_ad_7day"));
+        adIdActionFeature7day.setCtr(record.getString("ctr_ad_7day"));
+        adIdActionFeature7day.setCvr(record.getString("cvr_ad_7day"));
         itemFeature.setDay7_cnt_features(adIdActionFeature7day);
 
         AdActionFeature adIdActionFeature3month = new AdActionFeature();
-        adIdActionFeature3month.setOriginAdView(record.getString("view_ad_3month"));
-        adIdActionFeature3month.setOriginAdClick(record.getString("click_ad_3month"));
-        adIdActionFeature3month.setOriginAdConversion(record.getString("conversion_ad_3month"));
-        adIdActionFeature3month.setOriginCtr(record.getString("ctr_ad_3month"));
-        adIdActionFeature3month.setOriginCvr(record.getString("cvr_ad_3month"));
+        adIdActionFeature3month.setAdView(record.getString("view_ad_3month"));
+        adIdActionFeature3month.setAdClick(record.getString("click_ad_3month"));
+        adIdActionFeature3month.setAdConversion(record.getString("conversion_ad_3month"));
+        adIdActionFeature3month.setCtr(record.getString("ctr_ad_3month"));
+        adIdActionFeature3month.setCvr(record.getString("cvr_ad_3month"));
         itemFeature.setMonth3_cnt_features(adIdActionFeature3month);
 
         // TODO creativeId等维度特征
         // creative 维度特征
         AdActionFeature creativeActionFeature1day = new AdActionFeature();
-        creativeActionFeature1day.setOriginAdView(record.getString("view_creative_1day"));
-        creativeActionFeature1day.setOriginAdClick(record.getString("click_creative_1day"));
-        creativeActionFeature1day.setOriginAdConversion(record.getString("conversion_creative_1day"));
-        creativeActionFeature1day.setOriginCtr(record.getString("ctr_creative_1day"));
-        creativeActionFeature1day.setOriginCvr(record.getString("cvr_creative_1day"));
+        creativeActionFeature1day.setAdView(record.getString("view_creative_1day"));
+        creativeActionFeature1day.setAdClick(record.getString("click_creative_1day"));
+        creativeActionFeature1day.setAdConversion(record.getString("conversion_creative_1day"));
+        creativeActionFeature1day.setCtr(record.getString("ctr_creative_1day"));
+        creativeActionFeature1day.setCvr(record.getString("cvr_creative_1day"));
         itemFeature.setCreative_1day_cnt_features(creativeActionFeature1day);
 
         AdActionFeature creativeActionFeature3day = new AdActionFeature();
-        creativeActionFeature3day.setOriginAdView(record.getString("view_creative_3day"));
-        creativeActionFeature3day.setOriginAdClick(record.getString("click_creative_3day"));
-        creativeActionFeature3day.setOriginAdConversion(record.getString("conversion_creative_3day"));
-        creativeActionFeature3day.setOriginCtr(record.getString("ctr_creative_3day"));
-        creativeActionFeature3day.setOriginCvr(record.getString("cvr_creative_3day"));
+        creativeActionFeature3day.setAdView(record.getString("view_creative_3day"));
+        creativeActionFeature3day.setAdClick(record.getString("click_creative_3day"));
+        creativeActionFeature3day.setAdConversion(record.getString("conversion_creative_3day"));
+        creativeActionFeature3day.setCtr(record.getString("ctr_creative_3day"));
+        creativeActionFeature3day.setCvr(record.getString("cvr_creative_3day"));
         itemFeature.setCreative_3day_cnt_features(creativeActionFeature3day);
 
         AdActionFeature creativeActionFeature7day = new AdActionFeature();
-        creativeActionFeature7day.setOriginAdView(record.getString("view_creative_7day"));
-        creativeActionFeature7day.setOriginAdClick(record.getString("click_creative_7day"));
-        creativeActionFeature7day.setOriginAdConversion(record.getString("conversion_creative_7day"));
-        creativeActionFeature7day.setOriginCtr(record.getString("ctr_creative_7day"));
-        creativeActionFeature7day.setOriginCvr(record.getString("cvr_creative_7day"));
+        creativeActionFeature7day.setAdView(record.getString("view_creative_7day"));
+        creativeActionFeature7day.setAdClick(record.getString("click_creative_7day"));
+        creativeActionFeature7day.setAdConversion(record.getString("conversion_creative_7day"));
+        creativeActionFeature7day.setCtr(record.getString("ctr_creative_7day"));
+        creativeActionFeature7day.setCvr(record.getString("cvr_creative_7day"));
         itemFeature.setCreative_7day_cnt_features(creativeActionFeature7day);
 
 
         AdActionFeature creativeActionFeature3month = new AdActionFeature();
-        creativeActionFeature3month.setOriginAdView(record.getString("view_creative_3month"));
-        creativeActionFeature3month.setOriginAdClick(record.getString("click_creative_3month"));
-        creativeActionFeature3month.setOriginAdConversion(record.getString("conversion_creative_3month"));
-        creativeActionFeature3month.setOriginCtr(record.getString("ctr_creative_3month"));
-        creativeActionFeature3month.setOriginCvr(record.getString("cvr_creative_3month"));
+        creativeActionFeature3month.setAdView(record.getString("view_creative_3month"));
+        creativeActionFeature3month.setAdClick(record.getString("click_creative_3month"));
+        creativeActionFeature3month.setAdConversion(record.getString("conversion_creative_3month"));
+        creativeActionFeature3month.setCtr(record.getString("ctr_creative_3month"));
+        creativeActionFeature3month.setCvr(record.getString("cvr_creative_3month"));
         itemFeature.setCreative_3month_cnt_features(creativeActionFeature3month);
 
 
@@ -158,36 +158,36 @@ public class AdRedisFeatureConstructor {
         // TODO advertiser维度
         // advertiser 维度特征
         AdActionFeature advidActionFeature1day = new AdActionFeature();
-        advidActionFeature1day.setOriginAdView(record.getString("view_advertiser_1day"));
-        advidActionFeature1day.setOriginAdClick(record.getString("click_advertiser_1day"));
-        advidActionFeature1day.setOriginAdConversion(record.getString("conversion_advertiser_1day"));
-        advidActionFeature1day.setOriginCtr(record.getString("ctr_advertiser_1day"));
-        advidActionFeature1day.setOriginCvr(record.getString("cvr_advertiser_1day"));
+        advidActionFeature1day.setAdView(record.getString("view_advertiser_1day"));
+        advidActionFeature1day.setAdClick(record.getString("click_advertiser_1day"));
+        advidActionFeature1day.setAdConversion(record.getString("conversion_advertiser_1day"));
+        advidActionFeature1day.setCtr(record.getString("ctr_advertiser_1day"));
+        advidActionFeature1day.setCvr(record.getString("cvr_advertiser_1day"));
         itemFeature.setAdvertiser_1day_cnt_features(advidActionFeature1day);
 
         AdActionFeature advidActionFeature3day = new AdActionFeature();
-        advidActionFeature3day.setOriginAdView(record.getString("view_advertiser_3day"));
-        advidActionFeature3day.setOriginAdClick(record.getString("click_advertiser_3day"));
-        advidActionFeature3day.setOriginAdConversion(record.getString("conversion_advertiser_3day"));
-        advidActionFeature3day.setOriginCtr(record.getString("ctr_advertiser_3day"));
-        advidActionFeature3day.setOriginCvr(record.getString("cvr_advertiser_3day"));
+        advidActionFeature3day.setAdView(record.getString("view_advertiser_3day"));
+        advidActionFeature3day.setAdClick(record.getString("click_advertiser_3day"));
+        advidActionFeature3day.setAdConversion(record.getString("conversion_advertiser_3day"));
+        advidActionFeature3day.setCtr(record.getString("ctr_advertiser_3day"));
+        advidActionFeature3day.setCvr(record.getString("cvr_advertiser_3day"));
         itemFeature.setAdvertiser_3day_cnt_features(advidActionFeature3day);
 
         AdActionFeature advidActionFeature7day = new AdActionFeature();
-        advidActionFeature7day.setOriginAdView(record.getString("view_advertiser_7day"));
-        advidActionFeature7day.setOriginAdClick(record.getString("click_advertiser_7day"));
-        advidActionFeature7day.setOriginAdConversion(record.getString("conversion_advertiser_7day"));
-        advidActionFeature7day.setOriginCtr(record.getString("ctr_advertiser_7day"));
-        advidActionFeature7day.setOriginCvr(record.getString("cvr_advertiser_7day"));
+        advidActionFeature7day.setAdView(record.getString("view_advertiser_7day"));
+        advidActionFeature7day.setAdClick(record.getString("click_advertiser_7day"));
+        advidActionFeature7day.setAdConversion(record.getString("conversion_advertiser_7day"));
+        advidActionFeature7day.setCtr(record.getString("ctr_advertiser_7day"));
+        advidActionFeature7day.setCvr(record.getString("cvr_advertiser_7day"));
         itemFeature.setAdvertiser_7day_cnt_features(advidActionFeature7day);
 
 
         AdActionFeature advidActionFeature3month = new AdActionFeature();
-        advidActionFeature3month.setOriginAdView(record.getString("view_advertiser_3month"));
-        advidActionFeature3month.setOriginAdClick(record.getString("click_advertiser_3month"));
-        advidActionFeature3month.setOriginAdConversion(record.getString("conversion_advertiser_3month"));
-        advidActionFeature3month.setOriginCtr(record.getString("ctr_advertiser_3month"));
-        advidActionFeature3month.setOriginCvr(record.getString("cvr_advertiser_3month"));
+        advidActionFeature3month.setAdView(record.getString("view_advertiser_3month"));
+        advidActionFeature3month.setAdClick(record.getString("click_advertiser_3month"));
+        advidActionFeature3month.setAdConversion(record.getString("conversion_advertiser_3month"));
+        advidActionFeature3month.setCtr(record.getString("ctr_advertiser_3month"));
+        advidActionFeature3month.setCvr(record.getString("cvr_advertiser_3month"));
         itemFeature.setAdvertiser_3month_cnt_features(advidActionFeature3month);
 
 

+ 80 - 80
src/main/java/examples/dataloader/AdSampleConstructor.java

@@ -51,39 +51,39 @@ public class AdSampleConstructor {
 
         // 1day features
         AdActionFeature user1dayActionFeature = new AdActionFeature();
-        user1dayActionFeature.setAdView(record.getString("user_view_1day"));
-        user1dayActionFeature.setAdClick(record.getString("user_click_1day"));
-        user1dayActionFeature.setAdConversion(record.getString("user_conversion_1day"));
-        user1dayActionFeature.setCtr(record.getString("user_ctr_1day"));
-        user1dayActionFeature.setCvr(record.getString("user_cvr_1day"));
+        user1dayActionFeature.setOriginAdView(record.getString("user_view_1day"));
+        user1dayActionFeature.setOriginAdClick(record.getString("user_click_1day"));
+        user1dayActionFeature.setOriginAdConversion(record.getString("user_conversion_1day"));
+        user1dayActionFeature.setOriginCtr(record.getString("user_ctr_1day"));
+        user1dayActionFeature.setOriginCvr(record.getString("user_cvr_1day"));
         userFeature.setDay1_cnt_features(user1dayActionFeature);
 
         // 3day features
         AdActionFeature user3dayActionFeature = new AdActionFeature();
-        user3dayActionFeature.setAdView(record.getString("user_view_3day"));
-        user3dayActionFeature.setAdClick(record.getString("user_click_3day"));
-        user3dayActionFeature.setAdConversion(record.getString("user_conversion_3day"));
-        user3dayActionFeature.setCtr(record.getString("user_ctr_3day"));
-        user3dayActionFeature.setCvr(record.getString("user_cvr_3day"));
+        user3dayActionFeature.setOriginAdView(record.getString("user_view_3day"));
+        user3dayActionFeature.setOriginAdClick(record.getString("user_click_3day"));
+        user3dayActionFeature.setOriginAdConversion(record.getString("user_conversion_3day"));
+        user3dayActionFeature.setOriginCtr(record.getString("user_ctr_3day"));
+        user3dayActionFeature.setOriginCvr(record.getString("user_cvr_3day"));
         userFeature.setDay3_cnt_features(user3dayActionFeature);
 
 
         // 7day features
         AdActionFeature user7dayActionFeature = new AdActionFeature();
-        user7dayActionFeature.setAdView(record.getString("user_view_7day"));
-        user7dayActionFeature.setAdClick(record.getString("user_click7day"));
-        user7dayActionFeature.setAdConversion(record.getString("user_conversion_7day"));
-        user7dayActionFeature.setCtr(record.getString("user_ctr_7day"));
-        user7dayActionFeature.setCvr(record.getString("user_cvr_7day"));
+        user7dayActionFeature.setOriginAdView(record.getString("user_view_7day"));
+        user7dayActionFeature.setOriginAdClick(record.getString("user_click7day"));
+        user7dayActionFeature.setOriginAdConversion(record.getString("user_conversion_7day"));
+        user7dayActionFeature.setOriginCtr(record.getString("user_ctr_7day"));
+        user7dayActionFeature.setOriginCvr(record.getString("user_cvr_7day"));
         userFeature.setDay7_cnt_features(user7dayActionFeature);
 
         // 3month features
         AdActionFeature user3MonthActionFeature = new AdActionFeature();
-        user3MonthActionFeature.setAdView(record.getString("user_view_3month"));
-        user3MonthActionFeature.setAdClick(record.getString("user_click_3month"));
-        user3MonthActionFeature.setAdConversion(record.getString("user_conversion_3month"));
-        user3MonthActionFeature.setCtr(record.getString("user_ctr_3month"));
-        user3MonthActionFeature.setCvr(record.getString("user_cvr_3month"));
+        user3MonthActionFeature.setOriginAdView(record.getString("user_view_3month"));
+        user3MonthActionFeature.setOriginAdClick(record.getString("user_click_3month"));
+        user3MonthActionFeature.setOriginAdConversion(record.getString("user_conversion_3month"));
+        user3MonthActionFeature.setOriginCtr(record.getString("user_ctr_3month"));
+        user3MonthActionFeature.setOriginCvr(record.getString("user_cvr_3month"));
         userFeature.setMonth3_cnt_features(user3MonthActionFeature);
 
         return userFeature;
@@ -102,116 +102,116 @@ public class AdSampleConstructor {
 
         // 1day features
         AdActionFeature user1dayActionFeature = new AdActionFeature();
-        user1dayActionFeature.setAdView(record.getString("ad_view_1day"));
-        user1dayActionFeature.setAdClick(record.getString("ad_click_1day"));
-        user1dayActionFeature.setAdConversion(record.getString("ad_conversion_1day"));
-        user1dayActionFeature.setCtr(record.getString("ad_ctr_1day"));
-        user1dayActionFeature.setCvr(record.getString("ad_cvr_1day"));
+        user1dayActionFeature.setOriginAdView(record.getString("ad_view_1day"));
+        user1dayActionFeature.setOriginAdClick(record.getString("ad_click_1day"));
+        user1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_1day"));
+        user1dayActionFeature.setOriginCtr(record.getString("ad_ctr_1day"));
+        user1dayActionFeature.setOriginCvr(record.getString("ad_cvr_1day"));
         itemFeature.setDay1_cnt_features(user1dayActionFeature);
 
         // 3day features
         AdActionFeature user3dayActionFeature = new AdActionFeature();
-        user3dayActionFeature.setAdView(record.getString("ad_view_3day"));
-        user3dayActionFeature.setAdClick(record.getString("ad_click_3day"));
-        user3dayActionFeature.setAdConversion(record.getString("ad_conversion_3day"));
-        user3dayActionFeature.setCtr(record.getString("ad_ctr_3day"));
-        user3dayActionFeature.setCvr(record.getString("ad_cvr_3day"));
+        user3dayActionFeature.setOriginAdView(record.getString("ad_view_3day"));
+        user3dayActionFeature.setOriginAdClick(record.getString("ad_click_3day"));
+        user3dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_3day"));
+        user3dayActionFeature.setOriginCtr(record.getString("ad_ctr_3day"));
+        user3dayActionFeature.setOriginCvr(record.getString("ad_cvr_3day"));
         itemFeature.setDay3_cnt_features(user3dayActionFeature);
 
 
         // 7day features
         AdActionFeature user7dayActionFeature = new AdActionFeature();
-        user7dayActionFeature.setAdView(record.getString("ad_view_7day"));
-        user7dayActionFeature.setAdClick(record.getString("ad_click_7day"));
-        user7dayActionFeature.setAdConversion(record.getString("ad_conversion_7day"));
-        user7dayActionFeature.setCtr(record.getString("ad_ctr_7day"));
-        user7dayActionFeature.setCvr(record.getString("ad_cvr_7day"));
+        user7dayActionFeature.setOriginAdView(record.getString("ad_view_7day"));
+        user7dayActionFeature.setOriginAdClick(record.getString("ad_click_7day"));
+        user7dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_7day"));
+        user7dayActionFeature.setOriginCtr(record.getString("ad_ctr_7day"));
+        user7dayActionFeature.setOriginCvr(record.getString("ad_cvr_7day"));
         itemFeature.setDay7_cnt_features(user7dayActionFeature);
 
         // 3month features
         AdActionFeature user3MonthActionFeature = new AdActionFeature();
-        user3MonthActionFeature.setAdView(record.getString("ad_view_3month"));
-        user3MonthActionFeature.setAdClick(record.getString("ad_click_3month"));
-        user3MonthActionFeature.setAdConversion(record.getString("ad_conversion_3month"));
-        user3MonthActionFeature.setCtr(record.getString("ad_ctr_3month"));
-        user3MonthActionFeature.setCvr(record.getString("ad_cvr_3month"));
+        user3MonthActionFeature.setOriginAdView(record.getString("ad_view_3month"));
+        user3MonthActionFeature.setOriginAdClick(record.getString("ad_click_3month"));
+        user3MonthActionFeature.setOriginAdConversion(record.getString("ad_conversion_3month"));
+        user3MonthActionFeature.setOriginCtr(record.getString("ad_ctr_3month"));
+        user3MonthActionFeature.setOriginCvr(record.getString("ad_cvr_3month"));
         itemFeature.setMonth3_cnt_features(user3MonthActionFeature);
 
 
         //TODO  CREATIVE 维度  需要在样本中补齐
         AdActionFeature creative1dayFeature = new AdActionFeature();
-        creative1dayFeature.setAdView(record.getString("view_creative_1day"));
-        creative1dayFeature.setAdClick(record.getString("click_creative_1day"));
-        creative1dayFeature.setAdConversion(record.getString("conversion_creative_1day"));
-        creative1dayFeature.setCtr(record.getString("ctr_creative_1day"));
-        creative1dayFeature.setCvr(record.getString("cvr_creative_1day"));
+        creative1dayFeature.setOriginAdView(record.getString("view_creative_1day"));
+        creative1dayFeature.setOriginAdClick(record.getString("click_creative_1day"));
+        creative1dayFeature.setOriginAdConversion(record.getString("conversion_creative_1day"));
+        creative1dayFeature.setOriginCtr(record.getString("ctr_creative_1day"));
+        creative1dayFeature.setOriginCvr(record.getString("cvr_creative_1day"));
         itemFeature.setCreative_1day_cnt_features(creative1dayFeature);
 
         // 3day features
         AdActionFeature creative3dayFeature = new AdActionFeature();
-        creative3dayFeature.setAdView(record.getString("view_creative_3day"));
-        creative3dayFeature.setAdClick(record.getString("click_creative_3day"));
-        creative3dayFeature.setAdConversion(record.getString("conversion_creative_3day"));
-        creative3dayFeature.setCtr(record.getString("ctr_creative_3day"));
-        creative3dayFeature.setCvr(record.getString("cvr_creative_3day"));
+        creative3dayFeature.setOriginAdView(record.getString("view_creative_3day"));
+        creative3dayFeature.setOriginAdClick(record.getString("click_creative_3day"));
+        creative3dayFeature.setOriginAdConversion(record.getString("conversion_creative_3day"));
+        creative3dayFeature.setOriginCtr(record.getString("ctr_creative_3day"));
+        creative3dayFeature.setOriginCvr(record.getString("cvr_creative_3day"));
         itemFeature.setCreative_3day_cnt_features(creative3dayFeature);
 
 
         // 7day features
         AdActionFeature creative7dayFeature = new AdActionFeature();
-        creative7dayFeature.setAdView(record.getString("view_creative_7day"));
-        creative7dayFeature.setAdClick(record.getString("click_creative_7day"));
-        creative7dayFeature.setAdConversion(record.getString("conversion_creative_7day"));
-        creative7dayFeature.setCtr(record.getString("ctr_creative_7day"));
-        creative7dayFeature.setCvr(record.getString("cvr_creative_7day"));
+        creative7dayFeature.setOriginAdView(record.getString("view_creative_7day"));
+        creative7dayFeature.setOriginAdClick(record.getString("click_creative_7day"));
+        creative7dayFeature.setOriginAdConversion(record.getString("conversion_creative_7day"));
+        creative7dayFeature.setOriginCtr(record.getString("ctr_creative_7day"));
+        creative7dayFeature.setOriginCvr(record.getString("cvr_creative_7day"));
         itemFeature.setCreative_7day_cnt_features(creative7dayFeature);
 
         // 3month features
         AdActionFeature creative3MonthFeature = new AdActionFeature();
-        creative3MonthFeature.setAdView(record.getString("view_creative_3month"));
-        creative3MonthFeature.setAdClick(record.getString("click_creative_3month"));
-        creative3MonthFeature.setAdConversion(record.getString("conversion_creative_3month"));
-        creative3MonthFeature.setCtr(record.getString("ctr_creative_3month"));
-        creative3MonthFeature.setCvr(record.getString("cvr_creative_3month"));
+        creative3MonthFeature.setOriginAdView(record.getString("view_creative_3month"));
+        creative3MonthFeature.setOriginAdClick(record.getString("click_creative_3month"));
+        creative3MonthFeature.setOriginAdConversion(record.getString("conversion_creative_3month"));
+        creative3MonthFeature.setOriginCtr(record.getString("ctr_creative_3month"));
+        creative3MonthFeature.setOriginCvr(record.getString("cvr_creative_3month"));
         itemFeature.setCreative_3month_cnt_features(creative3MonthFeature);
 
 
         // advertiser id
         // 1day features
         AdActionFeature advertiser1dayFeature = new AdActionFeature();
-        advertiser1dayFeature.setAdView(record.getString("advertiser_view_1day"));
-        advertiser1dayFeature.setAdClick(record.getString("advertiser_click_1day"));
-        advertiser1dayFeature.setAdConversion(record.getString("advertiser_conversion_1day"));
-        advertiser1dayFeature.setCtr(record.getString("advertiser_ctr_1day"));
-        advertiser1dayFeature.setCvr(record.getString("advertiser_cvr_1day"));
+        advertiser1dayFeature.setOriginAdView(record.getString("advertiser_view_1day"));
+        advertiser1dayFeature.setOriginAdClick(record.getString("advertiser_click_1day"));
+        advertiser1dayFeature.setOriginAdConversion(record.getString("advertiser_conversion_1day"));
+        advertiser1dayFeature.setOriginCtr(record.getString("advertiser_ctr_1day"));
+        advertiser1dayFeature.setOriginCvr(record.getString("advertiser_cvr_1day"));
         itemFeature.setAdvertiser_1day_cnt_features(advertiser1dayFeature);
 
         // 3day features
         AdActionFeature advertiser3dayFeature = new AdActionFeature();
-        advertiser3dayFeature.setAdView(record.getString("advertiser_view_3day"));
-        advertiser3dayFeature.setAdClick(record.getString("advertiser_click_3day"));
-        advertiser3dayFeature.setAdConversion(record.getString("advertiser_conversion_3day"));
-        advertiser3dayFeature.setCtr(record.getString("advertiser_ctr_3day"));
-        advertiser3dayFeature.setCvr(record.getString("advertiser_cvr_3day"));
+        advertiser3dayFeature.setOriginAdView(record.getString("advertiser_view_3day"));
+        advertiser3dayFeature.setOriginAdClick(record.getString("advertiser_click_3day"));
+        advertiser3dayFeature.setOriginAdConversion(record.getString("advertiser_conversion_3day"));
+        advertiser3dayFeature.setOriginCtr(record.getString("advertiser_ctr_3day"));
+        advertiser3dayFeature.setOriginCvr(record.getString("advertiser_cvr_3day"));
         itemFeature.setAdvertiser_3day_cnt_features(advertiser3dayFeature);
 
 
         // 7day features
         AdActionFeature advertiser7dayFeature = new AdActionFeature();
-        advertiser7dayFeature.setAdView(record.getString("advertiser_view_7day"));
-        advertiser7dayFeature.setAdClick(record.getString("advertiser_click_7day"));
-        advertiser7dayFeature.setAdConversion(record.getString("advertiser_conversion_7day"));
-        advertiser7dayFeature.setCtr(record.getString("advertiser_ctr_7day"));
-        advertiser7dayFeature.setCvr(record.getString("advertiser_cvr_7day"));
+        advertiser7dayFeature.setOriginAdView(record.getString("advertiser_view_7day"));
+        advertiser7dayFeature.setOriginAdClick(record.getString("advertiser_click_7day"));
+        advertiser7dayFeature.setOriginAdConversion(record.getString("advertiser_conversion_7day"));
+        advertiser7dayFeature.setOriginCtr(record.getString("advertiser_ctr_7day"));
+        advertiser7dayFeature.setOriginCvr(record.getString("advertiser_cvr_7day"));
         itemFeature.setAdvertiser_7day_cnt_features(advertiser7dayFeature);
 
         // 3month features
         AdActionFeature advertiser3monthFeature = new AdActionFeature();
-        advertiser3monthFeature.setAdView(record.getString("advertiser_view_3month"));
-        advertiser3monthFeature.setAdClick(record.getString("advertiser_view_3month"));
-        advertiser3monthFeature.setAdConversion(record.getString("advertiser_conversion_3month"));
-        advertiser3monthFeature.setCtr(record.getString("advertiser_ctr_3month"));
-        advertiser3monthFeature.setCvr(record.getString("advertiser_cvr_3month"));
+        advertiser3monthFeature.setOriginAdView(record.getString("advertiser_view_3month"));
+        advertiser3monthFeature.setOriginAdClick(record.getString("advertiser_view_3month"));
+        advertiser3monthFeature.setOriginAdConversion(record.getString("advertiser_conversion_3month"));
+        advertiser3monthFeature.setOriginCtr(record.getString("advertiser_ctr_3month"));
+        advertiser3monthFeature.setOriginCvr(record.getString("advertiser_cvr_3month"));
         itemFeature.setAdvertiser_3month_cnt_features(advertiser3monthFeature);
 
 

+ 20 - 13
src/main/java/examples/sparksql/SparkAdCTRSampleLoader.java

@@ -8,6 +8,8 @@ import com.tzld.piaoquan.recommend.feature.domain.ad.base.*;
 import com.tzld.piaoquan.recommend.feature.domain.ad.feature.VlogAdCtrLRFeatureExtractor;
 import com.tzld.piaoquan.recommend.feature.model.sample.BaseFeature;
 import com.tzld.piaoquan.recommend.feature.model.sample.FeatureGroup;
+import com.tzld.piaoquan.recommend.feature.model.sample.GroupedFeature;
+import com.tzld.piaoquan.recommend.feature.model.sample.LRSamples;
 import examples.dataloader.AdSampleConstructor;
 import org.apache.spark.SparkConf;
 import org.apache.spark.aliyun.odps.OdpsOps;
@@ -16,6 +18,7 @@ import org.apache.spark.api.java.JavaSparkContext;
 import org.apache.spark.api.java.function.Function2;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 
@@ -56,7 +59,7 @@ public class SparkAdCTRSampleLoader {
     public static String singleParse(Record record, String labelName) {
         // 数据解析
         String label = record.getString(labelName);
-        if (label == null || label.equals("0")) {
+        if (label == null || label.equals("1")) {
             label = "0";
         } else {
             label = "1";
@@ -76,25 +79,29 @@ public class SparkAdCTRSampleLoader {
         VlogAdCtrLRFeatureExtractor bytesFeatureExtractor;
         bytesFeatureExtractor = new VlogAdCtrLRFeatureExtractor();
 
-        bytesFeatureExtractor.getUserFeatures(userBytesFeature);
-        bytesFeatureExtractor.getItemFeature(adItemBytesFeature);
-        bytesFeatureExtractor.getContextFeatures(adRequestContextBytesFeature);
-        bytesFeatureExtractor.getCrossFeature(adItemBytesFeature, adRequestContextBytesFeature, userBytesFeature);
+        LRSamples lrSamples = bytesFeatureExtractor.single(userBytesFeature, adItemBytesFeature, adRequestContextBytesFeature);
 
-        ListMultimap<FeatureGroup, BaseFeature> featureMap = bytesFeatureExtractor.getFeatures();
-        return parseSamplesToString(label, featureMap);
+        return parseSamplesToString2(label, lrSamples);
     }
 
+
+
     // 构建样本的字符串
-    public static String parseSamplesToString(String label, ListMultimap<FeatureGroup, BaseFeature> featureMap) {
+    public static String parseSamplesToString2(String label, LRSamples lrSamples) {
         ArrayList<String> featureList = new ArrayList<String>();
-        for (Map.Entry<FeatureGroup, BaseFeature> entry : featureMap.entries()) {
-            FeatureGroup groupedFeature = entry.getKey();
-            BaseFeature baseFeature = entry.getValue();
-            Long featureIdentifier = baseFeature.getIdentifier();
-            featureList.add(String.valueOf(featureIdentifier) + ":1");
+        for (int i = 0; i < lrSamples.getFeaturesCount(); i++) {
+            GroupedFeature groupedFeature = lrSamples.getFeatures(i);
+            if (groupedFeature != null && groupedFeature.getFeaturesCount() != 0) {
+                for (int j = 0; j < groupedFeature.getFeaturesCount(); j++) {
+                    BaseFeature baseFeature = groupedFeature.getFeatures(j);
+                    if (baseFeature != null) {
+                        featureList.add(String.valueOf(baseFeature.getIdentifier()));
+                    }
+                }
+            }
         }
         return label + "\t" + String.join("\t", featureList);
     }
 
+
 }

+ 102 - 0
src/main/java/examples/sparksql/SparkAdCVRSampleLoader.java

@@ -0,0 +1,102 @@
+package examples.sparksql;
+
+import com.aliyun.odps.TableSchema;
+import com.aliyun.odps.data.Record;
+import com.google.common.collect.ListMultimap;
+import com.tzld.piaoquan.recommend.feature.domain.ad.base.*;
+import com.tzld.piaoquan.recommend.feature.domain.ad.feature.VlogAdCtrLRFeatureExtractor;
+import com.tzld.piaoquan.recommend.feature.model.sample.BaseFeature;
+import com.tzld.piaoquan.recommend.feature.model.sample.FeatureGroup;
+import com.tzld.piaoquan.recommend.feature.model.sample.GroupedFeature;
+import com.tzld.piaoquan.recommend.feature.model.sample.LRSamples;
+import examples.dataloader.AdSampleConstructor;
+import org.apache.spark.SparkConf;
+import org.apache.spark.aliyun.odps.OdpsOps;
+import org.apache.spark.api.java.JavaRDD;
+import org.apache.spark.api.java.JavaSparkContext;
+import org.apache.spark.api.java.function.Function2;
+
+import java.util.ArrayList;
+import java.util.Map;
+
+
+public class SparkAdCVRSampleLoader {
+
+    public static void main(String[] args) {
+
+        String partition = args[0];
+        String accessId = "LTAIWYUujJAm7CbH";
+        String accessKey = "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P";
+        String odpsUrl = "http://service.odps.aliyun.com/api";
+        String tunnelUrl = "http://dt.cn-hangzhou.maxcompute.aliyun-inc.com";
+        String project = "loghubods";
+        String table = "alg_ad_view_sample";
+        String hdfsPath = "/dw/recommend/model/ad_cvr_samples/" + partition;
+
+        SparkConf sparkConf = new SparkConf().setAppName("E-MapReduce Demo 3-2: Spark MaxCompute Demo (Java)");
+        JavaSparkContext jsc = new JavaSparkContext(sparkConf);
+        OdpsOps odpsOps = new OdpsOps(jsc.sc(), accessId, accessKey, odpsUrl, tunnelUrl);
+        System.out.println("Read odps table...");
+
+        JavaRDD<Record> readData = odpsOps.readTableWithJava(project, table, partition, new RecordsToSamples(), Integer.valueOf(30));
+        readData.filter(row -> row.getString("adclick_ornot").equals("0")).map(line -> singleParse(line)).saveAsTextFile(hdfsPath);
+    }
+
+
+    static class RecordsToSamples implements Function2<Record, TableSchema, Record> {
+        @Override
+        public Record call(Record record, TableSchema schema) throws Exception {
+            return record;
+        }
+    }
+
+
+    // 单条日志处理逻辑
+    public static String singleParse(Record record) {
+        // 数据解析
+        String label = record.getString("adinvert_ornot");
+        if (label == null || label.equals("1")) {
+            label = "0";
+        } else {
+            label = "1";
+        }
+
+
+        // 从sql的 record中 初始化对象内容
+        AdRequestContext requestContext = AdSampleConstructor.constructRequestContext(record);
+        UserAdFeature userFeature = AdSampleConstructor.constructUserFeature(record);
+        AdItemFeature itemFeature = AdSampleConstructor.constructItemFeature(record);
+
+        // 转化成bytes
+        AdRequestContextBytesFeature adRequestContextBytesFeature = new AdRequestContextBytesFeature(requestContext);
+        UserAdBytesFeature userBytesFeature = new UserAdBytesFeature(userFeature);
+        AdItemBytesFeature adItemBytesFeature = new AdItemBytesFeature(itemFeature);
+
+        // 特征抽取
+        VlogAdCtrLRFeatureExtractor bytesFeatureExtractor;
+        bytesFeatureExtractor = new VlogAdCtrLRFeatureExtractor();
+
+        LRSamples lrSamples = bytesFeatureExtractor.single(userBytesFeature, adItemBytesFeature, adRequestContextBytesFeature);
+
+        return parseSamplesToString2(label, lrSamples);
+    }
+
+
+    // 构建样本的字符串
+    public static String parseSamplesToString2(String label, LRSamples lrSamples) {
+        ArrayList<String> featureList = new ArrayList<String>();
+        for (int i = 0; i < lrSamples.getFeaturesCount(); i++) {
+            GroupedFeature groupedFeature = lrSamples.getFeatures(i);
+            if (groupedFeature != null && groupedFeature.getFeaturesCount() != 0) {
+                for (int j = 0; j < groupedFeature.getFeaturesCount(); j++) {
+                    BaseFeature baseFeature = groupedFeature.getFeatures(j);
+                    if (baseFeature != null) {
+                        featureList.add(String.valueOf(baseFeature.getIdentifier()));
+                    }
+                }
+            }
+        }
+        return label + "\t" + String.join("\t", featureList);
+    }
+
+}

+ 5 - 0
src/main/scala/com/tzld/recommend/recall/algo/CollaborativeFilteringAlgo.scala

@@ -0,0 +1,5 @@
+package com.tzld.recommend.recall.algo
+
+class CollaborativeFilteringAlgo {
+
+}