Browse Source

Merge branch 'ocpm_bid_engine_scores' into test

gufengshou1 1 year ago
parent
commit
b1e583b420

+ 14 - 4
ad-engine-commons/src/main/java/com/tzld/piaoquan/ad/engine/commons/score/model/ThompsonSamplingModel.java

@@ -28,6 +28,10 @@ public class ThompsonSamplingModel extends Model {
     // key = adid, value = <exp, click, conversation>
     private Map<Long, AdActionFeature> thompsonSamplingModel;
 
+    private static final int alpha = 6;
+    private static final int beta_click = 100;
+    private static final int beta_conversion = 1000;
+
     public ThompsonSamplingModel() {
         //配置不同环境的hdfs conf
         this.thompsonSamplingModel = new HashMap<>();
@@ -80,10 +84,16 @@ public class ThompsonSamplingModel extends Model {
     public double score(AdRankItem adRankItem, String ctrOrCVR) {
         double score = 0.0f;
         AdActionFeature adActionFeature = this.thompsonSamplingModel.get(adRankItem.getAdId());
-        if(ctrOrCVR.equals("ctr"))
-            score = this.betaSampler(adActionFeature.getAdClick(), adActionFeature.getAdView());
-        if(ctrOrCVR.equals("cvr"))
-            score = this.betaSampler(adActionFeature.getAdConversion(), adActionFeature.getAdView());
+        if (ctrOrCVR.equals("ctr")){
+            int alpha_ctr = (int) adActionFeature.getAdClick() + this.alpha ;
+            int beta_ctr = this.beta_click + (int)adActionFeature.getAdView() - (int)adActionFeature.getAdClick();
+            score = this.betaSampler(alpha_ctr, beta_ctr);
+        }
+        if (ctrOrCVR.equals("cvr")){
+            int alpha_cvr = (int) adActionFeature.getAdClick() + this.alpha ;
+            int beta_cvr = this.beta_conversion + (int)adActionFeature.getAdView() - (int)adActionFeature.getAdConversion();
+            score = this.betaSampler(alpha_cvr, beta_cvr);
+        }
         return score;
     }
 

+ 0 - 1
ad-engine-server/src/main/java/com/tzld/piaoquan/ad/engine/server/controller/AdRecommendController.java

@@ -45,7 +45,6 @@ public class AdRecommendController {
         map.put("code","0");
         map.put("msg","success");
         map.put("content",rankResult);
-
         return map;
     }
 

+ 2 - 13
ad-engine-server/src/main/resources/feeds_score_config_baseline.conf

@@ -6,23 +6,12 @@ scorer-config = {
   }
   lr-cvr-score-config = {
       scorer-name = "com.tzld.piaoquan.ad.engine.service.score.VlogAdCvrLRScorer"
-      scorer-priority = 99
+      scorer-priority = 98
       model-path = "ad_cvr_model/model_ad_cvr.txt"
   }
-  lr-ctr-calibretion-config = {
-      scorer-name = "com.tzld.piaoquan.ad.engine.service.score.VlogAdCtrCalibrationScorer"
-      scorer-priority = 99
-      model-path = "ad_ctr_calibration/model_ctr_calibration.txt"
-  }
-
-  lr-cvr-calibretion-config = {
-      scorer-name = "com.tzld.piaoquan.ad.engine.service.score.VlogAdCvrCalibrationScorer"
-      scorer-priority = 99
-      model-path = "ad_cvr_calibration/model_cvr_calibration.txt"
-  }
   lr-ecpm-merge-config = {
       scorer-name = "com.tzld.piaoquan.ad.engine.service.score.VlogMergeEcpmScorer"
-      scorer-priority = 99
+      scorer-priority = 97
   }
 
 }

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

@@ -50,7 +50,9 @@ public class VlogMergeEcpmScorer extends BaseLRModelScorer {
                 double bid2 = item.getBid2();
                 double pctr = item.getCtr();
                 double pcvr = item.getCvr();
-                double ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000;
+                //todo
+//                double ecpm = cpa * bid1 * bid2 * pcvr * pctr * 1000;
+                double ecpm = cpa * bid1 * bid2 * pcvr * pctr;
                 item.setEcpm1(ecpm);
                 item.setScore(ecpm);
             } catch (Exception e) {

+ 2 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -104,6 +104,8 @@ public class RankServiceImpl implements RankService {
                 .build();
         BeanUtils.copyProperties(topItem,result);
         result.setCreativeId(topItem.getAdId());
+        result.setPctr(topItem.getCtr());
+        result.setPcvr(topItem.getCvr());
         result.setCreativeCode(groupMap.get(topItem.getAdId()+"").get(0).getCreativeCode());
         if(rankResult.size()<=1){
             //经验值 待定