Forráskód Böngészése

feat:修改679实验

zhaohaipeng 10 hónapja
szülő
commit
a489118c6e

+ 1 - 1
ad-engine-server/src/main/java/com/tzld/piaoquan/ad/engine/server/controller/AdRecommendController.java

@@ -32,7 +32,7 @@ public class AdRecommendController {
         Map<String, Object> map = new HashMap<>();
 
         if (Objects.isNull(rankResult)) {
-            map.put("code", "500");
+            map.put("code", "1");
             map.put("msg", "score error");
         } else {
             map.put("code", "0");

+ 3 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/log/impl/LogHubServiceImpl.java

@@ -92,8 +92,10 @@ public class LogHubServiceImpl implements LogHubService {
 
                 AdRankItem top1 = rankItems.get(0);
                 logMap.put("cid", top1.getAdId());
-                logMap.put("score", top1.getScore());
                 logMap.put("adverid", top1.getAdVerId());
+                logMap.put("adid", top1.getId());
+                logMap.put("campaignid", top1.getCampaignId());
+                logMap.put("score", top1.getScore());
                 Map<String, String> featureMap = top1.getFeatureMap();
                 featureMap.put("weight", String.valueOf(top1.getWeight()));
                 logMap.put("allfeature", JSON.toJSONString(featureMap));

+ 10 - 21
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/RankService680.java

@@ -68,6 +68,8 @@ public class RankService680 {
             adRankItem.setAdVerId(dto.getAdVerId());
             adRankItem.setVideoId(request.getVideoId());
             adRankItem.setCpa(dto.getCpa());
+            adRankItem.setId(dto.getAdId());
+            adRankItem.setCampaignId(dto.getCampaignId());
 
             String cidStr = dto.getCreativeId().toString();
             Map<String, String> cidFeatureMap = new HashMap<>();
@@ -109,37 +111,24 @@ public class RankService680 {
         }
 
         // 打分排序
-        List<AdRankItem> items = ScorerUtils.getScorerPipeline(ScorerUtils.LR_ROV_SCORE_20240626)
+        List<AdRankItem> result = ScorerUtils.getScorerPipeline(ScorerUtils.LR_ROV_SCORE_20240626)
                 .scoring(new HashMap<>(), userFeatureMap, adRankItems);
 
-        List<AdRankItem> result = new ArrayList<>(items.size());
-        for (AdRankItem item : items) {
-            AdRankItem adRankItem = new AdRankItem();
-            adRankItem.setAdId(item.getAdId());
-            adRankItem.setCreativeCode(item.getCreativeCode());
-            adRankItem.setAdVerId(item.getAdVerId());
-            adRankItem.setVideoId(item.getVideoId());
-            adRankItem.setLrScore(item.getLrScore());
-
-            adRankItem.setScore(item.getLrScore() * item.getCpa());
-
-            adRankItem.getFeatureMap().putAll(item.getFeatureMap());
-            adRankItem.getFeatureMap().putAll(userFeatureMap);
-
+        for (AdRankItem item : result) {
+            item.setScore(item.getLrScore() * item.getCpa());
+            item.getFeatureMap().putAll(userFeatureMap);
             if (MapUtils.isNotEmpty(videoFeature)) {
-                adRankItem.getMetaFeatureMap().putAll(videoFeature);
+                item.getMetaFeatureMap().putAll(videoFeature);
             }
             if (MapUtils.isNotEmpty(userFeature)) {
-                adRankItem.getMetaFeatureMap().putAll(userFeature);
+                item.getMetaFeatureMap().putAll(userFeature);
             }
             if (allAdVerFeature.containsKey(item.getAdVerId())) {
-                adRankItem.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
+                item.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
             }
             if (allCidFeature.containsKey(String.valueOf(item.getAdId()))) {
-                adRankItem.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
+                item.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
             }
-
-            result.add(adRankItem);
         }
 
         Collections.sort(result);

+ 1 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/VlogRovLRScorer.java

@@ -148,6 +148,7 @@ public class VlogRovLRScorer extends BaseLRV2ModelScorer {
                 LOGGER.error("score error for doc={} exception={}", item.getVideoId(), ExceptionUtils.getFullStackTrace(e));
             }
         }
+        item.getScoreMap().put("rovLrScore", pro);
         item.setLrScore(pro);
         return pro;
     }

+ 4 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/dto/AdPlatformCreativeDTO.java

@@ -30,7 +30,10 @@ public class AdPlatformCreativeDTO {
     private Double ecpm2;
 
     private double weight;
-
+    // 计划id
+    private Long campaignId;
+    // 广告id
+    private Long adId;
     /**
      * 定向打分参数
      */

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

@@ -91,16 +91,16 @@ public class RankServiceImpl implements RankService {
     private AdRankItem rankBy680(RankRecommendRequestParam request) {
         ScoreParam scoreParam = RequestConvert.requestConvert(request);
         List<AdRankItem> adRankItems = fmRankService.adItemRank(request, scoreParam);
-        List<JSONObject> collect = adRankItems.stream().map(i -> {
-            JSONObject json = new JSONObject();
-            json.put("cid", i.getAdId());
-            json.put("lrScore", i.getLrScore());
-            json.put("score", i.getScore());
-            json.put("metaFeatureMap", i.getMetaFeatureMap());
-            json.put("allFeatureMap", i.getFeatureMap());
-            return json;
-        }).collect(Collectors.toList());
-        log.info("LR模型打分结果: {}", JSON.toJSONString(collect));
+        // List<JSONObject> collect = adRankItems.stream().map(i -> {
+        //     JSONObject json = new JSONObject();
+        //     json.put("cid", i.getAdId());
+        //     json.put("lrScore", i.getLrScore());
+        //     json.put("score", i.getScore());
+        //     json.put("metaFeatureMap", i.getMetaFeatureMap());
+        //     json.put("allFeatureMap", i.getFeatureMap());
+        //     return json;
+        // }).collect(Collectors.toList());
+        // log.info("LR模型打分结果: {}", JSON.toJSONString(collect));
         logHubService.scoreLogUpload(scoreParam, request.getAdIdList(), adRankItems, request, "LRModelScore", "680");
         return adRankItems.get(0);
     }

+ 8 - 19
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/TacticsAndLRModelScoreRankService.java

@@ -23,31 +23,20 @@ public class TacticsAndLRModelScoreRankService {
     public List<AdRankItem> adItemRank(RankRecommendRequestParam requestParam, ScoreParam scoreParam) {
 
         // LR模型打分结果
-        List<AdRankItem> adRankItems = rankService680.adItemRank(requestParam, scoreParam);
+        List<AdRankItem> result = rankService680.adItemRank(requestParam, scoreParam);
 
         Map<Long, AdDirectionScore> adDirectionScoreMap = requestParam.getAdIdList().stream()
                 .collect(Collectors.toMap(AdPlatformCreativeDTO::getCreativeId, AdPlatformCreativeDTO::getAdDirectionScore));
-        List<AdRankItem> result = new ArrayList<>();
 
-        for (AdRankItem adRankItem : adRankItems) {
-            AdRankItem item = new AdRankItem();
-            item.setAdId(adRankItem.getAdId());
-            item.setCreativeCode(adRankItem.getCreativeCode());
-            item.setAdVerId(adRankItem.getAdVerId());
-            item.setVideoId(item.getVideoId());
-            item.setLrScore(item.getLrScore());
+        for (AdRankItem adRankItem : result) {
 
-            double s1 = this.calcDirectionScore(item, adDirectionScoreMap.get(item.getAdId()));
-            item.setAdDirectionScore(s1);
+            double s1 = this.calcDirectionScore(adRankItem, adDirectionScoreMap.get(adRankItem.getAdId()));
+            adRankItem.setAdDirectionScore(s1);
 
-            double s2 = item.getLrScore();
+            // 模型的打分结果已经乘CPA,此处不需要重复乘CPA
+            double s2 = adRankItem.getScore();
+            adRankItem.setScore(s1 * s2);
 
-            item.setScore(s1);
-
-            item.getFeatureMap().putAll(adRankItem.getFeatureMap());
-            item.getMetaFeatureMap().putAll(adRankItem.getMetaFeatureMap());
-
-            result.add(item);
         }
 
         Collections.sort(result);
@@ -74,7 +63,7 @@ public class TacticsAndLRModelScoreRankService {
 
         double s1 = (network * phoneModel * area * peoplePackage * excludeMin);
         double s2 = Math.pow(s1, exponent);
-
+        adRankItem.getScoreMap().put("adDirectionScore", s2);
         adRankItem.setAdDirectionScore(s2);
 
         Map<String, String> scoreDetailMap = new HashMap<>(scoreDetail);