Переглянути джерело

Merge branch 'feature_gufengshou_20240401_pid_v6' into pre-master

gufengshou1 1 рік тому
батько
коміт
eb80e1e70b

+ 5 - 6
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/container/PidLambdaContainer.java

@@ -58,10 +58,10 @@ public class PidLambdaContainer {
     @Value("${ad.model.pid.kd:0.2}")
     Double kd = 0d;
 
-    @Value("${ad.model.pid.v2.lambda.max:5.0}")
+    @Value("${ad.model.pid.lambda.max:5.0}")
     Double maxLambda = 0d;
 
-    @Value("${ad.model.pid.v2.lambda.min:0.8}")
+    @Value("${ad.model.pid.lambda.min:0.2}")
     Double minLambda = 0d;
     OSS client;
 
@@ -127,8 +127,8 @@ public class PidLambdaContainer {
                     }
                     latestRealCPA=realCost/conversion;
                     Double lambdaNew =cacheItem.calculate(kp,ki,kd,cpa,latestRealCPA);
-                    if(lambdaNew<0.5){
-                        lambdaNew=0.5;
+                    if(lambdaNew<minLambda){
+                        lambdaNew=minLambda;
                     }
                     cacheItem.lambda=lambdaNew;
                     cacheItem.latestRealCpa=latestRealCPA;
@@ -206,7 +206,7 @@ public class PidLambdaContainer {
 
         public Long creativeId;
 
-        public double lambda=1d;
+        public double lambda=-1d;
 
         public double latestConv=0d;
 
@@ -228,7 +228,6 @@ public class PidLambdaContainer {
             return kp * error + ki * integral + kd * derivative;
         }
 
-
         public void reset() {
             integral = 0;
             lastError = 0;

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

@@ -145,14 +145,22 @@ public class RankServiceImpl implements RankService {
         if(!cache.isEmpty()){
             rankItems=new LinkedList<>(cache.values());
         }
+        double lambda=-1d;
         for(AdRankItem item:rankItems){
             try {
 //                AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()+"").get(0);
                 AdPlatformBidCreativeDTO dto=groupMap.get(item.getAdId()).get(0);
                 item.setBid1(dto.getBid1());
                 item.setBid2(dto.getBid2());
-                item.setCpa(dto.getCpa());
-                item.setPidLambda(PidLambdaContainer.getPidLambda(item.getAdId()));
+                lambda=PidLambdaContainer.getPidLambda(item.getAdId());
+                if(lambda<0){
+                    item.setCpa(dto.getCpa());
+                    item.setPidLambda(0.8);
+                }else {
+                    item.setCpa(PidLambdaContainer.getPidLambda(item.getAdId()));
+                    item.setPidLambda(1d);
+                }
+
             }catch (Exception e){
                 log.error("rankItems info error itemId={}",item.getAdId());
                 e.printStackTrace();