Bladeren bron

Merge branch 'feature_gufengshou_20240325_pid_v5' into test

gufengshou1 1 jaar geleden
bovenliggende
commit
8755fc02b8

+ 19 - 3
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/container/PidLambdaV2Container.java

@@ -41,7 +41,7 @@ public class PidLambdaV2Container {
     @Value("${model.oss.bucketName:art-recommend}")
     String bucketName = "";
 
-    @Value("${model.oss.pid.v2.filename.lambda:pid/lambdaV2.txt}")
+    @Value("${model.oss.pid.v2.filename.lambda:pid/lambdaV2_test.txt}")
     String lambdaFileName = "";
 
     @Value("${model.oss.pid.v2.filename.dCpa:pid/dCpaV2.txt}")
@@ -100,11 +100,27 @@ public class PidLambdaV2Container {
                     Double conversion=Double.parseDouble(cols[1]);
                     Double cpa=Double.parseDouble(cols[2]);
                     Double realCost=Double.parseDouble(cols[3]);
+                    Double yesterdayConv=Double.parseDouble(cols[4]);
+                    Double yesterdayCpa=Double.parseDouble(cols[5]);
+                    Double yesterdayRealCost=Double.parseDouble(cols[6]);
                     Double lambdaNew=1d;
-                    if(cpa*conversion!=0&&!realCost.equals(0d)){
-                        lambdaNew=(cpa*conversion)/realCost;
+                    if((conversion+yesterdayConv)!=0){
+//                        if(cpa*conversion!=0&&!realCost.equals(0d)){
+//                        lambdaNew=(cpa*conversion)/realCost;
+//                        }
+                        if((realCost*yesterdayRealCost)!=0){
+                            double yesterdayW=yesterdayConv/(yesterdayConv+2*conversion);
+                            lambdaNew=(yesterdayW*yesterdayConv*yesterdayCpa)/yesterdayRealCost
+                                    +(1-yesterdayW)*(cpa*conversion)/realCost;
+                        }else if(realCost!=0){
+                            lambdaNew=(cpa*conversion)/realCost;
+                        }else if(yesterdayRealCost!=0){
+                            lambdaNew=(yesterdayConv*yesterdayCpa)/yesterdayRealCost;
+                        }
+
                     }
 
+
                     if(lambdaNew>maxLambda){
                         lambdaNew=maxLambda;
                     }else if(lambdaNew<minLambda){