ソースを参照

修改 汤普森模型不走pid控制器

gufengshou1 1 年間 前
コミット
6e1de1ec8f

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VlogAdThompsonScorer.java

@@ -91,7 +91,7 @@ public class VlogAdThompsonScorer extends BaseThompsonSamplingScorer {
         try {
             pctr = model.score(item, "ctr");
             pcvr = model.score(item, "cvr");
-            ecpm =  (item.getCpa()+item.getPidLambda())* item.getBid1() * item.getBid2() * pctr * pcvr;
+            ecpm = item.getCpa() * item.getBid1() * item.getBid2() * pctr * pcvr;
         } catch (Exception e) {
             LOGGER.error("score error for doc={} exception={}", new Object[]{
                     item.getAdId(), ExceptionUtils.getFullStackTrace(e)});

+ 7 - 2
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VlogMergeEcpmScorer.java

@@ -45,7 +45,7 @@ public class VlogMergeEcpmScorer extends BaseLRModelScorer {
 
         for (AdRankItem item : items) {
             try {
-                boolean isTfType=item.getItemFeature().getCreative_7day_cnt_features().getAdView()<1000;
+                boolean isTfType=item.getItemFeature().getCreative_7day_cnt_features().getAdView()<10000;
                 double cpa = item.getCpa();
                 double bid1 = item.getBid1();
                 double bid2 = item.getBid2();
@@ -53,7 +53,12 @@ public class VlogMergeEcpmScorer extends BaseLRModelScorer {
                 double pcvr = isTfType?item.getTf_cvr():item.getCvr();
                 item.setScore_type( isTfType?1:0);
                 //todo
-                double ecpm = (cpa+item.getPidLambda()) * bid1 * bid2 * pcvr * pctr * 1000d;
+                double ecpm;
+                if(isTfType){
+                    ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000d;
+                }else {
+                    ecpm = (cpa+item.getPidLambda()) * bid1 * bid2 * pcvr * pctr * 1000d;
+                }
 //                double ecpm = cpa * bid1 * bid2 * pcvr * pctr;
                 item.setEcpm1(ecpm/1000d);
                 item.setScore(ecpm/1000d);