Bläddra i källkod

新汤普森实验

gufengshou1 11 månader sedan
förälder
incheckning
c6f9ba3827

+ 66 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VideoAdThompsonScorerV2.java

@@ -0,0 +1,66 @@
+package com.tzld.piaoquan.ad.engine.service.score;
+
+import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
+import com.tzld.piaoquan.ad.engine.commons.score.ScoreParam;
+import com.tzld.piaoquan.ad.engine.service.score.dto.AdPlatformCreativeDTO;
+import com.tzld.piaoquan.recommend.feature.domain.ad.base.AdRankItem;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+@Component
+public class VideoAdThompsonScorerV2 {
+
+    @Autowired
+    private AlgorithmRedisHelper redisHelper;
+    private String redis_creative_="redis:cid_aciton:";
+
+    public List<AdRankItem> thompsonScorerByExp1(ScoreParam param, List<AdPlatformCreativeDTO> adIdList){
+        List<AdRankItem> result=new LinkedList<>();
+        for(AdPlatformCreativeDTO dto:adIdList){
+            try {
+
+            }catch (Exception e){
+
+            }
+        }
+        return result;
+    }
+    public List<AdRankItem> thompsonScorerByExp2(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){
+        List<AdRankItem> result=new LinkedList<>();
+        for(AdPlatformCreativeDTO dto:adIdList){
+            try {
+
+            }catch (Exception e){
+
+            }
+        }
+        return result;
+    }
+    public List<AdRankItem> thompsonScorerByExp3(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){
+        List<AdRankItem> result=new LinkedList<>();
+        for(AdPlatformCreativeDTO dto:adIdList){
+            try {
+
+            }catch (Exception e){
+
+            }
+        }
+        return result;
+    }
+    public List<AdRankItem> thompsonScorerByExp4(ScoreParam param,List<AdPlatformCreativeDTO> adIdList){
+        List<AdRankItem> result=new LinkedList<>();
+        for(AdPlatformCreativeDTO dto:adIdList){
+            try {
+
+            }catch (Exception e){
+
+            }
+        }
+        return result;
+    }
+
+}

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

@@ -1,6 +1,8 @@
 package com.tzld.piaoquan.ad.engine.service.score.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.tzld.piaoquan.ad.engine.commons.redis.AlgorithmRedisHelper;
+import com.tzld.piaoquan.ad.engine.service.score.VideoAdThompsonScorerV2;
 import com.tzld.piaoquan.ad.engine.service.score.container.AdCreativeFeatureContainer;
 import com.tzld.piaoquan.ad.engine.service.score.container.PidLambdaContainer;
 import com.tzld.piaoquan.ad.engine.service.score.container.PidLambdaForCpcContainer;
