Bladeren bron

547 平滑时间 扩大截面

zhangbo 1 jaar geleden
bovenliggende
commit
b82f32351d

+ 14 - 68
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV547.java

@@ -3,10 +3,8 @@ package com.tzld.piaoquan.recommend.server.service.rank.strategy;
 import com.alibaba.fastjson.JSONObject;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.reflect.TypeToken;
-import com.tzld.piaoquan.recommend.feature.domain.video.base.UserFeature;
 import com.tzld.piaoquan.recommend.server.common.base.RankItem;
 import com.tzld.piaoquan.recommend.server.model.Video;
-import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConstants;
 import com.tzld.piaoquan.recommend.server.service.rank.RankParam;
 import com.tzld.piaoquan.recommend.server.service.rank.RankResult;
 import com.tzld.piaoquan.recommend.server.service.rank.RankService;
@@ -18,9 +16,7 @@ import com.tzld.piaoquan.recommend.server.service.rank.processor.RankProcessorBo
 import com.tzld.piaoquan.recommend.server.service.rank.processor.RankProcessorDensity;
 import com.tzld.piaoquan.recommend.server.service.rank.processor.RankProcessorInsert;
 import com.tzld.piaoquan.recommend.server.service.rank.processor.RankProcessorTagFilter;
-import com.tzld.piaoquan.recommend.server.service.recall.RecallResult;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
-import com.tzld.piaoquan.recommend.server.service.score.ScoreParam;
 import com.tzld.piaoquan.recommend.server.service.score.ScorerUtils;
 import com.tzld.piaoquan.recommend.server.util.CommonCollectionUtils;
 import com.tzld.piaoquan.recommend.server.util.JSONUtils;
@@ -42,8 +38,8 @@ import java.util.stream.Collectors;
  * @author zhangbo
  * @desc 地域召回融合 流量池汤姆森
  */
-@Slf4j
 @Service
