|  | @@ -29,7 +29,7 @@ import java.util.concurrent.Future;
 | 
	
		
			
				|  |  |  import java.util.concurrent.TimeUnit;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import static com.tzld.piaoquan.ad.engine.commons.math.Const.WILSON_ZSCORE;
 | 
	
		
			
				|  |  | +import static com.tzld.piaoquan.ad.engine.commons.math.Const.*;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @Slf4j
 | 
	
		
			
				|  |  |  @Component
 | 
	
	
		
			
				|  | @@ -215,6 +215,7 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |          long time5 = System.currentTimeMillis();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // calibrate score for negative sampling
 | 
	
		
			
				|  |  | +        /* 02-11 update: 因模型换回基线无采样模型,取消校准
 | 
	
		
			
				|  |  |          for (AdRankItem item : result) {
 | 
	
		
			
				|  |  |              double originalScore = item.getLrScore();
 | 
	
		
			
				|  |  |              double calibratedScore = originalScore / (originalScore + (1 - originalScore) / negSampleRate);
 | 
	
	
		
			
				|  | @@ -222,6 +223,7 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |              item.getScoreMap().put("originCtcvrScore", originalScore);
 | 
	
		
			
				|  |  |              item.getScoreMap().put("ctcvrScore", calibratedScore);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // loop
 | 
	
		
			
				|  |  |          double cpmCoefficient = weightParam.getOrDefault("cpmCoefficient", 0.9);
 | 
	
	
		
			
				|  | @@ -330,12 +332,12 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |                  double conver = Double.parseDouble(feature.getOrDefault("ad_conversion_" + time, "0"));
 | 
	
		
			
				|  |  |                  double income = Double.parseDouble(feature.getOrDefault("ad_income_" + time, "0"));
 | 
	
		
			
				|  |  |                  double cpc = NumUtil.div(income, click);
 | 
	
		
			
				|  |  | -                double ctr = NumUtil.divSmoothV1(click, view, WILSON_ZSCORE);
 | 
	
		
			
				|  |  | -                double ctcvr = NumUtil.divSmoothV1(conver, view, WILSON_ZSCORE);
 | 
	
		
			
				|  |  | +                double ctr = NumUtil.divSmoothV2(click, view, CTR_SMOOTH_BETA_FACTOR);
 | 
	
		
			
				|  |  | +                double ctcvr = NumUtil.divSmoothV2(conver, view, CTCVR_SMOOTH_BETA_FACTOR);
 | 
	
		
			
				|  |  |                  double ecpm = ctr * cpc * 1000;
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ctr", String.valueOf(ctr));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ctcvr", String.valueOf(ctcvr));
 | 
	
		
			
				|  |  | -                cidFeatureMap.put(prefix + "_" + time + "_cvr", String.valueOf(NumUtil.divSmoothV1(conver, click, WILSON_ZSCORE)));
 | 
	
		
			
				|  |  | +                cidFeatureMap.put(prefix + "_" + time + "_cvr", String.valueOf(NumUtil.divSmoothV2(conver, click, CVR_SMOOTH_BETA_FACTOR)));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_conver", String.valueOf(conver));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ecpm", String.valueOf(ecpm));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -365,12 +367,12 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |                  double conver = Double.parseDouble(feature.getOrDefault("ad_conversion_" + time, "0"));
 | 
	
		
			
				|  |  |                  double income = Double.parseDouble(feature.getOrDefault("ad_income_" + time, "0"));
 | 
	
		
			
				|  |  |                  double cpc = NumUtil.div(income, click);
 | 
	
		
			
				|  |  | -                double ctr = NumUtil.divSmoothV1(click, view, WILSON_ZSCORE);
 | 
	
		
			
				|  |  | -                double ctcvr = NumUtil.divSmoothV1(conver, view, WILSON_ZSCORE);
 | 
	
		
			
				|  |  | +                double ctr = NumUtil.divSmoothV2(click, view, CTR_SMOOTH_BETA_FACTOR);
 | 
	
		
			
				|  |  | +                double ctcvr = NumUtil.divSmoothV2(conver, view, CTCVR_SMOOTH_BETA_FACTOR);
 | 
	
		
			
				|  |  |                  double ecpm = ctr * cpc * 1000;
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ctr", String.valueOf(ctr));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ctcvr", String.valueOf(ctcvr));
 | 
	
		
			
				|  |  | -                cidFeatureMap.put(prefix + "_" + time + "_cvr", String.valueOf(NumUtil.divSmoothV1(conver, click, WILSON_ZSCORE)));
 | 
	
		
			
				|  |  | +                cidFeatureMap.put(prefix + "_" + time + "_cvr", String.valueOf(NumUtil.divSmoothV2(conver, click, CVR_SMOOTH_BETA_FACTOR)));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_conver", String.valueOf(conver));
 | 
	
		
			
				|  |  |                  cidFeatureMap.put(prefix + "_" + time + "_ecpm", String.valueOf(ecpm));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -461,10 +463,10 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |              double conver = Double.parseDouble(d1Feature.getOrDefault("ad_conversion_" + prefix, "0"));
 | 
	
		
			
				|  |  |              double income = Double.parseDouble(d1Feature.getOrDefault("ad_income_" + prefix, "0"));
 | 
	
		
			
				|  |  |              double cpc = NumUtil.div(income, click);
 | 
	
		
			
				|  |  | -            double ctr = NumUtil.divSmoothV1(click, view, WILSON_ZSCORE);
 | 
	
		
			
				|  |  | +            double ctr = NumUtil.divSmoothV2(click, view, CTR_SMOOTH_BETA_FACTOR);
 | 
	
		
			
				|  |  |              featureMap.put("d1_feature_" + prefix + "_ctr", String.valueOf(ctr));
 | 
	
		
			
				|  |  | -            featureMap.put("d1_feature_" + prefix + "_ctcvr", String.valueOf(NumUtil.divSmoothV1(conver, view, WILSON_ZSCORE)));
 | 
	
		
			
				|  |  | -            featureMap.put("d1_feature_" + prefix + "_cvr", String.valueOf(NumUtil.divSmoothV1(conver, click, WILSON_ZSCORE)));
 | 
	
		
			
				|  |  | +            featureMap.put("d1_feature_" + prefix + "_ctcvr", String.valueOf(NumUtil.divSmoothV2(conver, view, CTCVR_SMOOTH_BETA_FACTOR)));
 | 
	
		
			
				|  |  | +            featureMap.put("d1_feature_" + prefix + "_cvr", String.valueOf(NumUtil.divSmoothV2(conver, click, CVR_SMOOTH_BETA_FACTOR)));
 | 
	
		
			
				|  |  |              featureMap.put("d1_feature_" + prefix + "_conver", String.valueOf(conver));
 | 
	
		
			
				|  |  |              featureMap.put("d1_feature_" + prefix + "_ecpm", String.valueOf(ctr * cpc * 1000));
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -609,7 +611,7 @@ public class RankStrategyBy683 extends RankStrategyBasic {
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          synchronized (this) {
 | 
	
		
			
				|  |  | -            String bucketFile = "20250113_ad_bucket_688.txt";
 | 
	
		
			
				|  |  | +            String bucketFile = "20240718_ad_bucket_688.txt";
 | 
	
		
			
				|  |  |              InputStream resourceStream = RankStrategyBy683.class.getClassLoader().getResourceAsStream(bucketFile);
 | 
	
		
			
				|  |  |              if (resourceStream != null) {
 | 
	
		
			
				|  |  |                  try (BufferedReader reader = new BufferedReader(new InputStreamReader(resourceStream))) {
 |