@@ -39,6 +41,8 @@ public class RankServiceImpl implements RankService {
     FeatureRemoteService featureRemoteService;
     @Autowired
     RankServiceThompsonImpl rankServiceThompson;
+    @Autowired
+    VideoAdThompsonScorerV2 videoAdThompsonScorerV2;
 
     @Autowired
     AdCreativeFeatureContainer adCreativeFeatureContainer;
@@ -186,51 +190,51 @@ public class RankServiceImpl implements RankService {
         param.getRequestContext().setCity(request.getCity().replace("市",""));
         param.getRequestContext().setDay(currentTime.format(dateFormatter));
 
-        UserAdFeature userAdFeature=featureRemoteService.getUserAdFeature(request.getMid());
-        if(userAdFeature==null){
-            userAdFeature=new UserAdFeature();
-        }
-        Map<Long,List<AdPlatformCreativeDTO>> groupMap=request
-                .getAdIdList()
-                .stream()
-                .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId()));
-        Map<Long, AdRankItem> cache=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet()));
-        List<AdRankItem> rankItems=Collections.emptyList();
-        if(!cache.isEmpty()){
-            rankItems=new LinkedList<>();
-            for (AdRankItem value : cache.values()) {
-                value.setVideoId(request.getVideoId());
-                rankItems.add(value);
-            }
-        }
-        //避免recommend-feature出问题
-        if(rankItems==null|| rankItems.size()==0){
-            rankItems=new LinkedList<>();
-            for(Long adId:groupMap.keySet()){
-                AdRankItem item=new AdRankItem();
-                item.setAdId(adId);
-                item.setItemFeature(new AdItemFeature());
-                item.setVideoId(request.getVideoId());
-                rankItems.add(item);
-            }
-        }
-        for(AdRankItem item:rankItems){
-            try {
-                AdPlatformCreativeDTO dto=groupMap.get(item.getAdId()).get(0);
-                item.setBid1(dto.getBid1());
-                item.setBid2(dto.getBid2());
-                item.setCpa(dto.getCpa());
-                item.setPidLambda(1d);
-            }catch (Exception e){
-                log.error("rankItems info error itemId={}",item.getAdId());
-                e.printStackTrace();
-            }
-        }
+//        UserAdFeature userAdFeature=featureRemoteService.getUserAdFeature(request.getMid());
+//        if(userAdFeature==null){
+//            userAdFeature=new UserAdFeature();
+//        }
+//        Map<Long,List<AdPlatformCreativeDTO>> groupMap=request
+//                .getAdIdList()
+//                .stream()
+//                .collect(Collectors.groupingBy(creativeDTO -> creativeDTO.getCreativeId()));
+//        Map<Long, AdRankItem> cache=adCreativeFeatureContainer.getAll(new ArrayList<>(groupMap.keySet()));
+//        List<AdRankItem> rankItems=Collections.emptyList();
+//        if(!cache.isEmpty()){
+//            rankItems=new LinkedList<>();
+//            for (AdRankItem value : cache.values()) {
+//                value.setVideoId(request.getVideoId());
+//                rankItems.add(value);
+//            }
+//        }
+//        //避免recommend-feature出问题
+//        if(rankItems==null|| rankItems.size()==0){
+//            rankItems=new LinkedList<>();
+//            for(Long adId:groupMap.keySet()){
+//                AdRankItem item=new AdRankItem();
+//                item.setAdId(adId);
+//                item.setItemFeature(new AdItemFeature());
+//                item.setVideoId(request.getVideoId());
+//                rankItems.add(item);
+//            }
+//        }
+//        for(AdRankItem item:rankItems){
+//            try {
+//                AdPlatformCreativeDTO dto=groupMap.get(item.getAdId()).get(0);
+//                item.setBid1(dto.getBid1());
+//                item.setBid2(dto.getBid2());
+//                item.setCpa(dto.getCpa());
+//                item.setPidLambda(1d);
+//            }catch (Exception e){
+//                log.error("rankItems info error itemId={}",item.getAdId());
+//                e.printStackTrace();
+//            }
+//        }
 
         // 兜底方案
         List<AdRankItem> rankResult;
 
-        rankResult = rank(param, userAdFeature, rankItems, ScorerUtils.VIDEO_CREATIVE_THOMPSON);
+        rankResult = videoAdThompsonScorerV2.thompsonScorerByExp1(param, request.getAdIdList());
 
 
         if (!CollectionUtils.isEmpty(rankResult)) {
@@ -254,7 +258,6 @@ public class RankServiceImpl implements RankService {
             log.info("svc=videoAdThompsonRank_log obj={}", JSONObject.toJSONString(object));
             return rankResult.get(0);
         }else {
-            //空返回值
             return new AdRankItem();
         }
     }
@@ -311,29 +314,6 @@ public class RankServiceImpl implements RankService {
                 e.printStackTrace();
             }
         }
-//        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());
-//                lambda=PidLambdaContainer.getPidLambda(item.getAdId());
-//                if(lambda<0){
-//                    item.setCpa(dto.getCpa());
-//                    item.setPidLambda(dto.getCpa()*0.6);
-//                }else {
-//                    if(dto.getCpa()>1&&lambda<=1){
-//                        lambda=2d;
-//                    }
-//                    item.setCpa(dto.getCpa());
-//                    item.setPidLambda(lambda);
-//                }
-//
-//            }catch (Exception e){
-//                log.error("rankItems info error itemId={}",item.getAdId());
-//                e.printStackTrace();
-//            }
-//        }
         List<AdRankItem> rankResult;
         if(rankItems==null|| rankItems.size()==0){
             rankItems=new LinkedList<>();