浏览代码

增加修正系数beta_k

gufengshou1 11 月之前
父节点
当前提交
aadbe6ff44

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

@@ -117,6 +117,7 @@ public class VideoAdThompsonScorerV2 {
         adIdList.forEach(creativeDTO -> {
             redisKey.add(redisCreativeStatisticsPrefix+creativeDTO.getCreativeId());
         });
+        //view/sum(view)
         List<String> values=redisHelper.getValues(redisKey);
         int i=0;
         double score=0d;
@@ -132,7 +133,7 @@ public class VideoAdThompsonScorerV2 {
                 }else {
                     statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
                     score = betaSampler(exp665Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
-                            exp665Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                            (exp665Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())))/ (1+exp665Param.getOrDefault("beta_k",9d));
                 }
                 score=score*dto.getCpa()*dto.getBid1()*dto.getBid2();
                 item.setScore(score);
@@ -177,15 +178,18 @@ public class VideoAdThompsonScorerV2 {
                         score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d));
                     }else {
                         statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     }
                 }else {
                     statistic =gson.fromJson(jsonStr,CreativeStatistic.class);
                     if(Double.parseDouble(statistic.getExp())>exp666Param.getOrDefault("viewThreshold",5000d)){
-                        score = betaSampler(1d+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(1d+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     } else if( values.get(i)!=null) {
                         statistic =gson.fromJson(values.get(i),CreativeStatistic.class);
-                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) , exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp())) ;
+                        score = betaSampler(exp666Param.getOrDefault("alpha",1d)+Long.parseLong(statistic.getOrder()) ,
+                                (exp666Param.getOrDefault("beta",100000d)+Long.parseLong(statistic.getExp()))/(1+exp666Param.getOrDefault("beta_k",9d))) ;
                     }else {
                         score = betaSampler(exp666Param.getOrDefault("alpha",1d),exp666Param.getOrDefault("beta",100000d));
                     }