+@Slf4j
 public class RankStrategy4RegionMergeModelV547 extends RankService {
     @ApolloJsonValue("${rank.score.merge.weightv547:}")
     private Map<String, Double> mergeWeight;
@@ -51,56 +47,6 @@ public class RankStrategy4RegionMergeModelV547 extends RankService {
     private Map<String, Map<String, Map<String, String>>> filterRules = new HashMap<>();
     final private String CLASS_NAME = this.getClass().getSimpleName();
 
-    @Override
-    public List<Video> mergeAndRankFlowPoolRecall(RankParam param) {
-        List<Video> quickFlowPoolVideos = sortFlowPoolByThompson(param, FlowPoolConstants.QUICK_PUSH_FORM);
-        if (CollectionUtils.isNotEmpty(quickFlowPoolVideos)) {
-            return quickFlowPoolVideos;
-        } else {
-            return sortFlowPoolByThompson(param, FlowPoolConstants.PUSH_FORM);
-        }
-    }
-
-    public List<Video> sortFlowPoolByThompson(RankParam param, String pushFrom) {
-
-        //初始化 userid
-        UserFeature userFeature = new UserFeature();
-        userFeature.setMid(param.getMid());
-
-        // 初始化RankItem
-        Optional<RecallResult.RecallData> data = param.getRecallResult().getData().stream()
-                .filter(d -> d.getPushFrom().equals(pushFrom))
-                .findFirst();
-        if (!data.isPresent()){
-            return Collections.emptyList();
-        }
-        List<Video> videoList = data.get().getVideos();
-        if (videoList == null) {
-            return Collections.emptyList();
-        }
-        List<RankItem> rankItems = new ArrayList<>();
-        for (int i = 0; i < videoList.size(); i++) {
-            RankItem rankItem = new RankItem(videoList.get(i));
-            rankItems.add(rankItem);
-        }
-
-        // 初始化上下文参数
-        ScoreParam scoreParam = convert(param);
-        List<RankItem> rovRecallScore = ScorerUtils.getScorerPipeline(ScorerUtils.FLOWPOOL_CONF)
-                .scoring(scoreParam, userFeature, rankItems);
-
-        if (rovRecallScore == null) {
-            return Collections.emptyList();
-        }
-
-        return CommonCollectionUtils.toList(rovRecallScore, i -> {
-            // hard code 将排序分数 赋值给video的sortScore
-            Video v = i.getVideo();
-            v.setSortScore(i.getScore());
-            return v;
-        });
-    }
-
     public void duplicate(Set<Long> setVideo, List<Video> videos) {
         Iterator<Video> iterator = videos.iterator();
         while (iterator.hasNext()) {
@@ -200,13 +146,13 @@ public class RankStrategy4RegionMergeModelV547 extends RankService {
             List<Double> allreturns = getStaticData(itemRealMap, datehours, "return_uv_list_1h");
 
             List<Double> share2return = getRateData(preturns, shares, 1.0, 1000.0);
-            Double share2returnScore = calScoreWeight(share2return);
+            Double share2returnScore = calScoreWeightNoTimeDecay(share2return);
             List<Double> view2return = getRateData(preturns, views, 1.0, 1000.0);
-            Double view2returnScore = calScoreWeight(view2return);
+            Double view2returnScore = calScoreWeightNoTimeDecay(view2return);
             List<Double> view2play = getRateData(plays, views, 1.0, 1000.0);
-            Double view2playScore = calScoreWeight(view2play);
+            Double view2playScore = calScoreWeightNoTimeDecay(view2play);
             List<Double> play2share = getRateData(shares, plays, 1.0, 1000.0);
-            Double play2shareScore = calScoreWeight(play2share);
+            Double play2shareScore = calScoreWeightNoTimeDecay(play2share);
             item.scoresMap.put("share2returnScore", share2returnScore);
             item.scoresMap.put("view2returnScore", view2returnScore);
             item.scoresMap.put("view2playScore", view2playScore);
@@ -214,18 +160,18 @@ public class RankStrategy4RegionMergeModelV547 extends RankService {
 
             // 全部回流的rov和ros
             List<Double> share2allreturn = getRateData(allreturns, shares, 1.0, 10.0);
-            Double share2allreturnScore = calScoreWeight(share2allreturn);
+            Double share2allreturnScore = calScoreWeightNoTimeDecay(share2allreturn);
             List<Double> view2allreturn = getRateData(allreturns, views, 0.0, 0.0);
-            Double view2allreturnScore = calScoreWeight(view2allreturn);
+            Double view2allreturnScore = calScoreWeightNoTimeDecay(view2allreturn);
             item.scoresMap.put("share2allreturnScore", share2allreturnScore);
             item.scoresMap.put("view2allreturnScore", view2allreturnScore);
 
             // 全部回流
-            Double allreturnsScore = calScoreWeight(allreturns);
+            Double allreturnsScore = calScoreWeightNoTimeDecay(allreturns);
             item.scoresMap.put("allreturnsScore", allreturnsScore);
 
             // 平台回流
-            Double preturnsScore = calScoreWeight(preturns);
+            Double preturnsScore = calScoreWeightNoTimeDecay(preturns);
             item.scoresMap.put("preturnsScore", preturnsScore);
 
             // rov的趋势
@@ -309,12 +255,12 @@ public class RankStrategy4RegionMergeModelV547 extends RankService {
         return sum;
     }
 
-    public Double calScoreWeight(List<Double> data) {
+    public Double calScoreWeightNoTimeDecay(List<Double> data) {
         Double up = 0.0;
         Double down = 0.0;
         for (int i = 0; i < data.size(); ++i) {
-            up += 1.0 / (i + 1) * data.get(i);
-            down += 1.0 / (i + 1);
+            up += 1.0 * data.get(i);
+            down += 1.0;
         }
         return down > 1E-8 ? up / down : 0.0;
     }
@@ -678,12 +624,12 @@ public class RankStrategy4RegionMergeModelV547 extends RankService {
 
         RankStrategy4RegionMergeModelV547 job = new RankStrategy4RegionMergeModelV547();
         List<Double> l1 = job.getRateData(job.help(up1, "2024031115", 24), job.help(down1, "2024031115", 24), 1., 10.);
-        Double d1 = job.calScoreWeight(l1);
+        Double d1 = job.calScoreWeightNoTimeDecay(l1);
 
         System.out.println(d1);
 
         List<Double> l2 = job.getRateData(job.help(up2, "2024031115", 24), job.help(down2, "2024031115", 24), 1., 10.);
-        Double d2 = job.calScoreWeight(l2);
+        Double d2 = job.calScoreWeightNoTimeDecay(l2);
 
         System.out.println(d2);
 

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV548.java

@@ -190,7 +190,7 @@ public class RankStrategy4RegionMergeModelV548 extends RankService {
         double c = mergeWeight.getOrDefault("c", 0.000001);
         double d = mergeWeight.getOrDefault("d", 1.0);
         double e = mergeWeight.getOrDefault("e", 1.0);
-        double f = mergeWeight.getOrDefault("f", 0.08);
+        double f = mergeWeight.getOrDefault("f", 0.8);
         double g = mergeWeight.getOrDefault("g", 2.0);
         double h = mergeWeight.getOrDefault("h", 240.0);
         double ifAdd = mergeWeight.getOrDefault("ifAdd", 1.0);

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/recall/RecallService.java

@@ -139,7 +139,7 @@ public class RecallService implements ApplicationContextAware {
             }else{
                 if (param.getFlowPoolAbtestGroup().equals(FlowPoolConstants.EXPERIMENTAL_FLOW_SET_LEVEL)) {
                     strategies.add(strategyMap.get(QuickFlowPoolWithLevelRecallStrategy.class.getSimpleName()));
-                    if ("60126".equals(abCode)){
+                    if ("60126".equals(abCode) || "60125".equals(abCode)){
                         strategies.add(strategyMap.get(FlowPoolWithLevelRecallStrategyTomson.class.getSimpleName()));
                     }else {
                         strategies.add(strategyMap.get(FlowPoolWithLevelRecallStrategy.class.getSimpleName()));
@@ -152,7 +152,7 @@ public class RecallService implements ApplicationContextAware {
                     strategies.add(strategyMap.get(FlowPoolWithScoreRecallStrategy.class.getSimpleName()));
                 }
             }
-//            if ("60126".equals(abCode)){
+//            if ("60126".equals(abCode) || "60125".equals(abCode)){
 //                strategies.add(strategyMap.get(FlowPoolWithLevelRecallStrategyTomsonFilterDigit.class.getSimpleName()));
 //            }else{
 //                int lastDigit = param.getLastDigit();