Parcourir la source

feat:添加定向打分融合

zhaohaipeng il y a 10 mois
Parent
commit
7e21854027

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/feature/FeatureService.java

@@ -91,7 +91,7 @@ public class FeatureService {
                     Map<String, Map<String, String>> avFeatureMap = feature.getAdVerFeature().getOrDefault(id, new HashMap<>());
                     avFeatureMap.put(tableName, JSONUtils.fromJson(value, new TypeToken<Map<String, String>>() {
                     }, Collections.emptyMap()));
-                    feature.getAdVerFeature().put(tableName, avFeatureMap);
+                    feature.getAdVerFeature().put(id, avFeatureMap);
                     break;
                 case "m":
                     feature.getUserFeature().put(tableName, JSONUtils.fromJson(value, new TypeToken<Map<String, String>>() {

+ 18 - 16
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/RankService680.java

@@ -111,37 +111,39 @@ public class RankService680 {
         List<AdRankItem> items = ScorerUtils.getScorerPipeline(ScorerUtils.LR_ROV_SCORE_20240626)
                 .scoring(new HashMap<>(), userFeatureMap, adRankItems);
 
-        List<AdRankItem> results = new ArrayList<>(items.size());
+        List<AdRankItem> result = new ArrayList<>(items.size());
         for (AdRankItem item : items) {
-            AdRankItem result = new AdRankItem();
-            result.setAdId(item.getAdId());
-            result.setCreativeCode(item.getCreativeCode());
-            result.setAdVerId(item.getAdVerId());
-            result.setVideoId(item.getVideoId());
-            result.setLrScore(item.getLrScore());
+            AdRankItem adRankItem = new AdRankItem();
+            adRankItem.setAdId(item.getAdId());
+            adRankItem.setCreativeCode(item.getCreativeCode());
+            adRankItem.setAdVerId(item.getAdVerId());
+            adRankItem.setVideoId(item.getVideoId());
+            adRankItem.setLrScore(item.getLrScore());
 
-            result.setScore(item.getLrScore() * item.getCpa());
+            adRankItem.setScore(item.getLrScore() * item.getCpa());
 
-            result.getFeatureMap().putAll(item.getFeatureMap());
-            result.getFeatureMap().putAll(userFeatureMap);
+            adRankItem.getFeatureMap().putAll(item.getFeatureMap());
+            adRankItem.getFeatureMap().putAll(userFeatureMap);
 
             if (MapUtils.isNotEmpty(videoFeature)) {
-                result.getMetaFeatureMap().putAll(videoFeature);
+                adRankItem.getMetaFeatureMap().putAll(videoFeature);
             }
             if (MapUtils.isNotEmpty(userFeature)) {
-                result.getMetaFeatureMap().putAll(userFeature);
+                adRankItem.getMetaFeatureMap().putAll(userFeature);
             }
             if (allAdVerFeature.containsKey(item.getAdVerId())) {
-                result.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
+                adRankItem.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
             }
             if (allCidFeature.containsKey(String.valueOf(item.getAdId()))) {
-                result.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
+                adRankItem.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
             }
+
+            result.add(adRankItem);
         }
 
-        Collections.sort(results);
+        Collections.sort(result);
 
-        return results;
+        return result;
     }
 
     private Feature getFeature(ScoreParam param, RankRecommendRequestParam request) {

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

@@ -226,7 +226,7 @@ public class RankServiceImpl implements RankService {
             }
 
             for (AdRankItem adRankItem : rankResult) {
-                adRankItem.getExt().put("userAdFeature", JSON.toJSONString(userAdFeature));
+                // adRankItem.getItemFeature().put("userAdFeature", JSON.toJSONString(userAdFeature));
             }
             // 日志上报
             logHubService.scoreLogUpload(param, request.getAdIdList(), rankResult, request,